@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,21 @@
1
+ import { type Cashregister } from '../models/index.js';
2
+ import type { KasseneckTransport } from './transport.js';
3
+ /**
4
+ * Kassen-Endpunkte.
5
+ *
6
+ * **Anmeldeweg:** `listMyCashregisters` laeuft im Backend unter
7
+ * `checkRequest(req, 'customer', …, {allowRegisterUser: true})` — der Bearer
8
+ * muss also ein Firebase-ID-Token sein. Mit `apiKeyAuth` (api_key als Bearer)
9
+ * ist dieser Endpunkt **nicht** erreichbar; fuer die Browser-Kasse ist
10
+ * `registerUserAuth` der Weg. Dieses Paket bildet das nicht nach — wer darf,
11
+ * entscheidet allein das Backend. Der Hinweis steht hier, damit ein Leser
12
+ * nicht raten muss.
13
+ */
14
+ /**
15
+ * Die Kassen, die dem angemeldeten Benutzer offenstehen — fuer einen
16
+ * Kassen-Benutzer genau die ihm zugewiesenen (das Backend filtert, siehe
17
+ * `registerAuth.darfKasse`).
18
+ *
19
+ * Ohne diesen Aufruf kann eine Browser-Kasse ihre Kasse nicht auswaehlen.
20
+ */
21
+ export declare function listMyCashregisters(rufen: KasseneckTransport): Promise<Cashregister[]>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listMyCashregisters = listMyCashregisters;
4
+ const index_js_1 = require("../models/index.js");
5
+ const errors_js_1 = require("./errors.js");
6
+ /**
7
+ * Kassen-Endpunkte.
8
+ *
9
+ * **Anmeldeweg:** `listMyCashregisters` laeuft im Backend unter
10
+ * `checkRequest(req, 'customer', …, {allowRegisterUser: true})` — der Bearer
11
+ * muss also ein Firebase-ID-Token sein. Mit `apiKeyAuth` (api_key als Bearer)
12
+ * ist dieser Endpunkt **nicht** erreichbar; fuer die Browser-Kasse ist
13
+ * `registerUserAuth` der Weg. Dieses Paket bildet das nicht nach — wer darf,
14
+ * entscheidet allein das Backend. Der Hinweis steht hier, damit ein Leser
15
+ * nicht raten muss.
16
+ */
17
+ /**
18
+ * Die Kassen, die dem angemeldeten Benutzer offenstehen — fuer einen
19
+ * Kassen-Benutzer genau die ihm zugewiesenen (das Backend filtert, siehe
20
+ * `registerAuth.darfKasse`).
21
+ *
22
+ * Ohne diesen Aufruf kann eine Browser-Kasse ihre Kasse nicht auswaehlen.
23
+ */
24
+ async function listMyCashregisters(rufen) {
25
+ const daten = await rufen('listMyCashregisters');
26
+ const liste = daten?.cashregisters;
27
+ if (!Array.isArray(liste)) {
28
+ throw new errors_js_1.KasseneckValidationError('listMyCashregisters', 'Antwort enthaelt keine Kassenliste (data.cashregisters fehlt)', 'response');
29
+ }
30
+ return liste.map((eintrag, i) => {
31
+ const nutzlast = (typeof eintrag === 'object' && eintrag !== null ? eintrag : {});
32
+ // Die Dokument-ID steht in dieser Antwort im Eintrag selbst; der zweite
33
+ // Parameter ist nur der Rueckfall (siehe fromCashregisterPayload).
34
+ return (0, index_js_1.fromCashregisterPayload)(nutzlast, nutzlast.id ?? String(i));
35
+ });
36
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Die fuenf Fehlerarten des Kasseneck-Clients — bewusst getrennt, weil ein
3
+ * Aufrufer auf jede anders reagieren muss:
4
+ *
5
+ * - `KasseneckValidationError` — die **Form** stimmt nicht: entweder ging
6
+ * mangels brauchbarer Eingabe gar keine Anfrage raus, oder die Antwort war
7
+ * nicht verwertbar. `scope` trennt die beiden Richtungen. `'request'`: die
8
+ * Eingabe des Aufrufers verletzt eine Regel, die dieses Paket schon vor dem
9
+ * Senden kennt (Beleg ohne Positionen, unmoegliche Gutscheinkombination) —
10
+ * das ist ein Programmierfehler im Aufrufer, kein Betriebszustand.
11
+ * `'response'`: das Backend meldete Erfolg, die Nutzlast enthielt aber
12
+ * nicht, was der Aufruf zusagt.
13
+ *
14
+ * - `KasseneckApiError` — **fachlicher** Fehler. Das Backend antwortet immer
15
+ * mit HTTP 200 und legt Erfolg/Misserfolg in den Rumpf
16
+ * (`{status:'success'|'error', message, data}`, siehe `successResponse`/
17
+ * `errorResponse` im Backend). Ein `status:'error'` heisst: die Anfrage kam
18
+ * an und wurde abgelehnt (gesperrte Kasse, fehlendes Modul, ungueltiger
19
+ * Parameter). Wiederholen hilft nicht.
20
+ * - `KasseneckHttpError` — die Antwort war **keine** verwertbare Huelle:
21
+ * HTTP 500/404, leerer Rumpf, oder HTTP 200 mit HTML statt JSON (typisch,
22
+ * wenn ein Aufruf mangels Rewrite auf der Single-Page-App landet). Beim
23
+ * Bericht-Download gelten dieselben Gruende fuer alles, was kein PDF ist.
24
+ * `reason` trennt die Faelle maschinenlesbar.
25
+ * - `KasseneckNetworkError` — die Antwort kam gar nicht: Netz weg, DNS,
26
+ * abgebrochene Verbindung oder Zeitueberschreitung (`timedOut`).
27
+ * - `KasseneckAuthError` — es kam nicht einmal zur Anfrage, weil die Anmeldung
28
+ * scheiterte (fehlende Zugangsdaten, oder der Token-/Sitzungsgeber warf).
29
+ * In der Browser-Kasse mit ihrer 90-Sekunden-Sitzung ist das Alltag, kein
30
+ * Sonderfall.
31
+ *
32
+ * **Geheimnisse gehoeren in keinen dieser Fehler.** Fehlermeldungen landen in
33
+ * Protokollen und Fehlerdiensten; weder `api_key`, Kassen-Token, Firebase-
34
+ * ID-Token noch Sitzungsbezeichner duerfen dorthin. Deshalb tragen die Fehler
35
+ * ausschliesslich Funktionsname, HTTP-Status/Inhaltstyp, den vom Paket
36
+ * formulierten Grund und die vom Backend formulierte Meldung — nie Kopfzeilen,
37
+ * nie den gesendeten Rumpf und auch nicht den empfangenen Rumpf (der koennte
38
+ * bei einem fremden Proxy alles Moegliche zurueckspiegeln).
39
+ *
40
+ * Aus demselben Grund haengt **keine fremde Ursache** als `cause` an diesen
41
+ * Fehlern: `console.error(err)` und `util.inspect` drucken die Ursachenkette
42
+ * mit, und fremde HTTP-Bibliotheken haengen ihre Anfrage an ihre Fehler (axios
43
+ * `config.headers`, got `options.headers`) — mit dem Bearer-Schluessel darin.
44
+ * Statt der Ursache selbst traegt `KasseneckNetworkError` ihre **verdichtete**
45
+ * Form: `causeName`/`causeCode`, beide nur, wenn sie wie ein Bezeichner
46
+ * aussehen **und** mit keinem der gesendeten Geheimnisse ueberlappen (siehe
47
+ * `causeDigest`).
48
+ *
49
+ * Der Formfilter allein traegt diese Zusage naemlich nicht: der
50
+ * Sitzungsbezeichner der Browser-Kasse ist selbst bezeichner-foermig und kaeme
51
+ * durch. Verdichtet werden darf nur, wo die gesendeten Geheimnisse bekannt
52
+ * sind — also nach dem Bauen der Anfrage. `KasseneckAuthError` traegt darum
53
+ * **gar keine** Ursachen-Verdichtung: dort ist noch nichts gesendet, es gibt
54
+ * keine Liste zum Abgleichen, und Diagnose ist an dieser Stelle weniger wert
55
+ * als die Zusage.
56
+ */
57
+ /** Verdichtete, geheimnisfreie Form einer fremden Fehlerursache. */
58
+ export interface CauseDigest {
59
+ causeName?: string | undefined;
60
+ causeCode?: string | undefined;
61
+ }
62
+ /**
63
+ * Reduziert eine fremde Ursache auf Name und Code — und verwirft beides, wenn
64
+ * es kein Bezeichner ist oder mit einem der uebergebenen Geheimnisse
65
+ * ueberlappt (ein Sitzungsbezeichner sieht durchaus bezeichner-artig aus).
66
+ *
67
+ * `geheimnisse` hat bewusst **keinen** Vorgabewert: eine Verdichtung ohne
68
+ * Abgleichliste waere nur ein Formfilter und damit keine Zusage. Wo die
69
+ * gesendeten Werte nicht bekannt sind, wird gar nicht verdichtet.
70
+ */
71
+ export declare function causeDigest(ursache: unknown, geheimnisse: readonly string[]): CauseDigest;
72
+ /** Fachlicher Fehler: HTTP 200, aber `status: 'error'` im Rumpf. */
73
+ export declare class KasseneckApiError extends Error {
74
+ readonly name = "KasseneckApiError";
75
+ /** Aufgerufene Backend-Funktion, z. B. `createReceipt`. */
76
+ readonly functionName: string;
77
+ /** Meldung des Backends, unveraendert (`message` aus der Huelle). */
78
+ readonly serverMessage: string;
79
+ constructor(functionName: string, serverMessage: string);
80
+ }
81
+ /** Warum die Antwort keine verwertbare Huelle war. */
82
+ export type HttpFailureReason = 'server-error' | 'empty-body' | 'not-json' | 'missing-status';
83
+ /** Antwort ohne verwertbare Huelle (HTTP-Fehler, leerer Rumpf, HTML statt JSON). */
84
+ export declare class KasseneckHttpError extends Error {
85
+ readonly name = "KasseneckHttpError";
86
+ readonly functionName: string;
87
+ /** HTTP-Statuscode der Antwort (bei HTML-statt-JSON durchaus 200). */
88
+ readonly statusCode: number;
89
+ /** Inhaltstyp der Antwort, falls die Gegenstelle einen gesetzt hat. */
90
+ readonly contentType: string | undefined;
91
+ /** Maschinenlesbarer Grund — trennt den Rewrite-Fall vom 500er ohne Textparsen. */
92
+ readonly reason: HttpFailureReason;
93
+ constructor(functionName: string, statusCode: number, contentType: string | undefined, reason: HttpFailureReason);
94
+ }
95
+ /** Es kam keine Antwort: Netzfehler oder Zeitueberschreitung. */
96
+ export declare class KasseneckNetworkError extends Error {
97
+ readonly name = "KasseneckNetworkError";
98
+ readonly functionName: string;
99
+ /** true = das Zeitlimit lief ab und die Anfrage wurde abgebrochen. */
100
+ readonly timedOut: boolean;
101
+ /** Das geltende Zeitlimit in Millisekunden. */
102
+ readonly timeoutMs: number;
103
+ /** Name der zugrunde liegenden Ursache, sofern unbedenklich (s. `causeDigest`). */
104
+ readonly causeName: string | undefined;
105
+ /** Code der zugrunde liegenden Ursache, sofern unbedenklich (z. B. `ECONNREFUSED`). */
106
+ readonly causeCode: string | undefined;
107
+ constructor(functionName: string, timedOut: boolean, timeoutMs: number, ursache?: CauseDigest);
108
+ }
109
+ /**
110
+ * Die Anmeldung scheiterte — es ging keine Anfrage raus.
111
+ *
112
+ * Dieser Fehler traegt **nichts** aus der fremden Ursache: weder ihre Meldung
113
+ * (ein Token-Geber fuehrt gern den Token mit, den er gerade nicht erneuern
114
+ * konnte) noch eine Verdichtung ihres Namens/Codes. Zum Zeitpunkt des
115
+ * Anmeldefehlers ist noch nichts gesendet, es gibt also keine Liste der
116
+ * Geheimnisse, gegen die verdichtete Werte geprueft werden koennten — und ein
117
+ * reiner Formfilter laesst genau die Form durch, die ein Sitzungsbezeichner
118
+ * hat.
119
+ */
120
+ export declare class KasseneckAuthError extends Error {
121
+ readonly name = "KasseneckAuthError";
122
+ /** Betroffene Backend-Funktion, falls der Fehler bei einem Aufruf entstand. */
123
+ readonly functionName: string | undefined;
124
+ /** Vom Paket formulierter Grund — geheimnisfrei, anders als fremde Meldungen. */
125
+ readonly reason: string;
126
+ constructor(reason: string, options?: {
127
+ functionName?: string;
128
+ });
129
+ }
130
+ /** Woran die Form haengt: an der Eingabe des Aufrufers oder an der Antwort. */
131
+ export type ValidationScope = 'request' | 'response';
132
+ /**
133
+ * Die Form stimmt nicht — bei `scope: 'request'` ging deshalb keine Anfrage
134
+ * raus, bei `scope: 'response'` kam eine unbrauchbare zurueck.
135
+ *
136
+ * Es gilt dieselbe Zusage wie fuer die uebrigen Fehlerarten: `reason` ist vom
137
+ * Paket formuliert und geheimnisfrei. Bei `'response'` wird insbesondere
138
+ * **nichts aus der Antwort** uebernommen — ein fremder Proxy koennte dort
139
+ * alles Moegliche zurueckspiegeln.
140
+ */
141
+ export declare class KasseneckValidationError extends Error {
142
+ readonly name = "KasseneckValidationError";
143
+ /**
144
+ * Betroffener Vorgang — meist die Backend-Funktion, bei Pruefungen ohne
145
+ * Aufruf der Name der Paketfunktion (z. B. `buildReceiptLayout`).
146
+ */
147
+ readonly functionName: string;
148
+ /** Vom Paket formulierter Grund. */
149
+ readonly reason: string;
150
+ readonly scope: ValidationScope;
151
+ constructor(functionName: string, reason: string, scope: ValidationScope);
152
+ }
153
+ /** Alle Fehler, die dieses Paket wirft. */
154
+ export type KasseneckError = KasseneckApiError | KasseneckHttpError | KasseneckNetworkError | KasseneckAuthError | KasseneckValidationError;
155
+ export declare function isKasseneckApiError(fehler: unknown): fehler is KasseneckApiError;
156
+ export declare function isKasseneckHttpError(fehler: unknown): fehler is KasseneckHttpError;
157
+ export declare function isKasseneckNetworkError(fehler: unknown): fehler is KasseneckNetworkError;
158
+ export declare function isKasseneckAuthError(fehler: unknown): fehler is KasseneckAuthError;
159
+ export declare function isKasseneckValidationError(fehler: unknown): fehler is KasseneckValidationError;
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * Die fuenf Fehlerarten des Kasseneck-Clients — bewusst getrennt, weil ein
4
+ * Aufrufer auf jede anders reagieren muss:
5
+ *
6
+ * - `KasseneckValidationError` — die **Form** stimmt nicht: entweder ging
7
+ * mangels brauchbarer Eingabe gar keine Anfrage raus, oder die Antwort war
8
+ * nicht verwertbar. `scope` trennt die beiden Richtungen. `'request'`: die
9
+ * Eingabe des Aufrufers verletzt eine Regel, die dieses Paket schon vor dem
10
+ * Senden kennt (Beleg ohne Positionen, unmoegliche Gutscheinkombination) —
11
+ * das ist ein Programmierfehler im Aufrufer, kein Betriebszustand.
12
+ * `'response'`: das Backend meldete Erfolg, die Nutzlast enthielt aber
13
+ * nicht, was der Aufruf zusagt.
14
+ *
15
+ * - `KasseneckApiError` — **fachlicher** Fehler. Das Backend antwortet immer
16
+ * mit HTTP 200 und legt Erfolg/Misserfolg in den Rumpf
17
+ * (`{status:'success'|'error', message, data}`, siehe `successResponse`/
18
+ * `errorResponse` im Backend). Ein `status:'error'` heisst: die Anfrage kam
19
+ * an und wurde abgelehnt (gesperrte Kasse, fehlendes Modul, ungueltiger
20
+ * Parameter). Wiederholen hilft nicht.
21
+ * - `KasseneckHttpError` — die Antwort war **keine** verwertbare Huelle:
22
+ * HTTP 500/404, leerer Rumpf, oder HTTP 200 mit HTML statt JSON (typisch,
23
+ * wenn ein Aufruf mangels Rewrite auf der Single-Page-App landet). Beim
24
+ * Bericht-Download gelten dieselben Gruende fuer alles, was kein PDF ist.
25
+ * `reason` trennt die Faelle maschinenlesbar.
26
+ * - `KasseneckNetworkError` — die Antwort kam gar nicht: Netz weg, DNS,
27
+ * abgebrochene Verbindung oder Zeitueberschreitung (`timedOut`).
28
+ * - `KasseneckAuthError` — es kam nicht einmal zur Anfrage, weil die Anmeldung
29
+ * scheiterte (fehlende Zugangsdaten, oder der Token-/Sitzungsgeber warf).
30
+ * In der Browser-Kasse mit ihrer 90-Sekunden-Sitzung ist das Alltag, kein
31
+ * Sonderfall.
32
+ *
33
+ * **Geheimnisse gehoeren in keinen dieser Fehler.** Fehlermeldungen landen in
34
+ * Protokollen und Fehlerdiensten; weder `api_key`, Kassen-Token, Firebase-
35
+ * ID-Token noch Sitzungsbezeichner duerfen dorthin. Deshalb tragen die Fehler
36
+ * ausschliesslich Funktionsname, HTTP-Status/Inhaltstyp, den vom Paket
37
+ * formulierten Grund und die vom Backend formulierte Meldung — nie Kopfzeilen,
38
+ * nie den gesendeten Rumpf und auch nicht den empfangenen Rumpf (der koennte
39
+ * bei einem fremden Proxy alles Moegliche zurueckspiegeln).
40
+ *
41
+ * Aus demselben Grund haengt **keine fremde Ursache** als `cause` an diesen
42
+ * Fehlern: `console.error(err)` und `util.inspect` drucken die Ursachenkette
43
+ * mit, und fremde HTTP-Bibliotheken haengen ihre Anfrage an ihre Fehler (axios
44
+ * `config.headers`, got `options.headers`) — mit dem Bearer-Schluessel darin.
45
+ * Statt der Ursache selbst traegt `KasseneckNetworkError` ihre **verdichtete**
46
+ * Form: `causeName`/`causeCode`, beide nur, wenn sie wie ein Bezeichner
47
+ * aussehen **und** mit keinem der gesendeten Geheimnisse ueberlappen (siehe
48
+ * `causeDigest`).
49
+ *
50
+ * Der Formfilter allein traegt diese Zusage naemlich nicht: der
51
+ * Sitzungsbezeichner der Browser-Kasse ist selbst bezeichner-foermig und kaeme
52
+ * durch. Verdichtet werden darf nur, wo die gesendeten Geheimnisse bekannt
53
+ * sind — also nach dem Bauen der Anfrage. `KasseneckAuthError` traegt darum
54
+ * **gar keine** Ursachen-Verdichtung: dort ist noch nichts gesendet, es gibt
55
+ * keine Liste zum Abgleichen, und Diagnose ist an dieser Stelle weniger wert
56
+ * als die Zusage.
57
+ */
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.KasseneckValidationError = exports.KasseneckAuthError = exports.KasseneckNetworkError = exports.KasseneckHttpError = exports.KasseneckApiError = void 0;
60
+ exports.causeDigest = causeDigest;
61
+ exports.isKasseneckApiError = isKasseneckApiError;
62
+ exports.isKasseneckHttpError = isKasseneckHttpError;
63
+ exports.isKasseneckNetworkError = isKasseneckNetworkError;
64
+ exports.isKasseneckAuthError = isKasseneckAuthError;
65
+ exports.isKasseneckValidationError = isKasseneckValidationError;
66
+ // Bezeichner-artig: Buchstabe vorn, danach nur Bezeichnerzeichen, hoechstens
67
+ // 64 Zeichen. Das laesst `TypeError`, `ECONNREFUSED` und `auth/internal-error`
68
+ // durch, aber keinen Freitext und kein Firebase-ID-Token (~900 Zeichen).
69
+ const BEZEICHNER = /^[A-Za-z][A-Za-z0-9_./-]{0,63}$/;
70
+ /**
71
+ * Reduziert eine fremde Ursache auf Name und Code — und verwirft beides, wenn
72
+ * es kein Bezeichner ist oder mit einem der uebergebenen Geheimnisse
73
+ * ueberlappt (ein Sitzungsbezeichner sieht durchaus bezeichner-artig aus).
74
+ *
75
+ * `geheimnisse` hat bewusst **keinen** Vorgabewert: eine Verdichtung ohne
76
+ * Abgleichliste waere nur ein Formfilter und damit keine Zusage. Wo die
77
+ * gesendeten Werte nicht bekannt sind, wird gar nicht verdichtet.
78
+ */
79
+ function causeDigest(ursache, geheimnisse) {
80
+ const roh = ursache;
81
+ return {
82
+ causeName: unbedenklich(roh?.name, geheimnisse),
83
+ causeCode: unbedenklich(roh?.code, geheimnisse),
84
+ };
85
+ }
86
+ function unbedenklich(wert, geheimnisse) {
87
+ if (typeof wert !== 'string' || !BEZEICHNER.test(wert)) {
88
+ return undefined;
89
+ }
90
+ for (const geheim of geheimnisse) {
91
+ if (geheim && (geheim.includes(wert) || wert.includes(geheim))) {
92
+ return undefined;
93
+ }
94
+ }
95
+ return wert;
96
+ }
97
+ /** Fachlicher Fehler: HTTP 200, aber `status: 'error'` im Rumpf. */
98
+ class KasseneckApiError extends Error {
99
+ name = 'KasseneckApiError';
100
+ /** Aufgerufene Backend-Funktion, z. B. `createReceipt`. */
101
+ functionName;
102
+ /** Meldung des Backends, unveraendert (`message` aus der Huelle). */
103
+ serverMessage;
104
+ constructor(functionName, serverMessage) {
105
+ super(`${functionName} fehlgeschlagen: ${serverMessage}`);
106
+ this.functionName = functionName;
107
+ this.serverMessage = serverMessage;
108
+ }
109
+ }
110
+ exports.KasseneckApiError = KasseneckApiError;
111
+ const GRUND_TEXT = {
112
+ 'server-error': 'Server-Fehler',
113
+ 'empty-body': 'leere Antwort',
114
+ 'not-json': 'Antwort ist kein JSON',
115
+ 'missing-status': 'Antwort ohne Statusfeld',
116
+ };
117
+ /** Antwort ohne verwertbare Huelle (HTTP-Fehler, leerer Rumpf, HTML statt JSON). */
118
+ class KasseneckHttpError extends Error {
119
+ name = 'KasseneckHttpError';
120
+ functionName;
121
+ /** HTTP-Statuscode der Antwort (bei HTML-statt-JSON durchaus 200). */
122
+ statusCode;
123
+ /** Inhaltstyp der Antwort, falls die Gegenstelle einen gesetzt hat. */
124
+ contentType;
125
+ /** Maschinenlesbarer Grund — trennt den Rewrite-Fall vom 500er ohne Textparsen. */
126
+ reason;
127
+ constructor(functionName, statusCode, contentType, reason) {
128
+ const typHinweis = contentType ? `, Inhaltstyp ${contentType}` : '';
129
+ super(`${functionName} fehlgeschlagen: ${GRUND_TEXT[reason]} (HTTP ${statusCode}${typHinweis})`);
130
+ this.functionName = functionName;
131
+ this.statusCode = statusCode;
132
+ this.contentType = contentType;
133
+ this.reason = reason;
134
+ }
135
+ }
136
+ exports.KasseneckHttpError = KasseneckHttpError;
137
+ /** Es kam keine Antwort: Netzfehler oder Zeitueberschreitung. */
138
+ class KasseneckNetworkError extends Error {
139
+ name = 'KasseneckNetworkError';
140
+ functionName;
141
+ /** true = das Zeitlimit lief ab und die Anfrage wurde abgebrochen. */
142
+ timedOut;
143
+ /** Das geltende Zeitlimit in Millisekunden. */
144
+ timeoutMs;
145
+ /** Name der zugrunde liegenden Ursache, sofern unbedenklich (s. `causeDigest`). */
146
+ causeName;
147
+ /** Code der zugrunde liegenden Ursache, sofern unbedenklich (z. B. `ECONNREFUSED`). */
148
+ causeCode;
149
+ constructor(functionName, timedOut, timeoutMs, ursache = {}) {
150
+ const grund = timedOut ? `Zeitueberschreitung nach ${timeoutMs} ms` : 'Netzwerkfehler';
151
+ const codeHinweis = ursache.causeCode ? ` (${ursache.causeCode})` : '';
152
+ super(`${functionName} fehlgeschlagen: ${grund}${codeHinweis}`);
153
+ this.functionName = functionName;
154
+ this.timedOut = timedOut;
155
+ this.timeoutMs = timeoutMs;
156
+ this.causeName = ursache.causeName;
157
+ this.causeCode = ursache.causeCode;
158
+ }
159
+ }
160
+ exports.KasseneckNetworkError = KasseneckNetworkError;
161
+ /**
162
+ * Die Anmeldung scheiterte — es ging keine Anfrage raus.
163
+ *
164
+ * Dieser Fehler traegt **nichts** aus der fremden Ursache: weder ihre Meldung
165
+ * (ein Token-Geber fuehrt gern den Token mit, den er gerade nicht erneuern
166
+ * konnte) noch eine Verdichtung ihres Namens/Codes. Zum Zeitpunkt des
167
+ * Anmeldefehlers ist noch nichts gesendet, es gibt also keine Liste der
168
+ * Geheimnisse, gegen die verdichtete Werte geprueft werden koennten — und ein
169
+ * reiner Formfilter laesst genau die Form durch, die ein Sitzungsbezeichner
170
+ * hat.
171
+ */
172
+ class KasseneckAuthError extends Error {
173
+ name = 'KasseneckAuthError';
174
+ /** Betroffene Backend-Funktion, falls der Fehler bei einem Aufruf entstand. */
175
+ functionName;
176
+ /** Vom Paket formulierter Grund — geheimnisfrei, anders als fremde Meldungen. */
177
+ reason;
178
+ constructor(reason, options = {}) {
179
+ super(options.functionName ? `${options.functionName} fehlgeschlagen: ${reason}` : reason);
180
+ this.functionName = options.functionName;
181
+ this.reason = reason;
182
+ }
183
+ }
184
+ exports.KasseneckAuthError = KasseneckAuthError;
185
+ /**
186
+ * Die Form stimmt nicht — bei `scope: 'request'` ging deshalb keine Anfrage
187
+ * raus, bei `scope: 'response'` kam eine unbrauchbare zurueck.
188
+ *
189
+ * Es gilt dieselbe Zusage wie fuer die uebrigen Fehlerarten: `reason` ist vom
190
+ * Paket formuliert und geheimnisfrei. Bei `'response'` wird insbesondere
191
+ * **nichts aus der Antwort** uebernommen — ein fremder Proxy koennte dort
192
+ * alles Moegliche zurueckspiegeln.
193
+ */
194
+ class KasseneckValidationError extends Error {
195
+ name = 'KasseneckValidationError';
196
+ /**
197
+ * Betroffener Vorgang — meist die Backend-Funktion, bei Pruefungen ohne
198
+ * Aufruf der Name der Paketfunktion (z. B. `buildReceiptLayout`).
199
+ */
200
+ functionName;
201
+ /** Vom Paket formulierter Grund. */
202
+ reason;
203
+ scope;
204
+ constructor(functionName, reason, scope) {
205
+ super(`${functionName} fehlgeschlagen: ${reason}`);
206
+ this.functionName = functionName;
207
+ this.reason = reason;
208
+ this.scope = scope;
209
+ }
210
+ }
211
+ exports.KasseneckValidationError = KasseneckValidationError;
212
+ function isKasseneckApiError(fehler) {
213
+ return fehler instanceof KasseneckApiError;
214
+ }
215
+ function isKasseneckHttpError(fehler) {
216
+ return fehler instanceof KasseneckHttpError;
217
+ }
218
+ function isKasseneckNetworkError(fehler) {
219
+ return fehler instanceof KasseneckNetworkError;
220
+ }
221
+ function isKasseneckAuthError(fehler) {
222
+ return fehler instanceof KasseneckAuthError;
223
+ }
224
+ function isKasseneckValidationError(fehler) {
225
+ return fehler instanceof KasseneckValidationError;
226
+ }
@@ -0,0 +1,8 @@
1
+ export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, } from './auth.js';
2
+ export { DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type KasseneckTransport, type KasseneckBinaryTransport, createTransport, createBinaryTransport, } from './transport.js';
3
+ export { KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, } from './errors.js';
4
+ export { type ReceiptCommonOptions, type SellReceiptOptions, type CancelReceiptOptions, type CreateCancelReceiptOptions, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, cancelReceipt, type CancelReceiptResult, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, checkVoucherCombinationError, } from './receipts.js';
5
+ export { listMyCashregisters } from './cashregisters.js';
6
+ export { downloadDailyReport, downloadMonthlyReport } from './reports.js';
7
+ export { type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, } from './status.js';
8
+ export { type KasseneckApi, createKasseneckApi } from './api.js';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createKasseneckApi = exports.getSignatureStatus = exports.getCashboxStatus = exports.downloadMonthlyReport = exports.downloadDailyReport = exports.listMyCashregisters = exports.checkVoucherCombinationError = 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 = exports.KasseneckNetworkError = exports.KasseneckHttpError = exports.KasseneckAuthError = exports.KasseneckApiError = exports.createBinaryTransport = exports.createTransport = exports.DEFAULT_TIMEOUT_MS = exports.DEFAULT_BASE_URL = exports.registerUserAuth = exports.apiKeyAuth = void 0;
4
+ var auth_js_1 = require("./auth.js");
5
+ Object.defineProperty(exports, "apiKeyAuth", { enumerable: true, get: function () { return auth_js_1.apiKeyAuth; } });
6
+ Object.defineProperty(exports, "registerUserAuth", { enumerable: true, get: function () { return auth_js_1.registerUserAuth; } });
7
+ var transport_js_1 = require("./transport.js");
8
+ Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return transport_js_1.DEFAULT_BASE_URL; } });
9
+ Object.defineProperty(exports, "DEFAULT_TIMEOUT_MS", { enumerable: true, get: function () { return transport_js_1.DEFAULT_TIMEOUT_MS; } });
10
+ Object.defineProperty(exports, "createTransport", { enumerable: true, get: function () { return transport_js_1.createTransport; } });
11
+ Object.defineProperty(exports, "createBinaryTransport", { enumerable: true, get: function () { return transport_js_1.createBinaryTransport; } });
12
+ var errors_js_1 = require("./errors.js");
13
+ Object.defineProperty(exports, "KasseneckApiError", { enumerable: true, get: function () { return errors_js_1.KasseneckApiError; } });
14
+ Object.defineProperty(exports, "KasseneckAuthError", { enumerable: true, get: function () { return errors_js_1.KasseneckAuthError; } });
15
+ Object.defineProperty(exports, "KasseneckHttpError", { enumerable: true, get: function () { return errors_js_1.KasseneckHttpError; } });
16
+ Object.defineProperty(exports, "KasseneckNetworkError", { enumerable: true, get: function () { return errors_js_1.KasseneckNetworkError; } });
17
+ Object.defineProperty(exports, "KasseneckValidationError", { enumerable: true, get: function () { return errors_js_1.KasseneckValidationError; } });
18
+ Object.defineProperty(exports, "isKasseneckApiError", { enumerable: true, get: function () { return errors_js_1.isKasseneckApiError; } });
19
+ Object.defineProperty(exports, "isKasseneckAuthError", { enumerable: true, get: function () { return errors_js_1.isKasseneckAuthError; } });
20
+ Object.defineProperty(exports, "isKasseneckHttpError", { enumerable: true, get: function () { return errors_js_1.isKasseneckHttpError; } });
21
+ Object.defineProperty(exports, "isKasseneckNetworkError", { enumerable: true, get: function () { return errors_js_1.isKasseneckNetworkError; } });
22
+ Object.defineProperty(exports, "isKasseneckValidationError", { enumerable: true, get: function () { return errors_js_1.isKasseneckValidationError; } });
23
+ var receipts_js_1 = require("./receipts.js");
24
+ Object.defineProperty(exports, "sellReceipt", { enumerable: true, get: function () { return receipts_js_1.sellReceipt; } });
25
+ Object.defineProperty(exports, "sellReceiptWithCompany", { enumerable: true, get: function () { return receipts_js_1.sellReceiptWithCompany; } });
26
+ Object.defineProperty(exports, "cancelReceipt", { enumerable: true, get: function () { return receipts_js_1.cancelReceipt; } });
27
+ Object.defineProperty(exports, "createCancelReceipt", { enumerable: true, get: function () { return receipts_js_1.createCancelReceipt; } });
28
+ Object.defineProperty(exports, "zeroReceipt", { enumerable: true, get: function () { return receipts_js_1.zeroReceipt; } });
29
+ Object.defineProperty(exports, "getReceipt", { enumerable: true, get: function () { return receipts_js_1.getReceipt; } });
30
+ Object.defineProperty(exports, "getReceiptWithCompany", { enumerable: true, get: function () { return receipts_js_1.getReceiptWithCompany; } });
31
+ Object.defineProperty(exports, "generateFullReceiptId", { enumerable: true, get: function () { return receipts_js_1.generateFullReceiptId; } });
32
+ Object.defineProperty(exports, "getFirstReceiptDate", { enumerable: true, get: function () { return receipts_js_1.getFirstReceiptDate; } });
33
+ Object.defineProperty(exports, "listMyReceipts", { enumerable: true, get: function () { return receipts_js_1.listMyReceipts; } });
34
+ Object.defineProperty(exports, "checkVoucherCombinationError", { enumerable: true, get: function () { return receipts_js_1.checkVoucherCombinationError; } });
35
+ var cashregisters_js_1 = require("./cashregisters.js");
36
+ Object.defineProperty(exports, "listMyCashregisters", { enumerable: true, get: function () { return cashregisters_js_1.listMyCashregisters; } });
37
+ var reports_js_1 = require("./reports.js");
38
+ Object.defineProperty(exports, "downloadDailyReport", { enumerable: true, get: function () { return reports_js_1.downloadDailyReport; } });
39
+ Object.defineProperty(exports, "downloadMonthlyReport", { enumerable: true, get: function () { return reports_js_1.downloadMonthlyReport; } });
40
+ var status_js_1 = require("./status.js");
41
+ Object.defineProperty(exports, "getCashboxStatus", { enumerable: true, get: function () { return status_js_1.getCashboxStatus; } });
42
+ Object.defineProperty(exports, "getSignatureStatus", { enumerable: true, get: function () { return status_js_1.getSignatureStatus; } });
43
+ var api_js_1 = require("./api.js");
44
+ Object.defineProperty(exports, "createKasseneckApi", { enumerable: true, get: function () { return api_js_1.createKasseneckApi; } });