@kreiseck/kasseneck-api 0.30.0 → 1.0.0-rc.1

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 (717) hide show
  1. package/CHANGELOG.md +433 -0
  2. package/README.de.md +11 -7
  3. package/README.md +486 -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 +78 -19
  13. package/dist/cjs/client/errors.js +107 -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 +214 -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 +222 -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/{esm/rechnung → cjs/invoice}/vertrag.d.ts +97 -71
  48. package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
  49. package/dist/cjs/models/cancellation.d.ts +53 -21
  50. package/dist/cjs/models/cancellation.js +94 -42
  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-payment.d.ts +2 -1
  66. package/dist/cjs/models/receipt-summary.d.ts +10 -4
  67. package/dist/cjs/models/receipt-summary.js +10 -4
  68. package/dist/cjs/models/receipt.d.ts +31 -2
  69. package/dist/cjs/models/receipt.js +28 -1
  70. package/dist/cjs/models/voucher.d.ts +7 -6
  71. package/dist/cjs/models/voucher.js +2 -7
  72. package/dist/cjs/partner/ablauf.d.ts +10 -10
  73. package/dist/cjs/partner/ablauf.js +29 -29
  74. package/dist/cjs/partner/api.d.ts +26 -23
  75. package/dist/cjs/partner/api.js +11 -13
  76. package/dist/cjs/partner/auth.d.ts +1 -1
  77. package/dist/cjs/partner/auth.js +2 -2
  78. package/dist/cjs/partner/betrieb.d.ts +7 -7
  79. package/dist/cjs/partner/betrieb.js +10 -10
  80. package/dist/cjs/partner/endpunkte.d.ts +27 -14
  81. package/dist/cjs/partner/endpunkte.js +80 -39
  82. package/dist/cjs/partner/fehler.d.ts +60 -30
  83. package/dist/cjs/partner/fehler.js +99 -43
  84. package/dist/cjs/partner/index.d.ts +13 -12
  85. package/dist/cjs/partner/index.js +35 -22
  86. package/dist/cjs/partner/secret.d.ts +3 -3
  87. package/dist/cjs/partner/secret.js +6 -6
  88. package/dist/cjs/partner/typen.d.ts +129 -71
  89. package/dist/cjs/partner/typen.js +76 -3
  90. package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
  91. package/dist/cjs/partner/webhook-signatur.js +12 -12
  92. package/dist/cjs/partner/webhooks.d.ts +60 -32
  93. package/dist/cjs/partner/webhooks.js +40 -34
  94. package/dist/cjs/payments/hobex-hps/transaction-response.js +28 -28
  95. package/dist/cjs/payments/hobex.d.ts +2 -2
  96. package/dist/cjs/payments/hobex.js +4 -4
  97. package/dist/cjs/payments/stripe.d.ts +2 -2
  98. package/dist/cjs/payments/stripe.js +4 -4
  99. package/dist/cjs/pos/artikel.d.ts +90 -0
  100. package/dist/cjs/pos/artikel.js +89 -0
  101. package/dist/cjs/pos/client.d.ts +27 -0
  102. package/dist/cjs/pos/client.js +144 -0
  103. package/dist/cjs/pos/drucker.d.ts +86 -0
  104. package/dist/cjs/pos/drucker.js +78 -0
  105. package/dist/cjs/pos/errors.d.ts +36 -0
  106. package/dist/cjs/pos/errors.js +95 -0
  107. package/dist/cjs/pos/index.d.ts +15 -0
  108. package/dist/cjs/pos/index.js +102 -0
  109. package/dist/cjs/pos/settings.d.ts +313 -0
  110. package/dist/cjs/pos/settings.js +376 -0
  111. package/dist/cjs/pos/texte.d.ts +883 -0
  112. package/dist/cjs/pos/texte.js +489 -0
  113. package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
  114. package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
  115. package/dist/cjs/printing/escpos.d.ts +29 -29
  116. package/dist/cjs/printing/escpos.js +61 -61
  117. package/dist/cjs/printing/index.d.ts +2 -2
  118. package/dist/cjs/printing/index.js +17 -17
  119. package/dist/cjs/printing/qr-groesse.d.ts +38 -38
  120. package/dist/cjs/printing/qr-groesse.js +47 -47
  121. package/dist/cjs/printing/webusb.d.ts +2 -2
  122. package/dist/cjs/printing/webusb.js +4 -4
  123. package/dist/cjs/react/index.d.ts +21 -21
  124. package/dist/cjs/react/index.js +40 -30
  125. package/dist/cjs/receipt/bild.d.ts +4 -4
  126. package/dist/cjs/receipt/bild.js +11 -11
  127. package/dist/cjs/receipt/blatt.d.ts +46 -46
  128. package/dist/cjs/receipt/blatt.js +59 -59
  129. package/dist/cjs/receipt/discount.d.ts +1 -1
  130. package/dist/cjs/receipt/discount.js +8 -8
  131. package/dist/cjs/receipt/due.d.ts +86 -0
  132. package/dist/cjs/receipt/due.js +261 -0
  133. package/dist/cjs/receipt/epos.d.ts +22 -22
  134. package/dist/cjs/receipt/epos.js +45 -45
  135. package/dist/cjs/receipt/grid.d.ts +10 -10
  136. package/dist/cjs/receipt/grid.js +20 -20
  137. package/dist/cjs/receipt/index.d.ts +9 -8
  138. package/dist/cjs/receipt/index.js +26 -23
  139. package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
  140. package/dist/cjs/receipt/layout-escpos.js +49 -49
  141. package/dist/cjs/receipt/layout.d.ts +28 -23
  142. package/dist/cjs/receipt/layout.js +45 -21
  143. package/dist/cjs/receipt/marke-daten.d.ts +8 -8
  144. package/dist/cjs/receipt/marke-daten.js +8 -8
  145. package/dist/cjs/receipt/marke.d.ts +7 -7
  146. package/dist/cjs/receipt/marke.js +10 -10
  147. package/dist/cjs/register/errors.d.ts +61 -0
  148. package/dist/cjs/register/errors.js +112 -0
  149. package/dist/cjs/register/index.d.ts +14 -1
  150. package/dist/cjs/register/index.js +20 -1
  151. package/dist/cjs/register/pairing.d.ts +55 -36
  152. package/dist/cjs/register/pairing.js +33 -29
  153. package/dist/cjs/register/session.d.ts +5 -5
  154. package/dist/cjs/register/session.js +7 -7
  155. package/dist/cjs/stored/draht.d.ts +45 -0
  156. package/dist/cjs/stored/draht.js +220 -0
  157. package/dist/cjs/stored/einstellungen.d.ts +23 -0
  158. package/dist/cjs/stored/einstellungen.js +200 -0
  159. package/dist/cjs/stored/index.d.ts +109 -0
  160. package/dist/cjs/stored/index.js +225 -0
  161. package/dist/cjs/stored/vokabular.d.ts +18 -0
  162. package/dist/cjs/stored/vokabular.js +389 -0
  163. package/dist/cjs/version.d.ts +7 -0
  164. package/dist/cjs/version.js +10 -0
  165. package/dist/cjs/vienna-time.d.ts +1 -1
  166. package/dist/cjs/vienna-time.js +2 -2
  167. package/dist/esm/client/api.d.ts +7 -6
  168. package/dist/esm/client/api.js +4 -4
  169. package/dist/esm/client/aufrufe.d.ts +29 -5
  170. package/dist/esm/client/aufrufe.js +111 -1
  171. package/dist/esm/client/auth.d.ts +2 -0
  172. package/dist/esm/client/auth.js +16 -1
  173. package/dist/esm/client/cashregisters.d.ts +1 -1
  174. package/dist/esm/client/cashregisters.js +2 -2
  175. package/dist/esm/client/errors.d.ts +78 -19
  176. package/dist/esm/client/errors.js +105 -27
  177. package/dist/esm/client/fehlercodes.d.ts +9 -0
  178. package/dist/esm/client/fehlercodes.js +32 -0
  179. package/dist/esm/client/index.d.ts +5 -5
  180. package/dist/esm/client/index.js +5 -5
  181. package/dist/esm/client/receipts.d.ts +131 -124
  182. package/dist/esm/client/receipts.js +213 -140
  183. package/dist/esm/client/reports.d.ts +26 -4
  184. package/dist/esm/client/reports.js +36 -4
  185. package/dist/esm/client/status.d.ts +3 -3
  186. package/dist/esm/client/status.js +7 -7
  187. package/dist/esm/client/transport.d.ts +56 -4
  188. package/dist/esm/client/transport.js +221 -24
  189. package/dist/esm/enums/vat-rate.d.ts +2 -2
  190. package/dist/esm/enums/vat-rate.js +1 -1
  191. package/dist/esm/index.d.ts +4 -3
  192. package/dist/esm/index.js +4 -3
  193. package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
  194. package/dist/esm/{rechnung → invoice}/api.js +6 -6
  195. package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
  196. package/dist/esm/{rechnung → invoice}/auth.js +4 -4
  197. package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
  198. package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
  199. package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
  200. package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
  201. package/dist/esm/invoice/fehler.d.ts +31 -0
  202. package/dist/esm/invoice/fehler.js +33 -0
  203. package/dist/esm/invoice/index.d.ts +21 -0
  204. package/dist/esm/invoice/index.js +20 -0
  205. package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
  206. package/dist/esm/{rechnung → invoice}/summen.js +12 -12
  207. package/dist/esm/invoice/texte.d.ts +224 -0
  208. package/dist/esm/invoice/texte.js +421 -0
  209. package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
  210. package/dist/{cjs/rechnung → esm/invoice}/vertrag.d.ts +97 -71
  211. package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
  212. package/dist/esm/models/cancellation.d.ts +53 -21
  213. package/dist/esm/models/cancellation.js +90 -41
  214. package/dist/esm/models/hobex-receipt.d.ts +3 -3
  215. package/dist/esm/models/hobex-receipt.js +35 -35
  216. package/dist/esm/models/index.d.ts +6 -5
  217. package/dist/esm/models/index.js +6 -5
  218. package/dist/esm/models/payment-errors.d.ts +32 -15
  219. package/dist/esm/models/payment-errors.js +77 -32
  220. package/dist/esm/models/receipt-company.d.ts +6 -5
  221. package/dist/esm/models/receipt-company.js +4 -4
  222. package/dist/esm/models/receipt-email.d.ts +32 -18
  223. package/dist/esm/models/receipt-email.js +65 -23
  224. package/dist/esm/models/receipt-errors.d.ts +39 -0
  225. package/dist/esm/models/receipt-errors.js +87 -0
  226. package/dist/esm/models/receipt-item.d.ts +9 -1
  227. package/dist/esm/models/receipt-item.js +3 -0
  228. package/dist/esm/models/receipt-payment.d.ts +2 -1
  229. package/dist/esm/models/receipt-summary.d.ts +10 -4
  230. package/dist/esm/models/receipt-summary.js +9 -3
  231. package/dist/esm/models/receipt.d.ts +31 -2
  232. package/dist/esm/models/receipt.js +28 -2
  233. package/dist/esm/models/voucher.d.ts +7 -6
  234. package/dist/esm/models/voucher.js +2 -7
  235. package/dist/esm/partner/ablauf.d.ts +10 -10
  236. package/dist/esm/partner/ablauf.js +27 -27
  237. package/dist/esm/partner/api.d.ts +26 -23
  238. package/dist/esm/partner/api.js +13 -15
  239. package/dist/esm/partner/auth.d.ts +1 -1
  240. package/dist/esm/partner/auth.js +2 -2
  241. package/dist/esm/partner/betrieb.d.ts +7 -7
  242. package/dist/esm/partner/betrieb.js +8 -8
  243. package/dist/esm/partner/endpunkte.d.ts +27 -14
  244. package/dist/esm/partner/endpunkte.js +79 -39
  245. package/dist/esm/partner/fehler.d.ts +60 -30
  246. package/dist/esm/partner/fehler.js +91 -35
  247. package/dist/esm/partner/index.d.ts +13 -12
  248. package/dist/esm/partner/index.js +12 -11
  249. package/dist/esm/partner/secret.d.ts +3 -3
  250. package/dist/esm/partner/secret.js +5 -5
  251. package/dist/esm/partner/typen.d.ts +129 -71
  252. package/dist/esm/partner/typen.js +75 -2
  253. package/dist/esm/partner/webhook-signatur.d.ts +2 -2
  254. package/dist/esm/partner/webhook-signatur.js +12 -12
  255. package/dist/esm/partner/webhooks.d.ts +60 -32
  256. package/dist/esm/partner/webhooks.js +38 -32
  257. package/dist/esm/payments/hobex-hps/transaction-response.js +28 -28
  258. package/dist/esm/payments/hobex.d.ts +2 -2
  259. package/dist/esm/payments/hobex.js +4 -4
  260. package/dist/esm/payments/stripe.d.ts +2 -2
  261. package/dist/esm/payments/stripe.js +4 -4
  262. package/dist/esm/pos/artikel.d.ts +90 -0
  263. package/dist/esm/pos/artikel.js +79 -0
  264. package/dist/esm/pos/client.d.ts +27 -0
  265. package/dist/esm/pos/client.js +137 -0
  266. package/dist/esm/pos/drucker.d.ts +86 -0
  267. package/dist/esm/pos/drucker.js +71 -0
  268. package/dist/esm/pos/errors.d.ts +36 -0
  269. package/dist/esm/pos/errors.js +88 -0
  270. package/dist/esm/pos/index.d.ts +15 -0
  271. package/dist/esm/pos/index.js +20 -0
  272. package/dist/esm/pos/settings.d.ts +313 -0
  273. package/dist/esm/pos/settings.js +367 -0
  274. package/dist/esm/pos/texte.d.ts +883 -0
  275. package/dist/esm/pos/texte.js +481 -0
  276. package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
  277. package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
  278. package/dist/esm/printing/escpos.d.ts +29 -29
  279. package/dist/esm/printing/escpos.js +56 -56
  280. package/dist/esm/printing/index.d.ts +2 -2
  281. package/dist/esm/printing/index.js +2 -2
  282. package/dist/esm/printing/qr-groesse.d.ts +38 -38
  283. package/dist/esm/printing/qr-groesse.js +42 -42
  284. package/dist/esm/printing/webusb.d.ts +2 -2
  285. package/dist/esm/printing/webusb.js +4 -4
  286. package/dist/esm/react/index.d.ts +21 -21
  287. package/dist/esm/react/index.js +39 -29
  288. package/dist/esm/receipt/bild.d.ts +4 -4
  289. package/dist/esm/receipt/bild.js +11 -11
  290. package/dist/esm/receipt/blatt.d.ts +46 -46
  291. package/dist/esm/receipt/blatt.js +55 -55
  292. package/dist/esm/receipt/discount.d.ts +1 -1
  293. package/dist/esm/receipt/discount.js +7 -7
  294. package/dist/esm/receipt/due.d.ts +86 -0
  295. package/dist/esm/receipt/due.js +257 -0
  296. package/dist/esm/receipt/epos.d.ts +22 -22
  297. package/dist/esm/receipt/epos.js +47 -47
  298. package/dist/esm/receipt/grid.d.ts +10 -10
  299. package/dist/esm/receipt/grid.js +18 -18
  300. package/dist/esm/receipt/index.d.ts +9 -8
  301. package/dist/esm/receipt/index.js +9 -8
  302. package/dist/esm/receipt/layout-escpos.d.ts +24 -24
  303. package/dist/esm/receipt/layout-escpos.js +51 -51
  304. package/dist/esm/receipt/layout.d.ts +28 -23
  305. package/dist/esm/receipt/layout.js +44 -20
  306. package/dist/esm/receipt/marke-daten.d.ts +8 -8
  307. package/dist/esm/receipt/marke-daten.js +7 -7
  308. package/dist/esm/receipt/marke.d.ts +7 -7
  309. package/dist/esm/receipt/marke.js +10 -10
  310. package/dist/esm/register/errors.d.ts +61 -0
  311. package/dist/esm/register/errors.js +104 -0
  312. package/dist/esm/register/index.d.ts +14 -1
  313. package/dist/esm/register/index.js +13 -0
  314. package/dist/esm/register/pairing.d.ts +55 -36
  315. package/dist/esm/register/pairing.js +33 -29
  316. package/dist/esm/register/session.d.ts +5 -5
  317. package/dist/esm/register/session.js +7 -7
  318. package/dist/esm/stored/draht.d.ts +45 -0
  319. package/dist/esm/stored/draht.js +208 -0
  320. package/dist/esm/stored/einstellungen.d.ts +23 -0
  321. package/dist/esm/stored/einstellungen.js +196 -0
  322. package/dist/esm/stored/index.d.ts +109 -0
  323. package/dist/esm/stored/index.js +217 -0
  324. package/dist/esm/stored/vokabular.d.ts +18 -0
  325. package/dist/esm/stored/vokabular.js +386 -0
  326. package/dist/esm/version.d.ts +7 -0
  327. package/dist/esm/version.js +7 -0
  328. package/dist/esm/vienna-time.d.ts +1 -1
  329. package/dist/esm/vienna-time.js +2 -2
  330. package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
  331. package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
  332. package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
  333. package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
  334. package/fixtures/expected/cancellation-full.sheet32.json +218 -0
  335. package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
  336. package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
  337. package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
  338. package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
  339. package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
  340. package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
  341. package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
  342. package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
  343. package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
  344. package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
  345. package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
  346. package/fixtures/expected/card-custom.sheet32.json +158 -0
  347. package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
  348. package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
  349. package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
  350. package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
  351. package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
  352. package/fixtures/expected/card-gptom.sheet32.json +230 -0
  353. package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
  354. package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
  355. package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
  356. package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
  357. package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
  358. package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
  359. package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
  360. package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
  361. package/fixtures/expected/card-mypos.sheet32.json +254 -0
  362. package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
  363. package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
  364. package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
  365. package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
  366. package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
  367. package/fixtures/expected/card-stripe.sheet32.json +212 -0
  368. package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
  369. package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
  370. package/fixtures/expected/card-sumup.sheet32.json +218 -0
  371. package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
  372. package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
  373. package/fixtures/expected/discount-lines.sheet32.json +200 -0
  374. package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
  375. package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
  376. package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
  377. package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
  378. package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
  379. package/fixtures/expected/discount-simple.sheet32.json +182 -0
  380. package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
  381. package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
  382. package/fixtures/expected/discount-tip.sheet32.json +212 -0
  383. package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
  384. package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
  385. package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
  386. package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
  387. package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
  388. package/fixtures/expected/long-item-name.sheet32.json +176 -0
  389. package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
  390. package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
  391. package/fixtures/expected/sale-card.sheet32.json +176 -0
  392. package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
  393. package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
  394. package/fixtures/expected/sale-cash.sheet32.json +176 -0
  395. package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
  396. package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
  397. package/fixtures/expected/sale-small-business.sheet32.json +182 -0
  398. package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
  399. package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
  400. package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
  401. package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
  402. package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
  403. package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
  404. package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
  405. package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
  406. package/fixtures/expected/split-cash-change.sheet32.json +194 -0
  407. package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
  408. package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
  409. package/fixtures/expected/split-long-amount.sheet32.json +266 -0
  410. package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
  411. package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
  412. package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
  413. package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
  414. package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
  415. package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
  416. package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
  417. package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
  418. package/fixtures/expected/split-tip-card.sheet32.json +272 -0
  419. package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
  420. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
  421. package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
  422. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
  423. package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
  424. package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
  425. package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
  426. package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
  427. package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
  428. package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
  429. package/fixtures/{erwartet → expected}/training.lines.json +2 -2
  430. package/fixtures/expected/training.sheet32.json +236 -0
  431. package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
  432. package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
  433. package/fixtures/expected/zero-annual.sheet32.json +212 -0
  434. package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
  435. package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
  436. package/fixtures/expected/zero-final.sheet32.json +206 -0
  437. package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
  438. package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
  439. package/fixtures/expected/zero-manual.sheet32.json +206 -0
  440. package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
  441. package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
  442. package/fixtures/expected/zero-monthly.sheet32.json +206 -0
  443. package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
  444. package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
  445. package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
  446. package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
  447. package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
  448. package/fixtures/expected/zero-start.sheet32.json +206 -0
  449. package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
  450. package/fixtures/hobex-hps-codes.json +40 -40
  451. package/fixtures/invoice-api-examples/brands-ok.json +8 -0
  452. package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
  453. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
  454. package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
  455. package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
  456. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
  457. package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
  458. package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
  459. package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
  460. package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
  461. package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
  462. package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
  463. package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
  464. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
  465. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
  466. package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
  467. package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
  468. package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
  469. package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
  470. package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
  471. package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
  472. package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
  473. package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
  474. package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
  475. package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
  476. package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
  477. package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
  478. package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
  479. package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
  480. package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
  481. package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
  482. package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
  483. package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
  484. package/fixtures/invoice-texts.json +464 -0
  485. package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
  486. package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
  487. package/fixtures/manifest.json +252 -252
  488. package/fixtures/pos-message-cases.json +32 -0
  489. package/fixtures/pos-settings-defaults.json +149 -0
  490. package/fixtures/pos-texts.json +957 -0
  491. package/fixtures/receipt-due-generated.json +1218 -0
  492. package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
  493. package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
  494. package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
  495. package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
  496. package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
  497. package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
  498. package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
  499. package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
  500. package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
  501. package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
  502. package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
  503. package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
  504. package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
  505. package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
  506. package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
  507. package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
  508. package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
  509. package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
  510. package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
  511. package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
  512. package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
  513. package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
  514. package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
  515. package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
  516. package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
  517. package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
  518. package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
  519. package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
  520. package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
  521. package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
  522. package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
  523. package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
  524. package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
  525. package/fixtures/{belege → receipts}/training.json +2 -2
  526. package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
  527. package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
  528. package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
  529. package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
  530. package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
  531. package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
  532. package/fixtures/renames-1.0.json +1490 -0
  533. package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +10 -8
  534. package/fixtures/surface.json +877 -0
  535. package/fixtures/v3/README.md +125 -0
  536. package/fixtures/v3/antworten/belege.json +4738 -0
  537. package/fixtures/v3/antworten/belegmail.json +154 -0
  538. package/fixtures/v3/antworten/kasse-belege.json +4304 -0
  539. package/fixtures/v3/antworten/kasse.json +12716 -0
  540. package/fixtures/v3/antworten/rechnungen.json +1712 -0
  541. package/fixtures/v3/antworten/storno.json +737 -0
  542. package/fixtures/v3/stored/belege.json +502 -0
  543. package/fixtures/v3/stored/kasse.json +3461 -0
  544. package/fixtures/v3/stored/rechnungen.json +750 -0
  545. package/fixtures/v3/v3-vokabular.json +3375 -0
  546. package/fixtures/v3/zahlbetrag-faelle.json +794 -0
  547. package/package.json +32 -18
  548. package/dist/cjs/kasse/artikel.d.ts +0 -83
  549. package/dist/cjs/kasse/artikel.js +0 -79
  550. package/dist/cjs/kasse/client.d.ts +0 -10
  551. package/dist/cjs/kasse/client.js +0 -38
  552. package/dist/cjs/kasse/drucker.d.ts +0 -59
  553. package/dist/cjs/kasse/drucker.js +0 -50
  554. package/dist/cjs/kasse/index.d.ts +0 -13
  555. package/dist/cjs/kasse/index.js +0 -79
  556. package/dist/cjs/kasse/settings.d.ts +0 -227
  557. package/dist/cjs/kasse/settings.js +0 -169
  558. package/dist/cjs/kasse/texte.d.ts +0 -458
  559. package/dist/cjs/kasse/texte.js +0 -244
  560. package/dist/cjs/rechnung/fehler.d.ts +0 -21
  561. package/dist/cjs/rechnung/fehler.js +0 -44
  562. package/dist/cjs/rechnung/index.d.ts +0 -21
  563. package/dist/cjs/rechnung/index.js +0 -82
  564. package/dist/cjs/rechnung/texte.d.ts +0 -222
  565. package/dist/cjs/rechnung/texte.js +0 -425
  566. package/dist/esm/kasse/artikel.d.ts +0 -83
  567. package/dist/esm/kasse/artikel.js +0 -70
  568. package/dist/esm/kasse/client.d.ts +0 -10
  569. package/dist/esm/kasse/client.js +0 -33
  570. package/dist/esm/kasse/drucker.d.ts +0 -59
  571. package/dist/esm/kasse/drucker.js +0 -45
  572. package/dist/esm/kasse/index.d.ts +0 -13
  573. package/dist/esm/kasse/index.js +0 -18
  574. package/dist/esm/kasse/settings.d.ts +0 -227
  575. package/dist/esm/kasse/settings.js +0 -165
  576. package/dist/esm/kasse/texte.d.ts +0 -458
  577. package/dist/esm/kasse/texte.js +0 -238
  578. package/dist/esm/rechnung/fehler.d.ts +0 -21
  579. package/dist/esm/rechnung/fehler.js +0 -39
  580. package/dist/esm/rechnung/index.d.ts +0 -21
  581. package/dist/esm/rechnung/index.js +0 -20
  582. package/dist/esm/rechnung/texte.d.ts +0 -222
  583. package/dist/esm/rechnung/texte.js +0 -421
  584. package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
  585. package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
  586. package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
  587. package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
  588. package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
  589. package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
  590. package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
  591. package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
  592. package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
  593. package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
  594. package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
  595. package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
  596. package/fixtures/erwartet/null-monat.blatt32.json +0 -206
  597. package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
  598. package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
  599. package/fixtures/erwartet/null-start.blatt32.json +0 -206
  600. package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
  601. package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
  602. package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
  603. package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
  604. package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
  605. package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
  606. package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
  607. package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
  608. package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
  609. package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
  610. package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
  611. package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
  612. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
  613. package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
  614. package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
  615. package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
  616. package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
  617. package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
  618. package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
  619. package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
  620. package/fixtures/erwartet/training.blatt32.json +0 -236
  621. package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
  622. package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
  623. package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
  624. package/fixtures/kasse-meldungen-faelle.json +0 -32
  625. package/fixtures/kasse-texte.json +0 -513
  626. package/fixtures/oberflaeche.json +0 -557
  627. package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
  628. package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
  629. package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
  630. package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
  631. package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
  632. package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
  633. package/fixtures/rechnung-texte.json +0 -464
  634. /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
  635. /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
  636. /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
  637. /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
  638. /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
  639. /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
  640. /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
  641. /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
  642. /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
  643. /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
  644. /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
  645. /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
  646. /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
  647. /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
  648. /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
  649. /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
  650. /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
  651. /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
  652. /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
  653. /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
  654. /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
  655. /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
  656. /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
  657. /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
  658. /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
  659. /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
  660. /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
  661. /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
  662. /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
  663. /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
  664. /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
  665. /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
  666. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
  667. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
  668. /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
  669. /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
  670. /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
  671. /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
  672. /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
  673. /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
  674. /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
  675. /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
  676. /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
  677. /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
  678. /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
  679. /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
  680. /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
  681. /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
  682. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
  683. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
  684. /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
  685. /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
  686. /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
  687. /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
  688. /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
  689. /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
  690. /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
  691. /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
  692. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
  693. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
  694. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
  695. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
  696. /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
  697. /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
  698. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
  699. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
  700. /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
  701. /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
  702. /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
  703. /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
  704. /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
  705. /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
  706. /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
  707. /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
  708. /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
  709. /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
  710. /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
  711. /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
  712. /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
  713. /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
  714. /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
  715. /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
  716. /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
  717. /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