@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
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZEICHEN_JE_PAPIER = void 0;
4
- exports.gridSpaltenBreiten = gridSpaltenBreiten;
3
+ exports.CHARS_PER_PAPER_SIZE = void 0;
4
+ exports.gridColumnWidths = gridColumnWidths;
5
5
  exports.renderReceiptGrid = renderReceiptGrid;
6
- exports.gridAlsText = gridAlsText;
6
+ exports.gridToText = gridToText;
7
7
  const escpos_js_1 = require("../printing/escpos.js");
8
8
  /**
9
9
  * Zeichenraster: der Beleg als Zeilen mit **exakt N Zeichen** -- die einzige
@@ -16,7 +16,7 @@ const escpos_js_1 = require("../printing/escpos.js");
16
16
  * letzte Spalte, jede mindestens 1. Zwischen zwei Spalten steht immer
17
17
  * mindestens ein Leerzeichen (letztes Zeichen jeder nicht-letzten Spalte).
18
18
  * Die letzte Spalte endet buendig am rechten Rand.
19
- * - Text/Aufdruck/Spalteninhalt bricht **wortweise** um (`wortzeilenText`,
19
+ * - Text/Aufdruck/Spalteninhalt bricht **wortweise** um (`wrapText`,
20
20
  * dieselbe Regel wie der ESC/POS-Kern); ueberlange Woerter nach einem
21
21
  * Bindestrich, sonst hart; geschuetztes Leerzeichen bricht nie.
22
22
  * - Fliessregel: laeuft in einer Spaltenzeile nur eine Spalte ueber die erste
@@ -25,14 +25,14 @@ const escpos_js_1 = require("../printing/escpos.js");
25
25
  * - Trennlinie ueber die volle Breite, Leerraum als Leerzeilen, QR als eigene
26
26
  * Zeile mit Nutzlast (der Zeichner setzt das Bild).
27
27
  */
28
- exports.ZEICHEN_JE_PAPIER = { mm58: 32, mm80: 48 };
28
+ exports.CHARS_PER_PAPER_SIZE = { mm58: 32, mm80: 48 };
29
29
  /** Zwoelftel -> Zeichen je Spalte (ganze Zeichen, Rest an die letzte, mindestens 1). */
30
- function gridSpaltenBreiten(zwoelftel, zeichen) {
30
+ function gridColumnWidths(twelfths, chars) {
31
31
  const out = [];
32
32
  let vergeben = 0;
33
- zwoelftel.forEach((w, i) => {
34
- const letzte = i === zwoelftel.length - 1;
35
- const b = letzte ? Math.max(1, zeichen - vergeben) : Math.max(1, Math.floor((zeichen * w) / 12));
33
+ twelfths.forEach((w, i) => {
34
+ const letzte = i === twelfths.length - 1;
35
+ const b = letzte ? Math.max(1, chars - vergeben) : Math.max(1, Math.floor((chars * w) / 12));
36
36
  out.push(b);
37
37
  vergeben += b;
38
38
  });
@@ -58,13 +58,13 @@ function restNach(text, erste) {
58
58
  return text.slice(i);
59
59
  }
60
60
  function renderReceiptGrid(layout, options = {}) {
61
- const zeichen = Math.max(8, Math.floor(options.zeichen ?? exports.ZEICHEN_JE_PAPIER[layout.paperSize] ?? 32));
61
+ const zeichen = Math.max(8, Math.floor(options.charsPerLine ?? exports.CHARS_PER_PAPER_SIZE[layout.paperSize] ?? 32));
62
62
  const leer = ' '.repeat(zeichen);
63
63
  const lines = [];
64
64
  for (const z of layout.lines) {
65
65
  switch (z.kind) {
66
66
  case 'text':
67
- for (const t of (0, escpos_js_1.wortzeilenText)(z.text, zeichen))
67
+ for (const t of (0, escpos_js_1.wrapText)(z.text, zeichen))
68
68
  lines.push({ text: ausrichten(t, zeichen, z.align), kind: 'text', bold: z.bold });
69
69
  break;
70
70
  case 'banner': {
@@ -73,10 +73,10 @@ function renderReceiptGrid(layout, options = {}) {
73
73
  // myPOS -- Zeichen fuer Zeichen gleich. Vorher zeichnete jeder Weg seinen
74
74
  // eigenen Rahmen (Rechteck, doppelt hoch, invers, gefuellt).
75
75
  const rahmen = '='.repeat(zeichen);
76
- lines.push({ text: rahmen, kind: 'banner', bold: true, ton: z.ton });
77
- for (const t of (0, escpos_js_1.wortzeilenText)(z.text, zeichen))
78
- lines.push({ text: ausrichten(t, zeichen, 'center'), kind: 'banner', bold: true, ton: z.ton });
79
- lines.push({ text: rahmen, kind: 'banner', bold: true, ton: z.ton });
76
+ lines.push({ text: rahmen, kind: 'banner', bold: true, tone: z.tone });
77
+ for (const t of (0, escpos_js_1.wrapText)(z.text, zeichen))
78
+ lines.push({ text: ausrichten(t, zeichen, 'center'), kind: 'banner', bold: true, tone: z.tone });
79
+ lines.push({ text: rahmen, kind: 'banner', bold: true, tone: z.tone });
80
80
  break;
81
81
  }
82
82
  case 'rule':
@@ -90,10 +90,10 @@ function renderReceiptGrid(layout, options = {}) {
90
90
  lines.push({ text: ausrichten(QR_PLATZHALTER, zeichen, 'center'), kind: 'qr', bold: false, qr: z.data });
91
91
  break;
92
92
  case 'columns': {
93
- const breiten = gridSpaltenBreiten(z.columns.map((c) => c.width), zeichen);
93
+ const breiten = gridColumnWidths(z.columns.map((c) => c.width), zeichen);
94
94
  // Inhalt jeder nicht-letzten Spalte um 1 Zeichen schmaler: garantierter Abstand.
95
95
  const inhalt = breiten.map((b, i) => (i < breiten.length - 1 ? Math.max(1, b - 1) : b));
96
- const teile = z.columns.map((c, i) => (0, escpos_js_1.wortzeilenText)(c.text, inhalt[i]));
96
+ const teile = z.columns.map((c, i) => (0, escpos_js_1.wrapText)(c.text, inhalt[i]));
97
97
  // Fliessregel: laeuft nach der ersten Zeile nur noch EINE Spalte weiter (die anderen sind
98
98
  // fertig), bekommt ihr Rest die volle Breite -- auf 58 mm sonst 18-Zeichen-Schnipsel.
99
99
  // Laufen mehrere weiter, bleibt das Raster (sonst verschoeben sich die Nachbarn).
@@ -113,7 +113,7 @@ function renderReceiptGrid(layout, options = {}) {
113
113
  // Rest aus dem Originaltext (nicht aus den schmal umbrochenen Stuecken), damit
114
114
  // Bindestrich-/Hartbrueche der schmalen Spalte nicht als Leerzeichen zurueckbleiben.
115
115
  const rest = restNach(z.columns[i].text, teile[i][0]);
116
- for (const t of (0, escpos_js_1.wortzeilenText)(rest, zeichen))
116
+ for (const t of (0, escpos_js_1.wrapText)(rest, zeichen))
117
117
  lines.push({ text: ausrichten(t, zeichen, z.columns[i].align), kind: 'columns', bold: false });
118
118
  }
119
119
  break;
@@ -122,9 +122,9 @@ function renderReceiptGrid(layout, options = {}) {
122
122
  break;
123
123
  }
124
124
  }
125
- return { lines, zeichen };
125
+ return { lines, charsPerLine: zeichen };
126
126
  }
127
127
  /** Klartext (eine Zeile je Rasterzeile) -- fuer Golden-Dateien und Logs. QR als Platzhalter. */
128
- function gridAlsText(grid) {
128
+ function gridToText(grid) {
129
129
  return grid.lines.map((z) => z.text).join('\n');
130
130
  }
@@ -1,8 +1,9 @@
1
- export { type LayoutAlign, type LayoutColumn, type LayoutTextLine, type LayoutColumnsLine, type LayoutRuleLine, type LayoutSpaceLine, type LayoutQrLine, type LayoutLine, type ReceiptLayout, type BuildReceiptLayoutOptions, buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, type Pruefangaben, AKTUELLES_REGELWERK, type LayoutBannerLine, type LayoutRegelwerk, SMALL_BUSINESS_NOTICE, formatCents, } from './layout.js';
2
- export { type EscPosLayoutOptions, type EscPosLayoutErgebnis, type QrPrintMode, type DruckLogo, pruefeLogoRaster, escPosLayoutBytes, escPosLayoutErgebnis, } from './layout-escpos.js';
3
- export { type GridLine, type GridLineKind, type ReceiptGrid, type RenderReceiptGridOptions, renderReceiptGrid, gridSpaltenBreiten, gridAlsText, ZEICHEN_JE_PAPIER, } from './grid.js';
4
- export { type EposPrintXmlOptions, type EposPrintErgebnis, type EposDirectOptions, type EposResponse, EposConnectionError, eposPrintXml, eposPrintXmlErgebnis, eposXmlEscape, eposBildXml, eposServiceUrl, eposSoapEnvelope, eposParseResponse, eposDirectPrint, eposDirectStatus } from './epos.js';
5
- export { type LogoStufe, type BlattLogo, type LogoMass, type BlattBlock, type BelegBlatt, type BelegBlattOptionen, LOGO_STUFEN, LOGO_PIXEL_MAX, PUNKTE_JE_ZEICHEN, PUNKTE_JE_ZEILE, papierFuerZeichen, logoMass, logoPixelZulaessig, logoRasterMass, qrBlattAnteil, belegBlatt, } from './blatt.js';
6
- export { logoRaster } from './bild.js';
7
- export { type MarkeRasterDaten, MARKE_RASTER, MARKE_PFADE } from './marke-daten.js';
8
- export { markeBild } from './marke.js';
1
+ export { type LayoutAlign, type LayoutColumn, type LayoutTextLine, type LayoutColumnsLine, type LayoutRuleLine, type LayoutSpaceLine, type LayoutQrLine, type LayoutLine, type ReceiptLayout, type BuildReceiptLayoutOptions, buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, CURRENT_LAYOUT_RULESET, type LayoutBannerLine, type LayoutBannerTone, type LayoutRuleset, SMALL_BUSINESS_NOTICE, formatCents, } from './layout.js';
2
+ export { type EscPosLayoutOptions, type EscPosLayoutResult, type QrPrintMode, type PrintLogo, assertLogoRaster, escPosLayoutBytes, escPosLayoutResult, } from './layout-escpos.js';
3
+ export { type GridLine, type GridLineKind, type ReceiptGrid, type RenderReceiptGridOptions, renderReceiptGrid, gridColumnWidths, gridToText, CHARS_PER_PAPER_SIZE, } from './grid.js';
4
+ export { type EposPrintXmlOptions, type EposPrintResult, type EposDirectOptions, type EposResponse, EposConnectionError, eposPrintXml, eposPrintXmlResult, eposXmlEscape, eposImageXml, eposServiceUrl, eposSoapEnvelope, eposParseResponse, eposDirectPrint, eposDirectStatus } from './epos.js';
5
+ export { type SheetLogoSize, type SheetLogo, type LogoDimensions, type SheetBlock, type ReceiptSheet, type ReceiptSheetOptions, SHEET_LOGO_SIZES, LOGO_MAX_PIXELS, DOTS_PER_CHAR, DOTS_PER_LINE, paperSizeForChars, logoDimensions, isLogoPixelSizeAllowed, logoRasterSize, qrSheetWidthFraction, receiptSheet, } from './blatt.js';
6
+ export { rasterizeLogo } from './bild.js';
7
+ export { type BrandMarkRaster, BRAND_MARK_RASTERS, BRAND_MARK_PATHS } from './marke-daten.js';
8
+ export { brandMarkImage } from './marke.js';
9
+ export { type ReceiptDueTip, type ReceiptDueTipRecipient, type ReceiptDueOptions, type ReceiptDueBuckets, type ReceiptDueBreakdown, receiptDueCents, receiptDueBreakdown, } from './due.js';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.markeBild = exports.MARKE_PFADE = exports.MARKE_RASTER = exports.logoRaster = exports.belegBlatt = exports.qrBlattAnteil = exports.logoRasterMass = exports.logoPixelZulaessig = exports.logoMass = exports.papierFuerZeichen = exports.PUNKTE_JE_ZEILE = exports.PUNKTE_JE_ZEICHEN = exports.LOGO_PIXEL_MAX = exports.LOGO_STUFEN = exports.eposDirectStatus = exports.eposDirectPrint = exports.eposParseResponse = exports.eposSoapEnvelope = exports.eposServiceUrl = exports.eposBildXml = exports.eposXmlEscape = exports.eposPrintXmlErgebnis = exports.eposPrintXml = exports.EposConnectionError = exports.ZEICHEN_JE_PAPIER = exports.gridAlsText = exports.gridSpaltenBreiten = exports.renderReceiptGrid = exports.escPosLayoutErgebnis = exports.escPosLayoutBytes = exports.pruefeLogoRaster = exports.formatCents = exports.SMALL_BUSINESS_NOTICE = exports.AKTUELLES_REGELWERK = exports.receiptZdaText = exports.receiptIsSmallBusinessConsistent = exports.receiptAmountsAreZero = exports.receiptIsZero = exports.receiptSignatureIsTest = exports.receiptSignatureFailed = exports.buildReceiptLayout = void 0;
3
+ exports.receiptDueBreakdown = exports.receiptDueCents = exports.brandMarkImage = exports.BRAND_MARK_PATHS = exports.BRAND_MARK_RASTERS = exports.rasterizeLogo = exports.receiptSheet = exports.qrSheetWidthFraction = exports.logoRasterSize = exports.isLogoPixelSizeAllowed = exports.logoDimensions = exports.paperSizeForChars = exports.DOTS_PER_LINE = exports.DOTS_PER_CHAR = exports.LOGO_MAX_PIXELS = exports.SHEET_LOGO_SIZES = exports.eposDirectStatus = exports.eposDirectPrint = exports.eposParseResponse = exports.eposSoapEnvelope = exports.eposServiceUrl = exports.eposImageXml = exports.eposXmlEscape = exports.eposPrintXmlResult = exports.eposPrintXml = exports.EposConnectionError = exports.CHARS_PER_PAPER_SIZE = exports.gridToText = exports.gridColumnWidths = exports.renderReceiptGrid = exports.escPosLayoutResult = exports.escPosLayoutBytes = exports.assertLogoRaster = exports.formatCents = exports.SMALL_BUSINESS_NOTICE = exports.CURRENT_LAYOUT_RULESET = exports.receiptZdaText = exports.receiptIsSmallBusinessConsistent = exports.receiptAmountsAreZero = exports.receiptIsZero = exports.receiptSignatureIsTest = exports.receiptSignatureFailed = exports.buildReceiptLayout = void 0;
4
4
  var layout_js_1 = require("./layout.js");
5
5
  Object.defineProperty(exports, "buildReceiptLayout", { enumerable: true, get: function () { return layout_js_1.buildReceiptLayout; } });
6
6
  Object.defineProperty(exports, "receiptSignatureFailed", { enumerable: true, get: function () { return layout_js_1.receiptSignatureFailed; } });
@@ -9,44 +9,47 @@ Object.defineProperty(exports, "receiptIsZero", { enumerable: true, get: functio
9
9
  Object.defineProperty(exports, "receiptAmountsAreZero", { enumerable: true, get: function () { return layout_js_1.receiptAmountsAreZero; } });
10
10
  Object.defineProperty(exports, "receiptIsSmallBusinessConsistent", { enumerable: true, get: function () { return layout_js_1.receiptIsSmallBusinessConsistent; } });
11
11
  Object.defineProperty(exports, "receiptZdaText", { enumerable: true, get: function () { return layout_js_1.receiptZdaText; } });
12
- Object.defineProperty(exports, "AKTUELLES_REGELWERK", { enumerable: true, get: function () { return layout_js_1.AKTUELLES_REGELWERK; } });
12
+ Object.defineProperty(exports, "CURRENT_LAYOUT_RULESET", { enumerable: true, get: function () { return layout_js_1.CURRENT_LAYOUT_RULESET; } });
13
13
  Object.defineProperty(exports, "SMALL_BUSINESS_NOTICE", { enumerable: true, get: function () { return layout_js_1.SMALL_BUSINESS_NOTICE; } });
14
14
  Object.defineProperty(exports, "formatCents", { enumerable: true, get: function () { return layout_js_1.formatCents; } });
15
15
  var layout_escpos_js_1 = require("./layout-escpos.js");
16
- Object.defineProperty(exports, "pruefeLogoRaster", { enumerable: true, get: function () { return layout_escpos_js_1.pruefeLogoRaster; } });
16
+ Object.defineProperty(exports, "assertLogoRaster", { enumerable: true, get: function () { return layout_escpos_js_1.assertLogoRaster; } });
17
17
  Object.defineProperty(exports, "escPosLayoutBytes", { enumerable: true, get: function () { return layout_escpos_js_1.escPosLayoutBytes; } });
18
- Object.defineProperty(exports, "escPosLayoutErgebnis", { enumerable: true, get: function () { return layout_escpos_js_1.escPosLayoutErgebnis; } });
18
+ Object.defineProperty(exports, "escPosLayoutResult", { enumerable: true, get: function () { return layout_escpos_js_1.escPosLayoutResult; } });
19
19
  var grid_js_1 = require("./grid.js");
20
20
  Object.defineProperty(exports, "renderReceiptGrid", { enumerable: true, get: function () { return grid_js_1.renderReceiptGrid; } });
21
- Object.defineProperty(exports, "gridSpaltenBreiten", { enumerable: true, get: function () { return grid_js_1.gridSpaltenBreiten; } });
22
- Object.defineProperty(exports, "gridAlsText", { enumerable: true, get: function () { return grid_js_1.gridAlsText; } });
23
- Object.defineProperty(exports, "ZEICHEN_JE_PAPIER", { enumerable: true, get: function () { return grid_js_1.ZEICHEN_JE_PAPIER; } });
21
+ Object.defineProperty(exports, "gridColumnWidths", { enumerable: true, get: function () { return grid_js_1.gridColumnWidths; } });
22
+ Object.defineProperty(exports, "gridToText", { enumerable: true, get: function () { return grid_js_1.gridToText; } });
23
+ Object.defineProperty(exports, "CHARS_PER_PAPER_SIZE", { enumerable: true, get: function () { return grid_js_1.CHARS_PER_PAPER_SIZE; } });
24
24
  var epos_js_1 = require("./epos.js");
25
25
  Object.defineProperty(exports, "EposConnectionError", { enumerable: true, get: function () { return epos_js_1.EposConnectionError; } });
26
26
  Object.defineProperty(exports, "eposPrintXml", { enumerable: true, get: function () { return epos_js_1.eposPrintXml; } });
27
- Object.defineProperty(exports, "eposPrintXmlErgebnis", { enumerable: true, get: function () { return epos_js_1.eposPrintXmlErgebnis; } });
27
+ Object.defineProperty(exports, "eposPrintXmlResult", { enumerable: true, get: function () { return epos_js_1.eposPrintXmlResult; } });
28
28
  Object.defineProperty(exports, "eposXmlEscape", { enumerable: true, get: function () { return epos_js_1.eposXmlEscape; } });
29
- Object.defineProperty(exports, "eposBildXml", { enumerable: true, get: function () { return epos_js_1.eposBildXml; } });
29
+ Object.defineProperty(exports, "eposImageXml", { enumerable: true, get: function () { return epos_js_1.eposImageXml; } });
30
30
  Object.defineProperty(exports, "eposServiceUrl", { enumerable: true, get: function () { return epos_js_1.eposServiceUrl; } });
31
31
  Object.defineProperty(exports, "eposSoapEnvelope", { enumerable: true, get: function () { return epos_js_1.eposSoapEnvelope; } });
32
32
  Object.defineProperty(exports, "eposParseResponse", { enumerable: true, get: function () { return epos_js_1.eposParseResponse; } });
33
33
  Object.defineProperty(exports, "eposDirectPrint", { enumerable: true, get: function () { return epos_js_1.eposDirectPrint; } });
34
34
  Object.defineProperty(exports, "eposDirectStatus", { enumerable: true, get: function () { return epos_js_1.eposDirectStatus; } });
35
35
  var blatt_js_1 = require("./blatt.js");
36
- Object.defineProperty(exports, "LOGO_STUFEN", { enumerable: true, get: function () { return blatt_js_1.LOGO_STUFEN; } });
37
- Object.defineProperty(exports, "LOGO_PIXEL_MAX", { enumerable: true, get: function () { return blatt_js_1.LOGO_PIXEL_MAX; } });
38
- Object.defineProperty(exports, "PUNKTE_JE_ZEICHEN", { enumerable: true, get: function () { return blatt_js_1.PUNKTE_JE_ZEICHEN; } });
39
- Object.defineProperty(exports, "PUNKTE_JE_ZEILE", { enumerable: true, get: function () { return blatt_js_1.PUNKTE_JE_ZEILE; } });
40
- Object.defineProperty(exports, "papierFuerZeichen", { enumerable: true, get: function () { return blatt_js_1.papierFuerZeichen; } });
41
- Object.defineProperty(exports, "logoMass", { enumerable: true, get: function () { return blatt_js_1.logoMass; } });
42
- Object.defineProperty(exports, "logoPixelZulaessig", { enumerable: true, get: function () { return blatt_js_1.logoPixelZulaessig; } });
43
- Object.defineProperty(exports, "logoRasterMass", { enumerable: true, get: function () { return blatt_js_1.logoRasterMass; } });
44
- Object.defineProperty(exports, "qrBlattAnteil", { enumerable: true, get: function () { return blatt_js_1.qrBlattAnteil; } });
45
- Object.defineProperty(exports, "belegBlatt", { enumerable: true, get: function () { return blatt_js_1.belegBlatt; } });
36
+ Object.defineProperty(exports, "SHEET_LOGO_SIZES", { enumerable: true, get: function () { return blatt_js_1.SHEET_LOGO_SIZES; } });
37
+ Object.defineProperty(exports, "LOGO_MAX_PIXELS", { enumerable: true, get: function () { return blatt_js_1.LOGO_MAX_PIXELS; } });
38
+ Object.defineProperty(exports, "DOTS_PER_CHAR", { enumerable: true, get: function () { return blatt_js_1.DOTS_PER_CHAR; } });
39
+ Object.defineProperty(exports, "DOTS_PER_LINE", { enumerable: true, get: function () { return blatt_js_1.DOTS_PER_LINE; } });
40
+ Object.defineProperty(exports, "paperSizeForChars", { enumerable: true, get: function () { return blatt_js_1.paperSizeForChars; } });
41
+ Object.defineProperty(exports, "logoDimensions", { enumerable: true, get: function () { return blatt_js_1.logoDimensions; } });
42
+ Object.defineProperty(exports, "isLogoPixelSizeAllowed", { enumerable: true, get: function () { return blatt_js_1.isLogoPixelSizeAllowed; } });
43
+ Object.defineProperty(exports, "logoRasterSize", { enumerable: true, get: function () { return blatt_js_1.logoRasterSize; } });
44
+ Object.defineProperty(exports, "qrSheetWidthFraction", { enumerable: true, get: function () { return blatt_js_1.qrSheetWidthFraction; } });
45
+ Object.defineProperty(exports, "receiptSheet", { enumerable: true, get: function () { return blatt_js_1.receiptSheet; } });
46
46
  var bild_js_1 = require("./bild.js");
47
- Object.defineProperty(exports, "logoRaster", { enumerable: true, get: function () { return bild_js_1.logoRaster; } });
47
+ Object.defineProperty(exports, "rasterizeLogo", { enumerable: true, get: function () { return bild_js_1.rasterizeLogo; } });
48
48
  var marke_daten_js_1 = require("./marke-daten.js");
49
- Object.defineProperty(exports, "MARKE_RASTER", { enumerable: true, get: function () { return marke_daten_js_1.MARKE_RASTER; } });
50
- Object.defineProperty(exports, "MARKE_PFADE", { enumerable: true, get: function () { return marke_daten_js_1.MARKE_PFADE; } });
49
+ Object.defineProperty(exports, "BRAND_MARK_RASTERS", { enumerable: true, get: function () { return marke_daten_js_1.BRAND_MARK_RASTERS; } });
50
+ Object.defineProperty(exports, "BRAND_MARK_PATHS", { enumerable: true, get: function () { return marke_daten_js_1.BRAND_MARK_PATHS; } });
51
51
  var marke_js_1 = require("./marke.js");
52
- Object.defineProperty(exports, "markeBild", { enumerable: true, get: function () { return marke_js_1.markeBild; } });
52
+ Object.defineProperty(exports, "brandMarkImage", { enumerable: true, get: function () { return marke_js_1.brandMarkImage; } });
53
+ var due_js_1 = require("./due.js");
54
+ Object.defineProperty(exports, "receiptDueCents", { enumerable: true, get: function () { return due_js_1.receiptDueCents; } });
55
+ Object.defineProperty(exports, "receiptDueBreakdown", { enumerable: true, get: function () { return due_js_1.receiptDueBreakdown; } });
@@ -1,6 +1,6 @@
1
- import { type PosCodeTable, type PosCutMode, type PosPaperSize, type QrCorrection, type QrMatrix, type QrModulGroesse, type QrSize, type RasterBild } from '../printing/index.js';
1
+ import { type PosCodeTable, type PosCutMode, type PosPaperSize, type QrCorrection, type QrMatrix, type QrModuleSize, type QrSize, type RasterImage } from '../printing/index.js';
2
2
  import type { ReceiptLayout } from './layout.js';
3
- import { type BelegBlatt, type LogoStufe, type LogoMass } from './blatt.js';
3
+ import { type ReceiptSheet, type SheetLogoSize, type LogoDimensions } from './blatt.js';
4
4
  /**
5
5
  * Bruecke vom Layout-Modell zu ESC/POS-Bytes — der Bondrucker-Ausgabeweg.
6
6
  *
@@ -29,18 +29,18 @@ import { type BelegBlatt, type LogoStufe, type LogoMass } from './blatt.js';
29
29
  * (`qrMatrix`), weil dieses Paket keine QR-Codes rechnet.
30
30
  */
31
31
  export type QrPrintMode = 'native' | 'nativeModel1' | 'imageRaster';
32
- /** Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild (`logoRaster`). */
33
- export interface DruckLogo {
34
- stufe: LogoStufe;
35
- pxBreite: number;
36
- pxHoehe: number;
37
- raster: RasterBild;
32
+ /** Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild (`rasterizeLogo`). */
33
+ export interface PrintLogo {
34
+ size: SheetLogoSize;
35
+ pixelWidth: number;
36
+ pixelHeight: number;
37
+ raster: RasterImage;
38
38
  }
39
39
  /** Das Rasterbild muss genau so gross sein, wie das Blatt das Logo setzt -- sonst stuende am Bon ein anderes Logo als am Schirm. */
40
- export declare function pruefeLogoRaster(logo: DruckLogo, mass: LogoMass, zeichen: number): void;
40
+ export declare function assertLogoRaster(logo: PrintLogo, dimensions: LogoDimensions, chars: number): void;
41
41
  /**
42
42
  * Baut das Blatt fuer einen Druckweg (ESC/POS, ePOS) an EINER Stelle: die
43
- * Zuordnung `DruckLogo` -> `BlattLogo` und die Groessenpruefung des mitgebrachten
43
+ * Zuordnung `PrintLogo` -> `SheetLogo` und die Groessenpruefung des mitgebrachten
44
44
  * Rasterbilds teilen sich beide Wege -- ohne das muesste eine Aenderung daran an
45
45
  * zwei Stellen nachgezogen werden. Wirft VOR jeder Ausgabe (also bevor der
46
46
  * Aufrufer auch nur ein Byte/Zeichen geschrieben hat), wenn das Rasterbild nicht
@@ -48,10 +48,10 @@ export declare function pruefeLogoRaster(logo: DruckLogo, mass: LogoMass, zeiche
48
48
  */
49
49
  export declare function blattFuerDruck(layout: ReceiptLayout, optionen: {
50
50
  zeichen: number;
51
- logo?: DruckLogo | null;
51
+ logo?: PrintLogo | null;
52
52
  marke?: boolean;
53
- qrGroesse: QrModulGroesse;
54
- }): BelegBlatt;
53
+ qrGroesse: QrModuleSize;
54
+ }): ReceiptSheet;
55
55
  export interface EscPosLayoutOptions {
56
56
  /** Papierbreite; Vorgabe ist die des Layouts (dessen Spaltenbreiten daran haengen). */
57
57
  paperSize?: PosPaperSize;
@@ -67,9 +67,9 @@ export interface EscPosLayoutOptions {
67
67
  /** Fehlerkorrekturstufe des QR-Codes; Vorgabe `M` (wie ePOS, Bildweg und Blatt). */
68
68
  qrCorrection?: QrCorrection;
69
69
  /** Deckel fuer die gerechnete Modulgroesse; Vorgabe `auto` (hoechstens 6 Punkte je Modul). */
70
- qrGroesse?: QrModulGroesse;
70
+ qrModuleSize?: QrModuleSize;
71
71
  /** Druckweg des QR; Vorgabe `native` (der Bestandsweg). */
72
- qrModus?: QrPrintMode;
72
+ qrMode?: QrPrintMode;
73
73
  /**
74
74
  * Raster fuer den Bildweg — ohne das gibt es keinen Notausgang.
75
75
  *
@@ -77,24 +77,24 @@ export interface EscPosLayoutOptions {
77
77
  * Kopf von `layout.ts`); der Aufrufer bringt das fertige Raster mit, etwa
78
78
  * aus der QR-Bibliothek, die er ohnehin fuer den Bildschirm benutzt.
79
79
  */
80
- qrMatrix?: (nutzlast: string) => QrMatrix;
80
+ qrMatrix?: (payload: string) => QrMatrix;
81
81
  /** Firmenlogo; ohne Angabe kein Logo (Bestand). */
82
- logo?: DruckLogo | null;
82
+ logo?: PrintLogo | null;
83
83
  /** Das Kasseneck-Logo am Ende (Konto-Flag `kreiseck_logo`). */
84
- marke?: boolean;
84
+ brandMark?: boolean;
85
85
  }
86
86
  /**
87
87
  * Der Bytestrom **samt** dem, was dem QR unterwegs zugestossen ist.
88
88
  *
89
- * Zwilling von `KeckPrintResult`: `qrFehler` heisst "Beleg ohne QR,
90
- * nachdrucken oder elektronisch ausgeben", `qrAusweich` heisst "gedruckt,
89
+ * Zwilling von `KeckPrintResult`: `qrError` heisst "Beleg ohne QR,
90
+ * nachdrucken oder elektronisch ausgeben", `qrFallback` heisst "gedruckt,
91
91
  * aber der eingestellte Weg taugt fuer dieses Geraet nicht" — das eine gehoert
92
92
  * dem Kunden gesagt, das andere dem Chef.
93
93
  */
94
- export interface EscPosLayoutErgebnis {
94
+ export interface EscPosLayoutResult {
95
95
  bytes: Uint8Array;
96
- qrFehler: string | null;
97
- qrAusweich: string | null;
96
+ qrError: string | null;
97
+ qrFallback: string | null;
98
98
  }
99
99
  /**
100
100
  * Bytes fuer den Bondrucker -- **aus dem Zeichenraster** ([renderReceiptGrid]):
@@ -108,4 +108,4 @@ export declare function escPosLayoutBytes(layout: ReceiptLayout, options?: EscPo
108
108
  * zugestossen ist. Die Bytes sind dieselben; wer die Meldungen braucht, nimmt
109
109
  * diesen Weg.
110
110
  */
111
- export declare function escPosLayoutErgebnis(layout: ReceiptLayout, options?: EscPosLayoutOptions): EscPosLayoutErgebnis;
111
+ export declare function escPosLayoutResult(layout: ReceiptLayout, options?: EscPosLayoutOptions): EscPosLayoutResult;
@@ -1,23 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pruefeLogoRaster = pruefeLogoRaster;
3
+ exports.assertLogoRaster = assertLogoRaster;
4
4
  exports.blattFuerDruck = blattFuerDruck;
5
5
  exports.escPosLayoutBytes = escPosLayoutBytes;
6
- exports.escPosLayoutErgebnis = escPosLayoutErgebnis;
6
+ exports.escPosLayoutResult = escPosLayoutResult;
7
7
  const index_js_1 = require("../printing/index.js");
8
8
  const blatt_js_1 = require("./blatt.js");
9
9
  const grid_js_1 = require("./grid.js");
10
10
  const marke_js_1 = require("./marke.js");
11
11
  /** Das Rasterbild muss genau so gross sein, wie das Blatt das Logo setzt -- sonst stuende am Bon ein anderes Logo als am Schirm. */
12
- function pruefeLogoRaster(logo, mass, zeichen) {
13
- const soll = (0, blatt_js_1.logoRasterMass)(mass, zeichen);
14
- if (logo.raster.breite !== soll.breite || logo.raster.hoehe !== soll.hoehe) {
15
- throw new Error(`Logo-Raster ${logo.raster.breite}x${logo.raster.hoehe} passt nicht zum Blatt (${soll.breite}x${soll.hoehe})`);
12
+ function assertLogoRaster(logo, dimensions, chars) {
13
+ const soll = (0, blatt_js_1.logoRasterSize)(dimensions, chars);
14
+ if (logo.raster.width !== soll.width || logo.raster.height !== soll.height) {
15
+ throw new Error(`Logo-Raster ${logo.raster.width}x${logo.raster.height} passt nicht zum Blatt (${soll.width}x${soll.height})`);
16
16
  }
17
17
  }
18
18
  /**
19
19
  * Baut das Blatt fuer einen Druckweg (ESC/POS, ePOS) an EINER Stelle: die
20
- * Zuordnung `DruckLogo` -> `BlattLogo` und die Groessenpruefung des mitgebrachten
20
+ * Zuordnung `PrintLogo` -> `SheetLogo` und die Groessenpruefung des mitgebrachten
21
21
  * Rasterbilds teilen sich beide Wege -- ohne das muesste eine Aenderung daran an
22
22
  * zwei Stellen nachgezogen werden. Wirft VOR jeder Ausgabe (also bevor der
23
23
  * Aufrufer auch nur ein Byte/Zeichen geschrieben hat), wenn das Rasterbild nicht
@@ -25,16 +25,16 @@ function pruefeLogoRaster(logo, mass, zeichen) {
25
25
  */
26
26
  function blattFuerDruck(layout, optionen) {
27
27
  const blattOptionen = {
28
- zeichen: optionen.zeichen,
29
- marke: optionen.marke === true,
30
- qrGroesse: optionen.qrGroesse,
28
+ charsPerLine: optionen.zeichen,
29
+ brandMark: optionen.marke === true,
30
+ qrModuleSize: optionen.qrGroesse,
31
31
  };
32
32
  if (optionen.logo)
33
- blattOptionen.logo = { stufe: optionen.logo.stufe, pxBreite: optionen.logo.pxBreite, pxHoehe: optionen.logo.pxHoehe };
34
- const blatt = (0, blatt_js_1.belegBlatt)(layout, blattOptionen);
35
- const logoBlock = blatt.bloecke.find((b) => b.art === 'logo');
36
- if (optionen.logo && logoBlock && logoBlock.art === 'logo')
37
- pruefeLogoRaster(optionen.logo, logoBlock, blatt.zeichen);
33
+ blattOptionen.logo = { size: optionen.logo.size, pixelWidth: optionen.logo.pixelWidth, pixelHeight: optionen.logo.pixelHeight };
34
+ const blatt = (0, blatt_js_1.receiptSheet)(layout, blattOptionen);
35
+ const logoBlock = blatt.blocks.find((b) => b.kind === 'logo');
36
+ if (optionen.logo && logoBlock && logoBlock.kind === 'logo')
37
+ assertLogoRaster(optionen.logo, logoBlock, blatt.charsPerLine);
38
38
  return blatt;
39
39
  }
40
40
  /**
@@ -63,14 +63,14 @@ function druckbaresLayout(layout) {
63
63
  * zeigt, druckt der Drucker (Monospace, Font A: 32/48 Zeichen).
64
64
  */
65
65
  function escPosLayoutBytes(layout, options = {}) {
66
- return escPosLayoutErgebnis(layout, options).bytes;
66
+ return escPosLayoutResult(layout, options).bytes;
67
67
  }
68
68
  /**
69
69
  * Wie [escPosLayoutBytes], gibt aber zusaetzlich zurueck, was dem QR
70
70
  * zugestossen ist. Die Bytes sind dieselben; wer die Meldungen braucht, nimmt
71
71
  * diesen Weg.
72
72
  */
73
- function escPosLayoutErgebnis(layout, options = {}) {
73
+ function escPosLayoutResult(layout, options = {}) {
74
74
  const paperSize = options.paperSize ?? layout.paperSize;
75
75
  const dokumentOptionen = { paperSize };
76
76
  if (options.codeTable !== undefined) {
@@ -78,38 +78,38 @@ function escPosLayoutErgebnis(layout, options = {}) {
78
78
  }
79
79
  const doc = (0, index_js_1.createEscPosDocument)(dokumentOptionen);
80
80
  (0, index_js_1.escPosReset)(doc);
81
- const modus = options.qrModus ?? 'native';
81
+ const modus = options.qrMode ?? 'native';
82
82
  const qrOptionen = { align: 'center' };
83
83
  if (options.qrSize !== undefined)
84
84
  qrOptionen.size = options.qrSize;
85
85
  if (options.qrCorrection !== undefined)
86
86
  qrOptionen.correction = options.qrCorrection;
87
- if (options.qrGroesse !== undefined)
88
- qrOptionen.groesse = options.qrGroesse;
87
+ if (options.qrModuleSize !== undefined)
88
+ qrOptionen.moduleSize = options.qrModuleSize;
89
89
  if (modus === 'nativeModel1')
90
- qrOptionen.modell1 = true;
90
+ qrOptionen.model1 = true;
91
91
  if (modus === 'imageRaster' && options.qrMatrix === undefined) {
92
92
  throw new Error("qrModus 'imageRaster' braucht ein qrMatrix -- dieses Paket rastert nicht selbst");
93
93
  }
94
94
  const rasterOptionen = { align: 'center' };
95
- if (options.qrGroesse !== undefined)
96
- rasterOptionen.groesse = options.qrGroesse;
95
+ if (options.qrModuleSize !== undefined)
96
+ rasterOptionen.moduleSize = options.qrModuleSize;
97
97
  /**
98
98
  * Eine QR-Zeile des Rasters. Hier sitzt der **Notausgang**: passt das Symbol
99
99
  * nativ auch mit der Ausnahmegroesse nicht aufs Papier, druckt der Drucker
100
100
  * es GAR NICHT -- er schneidet nicht ab, er laesst weg. Ein Pflichtbeleg
101
101
  * ohne QR ist der schlechteste aller Ausgaenge, also geht der QR dann als
102
- * Bild hinaus, und der Aufrufer erfaehrt es ueber `qrAusweich`.
102
+ * Bild hinaus, und der Aufrufer erfaehrt es ueber `qrFallback`.
103
103
  *
104
104
  * Ohne `qrMatrix` gibt es diesen Weg nicht -- dann bleibt nur die Meldung
105
- * `qrFehler` aus `escPosQrCode`, und der Beleg geht ohne QR hinaus.
105
+ * `qrError` aus `escPosQrCode`, und der Beleg geht ohne QR hinaus.
106
106
  */
107
107
  const qrZeile = (nutzlast) => {
108
108
  // Ein Inhalt, der in keine QR-Version passt, laesst sich weder als Befehl
109
109
  // noch als Bild drucken -- beide Wege wuerfen. Der Beleg geht ohne QR
110
- // hinaus und sagt es ueber `qrFehler`, wie das Blatt (Anteil 0).
111
- if (nutzlast !== '' && !(0, index_js_1.qrPasstInVersion)(nutzlast)) {
112
- doc.qrFehler = 'QR-Inhalt passt in keine QR-Version -- Beleg ohne QR';
110
+ // hinaus und sagt es ueber `qrError`, wie das Blatt (Anteil 0).
111
+ if (nutzlast !== '' && !(0, index_js_1.qrFitsInVersion)(nutzlast)) {
112
+ doc.qrError = 'QR-Inhalt passt in keine QR-Version -- Beleg ohne QR';
113
113
  return;
114
114
  }
115
115
  const raster = options.qrMatrix;
@@ -121,15 +121,15 @@ function escPosLayoutErgebnis(layout, options = {}) {
121
121
  // Feste `qrSize` heisst: der Aufrufer weiss, was er tut -- dann wird
122
122
  // weder gerechnet noch ausgewichen.
123
123
  if (options.qrSize === undefined) {
124
- const mass = (0, index_js_1.qrGroesseFuer)({
125
- nutzlast,
126
- papierbreitePunkte: index_js_1.QR_DRUCK_PUNKTE[paperSize],
127
- groesse: options.qrGroesse ?? 'auto',
124
+ const mass = (0, index_js_1.qrSizingFor)({
125
+ payload: nutzlast,
126
+ paperWidthDots: index_js_1.QR_PRINT_WIDTH_DOTS[paperSize],
127
+ moduleSize: options.qrModuleSize ?? 'auto',
128
128
  });
129
- if (!mass.passt) {
130
- doc.qrAusweich =
131
- `QR mit ${mass.module} Modulen passt nativ nicht auf ` +
132
- `${paperSize === 'mm58' ? 58 : 80} mm (${index_js_1.QR_DRUCK_PUNKTE[paperSize]} Punkte) ` +
129
+ if (!mass.fits) {
130
+ doc.qrFallback =
131
+ `QR mit ${mass.modules} Modulen passt nativ nicht auf ` +
132
+ `${paperSize === 'mm58' ? 58 : 80} mm (${index_js_1.QR_PRINT_WIDTH_DOTS[paperSize]} Punkte) ` +
133
133
  `-- als Bild gedruckt`;
134
134
  (0, index_js_1.escPosQrRaster)(doc, raster(nutzlast), rasterOptionen);
135
135
  return;
@@ -141,33 +141,33 @@ function escPosLayoutErgebnis(layout, options = {}) {
141
141
  // `blattFuerDruck` prueft das Logo-Raster bereits VOR der Rueckgabe -- die
142
142
  // Schleife unten schreibt darum nie ein Byte auf ein falsch grosses Logo.
143
143
  const blatt = blattFuerDruck(druckbaresLayout(layout), {
144
- zeichen: grid_js_1.ZEICHEN_JE_PAPIER[paperSize],
144
+ zeichen: grid_js_1.CHARS_PER_PAPER_SIZE[paperSize],
145
145
  logo: options.logo,
146
- marke: options.marke,
147
- qrGroesse: options.qrGroesse ?? 'auto',
146
+ marke: options.brandMark,
147
+ qrGroesse: options.qrModuleSize ?? 'auto',
148
148
  });
149
- for (const block of blatt.bloecke) {
150
- switch (block.art) {
149
+ for (const block of blatt.blocks) {
150
+ switch (block.kind) {
151
151
  case 'qr':
152
- qrZeile(block.nutzlast);
152
+ qrZeile(block.payload);
153
153
  break;
154
154
  case 'logo':
155
155
  if (options.logo)
156
- (0, index_js_1.escPosRasterBild)(doc, options.logo.raster, { align: 'center' });
156
+ (0, index_js_1.escPosRasterImage)(doc, options.logo.raster, { align: 'center' });
157
157
  break;
158
- case 'marke':
159
- (0, index_js_1.escPosRasterBild)(doc, (0, marke_js_1.markeBild)(paperSize), { align: 'center' });
158
+ case 'brandMark':
159
+ (0, index_js_1.escPosRasterImage)(doc, (0, marke_js_1.brandMarkImage)(paperSize), { align: 'center' });
160
160
  break;
161
- case 'zeile':
162
- if (block.leer)
161
+ case 'line':
162
+ if (block.blank)
163
163
  (0, index_js_1.escPosFeed)(doc, 1);
164
164
  else
165
- (0, index_js_1.escPosText)(doc, block.text.trimEnd(), { styles: { align: 'left', bold: block.fett } });
165
+ (0, index_js_1.escPosText)(doc, block.text.trimEnd(), { styles: { align: 'left', bold: block.bold } });
166
166
  break;
167
167
  }
168
168
  }
169
169
  if (options.cut !== false) {
170
170
  (0, index_js_1.escPosCut)(doc, options.cut === 'partial' ? 'partial' : 'full');
171
171
  }
172
- return { bytes: (0, index_js_1.escPosBytes)(doc), qrFehler: doc.qrFehler, qrAusweich: doc.qrAusweich };
172
+ return { bytes: (0, index_js_1.escPosBytes)(doc), qrError: doc.qrError, qrFallback: doc.qrFallback };
173
173
  }
@@ -1,4 +1,4 @@
1
- import { type Receipt, type ReceiptCompany } from '../models/index.js';
1
+ import { type Receipt, type ReceiptCompany, type RegistrationInfo } from '../models/index.js';
2
2
  import type { PosPaperSize } from '../printing/escpos.js';
3
3
  /**
4
4
  * Beleg-Layout — der Bauplan eines Kasseneck-Belegs als reines Datenmodell.
@@ -76,9 +76,14 @@ export interface LayoutQrLine {
76
76
  export interface LayoutBannerLine {
77
77
  kind: 'banner';
78
78
  text: string;
79
- /** `warnung` fuer Testkasse/Testsignatur (nicht gueltiger Beleg), sonst `belegart`. */
80
- ton: 'belegart' | 'warnung';
79
+ /**
80
+ * `warning` fuer Testkasse/Testsignatur (kein gueltiger Beleg), sonst
81
+ * `receipt_type` (Belegart). Werte wie am `/v3`-Draht (Katalog `LAYOUT_TON`).
82
+ */
83
+ tone: LayoutBannerTone;
81
84
  }
85
+ /** Ton einer hervorgehobenen Zeile, wie am `/v3`-Draht. */
86
+ export type LayoutBannerTone = 'receipt_type' | 'warning';
82
87
  export type LayoutLine = LayoutTextLine | LayoutColumnsLine | LayoutRuleLine | LayoutSpaceLine | LayoutQrLine | LayoutBannerLine;
83
88
  /**
84
89
  * Version des Layout-Regelwerks. Alte Belege werden mit ihrer gespeicherten
@@ -88,25 +93,15 @@ export type LayoutLine = LayoutTextLine | LayoutColumnsLine | LayoutRuleLine | L
88
93
  * Signaturkarte, Zertifizierungsdienst, Registrierdaten); reduziert nur,
89
94
  * wenn alle Betraege wirklich 0 sind. Vollbelege unveraendert.
90
95
  */
91
- export type LayoutRegelwerk = 1 | 2;
92
- export declare const AKTUELLES_REGELWERK: LayoutRegelwerk;
93
- /**
94
- * Registrierdaten fuer den Block „Prüfangaben“ auf Nullbelegen (Regelwerk 2).
95
- * Kennt sie nur das Backend (FinanzOnline-Registrierung der Signaturkarte und
96
- * der Kasse); fehlen sie, entfallen die Zeilen. Datum als „YYYY-MM-DD“ oder
97
- * ISO-Zeitstempel (Wiener Kalendertag).
98
- */
99
- export interface Pruefangaben {
100
- karteRegistriertAm?: string | null;
101
- kasseRegistriertAm?: string | null;
102
- }
96
+ export type LayoutRuleset = 1 | 2;
97
+ export declare const CURRENT_LAYOUT_RULESET: LayoutRuleset;
103
98
  /** Der fertige Bauplan eines Belegs. */
104
99
  export interface ReceiptLayout {
105
100
  lines: LayoutLine[];
106
101
  /** Papierbreite, nach der die Spaltenbreiten gewaehlt wurden. */
107
102
  paperSize: PosPaperSize;
108
103
  /** Regelwerk, nach dem gesetzt wurde. */
109
- regelwerk: LayoutRegelwerk;
104
+ ruleset: LayoutRuleset;
110
105
  }
111
106
  export interface BuildReceiptLayoutOptions {
112
107
  /**
@@ -115,17 +110,27 @@ export interface BuildReceiptLayoutOptions {
115
110
  */
116
111
  paperSize?: PosPaperSize;
117
112
  /** Layout-Regelwerk (Vorgabe: aktuelles). Unbekannt -> Fehler, nie stumm anders setzen. */
118
- regelwerk?: LayoutRegelwerk;
119
- /** Beleg einer Testumgebung: Rahmen „TESTKASSE — kein gültiger Beleg“ oben und unten. */
120
- testKasse?: boolean;
113
+ ruleset?: LayoutRuleset;
114
+ /**
115
+ * Beleg einer Testumgebung: Rahmen „TESTKASSE — kein gültiger Beleg“ oben
116
+ * und unten. Aus einer Antwort: `ReceiptWithCompany.testCashregister`.
117
+ */
118
+ testCashregister?: boolean;
121
119
  /**
122
120
  * Produktionskonto hat mit einer Test-Signatureinheit signiert: Rahmen
123
121
  * „TESTSIGNATUR — kein gültiger Beleg“. Der Aufrufer entscheidet (er kennt
124
- * das Konto); [receiptSignatureIsTest] sagt nur, OB die Signatur eine Testsignatur ist.
122
+ * das Konto); [receiptSignatureIsTest] sagt nur, OB die Signatur eine
123
+ * Testsignatur ist. Aus einer Antwort: `ReceiptWithCompany.testSignature`.
124
+ */
125
+ testSignature?: boolean;
126
+ /**
127
+ * Registrierdaten fuer den Block „Prüfangaben“ (nur Nullbelege, Regelwerk 2).
128
+ * Kennt sie nur das Backend (FinanzOnline-Registrierung der Signaturkarte
129
+ * und der Kasse); fehlen sie, entfallen die Zeilen. Datum als „YYYY-MM-DD“
130
+ * oder ISO-Zeitstempel (Wiener Kalendertag). Aus einer Antwort:
131
+ * `ReceiptWithCompany.registrationInfo`.
125
132
  */
126
- testSignatur?: boolean;
127
- /** Registrierdaten fuer den Block „Prüfangaben“ (nur Nullbelege, Regelwerk 2). */
128
- pruefangaben?: Pruefangaben | null;
133
+ registrationInfo?: RegistrationInfo | null;
129
134
  }
130
135
  /**
131
136
  * Cent-Betrag als Anzeigetext: `1234` -> `"12,34"`. Die **einzige** Stelle, an