@kreiseck/kasseneck-api 0.6.7

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 (294) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +2 -0
  3. package/README.md +206 -0
  4. package/dist/cjs/client/api.d.ts +75 -0
  5. package/dist/cjs/client/api.js +40 -0
  6. package/dist/cjs/client/auth.d.ts +52 -0
  7. package/dist/cjs/client/auth.js +72 -0
  8. package/dist/cjs/client/cashregisters.d.ts +21 -0
  9. package/dist/cjs/client/cashregisters.js +36 -0
  10. package/dist/cjs/client/errors.d.ts +159 -0
  11. package/dist/cjs/client/errors.js +226 -0
  12. package/dist/cjs/client/index.d.ts +8 -0
  13. package/dist/cjs/client/index.js +44 -0
  14. package/dist/cjs/client/receipts.d.ts +245 -0
  15. package/dist/cjs/client/receipts.js +452 -0
  16. package/dist/cjs/client/reports.d.ts +43 -0
  17. package/dist/cjs/client/reports.js +73 -0
  18. package/dist/cjs/client/status.d.ts +43 -0
  19. package/dist/cjs/client/status.js +47 -0
  20. package/dist/cjs/client/transport.d.ts +117 -0
  21. package/dist/cjs/client/transport.js +312 -0
  22. package/dist/cjs/enums/credit-card-provider.d.ts +22 -0
  23. package/dist/cjs/enums/credit-card-provider.js +23 -0
  24. package/dist/cjs/enums/define-enum.d.ts +15 -0
  25. package/dist/cjs/enums/define-enum.js +16 -0
  26. package/dist/cjs/enums/index.d.ts +7 -0
  27. package/dist/cjs/enums/index.js +17 -0
  28. package/dist/cjs/enums/keck-payment-method.d.ts +57 -0
  29. package/dist/cjs/enums/keck-payment-method.js +23 -0
  30. package/dist/cjs/enums/receipt-type.d.ts +41 -0
  31. package/dist/cjs/enums/receipt-type.js +18 -0
  32. package/dist/cjs/enums/stripe-link-mode.d.ts +17 -0
  33. package/dist/cjs/enums/stripe-link-mode.js +18 -0
  34. package/dist/cjs/enums/vat-rate.d.ts +40 -0
  35. package/dist/cjs/enums/vat-rate.js +19 -0
  36. package/dist/cjs/enums/voucher-action.d.ts +10 -0
  37. package/dist/cjs/enums/voucher-action.js +11 -0
  38. package/dist/cjs/enums/voucher-type.d.ts +9 -0
  39. package/dist/cjs/enums/voucher-type.js +10 -0
  40. package/dist/cjs/index.d.ts +5 -0
  41. package/dist/cjs/index.js +97 -0
  42. package/dist/cjs/kasse/artikel.d.ts +83 -0
  43. package/dist/cjs/kasse/artikel.js +79 -0
  44. package/dist/cjs/kasse/client.d.ts +10 -0
  45. package/dist/cjs/kasse/client.js +38 -0
  46. package/dist/cjs/kasse/drucker.d.ts +54 -0
  47. package/dist/cjs/kasse/drucker.js +41 -0
  48. package/dist/cjs/kasse/index.d.ts +11 -0
  49. package/dist/cjs/kasse/index.js +38 -0
  50. package/dist/cjs/kasse/settings.d.ts +115 -0
  51. package/dist/cjs/kasse/settings.js +62 -0
  52. package/dist/cjs/models/cancellation.d.ts +51 -0
  53. package/dist/cjs/models/cancellation.js +45 -0
  54. package/dist/cjs/models/cashregister.d.ts +77 -0
  55. package/dist/cjs/models/cashregister.js +53 -0
  56. package/dist/cjs/models/enum-payload.d.ts +26 -0
  57. package/dist/cjs/models/enum-payload.js +50 -0
  58. package/dist/cjs/models/hobex-receipt.d.ts +63 -0
  59. package/dist/cjs/models/hobex-receipt.js +86 -0
  60. package/dist/cjs/models/index.d.ts +10 -0
  61. package/dist/cjs/models/index.js +46 -0
  62. package/dist/cjs/models/receipt-company.d.ts +71 -0
  63. package/dist/cjs/models/receipt-company.js +52 -0
  64. package/dist/cjs/models/receipt-item.d.ts +100 -0
  65. package/dist/cjs/models/receipt-item.js +108 -0
  66. package/dist/cjs/models/receipt-summary.d.ts +92 -0
  67. package/dist/cjs/models/receipt-summary.js +54 -0
  68. package/dist/cjs/models/receipt.d.ts +108 -0
  69. package/dist/cjs/models/receipt.js +119 -0
  70. package/dist/cjs/models/report-month.d.ts +32 -0
  71. package/dist/cjs/models/report-month.js +65 -0
  72. package/dist/cjs/models/stripe-url-session.d.ts +18 -0
  73. package/dist/cjs/models/stripe-url-session.js +20 -0
  74. package/dist/cjs/models/voucher.d.ts +41 -0
  75. package/dist/cjs/models/voucher.js +56 -0
  76. package/dist/cjs/money.d.ts +23 -0
  77. package/dist/cjs/money.js +35 -0
  78. package/dist/cjs/package.json +1 -0
  79. package/dist/cjs/payments/hobex.d.ts +87 -0
  80. package/dist/cjs/payments/hobex.js +167 -0
  81. package/dist/cjs/payments/index.d.ts +33 -0
  82. package/dist/cjs/payments/index.js +42 -0
  83. package/dist/cjs/payments/stripe.d.ts +61 -0
  84. package/dist/cjs/payments/stripe.js +157 -0
  85. package/dist/cjs/printing/escpos.d.ts +219 -0
  86. package/dist/cjs/printing/escpos.js +636 -0
  87. package/dist/cjs/printing/index.d.ts +3 -0
  88. package/dist/cjs/printing/index.js +33 -0
  89. package/dist/cjs/printing/printable.d.ts +27 -0
  90. package/dist/cjs/printing/printable.js +90 -0
  91. package/dist/cjs/printing/webusb.d.ts +89 -0
  92. package/dist/cjs/printing/webusb.js +110 -0
  93. package/dist/cjs/react/index.d.ts +46 -0
  94. package/dist/cjs/react/index.js +51 -0
  95. package/dist/cjs/receipt/discount.d.ts +12 -0
  96. package/dist/cjs/receipt/discount.js +54 -0
  97. package/dist/cjs/receipt/epos.d.ts +53 -0
  98. package/dist/cjs/receipt/epos.js +95 -0
  99. package/dist/cjs/receipt/grid.d.ts +47 -0
  100. package/dist/cjs/receipt/grid.js +122 -0
  101. package/dist/cjs/receipt/index.d.ts +4 -0
  102. package/dist/cjs/receipt/index.js +29 -0
  103. package/dist/cjs/receipt/layout-escpos.d.ts +35 -0
  104. package/dist/cjs/receipt/layout-escpos.js +67 -0
  105. package/dist/cjs/receipt/layout.d.ts +180 -0
  106. package/dist/cjs/receipt/layout.js +594 -0
  107. package/dist/cjs/register/index.d.ts +51 -0
  108. package/dist/cjs/register/index.js +61 -0
  109. package/dist/cjs/register/pairing.d.ts +248 -0
  110. package/dist/cjs/register/pairing.js +279 -0
  111. package/dist/cjs/register/session.d.ts +37 -0
  112. package/dist/cjs/register/session.js +52 -0
  113. package/dist/cjs/vienna-time.d.ts +23 -0
  114. package/dist/cjs/vienna-time.js +114 -0
  115. package/dist/esm/client/api.d.ts +75 -0
  116. package/dist/esm/client/api.js +37 -0
  117. package/dist/esm/client/auth.d.ts +52 -0
  118. package/dist/esm/client/auth.js +68 -0
  119. package/dist/esm/client/cashregisters.d.ts +21 -0
  120. package/dist/esm/client/cashregisters.js +33 -0
  121. package/dist/esm/client/errors.d.ts +159 -0
  122. package/dist/esm/client/errors.js +212 -0
  123. package/dist/esm/client/index.d.ts +8 -0
  124. package/dist/esm/client/index.js +8 -0
  125. package/dist/esm/client/receipts.d.ts +245 -0
  126. package/dist/esm/client/receipts.js +438 -0
  127. package/dist/esm/client/reports.d.ts +43 -0
  128. package/dist/esm/client/reports.js +69 -0
  129. package/dist/esm/client/status.d.ts +43 -0
  130. package/dist/esm/client/status.js +43 -0
  131. package/dist/esm/client/transport.d.ts +117 -0
  132. package/dist/esm/client/transport.js +307 -0
  133. package/dist/esm/enums/credit-card-provider.d.ts +22 -0
  134. package/dist/esm/enums/credit-card-provider.js +20 -0
  135. package/dist/esm/enums/define-enum.d.ts +15 -0
  136. package/dist/esm/enums/define-enum.js +13 -0
  137. package/dist/esm/enums/index.d.ts +7 -0
  138. package/dist/esm/enums/index.js +7 -0
  139. package/dist/esm/enums/keck-payment-method.d.ts +57 -0
  140. package/dist/esm/enums/keck-payment-method.js +20 -0
  141. package/dist/esm/enums/receipt-type.d.ts +41 -0
  142. package/dist/esm/enums/receipt-type.js +15 -0
  143. package/dist/esm/enums/stripe-link-mode.d.ts +17 -0
  144. package/dist/esm/enums/stripe-link-mode.js +15 -0
  145. package/dist/esm/enums/vat-rate.d.ts +40 -0
  146. package/dist/esm/enums/vat-rate.js +16 -0
  147. package/dist/esm/enums/voucher-action.d.ts +10 -0
  148. package/dist/esm/enums/voucher-action.js +8 -0
  149. package/dist/esm/enums/voucher-type.d.ts +9 -0
  150. package/dist/esm/enums/voucher-type.js +7 -0
  151. package/dist/esm/index.d.ts +5 -0
  152. package/dist/esm/index.js +5 -0
  153. package/dist/esm/kasse/artikel.d.ts +83 -0
  154. package/dist/esm/kasse/artikel.js +70 -0
  155. package/dist/esm/kasse/client.d.ts +10 -0
  156. package/dist/esm/kasse/client.js +33 -0
  157. package/dist/esm/kasse/drucker.d.ts +54 -0
  158. package/dist/esm/kasse/drucker.js +36 -0
  159. package/dist/esm/kasse/index.d.ts +11 -0
  160. package/dist/esm/kasse/index.js +13 -0
  161. package/dist/esm/kasse/settings.d.ts +115 -0
  162. package/dist/esm/kasse/settings.js +58 -0
  163. package/dist/esm/models/cancellation.d.ts +51 -0
  164. package/dist/esm/models/cancellation.js +40 -0
  165. package/dist/esm/models/cashregister.d.ts +77 -0
  166. package/dist/esm/models/cashregister.js +50 -0
  167. package/dist/esm/models/enum-payload.d.ts +26 -0
  168. package/dist/esm/models/enum-payload.js +44 -0
  169. package/dist/esm/models/hobex-receipt.d.ts +63 -0
  170. package/dist/esm/models/hobex-receipt.js +80 -0
  171. package/dist/esm/models/index.d.ts +10 -0
  172. package/dist/esm/models/index.js +10 -0
  173. package/dist/esm/models/receipt-company.d.ts +71 -0
  174. package/dist/esm/models/receipt-company.js +48 -0
  175. package/dist/esm/models/receipt-item.d.ts +100 -0
  176. package/dist/esm/models/receipt-item.js +101 -0
  177. package/dist/esm/models/receipt-summary.d.ts +92 -0
  178. package/dist/esm/models/receipt-summary.js +49 -0
  179. package/dist/esm/models/receipt.d.ts +108 -0
  180. package/dist/esm/models/receipt.js +113 -0
  181. package/dist/esm/models/report-month.d.ts +32 -0
  182. package/dist/esm/models/report-month.js +58 -0
  183. package/dist/esm/models/stripe-url-session.d.ts +18 -0
  184. package/dist/esm/models/stripe-url-session.js +16 -0
  185. package/dist/esm/models/voucher.d.ts +41 -0
  186. package/dist/esm/models/voucher.js +51 -0
  187. package/dist/esm/money.d.ts +23 -0
  188. package/dist/esm/money.js +31 -0
  189. package/dist/esm/payments/hobex.d.ts +87 -0
  190. package/dist/esm/payments/hobex.js +162 -0
  191. package/dist/esm/payments/index.d.ts +33 -0
  192. package/dist/esm/payments/index.js +33 -0
  193. package/dist/esm/payments/stripe.d.ts +61 -0
  194. package/dist/esm/payments/stripe.js +153 -0
  195. package/dist/esm/printing/escpos.d.ts +219 -0
  196. package/dist/esm/printing/escpos.js +616 -0
  197. package/dist/esm/printing/index.d.ts +3 -0
  198. package/dist/esm/printing/index.js +3 -0
  199. package/dist/esm/printing/printable.d.ts +27 -0
  200. package/dist/esm/printing/printable.js +87 -0
  201. package/dist/esm/printing/webusb.d.ts +89 -0
  202. package/dist/esm/printing/webusb.js +101 -0
  203. package/dist/esm/react/index.d.ts +46 -0
  204. package/dist/esm/react/index.js +47 -0
  205. package/dist/esm/receipt/discount.d.ts +12 -0
  206. package/dist/esm/receipt/discount.js +51 -0
  207. package/dist/esm/receipt/epos.d.ts +53 -0
  208. package/dist/esm/receipt/epos.js +86 -0
  209. package/dist/esm/receipt/grid.d.ts +47 -0
  210. package/dist/esm/receipt/grid.js +116 -0
  211. package/dist/esm/receipt/index.d.ts +4 -0
  212. package/dist/esm/receipt/index.js +4 -0
  213. package/dist/esm/receipt/layout-escpos.d.ts +35 -0
  214. package/dist/esm/receipt/layout-escpos.js +64 -0
  215. package/dist/esm/receipt/layout.d.ts +180 -0
  216. package/dist/esm/receipt/layout.js +583 -0
  217. package/dist/esm/register/index.d.ts +51 -0
  218. package/dist/esm/register/index.js +51 -0
  219. package/dist/esm/register/pairing.d.ts +248 -0
  220. package/dist/esm/register/pairing.js +270 -0
  221. package/dist/esm/register/session.d.ts +37 -0
  222. package/dist/esm/register/session.js +48 -0
  223. package/dist/esm/vienna-time.d.ts +23 -0
  224. package/dist/esm/vienna-time.js +110 -0
  225. package/fixtures/belege/langer-artikelname.json +43 -0
  226. package/fixtures/belege/null-ausfall.json +41 -0
  227. package/fixtures/belege/null-jahr.json +41 -0
  228. package/fixtures/belege/null-monat.json +41 -0
  229. package/fixtures/belege/null-pruef.json +41 -0
  230. package/fixtures/belege/null-schluss.json +41 -0
  231. package/fixtures/belege/null-start.json +40 -0
  232. package/fixtures/belege/rabattzeilen.json +61 -0
  233. package/fixtures/belege/signaturausfall-verkauf.json +49 -0
  234. package/fixtures/belege/storno-teil.json +48 -0
  235. package/fixtures/belege/storno-voll.json +54 -0
  236. package/fixtures/belege/testkasse-verkauf.json +50 -0
  237. package/fixtures/belege/testsignatur-verkauf.json +50 -0
  238. package/fixtures/belege/training.json +49 -0
  239. package/fixtures/belege/verkauf-bar.json +49 -0
  240. package/fixtures/belege/verkauf-karte.json +49 -0
  241. package/fixtures/belege/verkauf-kleinunternehmer.json +42 -0
  242. package/fixtures/erwartet/langer-artikelname.grid32.txt +25 -0
  243. package/fixtures/erwartet/langer-artikelname.grid48.txt +24 -0
  244. package/fixtures/erwartet/langer-artikelname.lines.json +216 -0
  245. package/fixtures/erwartet/null-ausfall.grid32.txt +28 -0
  246. package/fixtures/erwartet/null-ausfall.grid48.txt +25 -0
  247. package/fixtures/erwartet/null-ausfall.lines.json +220 -0
  248. package/fixtures/erwartet/null-jahr.grid32.txt +29 -0
  249. package/fixtures/erwartet/null-jahr.grid48.txt +25 -0
  250. package/fixtures/erwartet/null-jahr.lines.json +220 -0
  251. package/fixtures/erwartet/null-monat.grid32.txt +28 -0
  252. package/fixtures/erwartet/null-monat.grid48.txt +25 -0
  253. package/fixtures/erwartet/null-monat.lines.json +220 -0
  254. package/fixtures/erwartet/null-pruef.grid32.txt +28 -0
  255. package/fixtures/erwartet/null-pruef.grid48.txt +25 -0
  256. package/fixtures/erwartet/null-pruef.lines.json +220 -0
  257. package/fixtures/erwartet/null-schluss.grid32.txt +28 -0
  258. package/fixtures/erwartet/null-schluss.grid48.txt +25 -0
  259. package/fixtures/erwartet/null-schluss.lines.json +220 -0
  260. package/fixtures/erwartet/null-start.grid32.txt +28 -0
  261. package/fixtures/erwartet/null-start.grid48.txt +25 -0
  262. package/fixtures/erwartet/null-start.lines.json +220 -0
  263. package/fixtures/erwartet/rabattzeilen.grid32.txt +27 -0
  264. package/fixtures/erwartet/rabattzeilen.grid48.txt +26 -0
  265. package/fixtures/erwartet/rabattzeilen.lines.json +286 -0
  266. package/fixtures/erwartet/signaturausfall-verkauf.grid32.txt +28 -0
  267. package/fixtures/erwartet/signaturausfall-verkauf.grid48.txt +26 -0
  268. package/fixtures/erwartet/signaturausfall-verkauf.lines.json +266 -0
  269. package/fixtures/erwartet/storno-teil.grid32.txt +27 -0
  270. package/fixtures/erwartet/storno-teil.grid48.txt +26 -0
  271. package/fixtures/erwartet/storno-teil.lines.json +237 -0
  272. package/fixtures/erwartet/storno-voll.grid32.txt +29 -0
  273. package/fixtures/erwartet/storno-voll.grid48.txt +28 -0
  274. package/fixtures/erwartet/storno-voll.lines.json +277 -0
  275. package/fixtures/erwartet/testkasse-verkauf.grid32.txt +28 -0
  276. package/fixtures/erwartet/testkasse-verkauf.grid48.txt +27 -0
  277. package/fixtures/erwartet/testkasse-verkauf.lines.json +270 -0
  278. package/fixtures/erwartet/testsignatur-verkauf.grid32.txt +30 -0
  279. package/fixtures/erwartet/testsignatur-verkauf.grid48.txt +27 -0
  280. package/fixtures/erwartet/testsignatur-verkauf.lines.json +270 -0
  281. package/fixtures/erwartet/training.grid32.txt +33 -0
  282. package/fixtures/erwartet/training.grid48.txt +30 -0
  283. package/fixtures/erwartet/training.lines.json +277 -0
  284. package/fixtures/erwartet/verkauf-bar.grid32.txt +25 -0
  285. package/fixtures/erwartet/verkauf-bar.grid48.txt +24 -0
  286. package/fixtures/erwartet/verkauf-bar.lines.json +256 -0
  287. package/fixtures/erwartet/verkauf-karte.grid32.txt +25 -0
  288. package/fixtures/erwartet/verkauf-karte.grid48.txt +24 -0
  289. package/fixtures/erwartet/verkauf-karte.lines.json +256 -0
  290. package/fixtures/erwartet/verkauf-kleinunternehmer.grid32.txt +26 -0
  291. package/fixtures/erwartet/verkauf-kleinunternehmer.grid48.txt +25 -0
  292. package/fixtures/erwartet/verkauf-kleinunternehmer.lines.json +226 -0
  293. package/fixtures/manifest.json +107 -0
  294. package/package.json +135 -0
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReceiptType = void 0;
4
+ const define_enum_js_1 = require("./define-enum.js");
5
+ /**
6
+ * Belegtyp — Zwilling von `ReceiptType` in kasseneck_api/lib/enums/receipt_type.dart.
7
+ *
8
+ * needsItems: Positionen sind fuer diesen Typ Pflicht.
9
+ * isZero: RKSV-Nullbeleg (Start-/Monats-/Jahresbeleg-Signaturkette-Marker).
10
+ * allowsVouchers: Gutscheine duerfen auf Belegen dieses Typs erscheinen.
11
+ */
12
+ exports.ReceiptType = (0, define_enum_js_1.defineEnum)({
13
+ start: { value: 'start', needsItems: false, isZero: true, allowsVouchers: false },
14
+ standard: { value: 'standard', needsItems: true, isZero: false, allowsVouchers: true },
15
+ zero: { value: 'zero', needsItems: false, isZero: true, allowsVouchers: false },
16
+ cancellation: { value: 'cancellation', needsItems: true, isZero: false, allowsVouchers: true },
17
+ training: { value: 'training', needsItems: true, isZero: false, allowsVouchers: true },
18
+ });
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Modus eines Stripe-Zahlungslinks — Zwilling von `StripeLinkMode` in
3
+ * kasseneck_api/lib/enums/stripe_link_mode.dart.
4
+ *
5
+ * `payment` zieht den Betrag sofort ein, `authorization` reserviert ihn nur
6
+ * (Stripe `capture_method: 'manual'`); eingezogen wird er dann spaeter ueber
7
+ * `stripeCaptureIntent`.
8
+ *
9
+ * Der Wert IST die Nutzlast: das Vorbild sendet `mode.name`, das Backend
10
+ * vergleicht gegen 'authorization' (functions/payment-endpoints.js).
11
+ */
12
+ export declare const StripeLinkMode: {
13
+ readonly payment: "payment";
14
+ readonly authorization: "authorization";
15
+ };
16
+ export type StripeLinkModeKey = keyof typeof StripeLinkMode;
17
+ export type StripeLinkMode = (typeof StripeLinkMode)[StripeLinkModeKey];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StripeLinkMode = void 0;
4
+ /**
5
+ * Modus eines Stripe-Zahlungslinks — Zwilling von `StripeLinkMode` in
6
+ * kasseneck_api/lib/enums/stripe_link_mode.dart.
7
+ *
8
+ * `payment` zieht den Betrag sofort ein, `authorization` reserviert ihn nur
9
+ * (Stripe `capture_method: 'manual'`); eingezogen wird er dann spaeter ueber
10
+ * `stripeCaptureIntent`.
11
+ *
12
+ * Der Wert IST die Nutzlast: das Vorbild sendet `mode.name`, das Backend
13
+ * vergleicht gegen 'authorization' (functions/payment-endpoints.js).
14
+ */
15
+ exports.StripeLinkMode = {
16
+ payment: 'payment',
17
+ authorization: 'authorization',
18
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Steuersatz — Zwilling von `VatRate` in kasseneck_api/lib/enums/vat_rate.dart.
3
+ *
4
+ * `category` ist der RKSV-Kategorie-Buchstabe der Steuersaetze (A=20%, B=10%, C=13%,
5
+ * D=0%, E=19%, G=4,9%). Er haengt an der Signaturkette des Backends — unantastbar.
6
+ */
7
+ export declare const VatRate: {
8
+ readonly vat0: {
9
+ readonly value: "vat0";
10
+ readonly rate: 0;
11
+ readonly category: "D";
12
+ };
13
+ readonly vat4komma9: {
14
+ readonly value: "vat4komma9";
15
+ readonly rate: 4.9;
16
+ readonly category: "G";
17
+ };
18
+ readonly vat10: {
19
+ readonly value: "vat10";
20
+ readonly rate: 10;
21
+ readonly category: "B";
22
+ };
23
+ readonly vat13: {
24
+ readonly value: "vat13";
25
+ readonly rate: 13;
26
+ readonly category: "C";
27
+ };
28
+ readonly vat19: {
29
+ readonly value: "vat19";
30
+ readonly rate: 19;
31
+ readonly category: "E";
32
+ };
33
+ readonly vat20: {
34
+ readonly value: "vat20";
35
+ readonly rate: 20;
36
+ readonly category: "A";
37
+ };
38
+ };
39
+ export type VatRateKey = keyof typeof VatRate;
40
+ export type VatRate = (typeof VatRate)[VatRateKey];
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VatRate = void 0;
4
+ const define_enum_js_1 = require("./define-enum.js");
5
+ /**
6
+ * Steuersatz — Zwilling von `VatRate` in kasseneck_api/lib/enums/vat_rate.dart.
7
+ *
8
+ * `category` ist der RKSV-Kategorie-Buchstabe der Steuersaetze (A=20%, B=10%, C=13%,
9
+ * D=0%, E=19%, G=4,9%). Er haengt an der Signaturkette des Backends — unantastbar.
10
+ */
11
+ exports.VatRate = (0, define_enum_js_1.defineEnum)({
12
+ vat0: { value: 'vat0', rate: 0, category: 'D' },
13
+ // Grundnahrungsmittel ab 01.07.2026 -> Betrag-Satz-Besonders (BMF/RKSV)
14
+ vat4komma9: { value: 'vat4komma9', rate: 4.9, category: 'G' },
15
+ vat10: { value: 'vat10', rate: 10, category: 'B' },
16
+ vat13: { value: 'vat13', rate: 13, category: 'C' },
17
+ vat19: { value: 'vat19', rate: 19, category: 'E' },
18
+ vat20: { value: 'vat20', rate: 20, category: 'A' },
19
+ });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Gutschein-Aktion — Zwilling von `VoucherAction` in
3
+ * kasseneck_api/lib/enums/voucher_action.dart.
4
+ */
5
+ export declare const VoucherAction: {
6
+ readonly sell: "sell";
7
+ readonly redeem: "redeem";
8
+ };
9
+ export type VoucherActionKey = keyof typeof VoucherAction;
10
+ export type VoucherAction = (typeof VoucherAction)[VoucherActionKey];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VoucherAction = void 0;
4
+ /**
5
+ * Gutschein-Aktion — Zwilling von `VoucherAction` in
6
+ * kasseneck_api/lib/enums/voucher_action.dart.
7
+ */
8
+ exports.VoucherAction = {
9
+ sell: 'sell',
10
+ redeem: 'redeem',
11
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Gutscheinart — Zwilling von `VoucherType` in kasseneck_api/lib/enums/voucher_type.dart.
3
+ */
4
+ export declare const VoucherType: {
5
+ readonly value: "value";
6
+ readonly promo: "promo";
7
+ };
8
+ export type VoucherTypeKey = keyof typeof VoucherType;
9
+ export type VoucherType = (typeof VoucherType)[VoucherTypeKey];
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VoucherType = void 0;
4
+ /**
5
+ * Gutscheinart — Zwilling von `VoucherType` in kasseneck_api/lib/enums/voucher_type.dart.
6
+ */
7
+ exports.VoucherType = {
8
+ value: 'value',
9
+ promo: 'promo',
10
+ };
@@ -0,0 +1,5 @@
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 Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, CANCELLATION_REASONS, CANCELLATION_RESERVATION_MS, isCancellationReason, remainingQuantities, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, istZeroKind, 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, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type KasseneckTransport, type KasseneckBinaryTransport, createTransport, createBinaryTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, type ReceiptCommonOptions, type SellReceiptOptions, type CancelReceiptOptions, type CancelReceiptResult, type CreateCancelReceiptOptions, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, downloadDailyReport, downloadMonthlyReport, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
4
+ export { parseServerTimeStamp, toViennaWallClock, type ViennaWallClock } from './vienna-time.js';
5
+ export { type KasseSettingsBetrieb, type KasseSettingsGeraet, type KasseSettings, type ArticleGroup, type KasseArtikel, KASSE_BETRIEB_STANDARD, KASSE_GERAET_STANDARD, mergeKasseSettings, fromArticleGroupPayload, fromKasseArtikelPayload, listMyArticleGroups, listMyArticles, getKasseSettings, setMyKasseSettings, setMyRegisterDeviceSettings, verteileRabatt, cancelScopeOf, receiptsScopeOf, } from './kasse/index.js';
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KasseneckNetworkError = exports.KasseneckHttpError = exports.KasseneckAuthError = exports.KasseneckApiError = exports.createBinaryTransport = exports.createTransport = exports.DEFAULT_TIMEOUT_MS = exports.DEFAULT_BASE_URL = exports.registerUserAuth = exports.apiKeyAuth = exports.hobexReceiptNeedsSignature = exports.hobexReceiptToCardPaymentData = exports.fromHobexReceiptPayload = exports.toHobexReceiptPayload = exports.fromStripeUrlSessionPayload = exports.toStripeUrlSessionPayload = exports.reportMonthReadable = exports.reportMonthKey = exports.nextReportMonth = exports.previousReportMonth = exports.reportMonthFromDate = exports.istZeroKind = exports.ZERO_KINDS = exports.fromReceiptSummaryPayload = exports.fromCashregisterPayload = exports.receiptCompanyTaxInfo = exports.fromReceiptCompanyPayload = exports.remainingQuantities = exports.isCancellationReason = exports.CANCELLATION_RESERVATION_MS = exports.CANCELLATION_REASONS = exports.receiptSumCents = exports.receiptSubSumCents = exports.fromReceiptPayload = exports.toReceiptPayload = exports.voucherIsValid = exports.fromVoucherPayload = exports.toVoucherPayload = exports.negateReceiptItem = exports.receiptItemIsValid = exports.receiptItemTotalCents = exports.fromReceiptItemPayload = exports.toReceiptItemPayload = exports.StripeLinkMode = exports.VoucherAction = exports.VoucherType = exports.CreditCardProvider = exports.KeckPaymentMethod = exports.VatRate = exports.ReceiptType = void 0;
4
+ exports.receiptsScopeOf = exports.cancelScopeOf = exports.verteileRabatt = exports.setMyRegisterDeviceSettings = exports.setMyKasseSettings = exports.getKasseSettings = exports.listMyArticles = exports.listMyArticleGroups = exports.fromKasseArtikelPayload = exports.fromArticleGroupPayload = exports.mergeKasseSettings = exports.KASSE_GERAET_STANDARD = exports.KASSE_BETRIEB_STANDARD = exports.toViennaWallClock = exports.parseServerTimeStamp = exports.createKasseneckApi = exports.getSignatureStatus = exports.getCashboxStatus = exports.downloadMonthlyReport = exports.downloadDailyReport = exports.checkVoucherCombinationError = exports.listMyCashregisters = exports.listMyReceipts = exports.getFirstReceiptDate = exports.generateFullReceiptId = exports.getReceiptWithCompany = exports.getReceipt = exports.zeroReceipt = exports.createCancelReceipt = exports.cancelReceipt = exports.sellReceiptWithCompany = exports.sellReceipt = exports.isKasseneckValidationError = exports.isKasseneckNetworkError = exports.isKasseneckHttpError = exports.isKasseneckAuthError = exports.isKasseneckApiError = exports.KasseneckValidationError = void 0;
5
+ var index_js_1 = require("./enums/index.js");
6
+ Object.defineProperty(exports, "ReceiptType", { enumerable: true, get: function () { return index_js_1.ReceiptType; } });
7
+ Object.defineProperty(exports, "VatRate", { enumerable: true, get: function () { return index_js_1.VatRate; } });
8
+ Object.defineProperty(exports, "KeckPaymentMethod", { enumerable: true, get: function () { return index_js_1.KeckPaymentMethod; } });
9
+ Object.defineProperty(exports, "CreditCardProvider", { enumerable: true, get: function () { return index_js_1.CreditCardProvider; } });
10
+ Object.defineProperty(exports, "VoucherType", { enumerable: true, get: function () { return index_js_1.VoucherType; } });
11
+ Object.defineProperty(exports, "VoucherAction", { enumerable: true, get: function () { return index_js_1.VoucherAction; } });
12
+ Object.defineProperty(exports, "StripeLinkMode", { enumerable: true, get: function () { return index_js_1.StripeLinkMode; } });
13
+ var index_js_2 = require("./models/index.js");
14
+ Object.defineProperty(exports, "toReceiptItemPayload", { enumerable: true, get: function () { return index_js_2.toReceiptItemPayload; } });
15
+ Object.defineProperty(exports, "fromReceiptItemPayload", { enumerable: true, get: function () { return index_js_2.fromReceiptItemPayload; } });
16
+ Object.defineProperty(exports, "receiptItemTotalCents", { enumerable: true, get: function () { return index_js_2.receiptItemTotalCents; } });
17
+ Object.defineProperty(exports, "receiptItemIsValid", { enumerable: true, get: function () { return index_js_2.receiptItemIsValid; } });
18
+ Object.defineProperty(exports, "negateReceiptItem", { enumerable: true, get: function () { return index_js_2.negateReceiptItem; } });
19
+ Object.defineProperty(exports, "toVoucherPayload", { enumerable: true, get: function () { return index_js_2.toVoucherPayload; } });
20
+ Object.defineProperty(exports, "fromVoucherPayload", { enumerable: true, get: function () { return index_js_2.fromVoucherPayload; } });
21
+ Object.defineProperty(exports, "voucherIsValid", { enumerable: true, get: function () { return index_js_2.voucherIsValid; } });
22
+ Object.defineProperty(exports, "toReceiptPayload", { enumerable: true, get: function () { return index_js_2.toReceiptPayload; } });
23
+ Object.defineProperty(exports, "fromReceiptPayload", { enumerable: true, get: function () { return index_js_2.fromReceiptPayload; } });
24
+ Object.defineProperty(exports, "receiptSubSumCents", { enumerable: true, get: function () { return index_js_2.receiptSubSumCents; } });
25
+ Object.defineProperty(exports, "receiptSumCents", { enumerable: true, get: function () { return index_js_2.receiptSumCents; } });
26
+ Object.defineProperty(exports, "CANCELLATION_REASONS", { enumerable: true, get: function () { return index_js_2.CANCELLATION_REASONS; } });
27
+ Object.defineProperty(exports, "CANCELLATION_RESERVATION_MS", { enumerable: true, get: function () { return index_js_2.CANCELLATION_RESERVATION_MS; } });
28
+ Object.defineProperty(exports, "isCancellationReason", { enumerable: true, get: function () { return index_js_2.isCancellationReason; } });
29
+ Object.defineProperty(exports, "remainingQuantities", { enumerable: true, get: function () { return index_js_2.remainingQuantities; } });
30
+ Object.defineProperty(exports, "fromReceiptCompanyPayload", { enumerable: true, get: function () { return index_js_2.fromReceiptCompanyPayload; } });
31
+ Object.defineProperty(exports, "receiptCompanyTaxInfo", { enumerable: true, get: function () { return index_js_2.receiptCompanyTaxInfo; } });
32
+ Object.defineProperty(exports, "fromCashregisterPayload", { enumerable: true, get: function () { return index_js_2.fromCashregisterPayload; } });
33
+ Object.defineProperty(exports, "fromReceiptSummaryPayload", { enumerable: true, get: function () { return index_js_2.fromReceiptSummaryPayload; } });
34
+ Object.defineProperty(exports, "ZERO_KINDS", { enumerable: true, get: function () { return index_js_2.ZERO_KINDS; } });
35
+ Object.defineProperty(exports, "istZeroKind", { enumerable: true, get: function () { return index_js_2.istZeroKind; } });
36
+ Object.defineProperty(exports, "reportMonthFromDate", { enumerable: true, get: function () { return index_js_2.reportMonthFromDate; } });
37
+ Object.defineProperty(exports, "previousReportMonth", { enumerable: true, get: function () { return index_js_2.previousReportMonth; } });
38
+ Object.defineProperty(exports, "nextReportMonth", { enumerable: true, get: function () { return index_js_2.nextReportMonth; } });
39
+ Object.defineProperty(exports, "reportMonthKey", { enumerable: true, get: function () { return index_js_2.reportMonthKey; } });
40
+ Object.defineProperty(exports, "reportMonthReadable", { enumerable: true, get: function () { return index_js_2.reportMonthReadable; } });
41
+ Object.defineProperty(exports, "toStripeUrlSessionPayload", { enumerable: true, get: function () { return index_js_2.toStripeUrlSessionPayload; } });
42
+ Object.defineProperty(exports, "fromStripeUrlSessionPayload", { enumerable: true, get: function () { return index_js_2.fromStripeUrlSessionPayload; } });
43
+ Object.defineProperty(exports, "toHobexReceiptPayload", { enumerable: true, get: function () { return index_js_2.toHobexReceiptPayload; } });
44
+ Object.defineProperty(exports, "fromHobexReceiptPayload", { enumerable: true, get: function () { return index_js_2.fromHobexReceiptPayload; } });
45
+ Object.defineProperty(exports, "hobexReceiptToCardPaymentData", { enumerable: true, get: function () { return index_js_2.hobexReceiptToCardPaymentData; } });
46
+ Object.defineProperty(exports, "hobexReceiptNeedsSignature", { enumerable: true, get: function () { return index_js_2.hobexReceiptNeedsSignature; } });
47
+ var index_js_3 = require("./client/index.js");
48
+ Object.defineProperty(exports, "apiKeyAuth", { enumerable: true, get: function () { return index_js_3.apiKeyAuth; } });
49
+ Object.defineProperty(exports, "registerUserAuth", { enumerable: true, get: function () { return index_js_3.registerUserAuth; } });
50
+ Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return index_js_3.DEFAULT_BASE_URL; } });
51
+ Object.defineProperty(exports, "DEFAULT_TIMEOUT_MS", { enumerable: true, get: function () { return index_js_3.DEFAULT_TIMEOUT_MS; } });
52
+ Object.defineProperty(exports, "createTransport", { enumerable: true, get: function () { return index_js_3.createTransport; } });
53
+ Object.defineProperty(exports, "createBinaryTransport", { enumerable: true, get: function () { return index_js_3.createBinaryTransport; } });
54
+ Object.defineProperty(exports, "KasseneckApiError", { enumerable: true, get: function () { return index_js_3.KasseneckApiError; } });
55
+ Object.defineProperty(exports, "KasseneckAuthError", { enumerable: true, get: function () { return index_js_3.KasseneckAuthError; } });
56
+ Object.defineProperty(exports, "KasseneckHttpError", { enumerable: true, get: function () { return index_js_3.KasseneckHttpError; } });
57
+ Object.defineProperty(exports, "KasseneckNetworkError", { enumerable: true, get: function () { return index_js_3.KasseneckNetworkError; } });
58
+ Object.defineProperty(exports, "KasseneckValidationError", { enumerable: true, get: function () { return index_js_3.KasseneckValidationError; } });
59
+ Object.defineProperty(exports, "isKasseneckApiError", { enumerable: true, get: function () { return index_js_3.isKasseneckApiError; } });
60
+ Object.defineProperty(exports, "isKasseneckAuthError", { enumerable: true, get: function () { return index_js_3.isKasseneckAuthError; } });
61
+ Object.defineProperty(exports, "isKasseneckHttpError", { enumerable: true, get: function () { return index_js_3.isKasseneckHttpError; } });
62
+ Object.defineProperty(exports, "isKasseneckNetworkError", { enumerable: true, get: function () { return index_js_3.isKasseneckNetworkError; } });
63
+ Object.defineProperty(exports, "isKasseneckValidationError", { enumerable: true, get: function () { return index_js_3.isKasseneckValidationError; } });
64
+ Object.defineProperty(exports, "sellReceipt", { enumerable: true, get: function () { return index_js_3.sellReceipt; } });
65
+ Object.defineProperty(exports, "sellReceiptWithCompany", { enumerable: true, get: function () { return index_js_3.sellReceiptWithCompany; } });
66
+ Object.defineProperty(exports, "cancelReceipt", { enumerable: true, get: function () { return index_js_3.cancelReceipt; } });
67
+ Object.defineProperty(exports, "createCancelReceipt", { enumerable: true, get: function () { return index_js_3.createCancelReceipt; } });
68
+ Object.defineProperty(exports, "zeroReceipt", { enumerable: true, get: function () { return index_js_3.zeroReceipt; } });
69
+ Object.defineProperty(exports, "getReceipt", { enumerable: true, get: function () { return index_js_3.getReceipt; } });
70
+ Object.defineProperty(exports, "getReceiptWithCompany", { enumerable: true, get: function () { return index_js_3.getReceiptWithCompany; } });
71
+ Object.defineProperty(exports, "generateFullReceiptId", { enumerable: true, get: function () { return index_js_3.generateFullReceiptId; } });
72
+ Object.defineProperty(exports, "getFirstReceiptDate", { enumerable: true, get: function () { return index_js_3.getFirstReceiptDate; } });
73
+ Object.defineProperty(exports, "listMyReceipts", { enumerable: true, get: function () { return index_js_3.listMyReceipts; } });
74
+ Object.defineProperty(exports, "listMyCashregisters", { enumerable: true, get: function () { return index_js_3.listMyCashregisters; } });
75
+ Object.defineProperty(exports, "checkVoucherCombinationError", { enumerable: true, get: function () { return index_js_3.checkVoucherCombinationError; } });
76
+ Object.defineProperty(exports, "downloadDailyReport", { enumerable: true, get: function () { return index_js_3.downloadDailyReport; } });
77
+ Object.defineProperty(exports, "downloadMonthlyReport", { enumerable: true, get: function () { return index_js_3.downloadMonthlyReport; } });
78
+ Object.defineProperty(exports, "getCashboxStatus", { enumerable: true, get: function () { return index_js_3.getCashboxStatus; } });
79
+ Object.defineProperty(exports, "getSignatureStatus", { enumerable: true, get: function () { return index_js_3.getSignatureStatus; } });
80
+ Object.defineProperty(exports, "createKasseneckApi", { enumerable: true, get: function () { return index_js_3.createKasseneckApi; } });
81
+ var vienna_time_js_1 = require("./vienna-time.js");
82
+ Object.defineProperty(exports, "parseServerTimeStamp", { enumerable: true, get: function () { return vienna_time_js_1.parseServerTimeStamp; } });
83
+ Object.defineProperty(exports, "toViennaWallClock", { enumerable: true, get: function () { return vienna_time_js_1.toViennaWallClock; } });
84
+ var index_js_4 = require("./kasse/index.js");
85
+ Object.defineProperty(exports, "KASSE_BETRIEB_STANDARD", { enumerable: true, get: function () { return index_js_4.KASSE_BETRIEB_STANDARD; } });
86
+ Object.defineProperty(exports, "KASSE_GERAET_STANDARD", { enumerable: true, get: function () { return index_js_4.KASSE_GERAET_STANDARD; } });
87
+ Object.defineProperty(exports, "mergeKasseSettings", { enumerable: true, get: function () { return index_js_4.mergeKasseSettings; } });
88
+ Object.defineProperty(exports, "fromArticleGroupPayload", { enumerable: true, get: function () { return index_js_4.fromArticleGroupPayload; } });
89
+ Object.defineProperty(exports, "fromKasseArtikelPayload", { enumerable: true, get: function () { return index_js_4.fromKasseArtikelPayload; } });
90
+ Object.defineProperty(exports, "listMyArticleGroups", { enumerable: true, get: function () { return index_js_4.listMyArticleGroups; } });
91
+ Object.defineProperty(exports, "listMyArticles", { enumerable: true, get: function () { return index_js_4.listMyArticles; } });
92
+ Object.defineProperty(exports, "getKasseSettings", { enumerable: true, get: function () { return index_js_4.getKasseSettings; } });
93
+ Object.defineProperty(exports, "setMyKasseSettings", { enumerable: true, get: function () { return index_js_4.setMyKasseSettings; } });
94
+ Object.defineProperty(exports, "setMyRegisterDeviceSettings", { enumerable: true, get: function () { return index_js_4.setMyRegisterDeviceSettings; } });
95
+ Object.defineProperty(exports, "verteileRabatt", { enumerable: true, get: function () { return index_js_4.verteileRabatt; } });
96
+ Object.defineProperty(exports, "cancelScopeOf", { enumerable: true, get: function () { return index_js_4.cancelScopeOf; } });
97
+ Object.defineProperty(exports, "receiptsScopeOf", { enumerable: true, get: function () { return index_js_4.receiptsScopeOf; } });
@@ -0,0 +1,83 @@
1
+ import type { KasseneckTransport } from '../client/transport.js';
2
+ /**
3
+ * Artikelgruppen (Kategorien der Kachel-Kasse) und Artikel in der Form, die
4
+ * die Kacheln brauchen — Backend: `article-endpoints.js`
5
+ * (`listMyArticleGroups`, `listMyArticles` mit `groupId`/`kasse`).
6
+ */
7
+ export interface ArticleGroup {
8
+ id: string;
9
+ name: string;
10
+ /** #RRGGBB */
11
+ color: string;
12
+ /** Kategorie-Symbol (Emoji, hoechstens zwei Zeichen) oder null. */
13
+ symbol: string | null;
14
+ sort: number;
15
+ vatRate: number | null;
16
+ }
17
+ export interface ArticleGroupPayload {
18
+ id?: string | null;
19
+ name?: string | null;
20
+ color?: string | null;
21
+ symbol?: string | null;
22
+ sort?: number | null;
23
+ vatRate?: number | null;
24
+ }
25
+ export declare function fromArticleGroupPayload(p: ArticleGroupPayload): ArticleGroup;
26
+ /**
27
+ * Mengenregel eines Artikels: `stueck` = ganze Stueck (1, 2, 3 ...),
28
+ * `dezimal` = Kommamenge in der Einheit (0,250 kg, 1,5 m). Beleg und DEP
29
+ * bleiben ganzzahlig: eine Kommamenge wird an der Kasse als EINE Position mit
30
+ * ausgerechnetem Betrag gebucht, die Bezeichnung traegt die Menge
31
+ * („Wurst 0,250 kg“). Siehe [mengenregelFuerEinheit] fuer die Vorgabe je Einheit.
32
+ */
33
+ export type Mengenregel = 'stueck' | 'dezimal';
34
+ export interface MengenVorgabe {
35
+ regel: Mengenregel;
36
+ /** Kasse fragt beim Antippen nach der Menge (Wurst nach Gewicht: ja; Semmel: nein). */
37
+ fragen: boolean;
38
+ /** Nachkommastellen bei `dezimal`. */
39
+ stellen: number;
40
+ }
41
+ /** Vorgabe je Einheit -- was der Betrieb bei einem neuen Artikel bekommt und aendern darf. */
42
+ export declare function mengenregelFuerEinheit(unit: string | null | undefined): MengenVorgabe;
43
+ /** Wirksame Regel eines Artikels: gespeicherte Angabe schlaegt die Vorgabe der Einheit. */
44
+ export declare function mengenVorgabe(a: Pick<KasseArtikel, 'unit' | 'mengenregel' | 'mengeFragen'>): MengenVorgabe;
45
+ /** Artikel, wie ihn die Kasse fuer Kacheln und Belegpositionen braucht. */
46
+ export interface KasseArtikel {
47
+ id: string;
48
+ name: string;
49
+ unitPriceCents: number | null;
50
+ vatRate: number | null;
51
+ unit: string;
52
+ groupId: string | null;
53
+ sichtbar: boolean;
54
+ sort: number;
55
+ active: boolean;
56
+ /** Gespeicherte Mengenregel; null = Vorgabe der Einheit. */
57
+ mengenregel: Mengenregel | null;
58
+ /** Gespeichert: Kasse fragt nach der Menge; null = Vorgabe der Einheit. */
59
+ mengeFragen: boolean | null;
60
+ /** Hoechstmenge je Beleg (bei kg/l/m auch Kommazahl); null = keine Grenze. */
61
+ maxMenge: number | null;
62
+ }
63
+ /** Deckelt eine gewuenschte Menge an der Hoechstmenge des Artikels (null = keine Grenze). */
64
+ export declare function mengeErlaubt(a: Pick<KasseArtikel, 'maxMenge'>, gewuenscht: number): number;
65
+ export interface KasseArtikelPayload {
66
+ id?: string | null;
67
+ name?: string | null;
68
+ unitPriceCents?: number | null;
69
+ vatRate?: number | null;
70
+ unit?: string | null;
71
+ groupId?: string | null;
72
+ kasse?: {
73
+ sichtbar?: boolean | null;
74
+ sort?: number | null;
75
+ } | null;
76
+ active?: boolean | null;
77
+ mengenregel?: string | null;
78
+ mengeFragen?: boolean | null;
79
+ maxMenge?: number | null;
80
+ }
81
+ export declare function fromKasseArtikelPayload(p: KasseArtikelPayload): KasseArtikel;
82
+ export declare function listMyArticleGroups(rufen: KasseneckTransport): Promise<ArticleGroup[]>;
83
+ export declare function listMyArticles(rufen: KasseneckTransport): Promise<KasseArtikel[]>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fromArticleGroupPayload = fromArticleGroupPayload;
4
+ exports.mengenregelFuerEinheit = mengenregelFuerEinheit;
5
+ exports.mengenVorgabe = mengenVorgabe;
6
+ exports.mengeErlaubt = mengeErlaubt;
7
+ exports.fromKasseArtikelPayload = fromKasseArtikelPayload;
8
+ exports.listMyArticleGroups = listMyArticleGroups;
9
+ exports.listMyArticles = listMyArticles;
10
+ const errors_js_1 = require("../client/errors.js");
11
+ function fromArticleGroupPayload(p) {
12
+ return {
13
+ id: p.id ?? '',
14
+ name: p.name ?? '',
15
+ color: p.color ?? '#6B7280',
16
+ symbol: p.symbol ?? null,
17
+ sort: typeof p.sort === 'number' ? p.sort : 0,
18
+ vatRate: typeof p.vatRate === 'number' ? p.vatRate : null,
19
+ };
20
+ }
21
+ /** Einheiten, die nach Menge verkauft werden (Kommazahl, Kasse fragt). */
22
+ const DEZIMAL_EINHEITEN = {
23
+ kg: 3, g: 0, l: 2, ml: 0, m: 2, lfm: 2, km: 1, 'm²': 2, m2: 2, 'm³': 3, m3: 3, std: 2, h: 2, min: 0, t: 3,
24
+ };
25
+ /** Vorgabe je Einheit -- was der Betrieb bei einem neuen Artikel bekommt und aendern darf. */
26
+ function mengenregelFuerEinheit(unit) {
27
+ const u = (unit ?? '').trim().toLowerCase();
28
+ if (u in DEZIMAL_EINHEITEN) {
29
+ const stellen = DEZIMAL_EINHEITEN[u];
30
+ return stellen === 0
31
+ ? { regel: 'stueck', fragen: true, stellen: 0 } // g, ml, min: ganze Zahl, aber die Menge wird gefragt
32
+ : { regel: 'dezimal', fragen: true, stellen };
33
+ }
34
+ return { regel: 'stueck', fragen: false, stellen: 0 };
35
+ }
36
+ /** Wirksame Regel eines Artikels: gespeicherte Angabe schlaegt die Vorgabe der Einheit. */
37
+ function mengenVorgabe(a) {
38
+ const v = mengenregelFuerEinheit(a.unit);
39
+ return {
40
+ regel: a.mengenregel ?? v.regel,
41
+ fragen: a.mengeFragen ?? v.fragen,
42
+ stellen: (a.mengenregel ?? v.regel) === 'dezimal' ? Math.max(1, v.stellen || 2) : 0,
43
+ };
44
+ }
45
+ /** Deckelt eine gewuenschte Menge an der Hoechstmenge des Artikels (null = keine Grenze). */
46
+ function mengeErlaubt(a, gewuenscht) {
47
+ return a.maxMenge != null && a.maxMenge > 0 ? Math.min(gewuenscht, a.maxMenge) : gewuenscht;
48
+ }
49
+ function fromKasseArtikelPayload(p) {
50
+ return {
51
+ id: p.id ?? '',
52
+ name: p.name ?? '',
53
+ unitPriceCents: typeof p.unitPriceCents === 'number' ? p.unitPriceCents : null,
54
+ vatRate: typeof p.vatRate === 'number' ? p.vatRate : null,
55
+ unit: p.unit ?? '',
56
+ groupId: p.groupId ?? null,
57
+ sichtbar: p.kasse?.sichtbar !== false,
58
+ sort: typeof p.kasse?.sort === 'number' ? p.kasse.sort : 0,
59
+ active: p.active !== false,
60
+ mengenregel: p.mengenregel === 'stueck' || p.mengenregel === 'dezimal' ? p.mengenregel : null,
61
+ mengeFragen: typeof p.mengeFragen === 'boolean' ? p.mengeFragen : null,
62
+ maxMenge: typeof p.maxMenge === 'number' && Number.isFinite(p.maxMenge) && p.maxMenge > 0 ? p.maxMenge : null,
63
+ };
64
+ }
65
+ function liste(daten, feld, name, lesen) {
66
+ const roh = daten?.[feld];
67
+ if (!Array.isArray(roh)) {
68
+ throw new errors_js_1.KasseneckValidationError(name, `Antwort enthaelt keine Liste (data.${feld} fehlt)`, 'response');
69
+ }
70
+ return roh.map((e) => lesen(typeof e === 'object' && e !== null ? e : {}));
71
+ }
72
+ async function listMyArticleGroups(rufen) {
73
+ const daten = await rufen('listMyArticleGroups');
74
+ return liste(daten, 'groups', 'listMyArticleGroups', (e) => fromArticleGroupPayload(e));
75
+ }
76
+ async function listMyArticles(rufen) {
77
+ const daten = await rufen('listMyArticles');
78
+ return liste(daten, 'articles', 'listMyArticles', (e) => fromKasseArtikelPayload(e));
79
+ }
@@ -0,0 +1,10 @@
1
+ import type { KasseneckTransport } from '../client/transport.js';
2
+ import { type KasseSettings, type KasseSettingsBetrieb, type KasseSettingsGeraet } from './settings.js';
3
+ /** Einstellungen lesen — Standard + gespeichert (Backend: `getKasseSettings`). */
4
+ export declare function getKasseSettings(rufen: KasseneckTransport, options?: {
5
+ deviceId?: string;
6
+ }): Promise<KasseSettings>;
7
+ /** Betriebsweite Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
8
+ export declare function setMyKasseSettings(rufen: KasseneckTransport, betrieb: Partial<KasseSettingsBetrieb>): Promise<KasseSettingsBetrieb>;
9
+ /** Geraete-Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
10
+ export declare function setMyRegisterDeviceSettings(rufen: KasseneckTransport, deviceId: string, geraet: Partial<KasseSettingsGeraet>): Promise<KasseSettingsGeraet>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKasseSettings = getKasseSettings;
4
+ exports.setMyKasseSettings = setMyKasseSettings;
5
+ exports.setMyRegisterDeviceSettings = setMyRegisterDeviceSettings;
6
+ const errors_js_1 = require("../client/errors.js");
7
+ const settings_js_1 = require("./settings.js");
8
+ /** Einstellungen lesen — Standard + gespeichert (Backend: `getKasseSettings`). */
9
+ async function getKasseSettings(rufen, options = {}) {
10
+ const params = {};
11
+ if (options.deviceId)
12
+ params.deviceId = options.deviceId;
13
+ const daten = await rufen('getKasseSettings', params);
14
+ return {
15
+ betrieb: (0, settings_js_1.mergeKasseSettings)(settings_js_1.KASSE_BETRIEB_STANDARD, (daten?.betrieb ?? null)),
16
+ geraet: (0, settings_js_1.mergeKasseSettings)(settings_js_1.KASSE_GERAET_STANDARD, (daten?.geraet ?? null)),
17
+ };
18
+ }
19
+ function nichtLeer(name, block) {
20
+ if (!block || typeof block !== 'object' || Object.keys(block).length === 0) {
21
+ throw new errors_js_1.KasseneckValidationError(name, 'Keine Einstellungen uebergeben', 'request');
22
+ }
23
+ }
24
+ /** Betriebsweite Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
25
+ async function setMyKasseSettings(rufen, betrieb) {
26
+ nichtLeer('setMyKasseSettings', betrieb);
27
+ const daten = await rufen('setMyKasseSettings', { betrieb });
28
+ return (0, settings_js_1.mergeKasseSettings)(settings_js_1.KASSE_BETRIEB_STANDARD, (daten?.betrieb ?? null));
29
+ }
30
+ /** Geraete-Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
31
+ async function setMyRegisterDeviceSettings(rufen, deviceId, geraet) {
32
+ if (typeof deviceId !== 'string' || deviceId.trim() === '') {
33
+ throw new errors_js_1.KasseneckValidationError('setMyRegisterDeviceSettings', 'deviceId fehlt', 'request');
34
+ }
35
+ nichtLeer('setMyRegisterDeviceSettings', geraet);
36
+ const daten = await rufen('setMyRegisterDeviceSettings', { deviceId, geraet });
37
+ return (0, settings_js_1.mergeKasseSettings)(settings_js_1.KASSE_GERAET_STANDARD, (daten?.geraet ?? null));
38
+ }
@@ -0,0 +1,54 @@
1
+ import type { KasseneckTransport } from '../client/transport.js';
2
+ import type { ReceiptLayout } from '../receipt/layout.js';
3
+ /**
4
+ * Netzwerk-Bondrucker ueber Epson "Server Direct Print": das Backend fuehrt
5
+ * je Konto Drucker mit einer geheimen Abhol-URL; die Kasse legt Druckjobs
6
+ * aus einem Zeilenmodell an, der Drucker holt sie selbst ab (alle paar
7
+ * Sekunden) und meldet das Ergebnis. So druckt jeder Browser -- ohne lokale
8
+ * Software. Das ePOS-XML baut das Backend aus dem Zeichenraster (ein Setzweg).
9
+ */
10
+ export interface NetzDrucker {
11
+ id: string;
12
+ name: string;
13
+ art: string;
14
+ papier: 'mm58' | 'mm80';
15
+ aktiv: boolean;
16
+ erstellt: number | null;
17
+ /** Letzter Abruf des Druckers (ms); null = noch nie verbunden. */
18
+ zuletztGesehen: number | null;
19
+ zuletztErgebnis: {
20
+ erfolg: boolean;
21
+ code: string | null;
22
+ zeit: number;
23
+ } | null;
24
+ /** Kennung, die der Drucker selbst schickt (Feld ID im Drucker-Menue). */
25
+ druckerKennung: string | null;
26
+ /** Abhol-URL fuer das Drucker-Menue -- nur fuer den Chef/das Konto. */
27
+ sdpUrl?: string;
28
+ }
29
+ export type DruckJobStatus = 'offen' | 'gesendet' | 'gedruckt' | 'fehler' | 'abgelaufen';
30
+ export interface DruckJob {
31
+ jobId: string;
32
+ status: DruckJobStatus;
33
+ erstellt?: number | null;
34
+ gesendetAt?: number | null;
35
+ ergebnis: {
36
+ erfolg: boolean;
37
+ code: string | null;
38
+ status?: string | null;
39
+ zeit?: number;
40
+ } | null;
41
+ }
42
+ export declare function listMyPrinters(rufen: KasseneckTransport): Promise<NetzDrucker[]>;
43
+ export interface CreatePrintJobOptions {
44
+ druckerId: string;
45
+ layout: ReceiptLayout;
46
+ receiptId?: string;
47
+ titel?: string;
48
+ quelle?: string;
49
+ }
50
+ export declare function createPrintJob(rufen: KasseneckTransport, o: CreatePrintJobOptions): Promise<DruckJob>;
51
+ export declare function getPrintJob(rufen: KasseneckTransport, o: {
52
+ druckerId: string;
53
+ jobId: string;
54
+ }): Promise<DruckJob>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listMyPrinters = listMyPrinters;
4
+ exports.createPrintJob = createPrintJob;
5
+ exports.getPrintJob = getPrintJob;
6
+ const text = (v) => (typeof v === 'string' && v ? v : null);
7
+ const zahl = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : null);
8
+ async function listMyPrinters(rufen) {
9
+ const daten = await rufen('listMyPrinters', {});
10
+ return (daten?.drucker ?? []).map((r) => {
11
+ const d = (r ?? {});
12
+ const e = d.zuletztErgebnis && typeof d.zuletztErgebnis === 'object' ? d.zuletztErgebnis : null;
13
+ return {
14
+ id: String(d.id ?? ''), name: String(d.name ?? ''), art: String(d.art ?? 'epson-sdp'), papier: d.papier === 'mm58' ? 'mm58' : 'mm80',
15
+ aktiv: d.aktiv !== false, erstellt: zahl(d.erstellt), zuletztGesehen: zahl(d.zuletztGesehen),
16
+ zuletztErgebnis: e ? { erfolg: e.erfolg === true, code: text(e.code), zeit: zahl(e.zeit) ?? 0 } : null,
17
+ druckerKennung: text(d.druckerKennung),
18
+ ...(text(d.sdpUrl) ? { sdpUrl: String(d.sdpUrl) } : {}),
19
+ };
20
+ });
21
+ }
22
+ async function createPrintJob(rufen, o) {
23
+ const params = { druckerId: o.druckerId, layout: o.layout };
24
+ if (o.receiptId)
25
+ params.receiptId = o.receiptId;
26
+ if (o.titel)
27
+ params.titel = o.titel;
28
+ if (o.quelle)
29
+ params.quelle = o.quelle;
30
+ const daten = await rufen('createPrintJob', params);
31
+ return { jobId: String(daten?.jobId ?? ''), status: text(daten?.status) ?? 'offen', ergebnis: null };
32
+ }
33
+ async function getPrintJob(rufen, o) {
34
+ const d = await rufen('getPrintJob', { druckerId: o.druckerId, jobId: o.jobId });
35
+ const e = d?.ergebnis && typeof d.ergebnis === 'object' ? d.ergebnis : null;
36
+ return {
37
+ jobId: String(d?.jobId ?? o.jobId), status: text(d?.status) ?? 'offen',
38
+ erstellt: zahl(d?.erstellt), gesendetAt: zahl(d?.gesendetAt),
39
+ ergebnis: e ? { erfolg: e.erfolg === true, code: text(e.code), status: text(e.status), zeit: zahl(e.zeit) ?? undefined } : null,
40
+ };
41
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Kachel-Kasse: Einstellungen, Artikelgruppen/Artikel fuer Kacheln,
3
+ * Rabattverteilung. Die Aufrufe heissen 1:1 wie die Backend-Functions
4
+ * (die Rewrites-Waechter der Web-App leiten daraus ab).
5
+ */
6
+ export { type KasseStil, type KasseSchrift, type KasseWasserzeichen, type KasseMenge, type KasseTgModus, type KasseKassierenModus, type KasseKartenanbieter, KARTENANBIETER, type KasseBelegAusgabe, type KasseTastenAktion, type KasseTastenkarte, KASSE_TASTEN_AKTIONEN, KASSE_TASTEN_STANDARD, type KasseLayout, type KasseKatpos, type KasseHoehe, type KasseDruckerArt, type KassePapier, type KasseZeichensatz, type KasseSchnitt, type KasseLadeAuto, type Schalterkarte, type KasseSettingsBetrieb, type KasseSettingsGeraet, type KasseSettings, KASSE_BETRIEB_STANDARD, KASSE_GERAET_STANDARD, mergeKasseSettings, } from './settings.js';
7
+ export { type ArticleGroup, type ArticleGroupPayload, fromArticleGroupPayload, type KasseArtikel, type KasseArtikelPayload, fromKasseArtikelPayload, listMyArticleGroups, listMyArticles, type Mengenregel, type MengenVorgabe, mengenregelFuerEinheit, mengenVorgabe, mengeErlaubt, } from './artikel.js';
8
+ export { getKasseSettings, setMyKasseSettings, setMyRegisterDeviceSettings } from './client.js';
9
+ export { verteileRabatt } from '../receipt/discount.js';
10
+ export { cancelScopeOf, receiptsScopeOf, type RegisterScope, type RegisterUserPerms } from '../register/pairing.js';
11
+ export { type NetzDrucker, type DruckJob, type DruckJobStatus, type CreatePrintJobOptions, listMyPrinters, createPrintJob, getPrintJob } from './drucker.js';