@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
@@ -23,46 +23,46 @@ import type { PosPaperSize, QrSize } from './escpos.js';
23
23
  * alten Wert des nativen ESC/POS-Wegs), in Dart bei 6; derselbe Beleg kam
24
24
  * dadurch je nach Paket verschieden gross aus dem Drucker. Einheitlich gilt
25
25
  * jetzt 6: der Wert von Dart und vom Epson-Weg, und ein groesseres Modul
26
- * liest sich besser. `klein` (4) druckt den QR so gross wie frueher `auto`;
27
- * `mittel` (6) und `gross` (8) waehlt ein Mensch.
26
+ * liest sich besser. `small` (4) druckt den QR so gross wie frueher `auto`;
27
+ * `medium` (6) und `large` (8) waehlt ein Mensch.
28
28
  */
29
- export type QrModulGroesse = 'auto' | 'klein' | 'mittel' | 'gross';
29
+ export type QrModuleSize = 'auto' | 'small' | 'medium' | 'large';
30
30
  /** Groesste Modulgroesse in Druckpunkten, die der jeweilige Deckel zulaesst. */
31
- export declare const QR_MODUL_DECKEL: Readonly<Record<QrModulGroesse, number>>;
31
+ export declare const QR_MODULE_SIZE_CAP: Readonly<Record<QrModuleSize, number>>;
32
32
  /**
33
33
  * Ergebnis der Modulgroessen-Rechnung.
34
34
  *
35
- * Traegt bewusst mehr als die Zahl: ob ueberhaupt etwas passt (`passt`), ob
36
- * nur unter der Mindestgroesse (`unterMindestmass`) und wie breit das Symbol
37
- * wird (`breitePunkte`). Eine blosse Zahl haette die Ausnahme verschwiegen.
35
+ * Traegt bewusst mehr als die Zahl: ob ueberhaupt etwas passt (`fits`), ob
36
+ * nur unter der Mindestgroesse (`belowMinimum`) und wie breit das Symbol
37
+ * wird (`widthDots`). Eine blosse Zahl haette die Ausnahme verschwiegen.
38
38
  */
39
- export interface QrGroesse {
39
+ export interface QrSizing {
40
40
  /**
41
41
  * Modulgroesse in Druckpunkten, `null` wenn das Symbol auch mit der
42
42
  * Ausnahmegroesse nicht aufs Papier passt.
43
43
  */
44
- readonly punkte: QrSize | null;
44
+ readonly moduleDots: QrSize | null;
45
45
  /** Modulanzahl des Symbols (ohne Ruhezone). */
46
- readonly module: number;
46
+ readonly modules: number;
47
47
  /** Gesamtbreite inklusive Ruhezone in Druckpunkten; 0, wenn nichts passt. */
48
- readonly breitePunkte: number;
48
+ readonly widthDots: number;
49
49
  /**
50
- * Gedruckt wird unter `QR_MINDEST_PUNKTE`. Erlaubt, aber eine Ausnahme, von
50
+ * Gedruckt wird unter `QR_MIN_MODULE_DOTS`. Erlaubt, aber eine Ausnahme, von
51
51
  * der der Aufrufer erfahren muss — billige Thermodrucker und Handykameras
52
52
  * tun sich damit schwer, besonders auf gewelltem Papier.
53
53
  */
54
- readonly unterMindestmass: boolean;
54
+ readonly belowMinimum: boolean;
55
55
  /** Kurz fuer `punkte !== null`. */
56
- readonly passt: boolean;
56
+ readonly fits: boolean;
57
57
  }
58
58
  /** Ruhezone je Seite, in Modulen (QR-Norm). */
59
- export declare const QR_RUHEZONE_MODULE = 4;
59
+ export declare const QR_QUIET_ZONE_MODULES = 4;
60
60
  /** Untergrenze: 4 Punkte sind bei 203 dpi rund 0,5 mm je Modul. */
61
- export declare const QR_MINDEST_PUNKTE = 4;
62
- /** Ausnahme, wenn `QR_MINDEST_PUNKTE` nicht passt — gemeldet, nicht still. */
63
- export declare const QR_AUSNAHME_PUNKTE = 3;
61
+ export declare const QR_MIN_MODULE_DOTS = 4;
62
+ /** Ausnahme, wenn `QR_MIN_MODULE_DOTS` nicht passt – gemeldet, nicht still. */
63
+ export declare const QR_EXCEPTION_MODULE_DOTS = 3;
64
64
  /** Obergrenze des Druckbefehls in diesem Stack (`GS ( k` Funktion 167: 1..8). */
65
- export declare const QR_HOECHST_PUNKTE = 8;
65
+ export declare const QR_MAX_MODULE_DOTS = 8;
66
66
  /**
67
67
  * Druckbreite des Kopfes in Punkten (203 dpi): 58 mm = 384, 80 mm = 576 —
68
68
  * Zwilling von `KeckPaperSize.druckPunkte`.
@@ -73,9 +73,9 @@ export declare const QR_HOECHST_PUNKTE = 8;
73
73
  * die echte Kopfbreite — ein QR, der auch nur einen Punkt zu breit ist, wird
74
74
  * von den meisten Geraeten gar nicht gedruckt.
75
75
  */
76
- export declare const QR_DRUCK_PUNKTE: Readonly<Record<PosPaperSize, number>>;
76
+ export declare const QR_PRINT_WIDTH_DOTS: Readonly<Record<PosPaperSize, number>>;
77
77
  /**
78
- * Modulanzahl, die `nutzlast` bei Fehlerkorrektur **M** braucht.
78
+ * Modulanzahl, die `payload` bei Fehlerkorrektur **M** braucht.
79
79
  *
80
80
  * Alle Druckwege setzen den QR mit Fehlerkorrektur **M** (nativer
81
81
  * ESC/POS-Befehl, ePOS `level_m`; das Raster fuer den Bildweg rechnet der
@@ -90,38 +90,38 @@ export declare const QR_DRUCK_PUNKTE: Readonly<Record<PosPaperSize, number>>;
90
90
  * langem Inhalt. Ein still zurueckgegebenes "passt nicht" haette den
91
91
  * Datenfehler als Papierfehler getarnt.
92
92
  */
93
- export declare function qrModulAnzahl(nutzlast: string): number;
93
+ export declare function qrModuleCount(payload: string): number;
94
94
  /**
95
- * Ob `nutzlast` in irgendeine QR-Version 1..40 bei Fehlerkorrektur M passt --
96
- * dieselbe Tabelle wie `qrModulAnzahl`, aber ohne zu werfen.
95
+ * Ob `payload` in irgendeine QR-Version 1..40 bei Fehlerkorrektur M passt --
96
+ * dieselbe Tabelle wie `qrModuleCount`, aber ohne zu werfen.
97
97
  *
98
98
  * Fuer Aufrufer, denen ein zu langer Inhalt kein Programmierfehler ist,
99
99
  * sondern ein Datenfehler, den sie selbst behandeln (das Beleg-Blatt: ohne
100
100
  * QR weiterbauen statt den ganzen Zeichner mitzureissen).
101
101
  */
102
- export declare function qrPasstInVersion(nutzlast: string): boolean;
102
+ export declare function qrFitsInVersion(payload: string): boolean;
103
103
  /**
104
- * Groesste Modulgroesse, mit der `moduleAnzahl` Module **samt Ruhezone** in
105
- * `papierbreitePunkte` passen, gedeckelt durch `groesse`.
104
+ * Groesste Modulgroesse, mit der `moduleCount` Module **samt Ruhezone** in
105
+ * `paperWidthDots` passen, gedeckelt durch `moduleSize`.
106
106
  *
107
107
  * Wirft bei sinnlosen Eingaben: eine Papierbreite von 0 oder ein Symbol ohne
108
108
  * Module ist ein Programmierfehler, und ein still zurueckgegebenes "passt
109
109
  * nicht" haette ihn als Druckerproblem getarnt.
110
110
  */
111
- export declare function qrGroesseBerechnen(options: {
112
- papierbreitePunkte: number;
113
- moduleAnzahl: number;
114
- groesse?: QrModulGroesse;
115
- }): QrGroesse;
111
+ export declare function computeQrSizing(options: {
112
+ paperWidthDots: number;
113
+ moduleCount: number;
114
+ moduleSize?: QrModuleSize;
115
+ }): QrSizing;
116
116
  /**
117
- * Wie `qrGroesseBerechnen`, nur mit der Modulanzahl aus `nutzlast`.
117
+ * Wie `computeQrSizing`, nur mit der Modulanzahl aus `payload`.
118
118
  *
119
119
  * Eine leere Nutzlast ergibt kein Symbol — sie "passt nicht", statt zu
120
120
  * werfen: der Aufrufer behandelt den Fall ohnehin schon (leerer QR am Beleg
121
121
  * ist ein Datenfehler, kein Papierfehler).
122
122
  */
123
- export declare function qrGroesseFuer(options: {
124
- nutzlast: string;
125
- papierbreitePunkte: number;
126
- groesse?: QrModulGroesse;
127
- }): QrGroesse;
123
+ export declare function qrSizingFor(options: {
124
+ payload: string;
125
+ paperWidthDots: number;
126
+ moduleSize?: QrModuleSize;
127
+ }): QrSizing;
@@ -1,26 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QR_DRUCK_PUNKTE = exports.QR_HOECHST_PUNKTE = exports.QR_AUSNAHME_PUNKTE = exports.QR_MINDEST_PUNKTE = exports.QR_RUHEZONE_MODULE = exports.QR_MODUL_DECKEL = void 0;
4
- exports.qrModulAnzahl = qrModulAnzahl;
5
- exports.qrPasstInVersion = qrPasstInVersion;
6
- exports.qrGroesseBerechnen = qrGroesseBerechnen;
7
- exports.qrGroesseFuer = qrGroesseFuer;
3
+ exports.QR_PRINT_WIDTH_DOTS = exports.QR_MAX_MODULE_DOTS = exports.QR_EXCEPTION_MODULE_DOTS = exports.QR_MIN_MODULE_DOTS = exports.QR_QUIET_ZONE_MODULES = exports.QR_MODULE_SIZE_CAP = void 0;
4
+ exports.qrModuleCount = qrModuleCount;
5
+ exports.qrFitsInVersion = qrFitsInVersion;
6
+ exports.computeQrSizing = computeQrSizing;
7
+ exports.qrSizingFor = qrSizingFor;
8
8
  /** Groesste Modulgroesse in Druckpunkten, die der jeweilige Deckel zulaesst. */
9
- exports.QR_MODUL_DECKEL = {
9
+ exports.QR_MODULE_SIZE_CAP = {
10
10
  auto: 6,
11
- klein: 4,
12
- mittel: 6,
13
- gross: 8,
11
+ small: 4,
12
+ medium: 6,
13
+ large: 8,
14
14
  };
15
15
  // --------------------------------------------------------------- Konstanten
16
16
  /** Ruhezone je Seite, in Modulen (QR-Norm). */
17
- exports.QR_RUHEZONE_MODULE = 4;
17
+ exports.QR_QUIET_ZONE_MODULES = 4;
18
18
  /** Untergrenze: 4 Punkte sind bei 203 dpi rund 0,5 mm je Modul. */
19
- exports.QR_MINDEST_PUNKTE = 4;
20
- /** Ausnahme, wenn `QR_MINDEST_PUNKTE` nicht passt — gemeldet, nicht still. */
21
- exports.QR_AUSNAHME_PUNKTE = 3;
19
+ exports.QR_MIN_MODULE_DOTS = 4;
20
+ /** Ausnahme, wenn `QR_MIN_MODULE_DOTS` nicht passt – gemeldet, nicht still. */
21
+ exports.QR_EXCEPTION_MODULE_DOTS = 3;
22
22
  /** Obergrenze des Druckbefehls in diesem Stack (`GS ( k` Funktion 167: 1..8). */
23
- exports.QR_HOECHST_PUNKTE = 8;
23
+ exports.QR_MAX_MODULE_DOTS = 8;
24
24
  /**
25
25
  * Druckbreite des Kopfes in Punkten (203 dpi): 58 mm = 384, 80 mm = 576 —
26
26
  * Zwilling von `KeckPaperSize.druckPunkte`.
@@ -31,7 +31,7 @@ exports.QR_HOECHST_PUNKTE = 8;
31
31
  * die echte Kopfbreite — ein QR, der auch nur einen Punkt zu breit ist, wird
32
32
  * von den meisten Geraeten gar nicht gedruckt.
33
33
  */
34
- exports.QR_DRUCK_PUNKTE = { mm58: 384, mm80: 576 };
34
+ exports.QR_PRINT_WIDTH_DOTS = { mm58: 384, mm80: 576 };
35
35
  /**
36
36
  * Nutzlast in Byte, die eine QR-Version 1..40 bei Fehlerkorrektur **M** im
37
37
  * Byte-Modus aufnimmt (ISO/IEC 18004, Tabelle 7).
@@ -48,7 +48,7 @@ const BYTE_KAPAZITAET_M = [
48
48
  ];
49
49
  // ------------------------------------------------------------- oeffentlich
50
50
  /**
51
- * Modulanzahl, die `nutzlast` bei Fehlerkorrektur **M** braucht.
51
+ * Modulanzahl, die `payload` bei Fehlerkorrektur **M** braucht.
52
52
  *
53
53
  * Alle Druckwege setzen den QR mit Fehlerkorrektur **M** (nativer
54
54
  * ESC/POS-Befehl, ePOS `level_m`; das Raster fuer den Bildweg rechnet der
@@ -63,8 +63,8 @@ const BYTE_KAPAZITAET_M = [
63
63
  * langem Inhalt. Ein still zurueckgegebenes "passt nicht" haette den
64
64
  * Datenfehler als Papierfehler getarnt.
65
65
  */
66
- function qrModulAnzahl(nutzlast) {
67
- const laenge = new TextEncoder().encode(nutzlast).length;
66
+ function qrModuleCount(payload) {
67
+ const laenge = new TextEncoder().encode(payload).length;
68
68
  for (let i = 0; i < BYTE_KAPAZITAET_M.length; i++) {
69
69
  if (laenge <= BYTE_KAPAZITAET_M[i])
70
70
  return 17 + 4 * (i + 1);
@@ -72,69 +72,69 @@ function qrModulAnzahl(nutzlast) {
72
72
  throw new Error('QR-Inhalt ist zu lang');
73
73
  }
74
74
  /**
75
- * Ob `nutzlast` in irgendeine QR-Version 1..40 bei Fehlerkorrektur M passt --
76
- * dieselbe Tabelle wie `qrModulAnzahl`, aber ohne zu werfen.
75
+ * Ob `payload` in irgendeine QR-Version 1..40 bei Fehlerkorrektur M passt --
76
+ * dieselbe Tabelle wie `qrModuleCount`, aber ohne zu werfen.
77
77
  *
78
78
  * Fuer Aufrufer, denen ein zu langer Inhalt kein Programmierfehler ist,
79
79
  * sondern ein Datenfehler, den sie selbst behandeln (das Beleg-Blatt: ohne
80
80
  * QR weiterbauen statt den ganzen Zeichner mitzureissen).
81
81
  */
82
- function qrPasstInVersion(nutzlast) {
83
- const laenge = new TextEncoder().encode(nutzlast).length;
82
+ function qrFitsInVersion(payload) {
83
+ const laenge = new TextEncoder().encode(payload).length;
84
84
  return laenge <= BYTE_KAPAZITAET_M[BYTE_KAPAZITAET_M.length - 1];
85
85
  }
86
86
  /**
87
- * Groesste Modulgroesse, mit der `moduleAnzahl` Module **samt Ruhezone** in
88
- * `papierbreitePunkte` passen, gedeckelt durch `groesse`.
87
+ * Groesste Modulgroesse, mit der `moduleCount` Module **samt Ruhezone** in
88
+ * `paperWidthDots` passen, gedeckelt durch `moduleSize`.
89
89
  *
90
90
  * Wirft bei sinnlosen Eingaben: eine Papierbreite von 0 oder ein Symbol ohne
91
91
  * Module ist ein Programmierfehler, und ein still zurueckgegebenes "passt
92
92
  * nicht" haette ihn als Druckerproblem getarnt.
93
93
  */
94
- function qrGroesseBerechnen(options) {
95
- const { papierbreitePunkte, moduleAnzahl } = options;
96
- const groesse = options.groesse ?? 'auto';
94
+ function computeQrSizing(options) {
95
+ const { paperWidthDots: papierbreitePunkte, moduleCount: moduleAnzahl } = options;
96
+ const groesse = options.moduleSize ?? 'auto';
97
97
  if (!Number.isInteger(papierbreitePunkte) || papierbreitePunkte <= 0) {
98
98
  throw new Error('papierbreitePunkte muss eine Ganzzahl > 0 sein');
99
99
  }
100
100
  if (!Number.isInteger(moduleAnzahl) || moduleAnzahl <= 0) {
101
101
  throw new Error('moduleAnzahl muss eine Ganzzahl > 0 sein');
102
102
  }
103
- const roh = exports.QR_MODUL_DECKEL[groesse];
103
+ const roh = exports.QR_MODULE_SIZE_CAP[groesse];
104
104
  if (roh === undefined) {
105
105
  throw new Error(`Unbekannte QR-Modulgroesse: ${String(groesse)}`);
106
106
  }
107
- const gesamtModule = moduleAnzahl + exports.QR_RUHEZONE_MODULE * 2;
107
+ const gesamtModule = moduleAnzahl + exports.QR_QUIET_ZONE_MODULES * 2;
108
108
  const passend = Math.floor(papierbreitePunkte / gesamtModule);
109
- if (passend < exports.QR_AUSNAHME_PUNKTE) {
110
- return { punkte: null, module: moduleAnzahl, breitePunkte: 0, unterMindestmass: false, passt: false };
109
+ if (passend < exports.QR_EXCEPTION_MODULE_DOTS) {
110
+ return { moduleDots: null, modules: moduleAnzahl, widthDots: 0, belowMinimum: false, fits: false };
111
111
  }
112
- const deckel = Math.min(Math.max(roh, exports.QR_AUSNAHME_PUNKTE), exports.QR_HOECHST_PUNKTE);
113
- const punkte = passend < exports.QR_MINDEST_PUNKTE ? exports.QR_AUSNAHME_PUNKTE : Math.min(passend, deckel);
112
+ const deckel = Math.min(Math.max(roh, exports.QR_EXCEPTION_MODULE_DOTS), exports.QR_MAX_MODULE_DOTS);
113
+ const punkte = passend < exports.QR_MIN_MODULE_DOTS ? exports.QR_EXCEPTION_MODULE_DOTS : Math.min(passend, deckel);
114
114
  return {
115
- punkte: punkte,
116
- module: moduleAnzahl,
117
- breitePunkte: gesamtModule * punkte,
118
- unterMindestmass: punkte < exports.QR_MINDEST_PUNKTE,
119
- passt: true,
115
+ moduleDots: punkte,
116
+ modules: moduleAnzahl,
117
+ widthDots: gesamtModule * punkte,
118
+ belowMinimum: punkte < exports.QR_MIN_MODULE_DOTS,
119
+ fits: true,
120
120
  };
121
121
  }
122
122
  /**
123
- * Wie `qrGroesseBerechnen`, nur mit der Modulanzahl aus `nutzlast`.
123
+ * Wie `computeQrSizing`, nur mit der Modulanzahl aus `payload`.
124
124
  *
125
125
  * Eine leere Nutzlast ergibt kein Symbol — sie "passt nicht", statt zu
126
126
  * werfen: der Aufrufer behandelt den Fall ohnehin schon (leerer QR am Beleg
127
127
  * ist ein Datenfehler, kein Papierfehler).
128
128
  */
129
- function qrGroesseFuer(options) {
130
- if (options.nutzlast === '') {
131
- return { punkte: null, module: 0, breitePunkte: 0, unterMindestmass: false, passt: false };
129
+ function qrSizingFor(options) {
130
+ if (options.payload === '') {
131
+ return { moduleDots: null, modules: 0, widthDots: 0, belowMinimum: false, fits: false };
132
132
  }
133
133
  const weiter = {
134
- papierbreitePunkte: options.papierbreitePunkte,
135
- moduleAnzahl: qrModulAnzahl(options.nutzlast),
134
+ paperWidthDots: options.paperWidthDots,
135
+ moduleCount: qrModuleCount(options.payload),
136
136
  };
137
- if (options.groesse !== undefined)
138
- weiter.groesse = options.groesse;
139
- return qrGroesseBerechnen(weiter);
137
+ if (options.moduleSize !== undefined)
138
+ weiter.moduleSize = options.moduleSize;
139
+ return computeQrSizing(weiter);
140
140
  }
@@ -87,9 +87,9 @@ export declare function usbFindPrinterEndpoint(d: {
87
87
  */
88
88
  export declare class UsbTimeoutError extends Error {
89
89
  readonly name = "UsbTimeoutError";
90
- readonly schritt: string;
90
+ readonly step: string;
91
91
  readonly timeoutMs: number;
92
- constructor(schritt: string, timeoutMs: number);
92
+ constructor(step: string, timeoutMs: number);
93
93
  }
94
94
  /**
95
95
  * Bytes blockweise an den OUT-Endpunkt; liefert die geschriebene Gesamtzahl,
@@ -56,11 +56,11 @@ function usbFindPrinterEndpoint(d) {
56
56
  */
57
57
  class UsbTimeoutError extends Error {
58
58
  name = 'UsbTimeoutError';
59
- schritt;
59
+ step;
60
60
  timeoutMs;
61
- constructor(schritt, timeoutMs) {
62
- super(`USB-Drucker antwortet nicht (${schritt}, Zeitlimit ${timeoutMs} ms überschritten) — Kabel/Gerät prüfen.`);
63
- this.schritt = schritt;
61
+ constructor(step, timeoutMs) {
62
+ super(`USB-Drucker antwortet nicht (${step}, Zeitlimit ${timeoutMs} ms überschritten) — Kabel/Gerät prüfen.`);
63
+ this.step = step;
64
64
  this.timeoutMs = timeoutMs;
65
65
  }
66
66
  }
@@ -1,7 +1,7 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { ReceiptLayout } from '../receipt/layout.js';
3
- import { type BelegBlatt, type LogoStufe } from '../receipt/blatt.js';
4
- import type { QrModulGroesse } from '../printing/qr-groesse.js';
3
+ import { type ReceiptSheet, type SheetLogoSize } from '../receipt/blatt.js';
4
+ import type { QrModuleSize } from '../printing/qr-groesse.js';
5
5
  /**
6
6
  * React-Adapter: zeichnet ein Beleg-Layout (siehe ../receipt/layout.ts).
7
7
  *
@@ -31,69 +31,69 @@ export interface ReceiptLayoutViewProps {
31
31
  * Fuer Bildschirme, auf denen der Beleg nur zur Kontrolle steht -- der
32
32
  * Signatur-QR gehoert dem Kunden und wird erst auf Verlangen freigegeben.
33
33
  */
34
- qrVerdeckt?: boolean;
34
+ qrHidden?: boolean;
35
35
  /** Text auf dem verdeckten QR (Vorgabe „Antippen zum Anzeigen“). */
36
- qrVerdecktText?: string;
36
+ qrHiddenText?: string;
37
37
  }
38
38
  /**
39
- * @deprecated Seit 0.14.0: [BelegBlattView] setzt den Beleg zeichengleich zu
39
+ * @deprecated Seit 0.14.0: [ReceiptSheetView] setzt den Beleg zeichengleich zu
40
40
  * Bon und PDF (Raster, Logo, Marke). Diese Ansicht rechnet Spalten mit Flex
41
41
  * und bricht darum anders um als das Papier.
42
42
  */
43
- export declare function ReceiptLayoutView({ layout, className, renderQr, qrVerdeckt, qrVerdecktText }: ReceiptLayoutViewProps): ReactNode;
43
+ export declare function ReceiptLayoutView({ layout, className, renderQr, qrHidden: qrVerdeckt, qrHiddenText: qrVerdecktText }: ReceiptLayoutViewProps): ReactNode;
44
44
  /**
45
45
  * Verdeckter QR: weichgezeichnet und nicht scannbar, bis der Betrachter ihn
46
46
  * antippt. Die Nutzlast bleibt trotzdem als `data-qr` am Element -- fuer Tests
47
47
  * und Werkzeuge, nicht fuers Auge.
48
48
  */
49
- export declare function QrVerdeckt({ data, text, children }: {
49
+ export declare function HiddenQr({ data, text, children }: {
50
50
  data: string;
51
51
  text?: string;
52
52
  children: ReactNode;
53
53
  }): ReactNode;
54
- export interface BelegBlattZeilenProps {
55
- blatt: BelegBlatt;
54
+ export interface ReceiptSheetLinesProps {
55
+ sheet: ReceiptSheet;
56
56
  /** Adresse des Firmenlogos; ohne sie bleibt der Logo-Block leer (Platz bleibt). */
57
57
  logoUrl?: string;
58
58
  /**
59
- * Zeichnet den QR in seinen Kasten (`qrBlattAnteil`). Der Kasten schliesst
59
+ * Zeichnet den QR in seinen Kasten (`qrSheetWidthFraction`). Der Kasten schliesst
60
60
  * die Ruhezone von 4 Modulen je Seite ein und setzt Fehlerkorrektur M
61
61
  * voraus: das Symbol also mit Korrektur M und 4 Modulen Ruhezone zeichnen
62
62
  * und den Kasten ganz ausfuellen -- dann ist ein Modul so gross wie am Bon.
63
63
  */
64
64
  renderQr?: (data: string) => ReactNode;
65
- qrVerdeckt?: boolean;
66
- qrVerdecktText?: string;
65
+ qrHidden?: boolean;
66
+ qrHiddenText?: string;
67
67
  className?: string;
68
68
  }
69
69
  /**
70
70
  * Das Blatt am Bildschirm -- Zeile fuer Zeile dieselben Zeichen wie am Bon und
71
71
  * im PDF. Masse in `ch`: eine Zeichenbreite ist `1ch`, eine Zeile `2ch`, das
72
- * Blatt `zeichen`ch breit. Der Verbraucher bestimmt nur Schrift (monospace,
72
+ * Blatt `charsPerLine`ch breit. Der Verbraucher bestimmt nur Schrift (monospace,
73
73
  * Vorgabe ueber `--keck-blatt-schrift`) und Schriftgroesse; alles andere steht
74
74
  * im Blatt.
75
75
  */
76
- export declare function BelegBlattZeilen({ blatt, logoUrl, renderQr, qrVerdeckt, qrVerdecktText, className }: BelegBlattZeilenProps): ReactNode;
77
- export interface BelegBlattViewProps extends Omit<BelegBlattZeilenProps, 'blatt' | 'logoUrl'> {
76
+ export declare function ReceiptSheetLines({ sheet: blatt, logoUrl, renderQr, qrHidden: qrVerdeckt, qrHiddenText: qrVerdecktText, className }: ReceiptSheetLinesProps): ReactNode;
77
+ export interface ReceiptSheetViewProps extends Omit<ReceiptSheetLinesProps, 'sheet' | 'logoUrl'> {
78
78
  layout: ReceiptLayout;
79
- zeichen?: number;
79
+ charsPerLine?: number;
80
80
  /** Firmenlogo und Stufe (`logoSkala`); das Pixelmass liest die Ansicht selbst. */
81
81
  logo?: {
82
82
  url: string;
83
- stufe: LogoStufe;
83
+ size: SheetLogoSize;
84
84
  } | null;
85
- marke?: boolean;
85
+ brandMark?: boolean;
86
86
  /** Geraete-Einstellung fuer die QR-Modulgroesse; Vorgabe `auto` (hoechstens 6 Punkte je Modul) — wie die Druckwege. */
87
- qrGroesse?: QrModulGroesse;
87
+ qrModuleSize?: QrModuleSize;
88
88
  }
89
89
  /**
90
90
  * Laedt das Logo (fuer sein Pixelmass), baut das Blatt und zeichnet es. Bis
91
91
  * das Bild geladen ist, fehlt der Logo-Block -- die Kasse laedt das Logo ohnehin
92
92
  * vorab in den Browser-Cache.
93
93
  *
94
- * Ein Logo ueber [logoPixelZulaessig] (4096x4096px, dieselbe Grenze wie das
94
+ * Ein Logo ueber [isLogoPixelSizeAllowed] (4096x4096px, dieselbe Grenze wie das
95
95
  * Druck-Kit beim Rastern fuer den Bon) bleibt hier ebenso ohne Logo-Block --
96
96
  * sonst zeigte der Bildschirm ein Logo, das nie gedruckt wird: Bildschirm und
97
97
  * Bon zeigen dasselbe Logo.
98
98
  */
99
- export declare function BelegBlattView({ layout, zeichen, logo, marke, qrGroesse, ...rest }: BelegBlattViewProps): ReactNode;
99
+ export declare function ReceiptSheetView({ layout, charsPerLine: zeichen, logo, brandMark: marke, qrModuleSize: qrGroesse, ...rest }: ReceiptSheetViewProps): ReactNode;
@@ -1,24 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReceiptLayoutView = ReceiptLayoutView;
4
- exports.QrVerdeckt = QrVerdeckt;
5
- exports.BelegBlattZeilen = BelegBlattZeilen;
6
- exports.BelegBlattView = BelegBlattView;
4
+ exports.HiddenQr = HiddenQr;
5
+ exports.ReceiptSheetLines = ReceiptSheetLines;
6
+ exports.ReceiptSheetView = ReceiptSheetView;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const blatt_js_1 = require("../receipt/blatt.js");
10
10
  const marke_daten_js_1 = require("../receipt/marke-daten.js");
11
+ /**
12
+ * CSS-Klasse je Ton. Die Klassennamen bleiben die von 0.x
13
+ * (`keck-receipt-banner--belegart`/`--warnung`): Stylesheets der Verbraucher
14
+ * haengen daran, und das HTML soll durch die englischen Werte kein Byte
15
+ * anders werden.
16
+ */
17
+ const BANNER_KLASSE = {
18
+ receipt_type: 'belegart',
19
+ warning: 'warnung',
20
+ };
11
21
  const AUSRICHTUNG = {
12
22
  left: 'left',
13
23
  center: 'center',
14
24
  right: 'right',
15
25
  };
16
26
  /**
17
- * @deprecated Seit 0.14.0: [BelegBlattView] setzt den Beleg zeichengleich zu
27
+ * @deprecated Seit 0.14.0: [ReceiptSheetView] setzt den Beleg zeichengleich zu
18
28
  * Bon und PDF (Raster, Logo, Marke). Diese Ansicht rechnet Spalten mit Flex
19
29
  * und bricht darum anders um als das Papier.
20
30
  */
21
- function ReceiptLayoutView({ layout, className, renderQr, qrVerdeckt = false, qrVerdecktText }) {
31
+ function ReceiptLayoutView({ layout, className, renderQr, qrHidden: qrVerdeckt = false, qrHiddenText: qrVerdecktText }) {
22
32
  const klasse = className === undefined ? 'keck-receipt' : `keck-receipt ${className}`;
23
33
  return ((0, jsx_runtime_1.jsx)("div", { className: klasse, "data-paper-size": layout.paperSize, children: layout.lines.map((zeile, index) => ((0, jsx_runtime_1.jsx)(Zeile, { zeile: zeile, renderQr: renderQr, qrVerdeckt: qrVerdeckt, qrVerdecktText: qrVerdecktText }, index))) }));
24
34
  }
@@ -27,7 +37,7 @@ function ReceiptLayoutView({ layout, className, renderQr, qrVerdeckt = false, qr
27
37
  * antippt. Die Nutzlast bleibt trotzdem als `data-qr` am Element -- fuer Tests
28
38
  * und Werkzeuge, nicht fuers Auge.
29
39
  */
30
- function QrVerdeckt({ data, text = 'Antippen zum Anzeigen', children }) {
40
+ function HiddenQr({ data, text = 'Antippen zum Anzeigen', children }) {
31
41
  const [offen, setOffen] = (0, react_1.useState)(false);
32
42
  return ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: offen ? 'keck-receipt-qr-toggle keck-receipt-qr-toggle--offen' : 'keck-receipt-qr-toggle', "aria-pressed": offen, "aria-label": offen ? 'QR-Code verdecken' : text, "data-qr": data, onClick: () => setOffen((o) => !o), style: { position: 'relative', display: 'inline-block', border: 'none', background: 'transparent', padding: 0, cursor: 'pointer' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-block', filter: offen ? undefined : 'blur(3px)', transition: 'filter .15s ease' }, children: children }), !offen && (
33
43
  // Tipp-Finger statt Textzeile: versteht jeder, verdeckt fast nichts.
@@ -60,47 +70,47 @@ function Zeile({ zeile, renderQr, qrVerdeckt, qrVerdecktText }) {
60
70
  case 'space':
61
71
  return (0, jsx_runtime_1.jsx)("div", { className: "keck-receipt-space", style: { height: `${zeile.lines}em` } });
62
72
  case 'banner':
63
- return ((0, jsx_runtime_1.jsx)("div", { className: `keck-receipt-banner keck-receipt-banner--${zeile.ton}`, role: zeile.ton === 'warnung' ? 'alert' : undefined, style: { textAlign: 'center', fontWeight: 'bold', letterSpacing: '0.06em', padding: '0.2em 0.4em', border: '2px solid currentColor', margin: '0.3em 0' }, children: zeile.text }));
73
+ return ((0, jsx_runtime_1.jsx)("div", { className: `keck-receipt-banner keck-receipt-banner--${BANNER_KLASSE[zeile.tone] ?? String(zeile.tone)}`, role: zeile.tone === 'warning' ? 'alert' : undefined, style: { textAlign: 'center', fontWeight: 'bold', letterSpacing: '0.06em', padding: '0.2em 0.4em', border: '2px solid currentColor', margin: '0.3em 0' }, children: zeile.text }));
64
74
  case 'qr':
65
75
  {
66
76
  const bild = renderQr !== undefined ? renderQr(zeile.data) : (0, jsx_runtime_1.jsx)("div", { "data-qr": zeile.data, "aria-label": "RKSV-QR-Code" });
67
- return ((0, jsx_runtime_1.jsx)("div", { className: "keck-receipt-qr", style: { textAlign: 'center' }, children: qrVerdeckt ? (0, jsx_runtime_1.jsx)(QrVerdeckt, { data: zeile.data, text: qrVerdecktText, children: bild }) : bild }));
77
+ return ((0, jsx_runtime_1.jsx)("div", { className: "keck-receipt-qr", style: { textAlign: 'center' }, children: qrVerdeckt ? (0, jsx_runtime_1.jsx)(HiddenQr, { data: zeile.data, text: qrVerdecktText, children: bild }) : bild }));
68
78
  }
69
79
  }
70
80
  }
71
81
  /**
72
82
  * Das Blatt am Bildschirm -- Zeile fuer Zeile dieselben Zeichen wie am Bon und
73
83
  * im PDF. Masse in `ch`: eine Zeichenbreite ist `1ch`, eine Zeile `2ch`, das
74
- * Blatt `zeichen`ch breit. Der Verbraucher bestimmt nur Schrift (monospace,
84
+ * Blatt `charsPerLine`ch breit. Der Verbraucher bestimmt nur Schrift (monospace,
75
85
  * Vorgabe ueber `--keck-blatt-schrift`) und Schriftgroesse; alles andere steht
76
86
  * im Blatt.
77
87
  */
78
- function BelegBlattZeilen({ blatt, logoUrl, renderQr, qrVerdeckt = false, qrVerdecktText, className }) {
79
- const z = blatt.zeichen;
88
+ function ReceiptSheetLines({ sheet: blatt, logoUrl, renderQr, qrHidden: qrVerdeckt = false, qrHiddenText: qrVerdecktText, className }) {
89
+ const z = blatt.charsPerLine;
80
90
  const klasse = className === undefined ? 'keck-blatt' : `keck-blatt ${className}`;
81
91
  const blattStil = {
82
92
  width: `${z}ch`,
83
93
  fontFamily: 'var(--keck-blatt-schrift, "DM Mono", ui-monospace, Menlo, Consolas, monospace)',
84
94
  fontVariantLigatures: 'none',
85
95
  };
86
- return ((0, jsx_runtime_1.jsx)("div", { className: klasse, "data-zeichen": z, style: blattStil, children: blatt.bloecke.map((b, i) => {
87
- switch (b.art) {
88
- case 'zeile':
89
- return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-zeile", style: { whiteSpace: 'pre', height: '2ch', lineHeight: '2ch', overflow: 'hidden', fontWeight: b.fett ? 'bold' : 'normal' }, children: b.text }, i));
96
+ return ((0, jsx_runtime_1.jsx)("div", { className: klasse, "data-zeichen": z, style: blattStil, children: blatt.blocks.map((b, i) => {
97
+ switch (b.kind) {
98
+ case 'line':
99
+ return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-zeile", style: { whiteSpace: 'pre', height: '2ch', lineHeight: '2ch', overflow: 'hidden', fontWeight: b.bold ? 'bold' : 'normal' }, children: b.text }, i));
90
100
  case 'logo':
91
- return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-logo", style: { height: `${b.hoeheZeilen * 2}ch`, display: 'flex', justifyContent: 'center' }, children: logoUrl === undefined ? null : ((0, jsx_runtime_1.jsx)("img", { src: logoUrl, alt: "", "aria-hidden": "true", style: { width: `${b.breiteAnteil * z}ch`, height: `${b.hoeheZeilen * 2}ch`, objectFit: 'contain' } })) }, i));
92
- case 'marke':
101
+ return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-logo", style: { height: `${b.heightLines * 2}ch`, display: 'flex', justifyContent: 'center' }, children: logoUrl === undefined ? null : ((0, jsx_runtime_1.jsx)("img", { src: logoUrl, alt: "", "aria-hidden": "true", style: { width: `${b.widthFraction * z}ch`, height: `${b.heightLines * 2}ch`, objectFit: 'contain' } })) }, i));
102
+ case 'brandMark':
93
103
  // Kein Rasterbild wie am Bon: Dieses Paket hat bewusst keine
94
104
  // Abhaengigkeiten, und die Pfade liegen ohnehin schon vor (PDF
95
105
  // zeichnet dieselben). Ein SVG bleibt in jeder Aufloesung scharf.
96
- return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-marke", style: { height: `${b.hoehe / blatt_js_1.PUNKTE_JE_ZEICHEN}ch`, display: 'flex', justifyContent: 'center' }, children: (0, jsx_runtime_1.jsx)("svg", { viewBox: `0 0 ${marke_daten_js_1.MARKE_PFADE.breite} ${marke_daten_js_1.MARKE_PFADE.hoehe}`, width: `${b.breite / blatt_js_1.PUNKTE_JE_ZEICHEN}ch`, height: `${b.hoehe / blatt_js_1.PUNKTE_JE_ZEICHEN}ch`, role: "img", "aria-label": "Kasseneck", fill: "currentColor", children: marke_daten_js_1.MARKE_PFADE.pfade.map((d, j) => (0, jsx_runtime_1.jsx)("path", { d: d }, j)) }) }, i));
106
+ return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-marke", style: { height: `${b.height / blatt_js_1.DOTS_PER_CHAR}ch`, display: 'flex', justifyContent: 'center' }, children: (0, jsx_runtime_1.jsx)("svg", { viewBox: `0 0 ${marke_daten_js_1.BRAND_MARK_PATHS.width} ${marke_daten_js_1.BRAND_MARK_PATHS.height}`, width: `${b.width / blatt_js_1.DOTS_PER_CHAR}ch`, height: `${b.height / blatt_js_1.DOTS_PER_CHAR}ch`, role: "img", "aria-label": "Kasseneck", fill: "currentColor", children: marke_daten_js_1.BRAND_MARK_PATHS.paths.map((d, j) => (0, jsx_runtime_1.jsx)("path", { d: d }, j)) }) }, i));
97
107
  case 'qr': {
98
108
  // Auch beim Anteil 0 (leer oder in keine Version passend) bekommt
99
109
  // `renderQr` die Nutzlast: die Oberflaeche muss sagen koennen, dass
100
110
  // der QR fehlt und ein Papierbeleg noetig ist. Bon und PDF lassen
101
- // den QR dann weg und melden es ueber `qrFehler`.
102
- const bild = renderQr !== undefined ? renderQr(b.nutzlast) : (0, jsx_runtime_1.jsx)("div", { "data-qr": b.nutzlast, "aria-label": "RKSV-QR-Code" });
103
- return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-qr", style: { display: 'flex', justifyContent: 'center' }, children: (0, jsx_runtime_1.jsx)("div", { style: { width: `${b.breiteAnteil * z}ch`, aspectRatio: '1 / 1' }, children: qrVerdeckt ? (0, jsx_runtime_1.jsx)(QrVerdeckt, { data: b.nutzlast, text: qrVerdecktText, children: bild }) : bild }) }, i));
111
+ // den QR dann weg und melden es ueber `qrError`.
112
+ const bild = renderQr !== undefined ? renderQr(b.payload) : (0, jsx_runtime_1.jsx)("div", { "data-qr": b.payload, "aria-label": "RKSV-QR-Code" });
113
+ return ((0, jsx_runtime_1.jsx)("div", { className: "keck-blatt-qr", style: { display: 'flex', justifyContent: 'center' }, children: (0, jsx_runtime_1.jsx)("div", { style: { width: `${b.widthFraction * z}ch`, aspectRatio: '1 / 1' }, children: qrVerdeckt ? (0, jsx_runtime_1.jsx)(HiddenQr, { data: b.payload, text: qrVerdecktText, children: bild }) : bild }) }, i));
104
114
  }
105
115
  }
106
116
  }) }));
@@ -110,12 +120,12 @@ function BelegBlattZeilen({ blatt, logoUrl, renderQr, qrVerdeckt = false, qrVerd
110
120
  * das Bild geladen ist, fehlt der Logo-Block -- die Kasse laedt das Logo ohnehin
111
121
  * vorab in den Browser-Cache.
112
122
  *
113
- * Ein Logo ueber [logoPixelZulaessig] (4096x4096px, dieselbe Grenze wie das
123
+ * Ein Logo ueber [isLogoPixelSizeAllowed] (4096x4096px, dieselbe Grenze wie das
114
124
  * Druck-Kit beim Rastern fuer den Bon) bleibt hier ebenso ohne Logo-Block --
115
125
  * sonst zeigte der Bildschirm ein Logo, das nie gedruckt wird: Bildschirm und
116
126
  * Bon zeigen dasselbe Logo.
117
127
  */
118
- function BelegBlattView({ layout, zeichen, logo, marke = false, qrGroesse, ...rest }) {
128
+ function ReceiptSheetView({ layout, charsPerLine: zeichen, logo, brandMark: marke = false, qrModuleSize: qrGroesse, ...rest }) {
119
129
  const [mass, setMass] = (0, react_1.useState)(null);
120
130
  const url = logo?.url;
121
131
  (0, react_1.useEffect)(() => {
@@ -127,7 +137,7 @@ function BelegBlattView({ layout, zeichen, logo, marke = false, qrGroesse, ...re
127
137
  return undefined;
128
138
  const bild = new Bild();
129
139
  bild.onload = () => {
130
- if (aktiv && (0, blatt_js_1.logoPixelZulaessig)(bild.naturalWidth, bild.naturalHeight))
140
+ if (aktiv && (0, blatt_js_1.isLogoPixelSizeAllowed)(bild.naturalWidth, bild.naturalHeight))
131
141
  setMass({ url, breite: bild.naturalWidth, hoehe: bild.naturalHeight });
132
142
  };
133
143
  bild.src = url;
@@ -135,14 +145,14 @@ function BelegBlattView({ layout, zeichen, logo, marke = false, qrGroesse, ...re
135
145
  aktiv = false;
136
146
  };
137
147
  }, [url]);
138
- const optionen = { marke };
148
+ const optionen = { brandMark: marke };
139
149
  if (zeichen !== undefined)
140
- optionen.zeichen = zeichen;
150
+ optionen.charsPerLine = zeichen;
141
151
  if (qrGroesse !== undefined)
142
- optionen.qrGroesse = qrGroesse;
152
+ optionen.qrModuleSize = qrGroesse;
143
153
  const geladen = logo != null && mass !== null && mass.url === logo.url;
144
154
  if (geladen)
145
- optionen.logo = { stufe: logo.stufe, pxBreite: mass.breite, pxHoehe: mass.hoehe };
146
- const blatt = (0, blatt_js_1.belegBlatt)(layout, optionen);
147
- return geladen ? (0, jsx_runtime_1.jsx)(BelegBlattZeilen, { blatt: blatt, logoUrl: logo.url, ...rest }) : (0, jsx_runtime_1.jsx)(BelegBlattZeilen, { blatt: blatt, ...rest });
155
+ optionen.logo = { size: logo.size, pixelWidth: mass.breite, pixelHeight: mass.hoehe };
156
+ const blatt = (0, blatt_js_1.receiptSheet)(layout, optionen);
157
+ return geladen ? (0, jsx_runtime_1.jsx)(ReceiptSheetLines, { sheet: blatt, logoUrl: logo.url, ...rest }) : (0, jsx_runtime_1.jsx)(ReceiptSheetLines, { sheet: blatt, ...rest });
148
158
  }
@@ -1,14 +1,14 @@
1
- import type { RasterBild } from '../printing/escpos.js';
2
- import { type LogoMass } from './blatt.js';
1
+ import type { RasterImage } from '../printing/escpos.js';
2
+ import { type LogoDimensions } from './blatt.js';
3
3
  /**
4
4
  * RGBA-Pixel (wie `ImageData.data` im Browser oder ein dekodiertes PNG in
5
5
  * Node/Dart) -> einfarbiges Rasterbild in genau der Groesse, die das Blatt
6
6
  * dem Logo gibt.
7
7
  *
8
8
  * Die Rechnung ist Vertrag und hat einen Dart-Zwilling (Golden
9
- * `erwartet/logo-probe.raster32.txt`): Flaechenmittel je Druckpunkt,
9
+ * `expected/logo-sample.raster32.txt`): Flaechenmittel je Druckpunkt,
10
10
  * Durchsichtiges auf Papierweiss, Helligkeit nach BT.601, Floyd-Steinberg mit
11
11
  * Schwelle 128. Die Reihenfolge der Rechenschritte nicht aendern -- beide
12
12
  * Sprachen rechnen mit IEEE-Doubles und kommen nur so auf dieselben Punkte.
13
13
  */
14
- export declare function logoRaster(rgba: ArrayLike<number>, pxBreite: number, pxHoehe: number, mass: LogoMass, zeichen: number): RasterBild;
14
+ export declare function rasterizeLogo(rgba: ArrayLike<number>, pxWidth: number, pxHeight: number, dimensions: LogoDimensions, chars: number): RasterImage;