@kreiseck/kasseneck-api 1.13.0 → 1.15.0

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 (431) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +71 -2
  3. package/dist/cjs/client/api.d.ts +8 -1
  4. package/dist/cjs/client/api.js +4 -0
  5. package/dist/cjs/client/aufrufe.d.ts +6 -6
  6. package/dist/cjs/client/aufrufe.js +11 -2
  7. package/dist/cjs/client/index.d.ts +2 -1
  8. package/dist/cjs/client/index.js +13 -1
  9. package/dist/cjs/client/list-receipts.d.ts +211 -0
  10. package/dist/cjs/client/list-receipts.js +290 -0
  11. package/dist/cjs/client/receipts.d.ts +85 -2
  12. package/dist/cjs/client/receipts.js +164 -5
  13. package/dist/cjs/enums/voucher-type.d.ts +1 -1
  14. package/dist/cjs/enums/voucher-type.js +1 -1
  15. package/dist/cjs/index.d.ts +2 -2
  16. package/dist/cjs/index.js +24 -3
  17. package/dist/cjs/invoice/typen.d.ts +1 -1
  18. package/dist/cjs/invoice/vertrag.d.ts +1 -1
  19. package/dist/cjs/invoice/vertrag.js +2 -0
  20. package/dist/cjs/models/index.d.ts +2 -1
  21. package/dist/cjs/models/index.js +12 -1
  22. package/dist/cjs/models/receipt-errors.d.ts +1 -1
  23. package/dist/cjs/models/receipt-errors.js +3 -0
  24. package/dist/cjs/models/receipt-output.d.ts +79 -0
  25. package/dist/cjs/models/receipt-output.js +143 -0
  26. package/dist/cjs/models/receipt.d.ts +2 -2
  27. package/dist/cjs/models/receipt.js +2 -2
  28. package/dist/cjs/models/voucher.d.ts +24 -2
  29. package/dist/cjs/models/voucher.js +2 -2
  30. package/dist/cjs/partner/typen.d.ts +1 -1
  31. package/dist/cjs/pos/index.d.ts +2 -1
  32. package/dist/cjs/pos/index.js +6 -1
  33. package/dist/cjs/pos/schicht-typen.d.ts +2 -2
  34. package/dist/cjs/pos/schicht-typen.js +2 -2
  35. package/dist/cjs/pos/settings.d.ts +1 -1
  36. package/dist/cjs/pos/settings.js +5 -0
  37. package/dist/cjs/pos/texte.d.ts +114 -0
  38. package/dist/cjs/pos/texte.js +64 -0
  39. package/dist/cjs/receipt/due.d.ts +4 -2
  40. package/dist/cjs/receipt/due.js +22 -5
  41. package/dist/cjs/receipt/duplikat.d.ts +35 -0
  42. package/dist/cjs/receipt/duplikat.js +76 -0
  43. package/dist/cjs/receipt/gutschein-plan.d.ts +2 -0
  44. package/dist/cjs/receipt/gutschein-plan.js +5 -0
  45. package/dist/cjs/receipt/index.d.ts +1 -0
  46. package/dist/cjs/receipt/index.js +4 -2
  47. package/dist/cjs/receipt/layout.js +44 -21
  48. package/dist/cjs/register/pairing.d.ts +6 -2
  49. package/dist/cjs/register/pairing.js +1 -1
  50. package/dist/cjs/stored/bon-layout.js +3 -4
  51. package/dist/cjs/stored/vokabular.d.ts +1 -1
  52. package/dist/cjs/stored/vokabular.js +47 -3
  53. package/dist/cjs/version.d.ts +1 -1
  54. package/dist/cjs/version.js +1 -1
  55. package/dist/esm/client/api.d.ts +8 -1
  56. package/dist/esm/client/api.js +5 -1
  57. package/dist/esm/client/aufrufe.d.ts +6 -6
  58. package/dist/esm/client/aufrufe.js +11 -2
  59. package/dist/esm/client/index.d.ts +2 -1
  60. package/dist/esm/client/index.js +2 -1
  61. package/dist/esm/client/list-receipts.d.ts +211 -0
  62. package/dist/esm/client/list-receipts.js +284 -0
  63. package/dist/esm/client/receipts.d.ts +85 -2
  64. package/dist/esm/client/receipts.js +164 -6
  65. package/dist/esm/enums/voucher-type.d.ts +1 -1
  66. package/dist/esm/enums/voucher-type.js +1 -1
  67. package/dist/esm/index.d.ts +2 -2
  68. package/dist/esm/index.js +2 -2
  69. package/dist/esm/invoice/typen.d.ts +1 -1
  70. package/dist/esm/invoice/vertrag.d.ts +1 -1
  71. package/dist/esm/invoice/vertrag.js +2 -0
  72. package/dist/esm/models/index.d.ts +2 -1
  73. package/dist/esm/models/index.js +1 -0
  74. package/dist/esm/models/receipt-errors.d.ts +1 -1
  75. package/dist/esm/models/receipt-errors.js +3 -0
  76. package/dist/esm/models/receipt-output.d.ts +79 -0
  77. package/dist/esm/models/receipt-output.js +135 -0
  78. package/dist/esm/models/receipt.d.ts +2 -2
  79. package/dist/esm/models/receipt.js +2 -2
  80. package/dist/esm/models/voucher.d.ts +24 -2
  81. package/dist/esm/models/voucher.js +2 -2
  82. package/dist/esm/partner/typen.d.ts +1 -1
  83. package/dist/esm/pos/index.d.ts +2 -1
  84. package/dist/esm/pos/index.js +3 -1
  85. package/dist/esm/pos/schicht-typen.d.ts +2 -2
  86. package/dist/esm/pos/schicht-typen.js +2 -2
  87. package/dist/esm/pos/settings.d.ts +1 -1
  88. package/dist/esm/pos/settings.js +5 -0
  89. package/dist/esm/pos/texte.d.ts +114 -0
  90. package/dist/esm/pos/texte.js +63 -0
  91. package/dist/esm/receipt/due.d.ts +4 -2
  92. package/dist/esm/receipt/due.js +23 -6
  93. package/dist/esm/receipt/duplikat.d.ts +35 -0
  94. package/dist/esm/receipt/duplikat.js +73 -0
  95. package/dist/esm/receipt/gutschein-plan.d.ts +2 -0
  96. package/dist/esm/receipt/gutschein-plan.js +4 -0
  97. package/dist/esm/receipt/index.d.ts +1 -0
  98. package/dist/esm/receipt/index.js +1 -0
  99. package/dist/esm/receipt/layout.js +44 -21
  100. package/dist/esm/register/pairing.d.ts +6 -2
  101. package/dist/esm/register/pairing.js +1 -1
  102. package/dist/esm/stored/bon-layout.js +3 -4
  103. package/dist/esm/stored/vokabular.d.ts +1 -1
  104. package/dist/esm/stored/vokabular.js +47 -3
  105. package/dist/esm/version.d.ts +1 -1
  106. package/dist/esm/version.js +1 -1
  107. package/fixtures/code-table-receipts.json +1 -1
  108. package/fixtures/duplicate-cases.json +5616 -0
  109. package/fixtures/expected/cancellation-discount.grid32.txt +1 -1
  110. package/fixtures/expected/cancellation-discount.grid48.txt +1 -1
  111. package/fixtures/expected/cancellation-discount.lines.json +1 -1
  112. package/fixtures/expected/cancellation-discount.sheet32.json +1 -1
  113. package/fixtures/expected/cancellation-discount.sheet48.json +1 -1
  114. package/fixtures/expected/cancellation-full.grid32.txt +1 -1
  115. package/fixtures/expected/cancellation-full.grid48.txt +1 -1
  116. package/fixtures/expected/cancellation-full.lines.json +1 -1
  117. package/fixtures/expected/cancellation-full.sheet32.json +1 -1
  118. package/fixtures/expected/cancellation-full.sheet48.json +1 -1
  119. package/fixtures/expected/cancellation-partial.grid32.txt +1 -1
  120. package/fixtures/expected/cancellation-partial.grid48.txt +1 -1
  121. package/fixtures/expected/cancellation-partial.lines.json +1 -1
  122. package/fixtures/expected/cancellation-partial.sheet32.json +1 -1
  123. package/fixtures/expected/cancellation-partial.sheet48.json +1 -1
  124. package/fixtures/expected/cancellation-split-full.grid32.txt +1 -1
  125. package/fixtures/expected/cancellation-split-full.grid48.txt +1 -1
  126. package/fixtures/expected/cancellation-split-full.lines.json +1 -1
  127. package/fixtures/expected/cancellation-split-full.sheet32.json +1 -1
  128. package/fixtures/expected/cancellation-split-full.sheet48.json +1 -1
  129. package/fixtures/expected/cancellation-split-partial.grid32.txt +1 -1
  130. package/fixtures/expected/cancellation-split-partial.grid48.txt +1 -1
  131. package/fixtures/expected/cancellation-split-partial.lines.json +1 -1
  132. package/fixtures/expected/cancellation-split-partial.sheet32.json +1 -1
  133. package/fixtures/expected/cancellation-split-partial.sheet48.json +1 -1
  134. package/fixtures/expected/card-custom.grid32.txt +1 -1
  135. package/fixtures/expected/card-custom.grid48.txt +1 -1
  136. package/fixtures/expected/card-custom.lines.json +1 -1
  137. package/fixtures/expected/card-custom.sheet32.json +1 -1
  138. package/fixtures/expected/card-custom.sheet48.json +1 -1
  139. package/fixtures/expected/card-gptom-ios.grid32.txt +1 -1
  140. package/fixtures/expected/card-gptom-ios.grid48.txt +1 -1
  141. package/fixtures/expected/card-gptom-ios.lines.json +1 -1
  142. package/fixtures/expected/card-gptom-ios.sheet32.json +1 -1
  143. package/fixtures/expected/card-gptom-ios.sheet48.json +1 -1
  144. package/fixtures/expected/card-gptom.grid32.txt +1 -1
  145. package/fixtures/expected/card-gptom.grid48.txt +1 -1
  146. package/fixtures/expected/card-gptom.lines.json +1 -1
  147. package/fixtures/expected/card-gptom.sheet32.json +1 -1
  148. package/fixtures/expected/card-gptom.sheet48.json +1 -1
  149. package/fixtures/expected/card-hobex-cloud.grid32.txt +1 -1
  150. package/fixtures/expected/card-hobex-cloud.grid48.txt +1 -1
  151. package/fixtures/expected/card-hobex-cloud.lines.json +1 -1
  152. package/fixtures/expected/card-hobex-cloud.sheet32.json +1 -1
  153. package/fixtures/expected/card-hobex-cloud.sheet48.json +1 -1
  154. package/fixtures/expected/card-hobex-hps.grid32.txt +1 -1
  155. package/fixtures/expected/card-hobex-hps.grid48.txt +1 -1
  156. package/fixtures/expected/card-hobex-hps.lines.json +1 -1
  157. package/fixtures/expected/card-hobex-hps.sheet32.json +1 -1
  158. package/fixtures/expected/card-hobex-hps.sheet48.json +1 -1
  159. package/fixtures/expected/card-mypos.grid32.txt +1 -1
  160. package/fixtures/expected/card-mypos.grid48.txt +1 -1
  161. package/fixtures/expected/card-mypos.lines.json +1 -1
  162. package/fixtures/expected/card-mypos.sheet32.json +1 -1
  163. package/fixtures/expected/card-mypos.sheet48.json +1 -1
  164. package/fixtures/expected/card-stripe-eps.grid32.txt +1 -1
  165. package/fixtures/expected/card-stripe-eps.grid48.txt +1 -1
  166. package/fixtures/expected/card-stripe-eps.lines.json +1 -1
  167. package/fixtures/expected/card-stripe-eps.sheet32.json +1 -1
  168. package/fixtures/expected/card-stripe-eps.sheet48.json +1 -1
  169. package/fixtures/expected/card-stripe.grid32.txt +1 -1
  170. package/fixtures/expected/card-stripe.grid48.txt +1 -1
  171. package/fixtures/expected/card-stripe.lines.json +1 -1
  172. package/fixtures/expected/card-stripe.sheet32.json +1 -1
  173. package/fixtures/expected/card-stripe.sheet48.json +1 -1
  174. package/fixtures/expected/card-sumup.grid32.txt +1 -1
  175. package/fixtures/expected/card-sumup.grid48.txt +1 -1
  176. package/fixtures/expected/card-sumup.lines.json +1 -1
  177. package/fixtures/expected/card-sumup.sheet32.json +1 -1
  178. package/fixtures/expected/card-sumup.sheet48.json +1 -1
  179. package/fixtures/expected/code-table-receipt.long-item-name.iso8859_15.hex +1 -1
  180. package/fixtures/expected/code-table-receipt.long-item-name.pc437.hex +1 -1
  181. package/fixtures/expected/code-table-receipt.long-item-name.pc850.hex +1 -1
  182. package/fixtures/expected/code-table-receipt.long-item-name.pc858.hex +1 -1
  183. package/fixtures/expected/code-table-receipt.long-item-name.replacement.hex +1 -1
  184. package/fixtures/expected/code-table-receipt.long-item-name.wpc1252.hex +1 -1
  185. package/fixtures/expected/code-table-receipt.sale-cash.iso8859_15.hex +1 -1
  186. package/fixtures/expected/code-table-receipt.sale-cash.pc437.hex +1 -1
  187. package/fixtures/expected/code-table-receipt.sale-cash.pc850.hex +1 -1
  188. package/fixtures/expected/code-table-receipt.sale-cash.pc858.hex +1 -1
  189. package/fixtures/expected/code-table-receipt.sale-cash.replacement.hex +1 -1
  190. package/fixtures/expected/code-table-receipt.sale-cash.wpc1252.hex +1 -1
  191. package/fixtures/expected/code-table-receipt.special-characters.iso8859_15.hex +1 -1
  192. package/fixtures/expected/code-table-receipt.special-characters.pc437.hex +1 -1
  193. package/fixtures/expected/code-table-receipt.special-characters.pc850.hex +1 -1
  194. package/fixtures/expected/code-table-receipt.special-characters.pc858.hex +1 -1
  195. package/fixtures/expected/code-table-receipt.special-characters.replacement.hex +1 -1
  196. package/fixtures/expected/code-table-receipt.special-characters.wpc1252.hex +1 -1
  197. package/fixtures/expected/code-table-receipt.test-cashregister-sale.iso8859_15.hex +1 -1
  198. package/fixtures/expected/code-table-receipt.test-cashregister-sale.pc437.hex +1 -1
  199. package/fixtures/expected/code-table-receipt.test-cashregister-sale.pc850.hex +1 -1
  200. package/fixtures/expected/code-table-receipt.test-cashregister-sale.pc858.hex +1 -1
  201. package/fixtures/expected/code-table-receipt.test-cashregister-sale.replacement.hex +1 -1
  202. package/fixtures/expected/code-table-receipt.test-cashregister-sale.wpc1252.hex +1 -1
  203. package/fixtures/expected/discount-lines.grid32.txt +1 -1
  204. package/fixtures/expected/discount-lines.grid48.txt +1 -1
  205. package/fixtures/expected/discount-lines.lines.json +1 -1
  206. package/fixtures/expected/discount-lines.sheet32.json +1 -1
  207. package/fixtures/expected/discount-lines.sheet48.json +1 -1
  208. package/fixtures/expected/discount-owner-tip.grid32.txt +1 -1
  209. package/fixtures/expected/discount-owner-tip.grid48.txt +1 -1
  210. package/fixtures/expected/discount-owner-tip.lines.json +1 -1
  211. package/fixtures/expected/discount-owner-tip.sheet32.json +1 -1
  212. package/fixtures/expected/discount-owner-tip.sheet48.json +1 -1
  213. package/fixtures/expected/discount-simple.grid32.txt +1 -1
  214. package/fixtures/expected/discount-simple.grid48.txt +1 -1
  215. package/fixtures/expected/discount-simple.lines.json +1 -1
  216. package/fixtures/expected/discount-simple.sheet32.json +1 -1
  217. package/fixtures/expected/discount-simple.sheet48.json +1 -1
  218. package/fixtures/expected/discount-tip.grid32.txt +1 -1
  219. package/fixtures/expected/discount-tip.grid48.txt +1 -1
  220. package/fixtures/expected/discount-tip.lines.json +1 -1
  221. package/fixtures/expected/discount-tip.sheet32.json +1 -1
  222. package/fixtures/expected/discount-tip.sheet48.json +1 -1
  223. package/fixtures/expected/discount-value-voucher.grid32.txt +1 -1
  224. package/fixtures/expected/discount-value-voucher.grid48.txt +1 -1
  225. package/fixtures/expected/discount-value-voucher.lines.json +1 -1
  226. package/fixtures/expected/discount-value-voucher.sheet32.json +1 -1
  227. package/fixtures/expected/discount-value-voucher.sheet48.json +1 -1
  228. package/fixtures/expected/duplicate.cancellation-full.hex +44 -0
  229. package/fixtures/expected/duplicate.cancellation-partial.hex +33 -0
  230. package/fixtures/expected/duplicate.sale-cash-mm58.hex +28 -0
  231. package/fixtures/expected/duplicate.sale-cash-twice.hex +35 -0
  232. package/fixtures/expected/duplicate.sale-cash.hex +35 -0
  233. package/fixtures/expected/duplicate.shift-close.hex +43 -0
  234. package/fixtures/expected/duplicate.summer-time-last-second.hex +28 -0
  235. package/fixtures/expected/duplicate.summer-time-start.hex +35 -0
  236. package/fixtures/expected/duplicate.test-cashregister-sale-logo.hex +189 -0
  237. package/fixtures/expected/duplicate.voucher-multi-purpose-redeem.hex +37 -0
  238. package/fixtures/expected/duplicate.voucher-service-redeem-logo.hex +119 -0
  239. package/fixtures/expected/duplicate.winter-time-first-second.hex +28 -0
  240. package/fixtures/expected/duplicate.zero-start.hex +40 -0
  241. package/fixtures/expected/long-item-name.grid32.txt +1 -1
  242. package/fixtures/expected/long-item-name.grid48.txt +1 -1
  243. package/fixtures/expected/long-item-name.lines.json +1 -1
  244. package/fixtures/expected/long-item-name.sheet32.json +1 -1
  245. package/fixtures/expected/long-item-name.sheet48.json +1 -1
  246. package/fixtures/expected/sale-card.grid32.txt +1 -1
  247. package/fixtures/expected/sale-card.grid48.txt +1 -1
  248. package/fixtures/expected/sale-card.lines.json +1 -1
  249. package/fixtures/expected/sale-card.sheet32.json +1 -1
  250. package/fixtures/expected/sale-card.sheet48.json +1 -1
  251. package/fixtures/expected/sale-cash.grid32.txt +1 -1
  252. package/fixtures/expected/sale-cash.grid48.txt +1 -1
  253. package/fixtures/expected/sale-cash.lines.json +1 -1
  254. package/fixtures/expected/sale-cash.sheet32.json +1 -1
  255. package/fixtures/expected/sale-cash.sheet48.json +1 -1
  256. package/fixtures/expected/sale-small-business.grid32.txt +1 -1
  257. package/fixtures/expected/sale-small-business.grid48.txt +1 -1
  258. package/fixtures/expected/sale-small-business.lines.json +1 -1
  259. package/fixtures/expected/sale-small-business.sheet32.json +1 -1
  260. package/fixtures/expected/sale-small-business.sheet48.json +1 -1
  261. package/fixtures/expected/signature-outage-sale.grid32.txt +1 -1
  262. package/fixtures/expected/signature-outage-sale.grid48.txt +1 -1
  263. package/fixtures/expected/signature-outage-sale.lines.json +1 -1
  264. package/fixtures/expected/signature-outage-sale.sheet32.json +1 -1
  265. package/fixtures/expected/signature-outage-sale.sheet48.json +1 -1
  266. package/fixtures/expected/split-card-card-cash.grid32.txt +1 -1
  267. package/fixtures/expected/split-card-card-cash.grid48.txt +1 -1
  268. package/fixtures/expected/split-card-card-cash.lines.json +1 -1
  269. package/fixtures/expected/split-card-card-cash.sheet32.json +1 -1
  270. package/fixtures/expected/split-card-card-cash.sheet48.json +1 -1
  271. package/fixtures/expected/split-cash-change.grid32.txt +1 -1
  272. package/fixtures/expected/split-cash-change.grid48.txt +1 -1
  273. package/fixtures/expected/split-cash-change.lines.json +1 -1
  274. package/fixtures/expected/split-cash-change.sheet32.json +1 -1
  275. package/fixtures/expected/split-cash-change.sheet48.json +1 -1
  276. package/fixtures/expected/split-long-amount.grid32.txt +1 -1
  277. package/fixtures/expected/split-long-amount.grid48.txt +1 -1
  278. package/fixtures/expected/split-long-amount.lines.json +1 -1
  279. package/fixtures/expected/split-long-amount.sheet32.json +1 -1
  280. package/fixtures/expected/split-long-amount.sheet48.json +1 -1
  281. package/fixtures/expected/split-one-card-tip.grid32.txt +1 -1
  282. package/fixtures/expected/split-one-card-tip.grid48.txt +1 -1
  283. package/fixtures/expected/split-one-card-tip.lines.json +1 -1
  284. package/fixtures/expected/split-one-card-tip.sheet32.json +1 -1
  285. package/fixtures/expected/split-one-card-tip.sheet48.json +1 -1
  286. package/fixtures/expected/split-table-round-tip.grid32.txt +1 -1
  287. package/fixtures/expected/split-table-round-tip.grid48.txt +1 -1
  288. package/fixtures/expected/split-table-round-tip.lines.json +1 -1
  289. package/fixtures/expected/split-table-round-tip.sheet32.json +1 -1
  290. package/fixtures/expected/split-table-round-tip.sheet48.json +1 -1
  291. package/fixtures/expected/split-tip-card.grid32.txt +1 -1
  292. package/fixtures/expected/split-tip-card.grid48.txt +1 -1
  293. package/fixtures/expected/split-tip-card.lines.json +1 -1
  294. package/fixtures/expected/split-tip-card.sheet32.json +1 -1
  295. package/fixtures/expected/split-tip-card.sheet48.json +1 -1
  296. package/fixtures/expected/split-two-cards-same-provider.grid32.txt +1 -1
  297. package/fixtures/expected/split-two-cards-same-provider.grid48.txt +1 -1
  298. package/fixtures/expected/split-two-cards-same-provider.lines.json +1 -1
  299. package/fixtures/expected/split-two-cards-same-provider.sheet32.json +1 -1
  300. package/fixtures/expected/split-two-cards-same-provider.sheet48.json +1 -1
  301. package/fixtures/expected/test-cashregister-sale.grid32.txt +1 -1
  302. package/fixtures/expected/test-cashregister-sale.grid48.txt +1 -1
  303. package/fixtures/expected/test-cashregister-sale.lines.json +1 -1
  304. package/fixtures/expected/test-cashregister-sale.sheet32.json +1 -1
  305. package/fixtures/expected/test-cashregister-sale.sheet48.json +1 -1
  306. package/fixtures/expected/test-signature-sale.grid32.txt +1 -1
  307. package/fixtures/expected/test-signature-sale.grid48.txt +1 -1
  308. package/fixtures/expected/test-signature-sale.lines.json +1 -1
  309. package/fixtures/expected/test-signature-sale.sheet32.json +1 -1
  310. package/fixtures/expected/test-signature-sale.sheet48.json +1 -1
  311. package/fixtures/expected/training.grid32.txt +1 -1
  312. package/fixtures/expected/training.grid48.txt +1 -1
  313. package/fixtures/expected/training.lines.json +1 -1
  314. package/fixtures/expected/training.sheet32.json +1 -1
  315. package/fixtures/expected/training.sheet48.json +1 -1
  316. package/fixtures/expected/voucher-multi-purpose-sale.grid32.txt +1 -2
  317. package/fixtures/expected/voucher-multi-purpose-sale.grid48.txt +1 -1
  318. package/fixtures/expected/voucher-multi-purpose-sale.lines.json +1 -1
  319. package/fixtures/expected/voucher-multi-purpose-sale.sheet32.json +1 -7
  320. package/fixtures/expected/voucher-multi-purpose-sale.sheet48.json +1 -1
  321. package/fixtures/expected/voucher-single-purpose-redeem-exempt.grid32.txt +1 -1
  322. package/fixtures/expected/voucher-single-purpose-redeem-exempt.grid48.txt +1 -1
  323. package/fixtures/expected/voucher-single-purpose-redeem-exempt.lines.json +1 -1
  324. package/fixtures/expected/voucher-single-purpose-redeem-exempt.sheet32.json +1 -1
  325. package/fixtures/expected/voucher-single-purpose-redeem-exempt.sheet48.json +1 -1
  326. package/fixtures/expected/voucher-single-purpose-redeem.grid32.txt +1 -1
  327. package/fixtures/expected/voucher-single-purpose-redeem.grid48.txt +1 -1
  328. package/fixtures/expected/voucher-single-purpose-redeem.lines.json +1 -1
  329. package/fixtures/expected/voucher-single-purpose-redeem.sheet32.json +1 -1
  330. package/fixtures/expected/voucher-single-purpose-redeem.sheet48.json +1 -1
  331. package/fixtures/expected/voucher-single-purpose-sale.grid32.txt +2 -3
  332. package/fixtures/expected/voucher-single-purpose-sale.grid48.txt +2 -2
  333. package/fixtures/expected/voucher-single-purpose-sale.lines.json +2 -2
  334. package/fixtures/expected/voucher-single-purpose-sale.sheet32.json +2 -8
  335. package/fixtures/expected/voucher-single-purpose-sale.sheet48.json +2 -2
  336. package/fixtures/expected/zero-annual.grid32.txt +1 -1
  337. package/fixtures/expected/zero-annual.grid48.txt +1 -1
  338. package/fixtures/expected/zero-annual.lines.json +1 -1
  339. package/fixtures/expected/zero-annual.sheet32.json +1 -1
  340. package/fixtures/expected/zero-annual.sheet48.json +1 -1
  341. package/fixtures/expected/zero-final.grid32.txt +1 -1
  342. package/fixtures/expected/zero-final.grid48.txt +1 -1
  343. package/fixtures/expected/zero-final.lines.json +1 -1
  344. package/fixtures/expected/zero-final.sheet32.json +1 -1
  345. package/fixtures/expected/zero-final.sheet48.json +1 -1
  346. package/fixtures/expected/zero-manual.grid32.txt +1 -1
  347. package/fixtures/expected/zero-manual.grid48.txt +1 -1
  348. package/fixtures/expected/zero-manual.lines.json +1 -1
  349. package/fixtures/expected/zero-manual.sheet32.json +1 -1
  350. package/fixtures/expected/zero-manual.sheet48.json +1 -1
  351. package/fixtures/expected/zero-monthly.grid32.txt +1 -1
  352. package/fixtures/expected/zero-monthly.grid48.txt +1 -1
  353. package/fixtures/expected/zero-monthly.lines.json +1 -1
  354. package/fixtures/expected/zero-monthly.sheet32.json +1 -1
  355. package/fixtures/expected/zero-monthly.sheet48.json +1 -1
  356. package/fixtures/expected/zero-outage-end.grid32.txt +1 -1
  357. package/fixtures/expected/zero-outage-end.grid48.txt +1 -1
  358. package/fixtures/expected/zero-outage-end.lines.json +1 -1
  359. package/fixtures/expected/zero-outage-end.sheet32.json +1 -1
  360. package/fixtures/expected/zero-outage-end.sheet48.json +1 -1
  361. package/fixtures/expected/zero-start.grid32.txt +1 -1
  362. package/fixtures/expected/zero-start.grid48.txt +1 -1
  363. package/fixtures/expected/zero-start.lines.json +1 -1
  364. package/fixtures/expected/zero-start.sheet32.json +1 -1
  365. package/fixtures/expected/zero-start.sheet48.json +1 -1
  366. package/fixtures/hobex-hps-codes.json +1 -1
  367. package/fixtures/invoice-api.schema.json +3 -2
  368. package/fixtures/invoice-texts.json +1 -1
  369. package/fixtures/manifest.json +260 -260
  370. package/fixtures/pos-texts.json +118 -1
  371. package/fixtures/receipt-due-voucher-generated.json +2 -2
  372. package/fixtures/receipt-outputs-cases.json +2778 -0
  373. package/fixtures/receipts/cancellation-discount.json +1 -1
  374. package/fixtures/receipts/cancellation-full.json +1 -1
  375. package/fixtures/receipts/cancellation-partial.json +1 -1
  376. package/fixtures/receipts/cancellation-split-full.json +1 -1
  377. package/fixtures/receipts/cancellation-split-partial.json +1 -1
  378. package/fixtures/receipts/card-custom.json +1 -1
  379. package/fixtures/receipts/card-gptom-ios.json +1 -1
  380. package/fixtures/receipts/card-gptom.json +1 -1
  381. package/fixtures/receipts/card-hobex-cloud.json +1 -1
  382. package/fixtures/receipts/card-hobex-hps.json +1 -1
  383. package/fixtures/receipts/card-mypos.json +1 -1
  384. package/fixtures/receipts/card-stripe-eps.json +1 -1
  385. package/fixtures/receipts/card-stripe.json +1 -1
  386. package/fixtures/receipts/card-sumup.json +1 -1
  387. package/fixtures/receipts/discount-lines.json +1 -1
  388. package/fixtures/receipts/discount-owner-tip.json +1 -1
  389. package/fixtures/receipts/discount-simple.json +1 -1
  390. package/fixtures/receipts/discount-tip.json +1 -1
  391. package/fixtures/receipts/discount-value-voucher.json +1 -1
  392. package/fixtures/receipts/long-item-name.json +1 -1
  393. package/fixtures/receipts/sale-card.json +1 -1
  394. package/fixtures/receipts/sale-cash.json +1 -1
  395. package/fixtures/receipts/sale-small-business.json +1 -1
  396. package/fixtures/receipts/signature-outage-sale.json +1 -1
  397. package/fixtures/receipts/split-card-card-cash.json +1 -1
  398. package/fixtures/receipts/split-cash-change.json +1 -1
  399. package/fixtures/receipts/split-long-amount.json +1 -1
  400. package/fixtures/receipts/split-one-card-tip.json +1 -1
  401. package/fixtures/receipts/split-table-round-tip.json +1 -1
  402. package/fixtures/receipts/split-tip-card.json +1 -1
  403. package/fixtures/receipts/split-two-cards-same-provider.json +1 -1
  404. package/fixtures/receipts/test-cashregister-sale.json +1 -1
  405. package/fixtures/receipts/test-signature-sale.json +1 -1
  406. package/fixtures/receipts/training.json +1 -1
  407. package/fixtures/receipts/zero-annual.json +1 -1
  408. package/fixtures/receipts/zero-final.json +1 -1
  409. package/fixtures/receipts/zero-manual.json +1 -1
  410. package/fixtures/receipts/zero-monthly.json +1 -1
  411. package/fixtures/receipts/zero-outage-end.json +1 -1
  412. package/fixtures/receipts/zero-start.json +1 -1
  413. package/fixtures/surface.json +30 -7
  414. package/fixtures/v3/README.md +10 -3
  415. package/fixtures/v3/antworten/belege.json +623 -125
  416. package/fixtures/v3/antworten/belegmail.json +2 -2
  417. package/fixtures/v3/antworten/kasse-belege.json +622 -122
  418. package/fixtures/v3/antworten/kasse.json +479 -38
  419. package/fixtures/v3/antworten/lager.json +1 -1
  420. package/fixtures/v3/antworten/rechnungen.json +4 -4
  421. package/fixtures/v3/antworten/storno.json +211 -3
  422. package/fixtures/v3/stored/belege.json +2 -2
  423. package/fixtures/v3/stored/kasse.json +262 -382
  424. package/fixtures/v3/stored/rechnungen.json +157 -17
  425. package/fixtures/v3/v3-vokabular.json +311 -28
  426. package/fixtures/v3/zahlbetrag-faelle.json +1070 -4
  427. package/package.json +3 -1
  428. package/dist/cjs/stored/gutscheine.d.ts +0 -3
  429. package/dist/cjs/stored/gutscheine.js +0 -60
  430. package/dist/esm/stored/gutscheine.d.ts +0 -3
  431. package/dist/esm/stored/gutscheine.js +0 -56
@@ -1,6 +1,6 @@
1
1
  export { ReceiptType, type ReceiptTypeKey, VatRate, type VatRateKey, KeckPaymentMethod, type KeckPaymentMethodKey, CreditCardProvider, type CreditCardProviderKey, VoucherType, type VoucherTypeKey, VoucherAction, type VoucherActionKey, StripeLinkMode, type StripeLinkModeKey, } from './enums/index.js';
2
- export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, isVoucherItem, isVoucherFloatItem, type Voucher, type VoucherArticle, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, type ReturnDisposition, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError, type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, TIP_REFUND_SOURCES, type TipRefundSource, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, type CashregisterAutoLogout, type CashregisterAutoLogoutPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
3
- export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type TransportCallOptions, type KasseneckTransport, type KasseneckBinaryTransport, type KasseneckPdfOrDataTransport, type PdfOrData, ALL_CALLS, type ApiCall, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, type PublicCall, type PosCall, createTransport, createBinaryTransport, createPdfOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, type ErrorOutcome, CLIENT_ERROR_CODES, type ClientErrorCode, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, type CashregisterReportPeriod, getReportV2, type ReportV2, type ReportV2Metadata, type ReportV2Options, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
2
+ export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, isVoucherItem, isVoucherFloatItem, type Voucher, type VoucherArticle, type IssuedVoucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, type ReturnDisposition, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError, type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, RECEIPT_OUTPUT_KINDS, type ReceiptOutputKind, RECEIPT_OUTPUT_LOG_KINDS, type ReceiptOutputLogKind, RECEIPT_OUTPUT_RESULTS, type ReceiptOutputResult, RECEIPT_OUTPUT_ENTRIES_MAX, type ReceiptOutput, type ReceiptOutputActor, RECEIPT_OUTPUT_ENTRY_ERROR_CODES, type ReceiptOutputEntryErrorCode, RECEIPT_OUTPUT_ERROR_CODES, type ReceiptOutputErrorCode, isReceiptOutputErrorCode, receiptOutputErrorCode, isReceiptOutputError, receiptOutputFieldErrors, type ReceiptOutputFieldError, type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, TIP_REFUND_SOURCES, type TipRefundSource, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, type CashregisterAutoLogout, type CashregisterAutoLogoutPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
3
+ export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type TransportCallOptions, type KasseneckTransport, type KasseneckBinaryTransport, type KasseneckPdfOrDataTransport, type PdfOrData, ALL_CALLS, type ApiCall, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, type PublicCall, type PosCall, createTransport, createBinaryTransport, createPdfOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, type ErrorOutcome, CLIENT_ERROR_CODES, type ClientErrorCode, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, type ReceiptOutputEntry, type LogReceiptOutputsOptions, type LogReceiptOutputsResult, type RejectedReceiptOutput, logReceiptOutputs, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, type CashregisterReportPeriod, getReportV2, type ReportV2, type ReportV2Metadata, type ReportV2Options, listReceipts, listAllReceipts, fromListReceiptsSummaryPayload, LIST_RECEIPTS_VIEWS, LIST_RECEIPTS_ORDERS, LIST_RECEIPTS_LIMIT_MAX, LIST_RECEIPTS_DAYS_MAX, LIST_ALL_RECEIPTS_MAX_PAGES, LIST_RECEIPTS_ERROR_CODES, type ListReceiptsErrorCode, type ListReceiptsView, type ListReceiptsOrder, type ListReceiptsOptions, type ListReceiptsWindow, type ListReceiptsGrossByRate, type ListReceiptsSummary, type ListReceiptsDaySummary, type ListReceiptsPage, type ListedReceipt, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
4
4
  export { type ReceiptDueTip, type ReceiptDueTipRecipient, type ReceiptDueOptions, type ReceiptDueBuckets, type ReceiptDueBreakdown, type ReceiptDueErrorReason, receiptDueCents, receiptDueBreakdown, ReceiptDueError, RECEIPT_DUE_ERROR_REASONS, isReceiptDueError, type VoucherDueInfo, type VoucherDueArticle, type VoucherRedeemContext, voucherRedeemMaxCents, VOUCHER_ZERO_RATE_BUCKET_FROM, } from './receipt/due.js';
5
5
  export { parseServerTimeStamp, toViennaWallClock, type ViennaWallClock } from './vienna-time.js';
6
6
  export { type PosBusinessSettings, type PosDeviceSettings, type PosSettings, type ArticleGroup, type PosArticle, POS_BUSINESS_DEFAULTS, POS_DEVICE_DEFAULTS, mergePosSettings, fromArticleGroupPayload, fromPosArticlePayload, listMyArticleGroups, listMyArticles, getPosSettings, setMyPosSettings, setMyRegisterDeviceSettings, distributeDiscount, cancelScopeOf, receiptsScopeOf, stockViewOf, voucherPermsOf, } from './pos/index.js';
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { ReceiptType, VatRate, KeckPaymentMethod, CreditCardProvider, VoucherType, VoucherAction, StripeLinkMode, } from './enums/index.js';
2
- export { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, isTipItem, isVoucherItem, isVoucherFloatItem, toVoucherPayload, fromVoucherPayload, voucherIsValid, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, fromReceiptPaymentPayload, toReceiptPaymentPayload, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, TIP_REFUND_SOURCES, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, fromReceiptCompanyPayload, receiptCompanyTaxInfo, fromCashregisterPayload, fromReceiptSummaryPayload, ZERO_KINDS, isZeroKind, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
3
- export { apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, ALL_CALLS, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, createTransport, createBinaryTransport, createPdfOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, CLIENT_ERROR_CODES, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, listMyCashregisters, checkVoucherCombinationError, sendReceiptEmail, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, getReportV2, getCashboxStatus, getSignatureStatus, createKasseneckApi, } from './client/index.js';
2
+ export { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, isTipItem, isVoucherItem, isVoucherFloatItem, toVoucherPayload, fromVoucherPayload, voucherIsValid, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, fromReceiptPaymentPayload, toReceiptPaymentPayload, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, RECEIPT_OUTPUT_KINDS, RECEIPT_OUTPUT_LOG_KINDS, RECEIPT_OUTPUT_RESULTS, RECEIPT_OUTPUT_ENTRIES_MAX, RECEIPT_OUTPUT_ENTRY_ERROR_CODES, RECEIPT_OUTPUT_ERROR_CODES, isReceiptOutputErrorCode, receiptOutputErrorCode, isReceiptOutputError, receiptOutputFieldErrors, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, TIP_REFUND_SOURCES, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, fromReceiptCompanyPayload, receiptCompanyTaxInfo, fromCashregisterPayload, fromReceiptSummaryPayload, ZERO_KINDS, isZeroKind, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
3
+ export { apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, ALL_CALLS, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, createTransport, createBinaryTransport, createPdfOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, CLIENT_ERROR_CODES, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, listMyCashregisters, checkVoucherCombinationError, sendReceiptEmail, logReceiptOutputs, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, getReportV2, listReceipts, listAllReceipts, fromListReceiptsSummaryPayload, LIST_RECEIPTS_VIEWS, LIST_RECEIPTS_ORDERS, LIST_RECEIPTS_LIMIT_MAX, LIST_RECEIPTS_DAYS_MAX, LIST_ALL_RECEIPTS_MAX_PAGES, LIST_RECEIPTS_ERROR_CODES, getCashboxStatus, getSignatureStatus, createKasseneckApi, } from './client/index.js';
4
4
  export { receiptDueCents, receiptDueBreakdown, ReceiptDueError, RECEIPT_DUE_ERROR_REASONS, isReceiptDueError, voucherRedeemMaxCents, VOUCHER_ZERO_RATE_BUCKET_FROM, } from './receipt/due.js';
5
5
  export { parseServerTimeStamp, toViennaWallClock } from './vienna-time.js';
6
6
  export { POS_BUSINESS_DEFAULTS, POS_DEVICE_DEFAULTS, mergePosSettings, fromArticleGroupPayload, fromPosArticlePayload, listMyArticleGroups, listMyArticles, getPosSettings, setMyPosSettings, setMyRegisterDeviceSettings, distributeDiscount, cancelScopeOf, receiptsScopeOf, stockViewOf, voucherPermsOf, } from './pos/index.js';
@@ -18,7 +18,7 @@ export interface CustomerInput {
18
18
  city?: string;
19
19
  /** ISO-3166-Alpha-2, z. B. `AT`. */
20
20
  country: string;
21
- /** UID-Nummer, z. B. `ATU12345678`. */
21
+ /** UID-Nummer, z. B. `ATU12345675`. */
22
22
  vatId?: string;
23
23
  /** Kuerzel fuer die Rechnungsnummer; einmal gesetzt unveraenderlich. */
24
24
  shortCode?: string;
@@ -27,7 +27,7 @@ export type InvoiceEndpoint = (typeof INVOICE_ENDPOINTS)[number];
27
27
  * Stabile Fehlercodes. Das Fremdsystem verzweigt am Code, der Text darf sich
28
28
  * aendern. `validation` traegt zusaetzlich `errors: [{ field, message }]`.
29
29
  */
30
- export declare const INVOICE_ERROR_CODES: readonly ["validation", "idempotency_conflict", "module_inactive", "customer_not_found", "customer_exists", "short_code_taken", "short_code_immutable", "recipient_required", "invoice_requirements_missing", "invoice_not_found", "invoice_ambiguous", "not_cancellable", "partial_credit_exists", "credit_exceeds_invoice", "einvoice_incomplete", "invoice_api_not_enabled", "invoice_setup_incomplete", "language_not_allowed", "brand_not_found", "not_payable", "payment_exceeds_invoice", "tax_scheme_mismatch", "vat_rate_not_in_country", "reverse_charge_reason_required", "reverse_charge_threshold", "mixed_supply_not_allowed", "oss_not_enabled", "einvoice_unavailable", "amount_too_large", "vat_id_invalid", "vat_id_check_pending", "reservation_not_found", "reservation_mismatch", "reservation_not_active"];
30
+ export declare const INVOICE_ERROR_CODES: readonly ["validation", "idempotency_conflict", "module_inactive", "customer_not_found", "customer_exists", "short_code_taken", "short_code_immutable", "recipient_required", "invoice_requirements_missing", "invoice_not_found", "invoice_ambiguous", "not_cancellable", "partial_credit_exists", "credit_exceeds_invoice", "einvoice_incomplete", "invoice_api_not_enabled", "invoice_setup_incomplete", "language_not_allowed", "brand_not_found", "not_payable", "payment_exceeds_invoice", "tax_scheme_mismatch", "vat_rate_not_in_country", "reverse_charge_reason_required", "reverse_charge_threshold", "mixed_supply_not_allowed", "oss_not_enabled", "einvoice_unavailable", "amount_too_large", "vat_id_invalid", "vat_id_check_pending", "reservation_not_found", "reservation_mismatch", "reservation_not_active", "invoice_number_taken"];
31
31
  export type InvoiceErrorCode = (typeof INVOICE_ERROR_CODES)[number];
32
32
  /**
33
33
  * Codes, die Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen,
@@ -77,6 +77,8 @@ export const INVOICE_ERROR_CODES = [
77
77
  'reservation_not_found', // unbekannt oder einem anderen Konto
78
78
  'reservation_mismatch', // keine offene Position mit gleichem Artikel am Lagerstandort der Rechnung
79
79
  'reservation_not_active', // schon eingeloest oder freigegeben
80
+ // Seit 1.15.0 (Vertrag): die Rechnungsnummer ist schon vergeben (§ 11 Abs. 1 Z 3 lit. h UStG), nichts ausgestellt.
81
+ 'invoice_number_taken',
80
82
  ];
81
83
  /**
82
84
  * Codes, die Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen,
@@ -1,11 +1,12 @@
1
1
  export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, isDiscountItem, isVoucherItem, isVoucherFloatItem, } from './receipt-item.js';
2
- export { type Voucher, type VoucherArticle, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, isNewFormVoucher, voucherServerFields } from './voucher.js';
2
+ export { type Voucher, type VoucherArticle, type IssuedVoucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, isNewFormVoucher, voucherServerFields } from './voucher.js';
3
3
  export { type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, readRegistrationInfo, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, } from './receipt.js';
4
4
  export { type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, type ReturnDisposition, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, remainingQuantities, TIP_REFUND_SOURCES, type TipRefundSource, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, } from './cancellation.js';
5
5
  export { type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, } from './receipt-payment.js';
6
6
  export { type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError } from './payment-errors.js';
7
7
  export { type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, } from './receipt-email.js';
8
8
  export { type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, } from './receipt-errors.js';
9
+ export { RECEIPT_OUTPUT_KINDS, type ReceiptOutputKind, RECEIPT_OUTPUT_LOG_KINDS, type ReceiptOutputLogKind, RECEIPT_OUTPUT_RESULTS, type ReceiptOutputResult, RECEIPT_OUTPUT_ENTRIES_MAX, type ReceiptOutput, type ReceiptOutputActor, RECEIPT_OUTPUT_ENTRY_ERROR_CODES, type ReceiptOutputEntryErrorCode, RECEIPT_OUTPUT_ERROR_CODES, type ReceiptOutputErrorCode, isReceiptOutputErrorCode, receiptOutputErrorCode, isReceiptOutputError, receiptOutputFieldErrors, type ReceiptOutputFieldError, } from './receipt-output.js';
9
10
  export { type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, } from './receipt-company.js';
10
11
  export { type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, type CashregisterAutoLogout, type CashregisterAutoLogoutPayload, fromCashregisterPayload, } from './cashregister.js';
11
12
  export { type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind } from './receipt-summary.js';
@@ -6,6 +6,7 @@ export { fromReceiptPaymentPayload, toReceiptPaymentPayload, } from './receipt-p
6
6
  export { PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors } from './payment-errors.js';
7
7
  export { RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, } from './receipt-email.js';
8
8
  export { RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, } from './receipt-errors.js';
9
+ export { RECEIPT_OUTPUT_KINDS, RECEIPT_OUTPUT_LOG_KINDS, RECEIPT_OUTPUT_RESULTS, RECEIPT_OUTPUT_ENTRIES_MAX, RECEIPT_OUTPUT_ENTRY_ERROR_CODES, RECEIPT_OUTPUT_ERROR_CODES, isReceiptOutputErrorCode, receiptOutputErrorCode, isReceiptOutputError, receiptOutputFieldErrors, } from './receipt-output.js';
9
10
  export { fromReceiptCompanyPayload, receiptCompanyTaxInfo, } from './receipt-company.js';
10
11
  export { fromCashregisterPayload, } from './cashregister.js';
11
12
  export { fromReceiptSummaryPayload, ZERO_KINDS, isZeroKind } from './receipt-summary.js';
@@ -16,7 +16,7 @@ import { KasseneckApiError } from '../client/errors.js';
16
16
  * ...) stehen in [PAYMENT_ERROR_CODES]. Ein Code ausserhalb bleibt ueber
17
17
  * `KasseneckApiError.code` lesbar.
18
18
  */
19
- export declare const RECEIPT_ERROR_CODES: readonly ["cancellation_reference_unavailable", "cashregister_closed", "cashregister_decommissioned", "final_receipt_expired", "final_receipt_not_allowed", "module_inactive", "not_permitted", "receipt_limit_exceeded", "receipt_not_found", "receipt_outcome_unknown", "receipt_type_invalid", "server_error", "signature_incomplete", "signature_missing", "signing_failed", "small_business_vat_not_allowed", "tip_invalid", "tip_not_allowed", "tip_recipient_unknown", "validation", "voucher_balance_changed", "account_not_found", "action_confirmation_required", "admin_required", "api_not_approved", "app_check_invalid", "app_check_missing", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "password_change_required", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "second_factor_required", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "route_missing", "response_unreadable"];
19
+ export declare const RECEIPT_ERROR_CODES: readonly ["cancellation_reference_unavailable", "cashregister_closed", "cashregister_decommissioned", "final_receipt_expired", "final_receipt_not_allowed", "idempotency_conflict", "module_inactive", "not_permitted", "receipt_limit_exceeded", "receipt_not_found", "receipt_outcome_unknown", "receipt_type_invalid", "server_error", "signature_incomplete", "signature_missing", "signing_failed", "small_business_vat_not_allowed", "tip_invalid", "tip_not_allowed", "tip_recipient_unknown", "validation", "voucher_balance_changed", "account_not_found", "action_confirmation_required", "admin_required", "api_not_approved", "app_check_invalid", "app_check_missing", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "password_change_required", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "second_factor_required", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "route_missing", "response_unreadable"];
20
20
  export type ReceiptErrorCode = (typeof RECEIPT_ERROR_CODES)[number];
21
21
  export declare function isReceiptErrorCode(value: unknown): value is ReceiptErrorCode;
22
22
  /** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_ERROR_CODES] steht; sonst `undefined`. */
@@ -22,6 +22,9 @@ export const RECEIPT_ERROR_CODES = Object.freeze([
22
22
  'cashregister_decommissioned',
23
23
  'final_receipt_expired',
24
24
  'final_receipt_not_allowed',
25
+ // Seit 1.15.0 (Vertrag): derselbe idempotencyKey mit anderem Inhalt, nichts geschrieben. Der Server nimmt den
26
+ // Schluessel optional an; dieses Paket sendet (noch) keinen, der Code bleibt damit nur lesbar.
27
+ 'idempotency_conflict',
25
28
  'module_inactive',
26
29
  'not_permitted',
27
30
  'receipt_limit_exceeded',
@@ -0,0 +1,79 @@
1
+ import { KasseneckApiError } from '../client/errors.js';
2
+ /**
3
+ * Die Arten einer Ausgabe (Katalog `AUSGABE_ART`): `print` Erstdruck,
4
+ * `reprint` Duplikat, `email` Belegmail, `link_shared` Link geteilt,
5
+ * `pdf_shared` PDF geteilt, `opened` vom Kunden geoeffnet (Abrufe je Stunde).
6
+ */
7
+ export declare const RECEIPT_OUTPUT_KINDS: readonly ["print", "reprint", "email", "link_shared", "pdf_shared", "opened"];
8
+ export type ReceiptOutputKind = (typeof RECEIPT_OUTPUT_KINDS)[number];
9
+ /**
10
+ * Die Arten, die eine Kasse selbst meldet. `email` und `opened` schreibt das
11
+ * Backend selbst (beim Versand bzw. beim Abruf des Links); meldet eine Kasse
12
+ * sie, lehnt der Server genau diesen Eintrag ab (`invalid_output_kind`).
13
+ */
14
+ export declare const RECEIPT_OUTPUT_LOG_KINDS: readonly ["print", "reprint", "link_shared", "pdf_shared"];
15
+ export type ReceiptOutputLogKind = (typeof RECEIPT_OUTPUT_LOG_KINDS)[number];
16
+ /** Ergebnis einer Ausgabe (Katalog `AUSGABE_ERGEBNIS`); Mail und Abruf sind immer `ok`. */
17
+ export declare const RECEIPT_OUTPUT_RESULTS: readonly ["ok", "failed", "unclear"];
18
+ export type ReceiptOutputResult = (typeof RECEIPT_OUTPUT_RESULTS)[number];
19
+ /** Hoechstens so viele Eintraege je Aufruf von `logReceiptOutputs`. */
20
+ export declare const RECEIPT_OUTPUT_ENTRIES_MAX = 50;
21
+ /** Wer die Ausgabe ausloeste: Kassen-Benutzer, bzw. beim Geraet mit api_key das Konto (`name: null`). */
22
+ export interface ReceiptOutputActor {
23
+ id: string;
24
+ name: string | null;
25
+ }
26
+ /**
27
+ * Ein Eintrag aus `outputs` einer `getReceipt`-Antwort (`/v3`). Eine Art oder
28
+ * ein Ergebnis, das dieses Paket noch nicht kennt (neuerer Server), bleibt
29
+ * lesbar stehen; die Kasse zeigt es ohne Beschriftung.
30
+ */
31
+ export interface ReceiptOutput {
32
+ kind: ReceiptOutputKind | (string & {});
33
+ /** Zeitpunkt, ISO 8601 mit Wiener Zonenoffset; bei Kassenmeldungen der Zeitpunkt am Geraet, beim Abruf der erste der Stunde. */
34
+ at: string;
35
+ result: ReceiptOutputResult | (string & {});
36
+ /** `null` beim Abruf durch den Kunden. */
37
+ by: ReceiptOutputActor | null;
38
+ /** Nur bei `opened`: Zahl der Abrufe in dieser Stunde. */
39
+ count?: number;
40
+ }
41
+ /**
42
+ * Liest `data.outputs` nachsichtig: das Protokoll ist eine Auskunft neben dem
43
+ * Beleg und darf das Lesen, Anzeigen und Nachdrucken des Belegs nie scheitern
44
+ * lassen. Keine Liste: `undefined` (Antwort ohne Protokoll, etwa `/api` oder
45
+ * `createReceipt`). Ein Eintrag ohne lesbare Art, Zeit oder Ergebnis faellt
46
+ * weg; ein Handelnder ohne Kennung gilt als `null`, eine Anzahl, die keine
47
+ * ganze Zahl ab 0 ist, fehlt. Paketintern.
48
+ */
49
+ export declare function receiptOutputsFromWire(roh: unknown): ReceiptOutput[] | undefined;
50
+ /**
51
+ * Codes je Eintrag in `rejected[].code` einer Antwort von
52
+ * `logReceiptOutputs`: der Eintrag ist dauerhaft abgelehnt (aus dem Puffer
53
+ * nehmen, nicht noch einmal senden). `validation` heisst hier: ein Druck ohne
54
+ * oder mit unbekanntem Ergebnis.
55
+ */
56
+ export declare const RECEIPT_OUTPUT_ENTRY_ERROR_CODES: readonly ["receipt_not_found", "invalid_output_kind", "output_time_out_of_range", "idempotency_key_required", "validation"];
57
+ export type ReceiptOutputEntryErrorCode = (typeof RECEIPT_OUTPUT_ENTRY_ERROR_CODES)[number];
58
+ /**
59
+ * Fehlercodes von `logReceiptOutputs`, wenn die ganze Anfrage scheitert
60
+ * (Vokabular `errorCodes.registerHandlersByEndpoint.logReceiptOutputs`),
61
+ * dahinter die Codes, die Anmeldung und Rand auf diesem Endpunkt erzeugen
62
+ * koennen (`errorCodes.auth` ohne die sieben des Partner-Zugangs,
63
+ * `errorCodes.edge`), zuletzt `route_missing` (Code des Pakets). Ein Code
64
+ * ausserhalb bleibt ueber `KasseneckApiError.code` lesbar.
65
+ */
66
+ export declare const RECEIPT_OUTPUT_ERROR_CODES: readonly ["idempotency_key_required", "invalid_output_kind", "output_time_out_of_range", "receipt_not_found", "server_error", "validation", "account_not_found", "action_confirmation_required", "admin_required", "api_not_approved", "app_check_invalid", "app_check_missing", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "password_change_required", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "second_factor_required", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "route_missing"];
67
+ export type ReceiptOutputErrorCode = (typeof RECEIPT_OUTPUT_ERROR_CODES)[number];
68
+ export declare function isReceiptOutputErrorCode(value: unknown): value is ReceiptOutputErrorCode;
69
+ /** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_OUTPUT_ERROR_CODES] steht; sonst `undefined`. */
70
+ export declare function receiptOutputErrorCode(error: unknown): ReceiptOutputErrorCode | undefined;
71
+ /** Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_OUTPUT_ERROR_CODES]? */
72
+ export declare function isReceiptOutputError(error: unknown, code?: ReceiptOutputErrorCode): error is KasseneckApiError;
73
+ /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort von `logReceiptOutputs`. */
74
+ export interface ReceiptOutputFieldError {
75
+ field: string;
76
+ message: string;
77
+ }
78
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
79
+ export declare function receiptOutputFieldErrors(error: unknown): ReceiptOutputFieldError[];
@@ -0,0 +1,135 @@
1
+ import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
2
+ /*
3
+ * Ausgaben eines Belegs: auf welchem Weg ein Beleg den Betrieb verlassen hat
4
+ * (Erstdruck, Duplikat, E-Mail, Link oder PDF geteilt, vom Kunden geoeffnet).
5
+ * Registrierkassen-Erlass BMF-AV Nr. 2/2026, Abschnitt 4.2: die Art der
6
+ * Belegerteilung ist zu dokumentieren. Das Protokoll fuehrt das Backend neben
7
+ * dem Beleg (nie am Beleg, nie im DEP); die Kasse meldet ihre Drucke und das
8
+ * Teilen mit `logReceiptOutputs`, `getReceipt` liefert unter `/v3` die
9
+ * neuesten 20 Eintraege als `outputs`.
10
+ */
11
+ /**
12
+ * Die Arten einer Ausgabe (Katalog `AUSGABE_ART`): `print` Erstdruck,
13
+ * `reprint` Duplikat, `email` Belegmail, `link_shared` Link geteilt,
14
+ * `pdf_shared` PDF geteilt, `opened` vom Kunden geoeffnet (Abrufe je Stunde).
15
+ */
16
+ export const RECEIPT_OUTPUT_KINDS = Object.freeze(['print', 'reprint', 'email', 'link_shared', 'pdf_shared', 'opened']);
17
+ /**
18
+ * Die Arten, die eine Kasse selbst meldet. `email` und `opened` schreibt das
19
+ * Backend selbst (beim Versand bzw. beim Abruf des Links); meldet eine Kasse
20
+ * sie, lehnt der Server genau diesen Eintrag ab (`invalid_output_kind`).
21
+ */
22
+ export const RECEIPT_OUTPUT_LOG_KINDS = Object.freeze(['print', 'reprint', 'link_shared', 'pdf_shared']);
23
+ /** Ergebnis einer Ausgabe (Katalog `AUSGABE_ERGEBNIS`); Mail und Abruf sind immer `ok`. */
24
+ export const RECEIPT_OUTPUT_RESULTS = Object.freeze(['ok', 'failed', 'unclear']);
25
+ /** Hoechstens so viele Eintraege je Aufruf von `logReceiptOutputs`. */
26
+ export const RECEIPT_OUTPUT_ENTRIES_MAX = 50;
27
+ /**
28
+ * Liest `data.outputs` nachsichtig: das Protokoll ist eine Auskunft neben dem
29
+ * Beleg und darf das Lesen, Anzeigen und Nachdrucken des Belegs nie scheitern
30
+ * lassen. Keine Liste: `undefined` (Antwort ohne Protokoll, etwa `/api` oder
31
+ * `createReceipt`). Ein Eintrag ohne lesbare Art, Zeit oder Ergebnis faellt
32
+ * weg; ein Handelnder ohne Kennung gilt als `null`, eine Anzahl, die keine
33
+ * ganze Zahl ab 0 ist, fehlt. Paketintern.
34
+ */
35
+ export function receiptOutputsFromWire(roh) {
36
+ if (!Array.isArray(roh))
37
+ return undefined;
38
+ const raus = [];
39
+ for (const e of roh) {
40
+ if (e === null || typeof e !== 'object' || Array.isArray(e))
41
+ continue;
42
+ const { kind, at, result, by, count } = e;
43
+ if (typeof kind !== 'string' || kind === '' || typeof at !== 'string' || at === '' || typeof result !== 'string' || result === '')
44
+ continue;
45
+ const eintrag = { kind, at, result, by: handelnder(by) };
46
+ if (typeof count === 'number' && Number.isSafeInteger(count) && count >= 0)
47
+ eintrag.count = count;
48
+ raus.push(eintrag);
49
+ }
50
+ return raus;
51
+ }
52
+ function handelnder(w) {
53
+ if (w === null || typeof w !== 'object' || Array.isArray(w))
54
+ return null;
55
+ const { id, name } = w;
56
+ if (typeof id !== 'string' || id === '')
57
+ return null;
58
+ return { id, name: typeof name === 'string' ? name : null };
59
+ }
60
+ /**
61
+ * Codes je Eintrag in `rejected[].code` einer Antwort von
62
+ * `logReceiptOutputs`: der Eintrag ist dauerhaft abgelehnt (aus dem Puffer
63
+ * nehmen, nicht noch einmal senden). `validation` heisst hier: ein Druck ohne
64
+ * oder mit unbekanntem Ergebnis.
65
+ */
66
+ export const RECEIPT_OUTPUT_ENTRY_ERROR_CODES = Object.freeze([
67
+ 'receipt_not_found', // Beleg gibt es nicht ODER er liegt in einer anderen Kasse
68
+ 'invalid_output_kind', // Art, die die Kasse nicht meldet (email, opened)
69
+ 'output_time_out_of_range', // unlesbare Zeit oder ohne Zone (eine falsch gehende Uhr klemmt der Server)
70
+ 'idempotency_key_required', // Schluessel fehlt oder hat nicht 8-64 Zeichen [A-Za-z0-9_-]
71
+ 'validation', // Druck ohne bzw. mit unbekanntem Ergebnis
72
+ ]);
73
+ /**
74
+ * Fehlercodes von `logReceiptOutputs`, wenn die ganze Anfrage scheitert
75
+ * (Vokabular `errorCodes.registerHandlersByEndpoint.logReceiptOutputs`),
76
+ * dahinter die Codes, die Anmeldung und Rand auf diesem Endpunkt erzeugen
77
+ * koennen (`errorCodes.auth` ohne die sieben des Partner-Zugangs,
78
+ * `errorCodes.edge`), zuletzt `route_missing` (Code des Pakets). Ein Code
79
+ * ausserhalb bleibt ueber `KasseneckApiError.code` lesbar.
80
+ */
81
+ export const RECEIPT_OUTPUT_ERROR_CODES = Object.freeze([
82
+ 'idempotency_key_required',
83
+ 'invalid_output_kind',
84
+ 'output_time_out_of_range',
85
+ 'receipt_not_found',
86
+ 'server_error',
87
+ 'validation',
88
+ // Anmeldung und Rand (errorCodes.auth ohne Partner-Zugang, errorCodes.edge)
89
+ 'account_not_found',
90
+ 'action_confirmation_required',
91
+ 'admin_required',
92
+ 'api_not_approved',
93
+ 'app_check_invalid',
94
+ 'app_check_missing',
95
+ 'cashregister_not_assigned',
96
+ 'cashregister_not_found',
97
+ 'cashregister_token_invalid',
98
+ 'cashregister_token_missing',
99
+ 'dialect_mismatch',
100
+ 'internal_translation_error',
101
+ 'live_not_enabled',
102
+ 'method_not_allowed',
103
+ 'mfa_required',
104
+ 'not_found',
105
+ 'password_change_required',
106
+ 'register_user_no_business',
107
+ 'register_user_not_allowed',
108
+ 'register_user_not_found',
109
+ 'response_translation_failed',
110
+ 'second_factor_required',
111
+ 'session_expired',
112
+ 'session_other_cashregister',
113
+ 'unauthorized',
114
+ 'user_disabled',
115
+ 'user_verification_failed',
116
+ // Code des Pakets (CLIENT_ERROR_CODES)
117
+ 'route_missing',
118
+ ]);
119
+ export function isReceiptOutputErrorCode(value) {
120
+ return typeof value === 'string' && RECEIPT_OUTPUT_ERROR_CODES.includes(value);
121
+ }
122
+ const BEKANNT = new Set(RECEIPT_OUTPUT_ERROR_CODES);
123
+ /** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_OUTPUT_ERROR_CODES] steht; sonst `undefined`. */
124
+ export function receiptOutputErrorCode(error) {
125
+ return bekannterCode(error, BEKANNT);
126
+ }
127
+ /** Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_OUTPUT_ERROR_CODES]? */
128
+ export function isReceiptOutputError(error, code) {
129
+ const gefunden = receiptOutputErrorCode(error);
130
+ return gefunden !== undefined && (code === undefined || gefunden === code);
131
+ }
132
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
133
+ export function receiptOutputFieldErrors(error) {
134
+ return feldfehlerVon(error);
135
+ }
@@ -155,10 +155,10 @@ export declare function readRegistrationInfo(roh: {
155
155
  export declare function receiptValueVoucherSign(receipt: Receipt): 1 | -1;
156
156
  /**
157
157
  * Zwischensumme in **Cent** — Positionen plus verkaufte Wertgutscheine minus
158
- * eingeloeste Promotionsgutscheine. Wertgutschein-Einloesungen wirken erst auf
158
+ * eingeloeste Aktionsgutscheine. Wertgutschein-Einloesungen wirken erst auf
159
159
  * [receiptSumCents], nicht hier (siehe Dart-Vorbild `subSumCents`/`sumCents`).
160
160
  * Am Storno-Beleg zaehlen Wertgutscheine mit umgekehrtem Vorzeichen
161
- * ([receiptValueVoucherSign]), und ein gespiegelter Promotionsgutschein
161
+ * ([receiptValueVoucherSign]), und ein gespiegelter Aktionsgutschein
162
162
  * mindert nichts: den Rabatt nimmt der Server dort ueber Ausgleichspositionen
163
163
  * (`kind: 'discount'`) zurueck, und belegToepfe verteilt einen Promo-Eintrag
164
164
  * nur auf eine positive Topfsumme, die ein Storno nie hat.
@@ -142,10 +142,10 @@ export function receiptValueVoucherSign(receipt) {
142
142
  }
143
143
  /**
144
144
  * Zwischensumme in **Cent** — Positionen plus verkaufte Wertgutscheine minus
145
- * eingeloeste Promotionsgutscheine. Wertgutschein-Einloesungen wirken erst auf
145
+ * eingeloeste Aktionsgutscheine. Wertgutschein-Einloesungen wirken erst auf
146
146
  * [receiptSumCents], nicht hier (siehe Dart-Vorbild `subSumCents`/`sumCents`).
147
147
  * Am Storno-Beleg zaehlen Wertgutscheine mit umgekehrtem Vorzeichen
148
- * ([receiptValueVoucherSign]), und ein gespiegelter Promotionsgutschein
148
+ * ([receiptValueVoucherSign]), und ein gespiegelter Aktionsgutschein
149
149
  * mindert nichts: den Rabatt nimmt der Server dort ueber Ausgleichspositionen
150
150
  * (`kind: 'discount'`) zurueck, und belegToepfe verteilt einen Promo-Eintrag
151
151
  * nur auf eine positive Topfsumme, die ein Storno nie hat.
@@ -38,6 +38,28 @@ export interface Voucher {
38
38
  exempt?: boolean;
39
39
  zeroRateBucket?: boolean;
40
40
  }
41
+ /**
42
+ * Ein ausgestellter Gutschein in der Antwort von `createReceipt` unter `/v3`
43
+ * (`data.issuedVouchers[]`): der Klartext-Code erscheint hier einmalig fuer das Etikett.
44
+ */
45
+ export interface IssuedVoucher {
46
+ id: string;
47
+ /** Klartext-Code; nie in Logs oder Fehlertexte schreiben. */
48
+ code: string;
49
+ type: string;
50
+ index: number;
51
+ codeSuffix: string;
52
+ faceValueCents?: number;
53
+ quantity?: number;
54
+ /** Nur bei Leistungsgutscheinen: Name des verkauften Artikels; sonst fehlt das Feld. */
55
+ articleName?: string;
56
+ validity?: {
57
+ pattern: string;
58
+ redeemableUntil: string | null;
59
+ refundableUntil: string | null;
60
+ validUntil: string | null;
61
+ };
62
+ }
41
63
  /** Artikel eines Leistungsgutscheins, wie der Server ihn am Beleg festhaelt. */
42
64
  export interface VoucherArticle {
43
65
  id: string;
@@ -87,8 +109,8 @@ export declare function voucherServerFields(voucher: Voucher): string[];
87
109
  export declare function toVoucherPayload(voucher: Voucher): VoucherPayload;
88
110
  /**
89
111
  * Ist der Gutschein an das Backend sendbar? Zwilling von `KeckVoucher.isValid`
90
- * im Flutter-Vorbild: Wert- und Promotionsgutscheine brauchen einen Wert,
91
- * Promotionsgutscheine duerfen nur eingeloest (nicht verkauft) werden, und ein
112
+ * im Flutter-Vorbild: Wert- und Aktionsgutscheine brauchen einen Wert,
113
+ * Aktionsgutscheine duerfen nur eingeloest (nicht verkauft) werden, und ein
92
114
  * gesetzter Wert muss positiv sein.
93
115
  */
94
116
  export declare function voucherIsValid(voucher: Voucher): boolean;
@@ -45,8 +45,8 @@ export function toVoucherPayload(voucher) {
45
45
  }
46
46
  /**
47
47
  * Ist der Gutschein an das Backend sendbar? Zwilling von `KeckVoucher.isValid`
48
- * im Flutter-Vorbild: Wert- und Promotionsgutscheine brauchen einen Wert,
49
- * Promotionsgutscheine duerfen nur eingeloest (nicht verkauft) werden, und ein
48
+ * im Flutter-Vorbild: Wert- und Aktionsgutscheine brauchen einen Wert,
49
+ * Aktionsgutscheine duerfen nur eingeloest (nicht verkauft) werden, und ein
50
50
  * gesetzter Wert muss positiv sein.
51
51
  */
52
52
  export function voucherIsValid(voucher) {
@@ -104,7 +104,7 @@ export interface BusinessAddress {
104
104
  city: string;
105
105
  }
106
106
  export interface BusinessTaxDetails {
107
- /** Steuernummer im Format `12-345/6789`; die Pruefziffer wird geprueft. */
107
+ /** Steuernummer im Format `91-123/4565`; die Pruefziffer wird geprueft. */
108
108
  taxNumber: string;
109
109
  smallBusiness: boolean;
110
110
  /**
@@ -22,5 +22,6 @@ export { VOUCHER_KINDS, VOUCHER_STATUSES, checkVoucher, reprintVoucherLabel, VOU
22
22
  export { type GetMyDrawerStateOptions, type OpenMyShiftOptions, type RecordMyCashMovementOptions, type DrawerOpeningEntry, type LogMyDrawerOpeningsOptions, type GetMyShiftReportOptions, type TipPayout, type CloseMyShiftOptions, type AfterCountOption, getMyDrawerState, openMyShift, recordMyCashMovement, logMyDrawerOpenings, getMyShiftReport, closeMyShift, sumDenominations, parseCentsAllowZero, newIdempotencyKey, shiftTipLines, durationText, type ShiftTipLine, type ShiftTipLineKey, } from './schicht.js';
23
23
  export { EUR_DENOMINATIONS, MOVEMENT_TYPES, MANUAL_MOVEMENT_TYPES, CASH_LOCATIONS, OPENING_REASONS, MANUAL_OPENING_REASONS, SHIFT_RECEIPT_KINDS, AFTER_COUNT_TYPES, type AfterCountType, type AfterCount, type EurDenomination, type MovementType, type ManualMovementType, type CashLocation, type OpeningReason, type ManualOpeningReason, type ShiftReceiptKind, type ShiftStatus, type ShiftActorRole, type Denominations, type ShiftActor, type DrawerInfo, type DrawerRights, type NonCashAmount, type ShiftTipTotals, type ShiftTip, type ShiftRunningTotals, type ShiftReconciliation, type Shift, type TipClaim, type DrawerOpening, type DrawerState, type CashMovement, type ShiftReceiptHeader, type ShiftReceiptMovement, type ShiftReceiptTip, type ShiftSummaryReceipt, type CashMovementReceipt, type ShiftReceipt, type OpenShiftResult, type CashMovementResult, type DrawerOpeningsResult, type ShiftReport, type CloseShiftResult, } from './schicht-typen.js';
24
24
  export { type ShiftReceiptLayoutOptions, shiftReceiptLayout, cashMovementLayout } from '../receipt/shift-sheet.js';
25
+ export { RECEIPT_OUTPUT_KINDS, RECEIPT_OUTPUT_RESULTS, type ReceiptOutputKind, type ReceiptOutputResult } from '../models/receipt-output.js';
25
26
  export { RETURN_DISPOSITIONS, isReturnDisposition, type ReturnDisposition } from '../models/cancellation.js';
26
- export { MESSAGES, ERROR_RULES, ERROR_CODE_RULES, ERROR_OUTCOME_RULES, CALLS_WITH_EFFECT, findErrorRule, messageOutcome, messageText, messageAppliesTo, RECEIPT_EMAIL_ERROR_MESSAGES, receiptEmailErrorMessage, CANCELLATION_PAYMENT_ERROR_MESSAGES, cancellationPaymentErrorMessage, VOUCHER_ERROR_MESSAGES, voucherErrorMessage, LABELS, labelText, RETURN_DISPOSITION_LABELS, type TextEntry, type MessageKey, type ErrorKind, type ErrorRule, type ErrorRuleDetail, type Surface, type ReceiptEmailMessageCode, type CancellationPaymentMessageCode, type LabelKey, } from './texte.js';
27
+ export { MESSAGES, ERROR_RULES, ERROR_CODE_RULES, ERROR_OUTCOME_RULES, CALLS_WITH_EFFECT, findErrorRule, messageOutcome, messageText, messageAppliesTo, RECEIPT_EMAIL_ERROR_MESSAGES, receiptEmailErrorMessage, CANCELLATION_PAYMENT_ERROR_MESSAGES, cancellationPaymentErrorMessage, VOUCHER_ERROR_MESSAGES, voucherErrorMessage, LABELS, labelText, RETURN_DISPOSITION_LABELS, receiptOutputLabel, type TextEntry, type MessageKey, type ErrorKind, type ErrorRule, type ErrorRuleDetail, type Surface, type ReceiptEmailMessageCode, type CancellationPaymentMessageCode, type LabelKey, } from './texte.js';
@@ -26,7 +26,9 @@ export { VOUCHER_KINDS, VOUCHER_STATUSES, checkVoucher, reprintVoucherLabel, VOU
26
26
  export { getMyDrawerState, openMyShift, recordMyCashMovement, logMyDrawerOpenings, getMyShiftReport, closeMyShift, sumDenominations, parseCentsAllowZero, newIdempotencyKey, shiftTipLines, durationText, } from './schicht.js';
27
27
  export { EUR_DENOMINATIONS, MOVEMENT_TYPES, MANUAL_MOVEMENT_TYPES, CASH_LOCATIONS, OPENING_REASONS, MANUAL_OPENING_REASONS, SHIFT_RECEIPT_KINDS, AFTER_COUNT_TYPES, } from './schicht-typen.js';
28
28
  export { shiftReceiptLayout, cashMovementLayout } from '../receipt/shift-sheet.js';
29
+ // Ausgaben eines Belegs (Belegdetail: Art und Ergebnis -> Beschriftung); dieselben Listen wie an der Wurzel.
30
+ export { RECEIPT_OUTPUT_KINDS, RECEIPT_OUTPUT_RESULTS } from '../models/receipt-output.js';
29
31
  // Rueckgabe-Wahl beim Storno (Kassen-Dialog); dieselbe Liste wie an der Wurzel.
30
32
  export { RETURN_DISPOSITIONS, isReturnDisposition } from '../models/cancellation.js';
31
33
  // Was die Kasse selbst sagt: ein Katalog fuer Browser-Kasse und App.
32
- export { MESSAGES, ERROR_RULES, ERROR_CODE_RULES, ERROR_OUTCOME_RULES, CALLS_WITH_EFFECT, findErrorRule, messageOutcome, messageText, messageAppliesTo, RECEIPT_EMAIL_ERROR_MESSAGES, receiptEmailErrorMessage, CANCELLATION_PAYMENT_ERROR_MESSAGES, cancellationPaymentErrorMessage, VOUCHER_ERROR_MESSAGES, voucherErrorMessage, LABELS, labelText, RETURN_DISPOSITION_LABELS, } from './texte.js';
34
+ export { MESSAGES, ERROR_RULES, ERROR_CODE_RULES, ERROR_OUTCOME_RULES, CALLS_WITH_EFFECT, findErrorRule, messageOutcome, messageText, messageAppliesTo, RECEIPT_EMAIL_ERROR_MESSAGES, receiptEmailErrorMessage, CANCELLATION_PAYMENT_ERROR_MESSAGES, cancellationPaymentErrorMessage, VOUCHER_ERROR_MESSAGES, voucherErrorMessage, LABELS, labelText, RETURN_DISPOSITION_LABELS, receiptOutputLabel, } from './texte.js';
@@ -37,10 +37,10 @@ export declare const CASH_LOCATIONS: readonly ["bank", "safe"];
37
37
  export type CashLocation = (typeof CASH_LOCATIONS)[number];
38
38
  /**
39
39
  * Warum die Lade aufging (Katalog `LADE_OEFFNUNG_GRUND`). `sale`,
40
- * `cash_movement`, `shift_open` und `shift_close` meldet die Kasse selbst beim
40
+ * `cash_movement`, `shift_open`, `shift_close` und `voucher_payout` meldet die Kasse selbst beim
41
41
  * jeweiligen Vorgang; von Hand waehlt der Kassier aus [MANUAL_OPENING_REASONS].
42
42
  */
43
- export declare const OPENING_REASONS: readonly ["sale", "cash_movement", "shift_open", "shift_close", "change", "check", "misoperation", "other"];
43
+ export declare const OPENING_REASONS: readonly ["sale", "cash_movement", "shift_open", "shift_close", "change", "check", "misoperation", "other", "voucher_payout"];
44
44
  export type OpeningReason = (typeof OPENING_REASONS)[number];
45
45
  /** Die Gruende des Knopfs „Lade“; `other` braucht einen Text (`note`). */
46
46
  export declare const MANUAL_OPENING_REASONS: readonly ["change", "check", "misoperation", "other"];
@@ -38,11 +38,11 @@ export const MANUAL_MOVEMENT_TYPES = Object.freeze([
38
38
  export const CASH_LOCATIONS = Object.freeze(['bank', 'safe']);
39
39
  /**
40
40
  * Warum die Lade aufging (Katalog `LADE_OEFFNUNG_GRUND`). `sale`,
41
- * `cash_movement`, `shift_open` und `shift_close` meldet die Kasse selbst beim
41
+ * `cash_movement`, `shift_open`, `shift_close` und `voucher_payout` meldet die Kasse selbst beim
42
42
  * jeweiligen Vorgang; von Hand waehlt der Kassier aus [MANUAL_OPENING_REASONS].
43
43
  */
44
44
  export const OPENING_REASONS = Object.freeze([
45
- 'sale', 'cash_movement', 'shift_open', 'shift_close', 'change', 'check', 'misoperation', 'other',
45
+ 'sale', 'cash_movement', 'shift_open', 'shift_close', 'change', 'check', 'misoperation', 'other', 'voucher_payout',
46
46
  ]);
47
47
  /** Die Gruende des Knopfs „Lade“; `other` braucht einen Text (`note`). */
48
48
  export const MANUAL_OPENING_REASONS = Object.freeze(['change', 'check', 'misoperation', 'other']);
@@ -199,7 +199,7 @@ export interface PosBusinessSettings {
199
199
  tipKeptByDefault?: boolean;
200
200
  }
201
201
  /** Aktionen der Kasse, die eine Taste bekommen koennen (Schluessel von `device.shortcuts`). */
202
- export declare const POS_SHORTCUT_ACTIONS: readonly ["checkout", "complete", "cancel", "customAmount", "cash", "card", "exactAmount", "receipts", "undoLast", "settings", "logout", "tip", "fullscreen", "clearTendered", "clearCart", "splitPayment"];
202
+ export declare const POS_SHORTCUT_ACTIONS: readonly ["checkout", "complete", "cancel", "customAmount", "cash", "card", "exactAmount", "receipts", "undoLast", "settings", "logout", "tip", "fullscreen", "clearTendered", "clearCart", "splitPayment", "shiftStatus", "openDrawer", "voucherPayout"];
203
203
  export type PosShortcutAction = typeof POS_SHORTCUT_ACTIONS[number];
204
204
  /** Tastenkarte: Aktion -> Tasten (`Mod+F`, `Enter`, `Escape`, `F5` ...; `Mod` = ⌘ auf dem Mac, Strg sonst). */
205
205
  export type PosShortcutMap = Record<PosShortcutAction, string[]>;
@@ -92,6 +92,7 @@ export const DONE_SCREEN_SECONDS = [0, 3, 5, 10, 15, 30, 60];
92
92
  export const POS_SHORTCUT_ACTIONS = [
93
93
  'checkout', 'complete', 'cancel', 'customAmount', 'cash', 'card', 'exactAmount', 'receipts', 'undoLast',
94
94
  'settings', 'logout', 'tip', 'fullscreen', 'clearTendered', 'clearCart', 'splitPayment',
95
+ 'shiftStatus', 'openDrawer', 'voucherPayout',
95
96
  ];
96
97
  export const POS_SHORTCUT_DEFAULTS = Object.freeze({
97
98
  checkout: ['Enter'], complete: ['Enter'], cancel: ['Escape'],
@@ -115,6 +116,10 @@ export const POS_SHORTCUT_DEFAULTS = Object.freeze({
115
116
  // Bewusst ohne Vorgabe: jede freie Mod-Taste ist in irgendeinem Browser
116
117
  // belegt oder am Geraet unerprobt. Der Chef vergibt sie, wenn er sie braucht.
117
118
  splitPayment: [],
119
+ // Ebenso ohne Vorgabe: Kassenstand, Kassenlade und Gutschein auszahlen. Der
120
+ // Server fuehrt sie nicht in seiner Vorgabekarte; fehlen sie in einer
121
+ // Antwort, heisst das „keine Taste“ (leere Liste), nie eine geratene Taste.
122
+ shiftStatus: [], openDrawer: [], voucherPayout: [],
118
123
  });
119
124
  /**
120
125
  * Aktionen, die sich eine Taste teilen duerfen (Backend `TASTEN_PAARE`): sie