@kreiseck/kasseneck-api 1.2.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +119 -3
  3. package/dist/cjs/client/aufrufe.d.ts +2 -2
  4. package/dist/cjs/client/aufrufe.js +30 -0
  5. package/dist/cjs/inventory/api.d.ts +45 -0
  6. package/dist/cjs/inventory/api.js +38 -0
  7. package/dist/cjs/inventory/auth.d.ts +17 -0
  8. package/dist/cjs/inventory/auth.js +27 -0
  9. package/dist/cjs/inventory/endpunkte.d.ts +71 -0
  10. package/dist/cjs/inventory/endpunkte.js +285 -0
  11. package/dist/cjs/inventory/fehler.d.ts +33 -0
  12. package/dist/cjs/inventory/fehler.js +47 -0
  13. package/dist/cjs/inventory/index.d.ts +19 -0
  14. package/dist/cjs/inventory/index.js +64 -0
  15. package/dist/cjs/inventory/lesen.d.ts +38 -0
  16. package/dist/cjs/inventory/lesen.js +294 -0
  17. package/dist/cjs/inventory/typen.d.ts +319 -0
  18. package/dist/cjs/inventory/typen.js +14 -0
  19. package/dist/cjs/inventory/vertrag.d.ts +76 -0
  20. package/dist/cjs/inventory/vertrag.js +166 -0
  21. package/dist/cjs/inventory/webhook.d.ts +50 -0
  22. package/dist/cjs/inventory/webhook.js +110 -0
  23. package/dist/cjs/pos/artikel.d.ts +20 -0
  24. package/dist/cjs/pos/artikel.js +8 -0
  25. package/dist/cjs/pos/index.d.ts +1 -1
  26. package/dist/cjs/pos/index.js +2 -1
  27. package/dist/cjs/pos/texte.d.ts +41 -0
  28. package/dist/cjs/pos/texte.js +29 -1
  29. package/dist/cjs/stored/vokabular.d.ts +1 -1
  30. package/dist/cjs/stored/vokabular.js +1 -1
  31. package/dist/cjs/version.d.ts +1 -1
  32. package/dist/cjs/version.js +1 -1
  33. package/dist/esm/client/aufrufe.d.ts +2 -2
  34. package/dist/esm/client/aufrufe.js +30 -0
  35. package/dist/esm/inventory/api.d.ts +45 -0
  36. package/dist/esm/inventory/api.js +35 -0
  37. package/dist/esm/inventory/auth.d.ts +17 -0
  38. package/dist/esm/inventory/auth.js +24 -0
  39. package/dist/esm/inventory/endpunkte.d.ts +71 -0
  40. package/dist/esm/inventory/endpunkte.js +266 -0
  41. package/dist/esm/inventory/fehler.d.ts +33 -0
  42. package/dist/esm/inventory/fehler.js +40 -0
  43. package/dist/esm/inventory/index.d.ts +19 -0
  44. package/dist/esm/inventory/index.js +18 -0
  45. package/dist/esm/inventory/lesen.d.ts +38 -0
  46. package/dist/esm/inventory/lesen.js +278 -0
  47. package/dist/esm/inventory/typen.d.ts +319 -0
  48. package/dist/esm/inventory/typen.js +13 -0
  49. package/dist/esm/inventory/vertrag.d.ts +76 -0
  50. package/dist/esm/inventory/vertrag.js +163 -0
  51. package/dist/esm/inventory/webhook.d.ts +50 -0
  52. package/dist/esm/inventory/webhook.js +101 -0
  53. package/dist/esm/pos/artikel.d.ts +20 -0
  54. package/dist/esm/pos/artikel.js +8 -0
  55. package/dist/esm/pos/index.d.ts +1 -1
  56. package/dist/esm/pos/index.js +1 -1
  57. package/dist/esm/pos/texte.d.ts +41 -0
  58. package/dist/esm/pos/texte.js +28 -0
  59. package/dist/esm/stored/vokabular.d.ts +1 -1
  60. package/dist/esm/stored/vokabular.js +1 -1
  61. package/dist/esm/version.d.ts +1 -1
  62. package/dist/esm/version.js +1 -1
  63. package/fixtures/hobex-hps-codes.json +1 -1
  64. package/fixtures/invoice-api.schema.json +1 -1
  65. package/fixtures/invoice-texts.json +1 -1
  66. package/fixtures/pos-texts.json +36 -1
  67. package/fixtures/surface.json +161 -3
  68. package/fixtures/v3/README.md +9 -1
  69. package/fixtures/v3/antworten/belege.json +2 -2
  70. package/fixtures/v3/antworten/belegmail.json +2 -2
  71. package/fixtures/v3/antworten/kasse-belege.json +2 -2
  72. package/fixtures/v3/antworten/kasse.json +3 -3
  73. package/fixtures/v3/antworten/lager.json +1520 -0
  74. package/fixtures/v3/antworten/rechnungen.json +2 -2
  75. package/fixtures/v3/antworten/storno.json +2 -2
  76. package/fixtures/v3/stored/belege.json +2 -2
  77. package/fixtures/v3/stored/kasse.json +404 -4
  78. package/fixtures/v3/stored/rechnungen.json +2 -2
  79. package/fixtures/v3/v3-vokabular.json +423 -6
  80. package/fixtures/v3/zahlbetrag-faelle.json +2 -2
  81. package/package.json +14 -2
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.2",
2
+ "version": "1.4.0",
3
3
  "messages": {
4
4
  "network.no_connection": {
5
5
  "text": "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen."
@@ -333,6 +333,9 @@
333
333
  "cancellation.cards_not_checked": {
334
334
  "text": "Noch ist nicht jede Karte abgehakt – bitte jede am Terminal gutschreiben. Ist das schon geschehen, zum Schließen noch einmal drücken."
335
335
  },
336
+ "cancellation.input_rejected": {
337
+ "text": "Die Eingabe wurde abgelehnt – bitte das Storno neu beginnen."
338
+ },
336
339
  "split.setting_hint": {
337
340
  "text": "Ein Tisch zahlt in Teilen: jede Zahlung bar oder mit Karte, mit eigenem Trinkgeld – am Ende ein Beleg für alles."
338
341
  },
@@ -1076,6 +1079,38 @@
1076
1079
  },
1077
1080
  "codetable.other_row": {
1078
1081
  "text": "Andere Zeile"
1082
+ },
1083
+ "stock.all_articles": {
1084
+ "text": "Alle Artikel"
1085
+ },
1086
+ "stock.location": {
1087
+ "text": "Lager-Standort"
1088
+ },
1089
+ "stock.default_location": {
1090
+ "text": "Standard-Standort"
1091
+ },
1092
+ "stock.resolved": {
1093
+ "text": "aufgelöst"
1094
+ },
1095
+ "stock.where_to": {
1096
+ "text": "Wohin mit der Ware?"
1097
+ },
1098
+ "stock.available": {
1099
+ "text": "verfügbar"
1100
+ },
1101
+ "stock.return_restock": {
1102
+ "text": "Zurück ins Lager"
1103
+ },
1104
+ "stock.return_defective": {
1105
+ "text": "Defekt"
1106
+ },
1107
+ "stock.return_disposed": {
1108
+ "text": "Entsorgt"
1079
1109
  }
1110
+ },
1111
+ "returnDispositionLabels": {
1112
+ "restock": "stock.return_restock",
1113
+ "defective": "stock.return_defective",
1114
+ "disposed": "stock.return_disposed"
1080
1115
  }
1081
1116
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.2",
2
+ "version": "1.4.0",
3
3
  "baseUrls": {
4
4
  "public": "https://api.kasseneck.at/v3",
5
5
  "pos": "https://kasse.kasseneck.at/api/v3"
@@ -54,7 +54,21 @@
54
54
  "stripeCaptureIntent",
55
55
  "rotatePartnerWebhookSecret",
56
56
  "updateCustomer",
57
- "updatePartnerWebhook"
57
+ "updatePartnerWebhook",
58
+ "getArticle",
59
+ "listArticles",
60
+ "lookupArticleByCode",
61
+ "listLocations",
62
+ "getStock",
63
+ "listStock",
64
+ "listStockMovements",
65
+ "createWebhook",
66
+ "updateWebhook",
67
+ "deleteWebhook",
68
+ "listWebhooks",
69
+ "sendWebhookTest",
70
+ "rotateWebhookSecret",
71
+ "listWebhookDeliveries"
58
72
  ],
59
73
  "pos": [
60
74
  "cancelReceipt",
@@ -148,7 +162,21 @@
148
162
  "getInvoiceItem",
149
163
  "listInvoiceItems",
150
164
  "setCustomerMandate",
151
- "revokeCustomerMandate"
165
+ "revokeCustomerMandate",
166
+ "getArticle",
167
+ "listArticles",
168
+ "lookupArticleByCode",
169
+ "listLocations",
170
+ "getStock",
171
+ "listStock",
172
+ "listStockMovements",
173
+ "createWebhook",
174
+ "updateWebhook",
175
+ "deleteWebhook",
176
+ "listWebhooks",
177
+ "sendWebhookTest",
178
+ "rotateWebhookSecret",
179
+ "listWebhookDeliveries"
152
180
  ],
153
181
  "pos": [
154
182
  "pairRegisterDevice",
@@ -927,5 +955,135 @@
927
955
  "domesticReverseCharge",
928
956
  "outsideScope"
929
957
  ]
958
+ },
959
+ "inventory": {
960
+ "inventoryEndpoints": [
961
+ "getArticle",
962
+ "listArticles",
963
+ "lookupArticleByCode",
964
+ "listLocations",
965
+ "getStock",
966
+ "listStock",
967
+ "listStockMovements",
968
+ "createWebhook",
969
+ "updateWebhook",
970
+ "deleteWebhook",
971
+ "listWebhooks",
972
+ "sendWebhookTest",
973
+ "rotateWebhookSecret",
974
+ "listWebhookDeliveries"
975
+ ],
976
+ "inventoryErrorCodes": [
977
+ "validation",
978
+ "invalid_cursor",
979
+ "article_not_found",
980
+ "webhook_not_found",
981
+ "webhook_limit",
982
+ "invalid_webhook_url",
983
+ "event_not_subscribed",
984
+ "webhook_inactive",
985
+ "inventory_api_not_enabled",
986
+ "module_inactive",
987
+ "rate_limited",
988
+ "server_error"
989
+ ],
990
+ "inventoryRequestErrorCodes": [
991
+ "account_not_found",
992
+ "admin_required",
993
+ "api_not_approved",
994
+ "cashregister_not_assigned",
995
+ "cashregister_not_found",
996
+ "cashregister_token_invalid",
997
+ "cashregister_token_missing",
998
+ "dialect_mismatch",
999
+ "internal_translation_error",
1000
+ "live_not_enabled",
1001
+ "method_not_allowed",
1002
+ "mfa_required",
1003
+ "not_found",
1004
+ "register_user_no_business",
1005
+ "register_user_not_allowed",
1006
+ "register_user_not_found",
1007
+ "response_translation_failed",
1008
+ "session_expired",
1009
+ "session_other_cashregister",
1010
+ "unauthorized",
1011
+ "user_disabled",
1012
+ "user_verification_failed",
1013
+ "route_missing"
1014
+ ],
1015
+ "inventoryWebhookEnvelopeFields": [
1016
+ "id",
1017
+ "type",
1018
+ "createdAt",
1019
+ "accountId",
1020
+ "test",
1021
+ "data"
1022
+ ],
1023
+ "inventoryWebhookEvents": [
1024
+ "stock.changed",
1025
+ "stock.below_minimum",
1026
+ "article.created",
1027
+ "article.updated",
1028
+ "article.deactivated"
1029
+ ],
1030
+ "locationTypes": [
1031
+ "warehouse",
1032
+ "store",
1033
+ "vehicle",
1034
+ "other"
1035
+ ],
1036
+ "stockChangeCauses": [
1037
+ "sale",
1038
+ "invoice",
1039
+ "credit_note",
1040
+ "cancellation",
1041
+ "goods_receipt",
1042
+ "transfer",
1043
+ "loss",
1044
+ "condition",
1045
+ "reversal",
1046
+ "reservation",
1047
+ "stocktake",
1048
+ "takeover",
1049
+ "other"
1050
+ ],
1051
+ "stockConditions": [
1052
+ "sellable",
1053
+ "defective"
1054
+ ],
1055
+ "stockMovementSources": [
1056
+ "receipt",
1057
+ "invoice",
1058
+ "cancellation",
1059
+ "credit_note",
1060
+ "panel",
1061
+ "register",
1062
+ "api",
1063
+ "stocktake",
1064
+ "system"
1065
+ ],
1066
+ "stockMovementTypes": [
1067
+ "sale",
1068
+ "goods_receipt",
1069
+ "loss",
1070
+ "return",
1071
+ "transfer_out",
1072
+ "transfer_in",
1073
+ "condition_out",
1074
+ "condition_in",
1075
+ "stocktake",
1076
+ "adjustment",
1077
+ "takeover",
1078
+ "reversal",
1079
+ "revaluation",
1080
+ "method_change"
1081
+ ],
1082
+ "webhookDeliveryStatuses": [
1083
+ "delivered",
1084
+ "pending",
1085
+ "failed",
1086
+ "dropped"
1087
+ ]
930
1088
  }
931
1089
  }
@@ -17,6 +17,7 @@ Erzeugt von Jest-Tests in zwei Codebases (jede übersetzt mit ihrem eigenen Rand
17
17
  | `functions/test/unit/v3-vertrag-export.test.js` | `v3-vokabular.json`, `antworten/belege.json`, `antworten/kasse-belege.json`, `antworten/storno.json`, `antworten/belegmail.json`, `antworten/rechnungen.json`, `stored/belege.json`, `stored/rechnungen.json`, `zahlbetrag-faelle.json` |
18
18
  | `functions/test/unit/v3-vertrag-export-kassenweg.test.js` | Teil `default` von `antworten/kasse.json` und `stored/kasse.json` (6 Beleg-Endpunkte der Kasse) |
19
19
  | `functions-kasse/test/unit/v3-vertrag-export.test.js` | Teil `kasse` derselben zwei Dateien (die übrigen 19 Kassen-Endpunkte) |
20
+ | `functions-kasse/test/unit/v3-vertrag-export-lager.test.js` | `antworten/lager.json` (Lager-API, Stufe 5a) |
20
21
 
21
22
  Fest injiziert, damit zwei Läufe dieselben Bytes liefern: eine Uhr für alle Welten
22
23
  (26.09.2026 08:00 UTC), `crypto.randomBytes`/`randomUUID`, fortlaufende Dokument-IDs
@@ -46,6 +47,7 @@ bleiben verschieden:
46
47
  | `fullReceiptId` (auch im Text) | `000…0.000…0<8 hex>` |
47
48
  | `statusPassword`, Token in `statusUrl` (gespeichert: `public_password`, `public_token`) | `EXAM-<4 hex>`, `000…0<8 hex>` |
48
49
  | Kopplungscode (`code` bei `pairRegisterDevice`, `register_pairings/<CODE>`) | `EXMP<4 Zeichen>` (Alphabet ohne 0/1/I/O) |
50
+ | Webhook-Secret (`secret` bei `createWebhook`/`rotateWebhookSecret`, auch im Text) | `whsec_EXAMPLE<8 hex>AAAA…` (38 Zeichen) |
49
51
  | ungültige Eingaben dieser Felder | `INVALID_EXAMPLE_<8 hex>` |
50
52
 
51
53
  In `stored/` stehen Schlüssel, Hashes und Salze als `<geheim>`. Ein Test prüft jede Datei
@@ -90,7 +92,7 @@ Code-Änderung zusammen einchecken.
90
92
  äußere Codes) und je Quelle: Rand (`edge`), Anmeldung (`auth`),
91
93
  `receiptMessages`, Kassen-Handler (`registerHandlers`, je Endpunkt in
92
94
  `registerHandlersByEndpoint`), Fälle der Kassen-Welt (`registerCases`), Storno,
93
- Zahlungen, Belegmail, Rechnung, Partner. Jeder Code, der irgendwo in `antworten/`
95
+ Zahlungen, Belegmail, Rechnung, Partner, Lager-API (`inventory`). Jeder Code, der irgendwo in `antworten/`
94
96
  vorkommt, steht in `all` (Test).
95
97
  - `noticeCodes`: Hinweis-Codes (`notice[].code` der Rechnungs-API), keine Fehler.
96
98
  - `schemas`: je Endpunkt der Eintrag des Vokabulars (Notation außen → innen);
@@ -109,6 +111,12 @@ Code-Änderung zusammen einchecken.
109
111
  Liste, Storno, Gutschrift, Zahlung, Fehler).
110
112
  - **`antworten/kasse.json`**: alle 25 Kassen-Endpunkte unter `/api/v3`, je Fall
111
113
  (englischer Name) Methode, Aufrufer, Parameter, HTTP-Status, Kopfzeilen und Antwort.
114
+ - **`antworten/lager.json`**: Lager-API unter `/v3` (Kanal `api`) in Ablaufreihenfolge an
115
+ einem Konto (Bäckerei Kornblum, Standort `haupt`): Artikel, Standorte, Bestand, Bewegungen,
116
+ mit und ohne Schalter `lagerApi.kosten`, Konto-Webhooks verwalten samt Fehlern
117
+ (`webhook_limit`, `rate_limited` der Tagesgrenze für Probesendungen …). Dazu
118
+ `webhookEvents`: die zugestellten Konto-Webhooks (`stock.changed`, `stock.below_minimum`,
119
+ `article.*`), Hülle wie gesendet.
112
120
  - **`stored/`**: die inneren Firestore-Dokumente (deutsch, ohne Geheimnisse), aus denen
113
121
  die Antworten entstanden; für `./stored` (gespeicherte Form → englisches Modell).
114
122
  - **`zahlbetrag-faelle.json`**: Rechenfälle für `receiptDueCents(items, vouchers,
@@ -2,8 +2,8 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "61892b91e6a8a0f273dcfdeb63809d92d98fb837a3c0baa782f03b29dd3b8b7a",
5
- "inputsSha256": "62e0d9891baa5049aa7634f11fcfd9a44d80b2cb8da79da4fee13140ccd96c2a",
6
- "backendPackage": "@kreiseck/kasseneck-api@0.31.0",
5
+ "inputsSha256": "4fec6d58dd069e6d980bcab1d9883380d06e6fe8ba2a5e0f05d772b7720955c2",
6
+ "backendPackage": "@kreiseck/kasseneck-api@0.32.2",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
@@ -2,8 +2,8 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "265bcf3e14cdea33ec3c4df399eb487d40c0d7793ee23d2ee12bcf664bcad550",
5
- "inputsSha256": "62e0d9891baa5049aa7634f11fcfd9a44d80b2cb8da79da4fee13140ccd96c2a",
6
- "backendPackage": "@kreiseck/kasseneck-api@0.31.0",
5
+ "inputsSha256": "4fec6d58dd069e6d980bcab1d9883380d06e6fe8ba2a5e0f05d772b7720955c2",
6
+ "backendPackage": "@kreiseck/kasseneck-api@0.32.2",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
@@ -2,8 +2,8 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "aad7147db385e4a6d88ba5fb59d24c04e7e1f01195778aa70ccdc68fb90adcd7",
5
- "inputsSha256": "62e0d9891baa5049aa7634f11fcfd9a44d80b2cb8da79da4fee13140ccd96c2a",
6
- "backendPackage": "@kreiseck/kasseneck-api@0.31.0",
5
+ "inputsSha256": "4fec6d58dd069e6d980bcab1d9883380d06e6fe8ba2a5e0f05d772b7720955c2",
6
+ "backendPackage": "@kreiseck/kasseneck-api@0.32.2",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
@@ -4,8 +4,8 @@
4
4
  "default": {
5
5
  "sha256": "bf1e7c100e328517c72d5badf31904183efe22d1fddec308e2fe2722068854bc",
6
6
  "head": [],
7
- "inputsSha256": "6aae196464196c3abcfb6afed5fb78a99d8c067c79247ca442badf2471e39ddc",
8
- "backendPackage": "@kreiseck/kasseneck-api@0.31.0",
7
+ "inputsSha256": "91fa28cc05dd8f34575b8ea622bd7e3f145bbd25a8e97ad8ecf582b9df69078d",
8
+ "backendPackage": "@kreiseck/kasseneck-api@0.32.2",
9
9
  "inputs": [
10
10
  "functions-kasse/test/unit/fixtures/kassen-welt.js",
11
11
  "functions/gemeinsam/api-rand.js",
@@ -24,7 +24,7 @@
24
24
  "channel",
25
25
  "note"
26
26
  ],
27
- "inputsSha256": "b7483cf62e025b0c980b90d013c81c88a99f7acdeaf70f510a7554329ee19285",
27
+ "inputsSha256": "f8c6cfbda74bdcd5f3cc9542009698699dec89175ea233f53ee0dea8f007e043",
28
28
  "backendPackage": "@kreiseck/kasseneck-api@0.14.0",
29
29
  "inputs": [
30
30
  "functions-kasse/gemeinsam/api-rand.js",