@kreiseck/kasseneck-api 1.5.0 → 1.6.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.
- package/CHANGELOG.md +124 -0
- package/README.md +181 -27
- package/dist/cjs/client/aufrufe.d.ts +58 -4
- package/dist/cjs/client/aufrufe.js +185 -1
- package/dist/cjs/client/errors.d.ts +32 -19
- package/dist/cjs/client/errors.js +28 -17
- package/dist/cjs/client/index.d.ts +2 -2
- package/dist/cjs/client/index.js +2 -1
- package/dist/cjs/client/transport.d.ts +27 -1
- package/dist/cjs/client/transport.js +25 -27
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/inventory/api.d.ts +10 -2
- package/dist/cjs/inventory/api.js +8 -1
- package/dist/cjs/inventory/endpunkte.d.ts +2 -1
- package/dist/cjs/inventory/endpunkte.js +2 -1
- package/dist/cjs/inventory/index.d.ts +5 -3
- package/dist/cjs/inventory/index.js +15 -3
- package/dist/cjs/inventory/lesen.d.ts +7 -1
- package/dist/cjs/inventory/lesen.js +75 -0
- package/dist/cjs/inventory/schreiben.d.ts +26 -1
- package/dist/cjs/inventory/schreiben.js +24 -10
- package/dist/cjs/inventory/typen.d.ts +156 -2
- package/dist/cjs/inventory/varianten.d.ts +67 -0
- package/dist/cjs/inventory/varianten.js +150 -0
- package/dist/cjs/inventory/vertrag.d.ts +40 -5
- package/dist/cjs/inventory/vertrag.js +51 -3
- package/dist/cjs/inventory/webhook.d.ts +5 -2
- package/dist/cjs/inventory/webhook.js +8 -2
- package/dist/cjs/invoice/endpunkte.d.ts +6 -0
- package/dist/cjs/invoice/endpunkte.js +13 -2
- package/dist/cjs/pos/texte.d.ts +11 -6
- package/dist/cjs/pos/texte.js +11 -6
- package/dist/cjs/stored/vokabular.d.ts +1 -1
- package/dist/cjs/stored/vokabular.js +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/client/aufrufe.d.ts +58 -4
- package/dist/esm/client/aufrufe.js +183 -0
- package/dist/esm/client/errors.d.ts +32 -19
- package/dist/esm/client/errors.js +28 -17
- package/dist/esm/client/index.d.ts +2 -2
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/client/transport.d.ts +27 -1
- package/dist/esm/client/transport.js +26 -28
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inventory/api.d.ts +10 -2
- package/dist/esm/inventory/api.js +8 -1
- package/dist/esm/inventory/endpunkte.d.ts +2 -1
- package/dist/esm/inventory/endpunkte.js +2 -1
- package/dist/esm/inventory/index.d.ts +5 -3
- package/dist/esm/inventory/index.js +4 -2
- package/dist/esm/inventory/lesen.d.ts +7 -1
- package/dist/esm/inventory/lesen.js +74 -0
- package/dist/esm/inventory/schreiben.d.ts +26 -1
- package/dist/esm/inventory/schreiben.js +19 -11
- package/dist/esm/inventory/typen.d.ts +156 -2
- package/dist/esm/inventory/varianten.d.ts +67 -0
- package/dist/esm/inventory/varianten.js +142 -0
- package/dist/esm/inventory/vertrag.d.ts +40 -5
- package/dist/esm/inventory/vertrag.js +50 -2
- package/dist/esm/inventory/webhook.d.ts +5 -2
- package/dist/esm/inventory/webhook.js +9 -3
- package/dist/esm/invoice/endpunkte.d.ts +6 -0
- package/dist/esm/invoice/endpunkte.js +13 -2
- package/dist/esm/pos/texte.d.ts +11 -6
- package/dist/esm/pos/texte.js +11 -6
- package/dist/esm/stored/vokabular.d.ts +1 -1
- package/dist/esm/stored/vokabular.js +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/fixtures/hobex-hps-codes.json +1 -1
- package/fixtures/invoice-api.schema.json +1 -1
- package/fixtures/invoice-texts.json +1 -1
- package/fixtures/pos-texts.json +1 -1
- package/fixtures/surface.json +85 -6
- package/fixtures/v3/antworten/belege.json +1 -1
- package/fixtures/v3/antworten/belegmail.json +1 -1
- package/fixtures/v3/antworten/kasse-belege.json +1 -1
- package/fixtures/v3/antworten/kasse.json +2 -2
- package/fixtures/v3/antworten/lager.json +2396 -4
- package/fixtures/v3/antworten/rechnungen.json +1 -1
- package/fixtures/v3/antworten/storno.json +1 -1
- package/fixtures/v3/stored/belege.json +1 -1
- package/fixtures/v3/stored/kasse.json +2 -2
- package/fixtures/v3/stored/rechnungen.json +1 -1
- package/fixtures/v3/v3-vokabular.json +151 -6
- package/fixtures/v3/zahlbetrag-faelle.json +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
* **Nicht automatisch wiederholen.** Wer nach einem Zeitlimit erneut
|
|
13
13
|
* ausstellt, tut das mit **demselben** `idempotencyKey`: dann kommt die schon
|
|
14
14
|
* ausgestellte Rechnung zurueck (`replayed: true`) statt einer zweiten.
|
|
15
|
+
* Jeder Aufruf mit Wirkung (ausstellen, stornieren, gutschreiben, Zahlung
|
|
16
|
+
* nachtragen, Kunde anlegen oder aendern) meldet nach Zeitlimit, Netzfehler,
|
|
17
|
+
* HTTP 5xx oder unlesbarer Antwort `outcome: 'unknown'`: er kann gewirkt
|
|
18
|
+
* haben. Mit Schluessel denselben Schluessel erneut senden, ohne Schluessel
|
|
19
|
+
* (`updateCustomer`, `createCustomer` ohne) erst nachlesen. Lesen und der
|
|
20
|
+
* Probelauf (`previewInvoice`) bleiben `'rejected'`.
|
|
15
21
|
*
|
|
16
22
|
* Nach dem Senden wird nichts hart gecastet: fehlt ein zugesagtes Feld, wirft
|
|
17
23
|
* der Aufruf `KasseneckValidationError` mit `scope:'response'`.
|
|
@@ -93,7 +99,10 @@ export async function searchCustomers(transport, search) {
|
|
|
93
99
|
}
|
|
94
100
|
// ---- Rechnungen -------------------------------------------------------------
|
|
95
101
|
export async function issueInvoice(transport, request) {
|
|
96
|
-
const
|
|
102
|
+
const params = nutzlast(request);
|
|
103
|
+
// Ohne Typen kann `dryRun: true` hier ankommen: dann ist es ein Probelauf
|
|
104
|
+
// ohne Wirkung (sonst: `previewInvoice`).
|
|
105
|
+
const daten = await transport('issueInvoice', params, undefined, undefined, { hasEffect: params['dryRun'] !== true });
|
|
97
106
|
const ergebnis = {
|
|
98
107
|
invoice: pflichtObjekt('issueInvoice', daten, 'invoice'),
|
|
99
108
|
replayed: objekt(daten)['replayed'] === true,
|
|
@@ -114,7 +123,9 @@ export async function issueInvoice(transport, request) {
|
|
|
114
123
|
* Probelauf und Ausstellen kann sich der Kunde oder das Konto aendern.
|
|
115
124
|
*/
|
|
116
125
|
export async function previewInvoice(transport, request) {
|
|
117
|
-
|
|
126
|
+
// Ein Probelauf schreibt nichts: nach einem Zeitlimit bleibt er `rejected`,
|
|
127
|
+
// obwohl `issueInvoice` sonst Wirkung hat.
|
|
128
|
+
const daten = await transport('issueInvoice', { ...nutzlast(request), dryRun: true }, undefined, undefined, { hasEffect: false });
|
|
118
129
|
const ergebnis = { preview: pflichtObjekt('issueInvoice', daten, 'preview') };
|
|
119
130
|
const notice = hinweise(daten);
|
|
120
131
|
if (notice)
|
package/dist/esm/pos/texte.d.ts
CHANGED
|
@@ -661,12 +661,17 @@ export interface ErrorRuleDetail {
|
|
|
661
661
|
export declare function findErrorRule(kind: ErrorKind, detail?: ErrorRuleDetail): ErrorRule;
|
|
662
662
|
/**
|
|
663
663
|
* Kassen-Aufrufe mit Wirkung, die sich nach einem Netzfehler nicht gefahrlos
|
|
664
|
-
* wiederholen lassen:
|
|
665
|
-
*
|
|
666
|
-
*
|
|
667
|
-
*
|
|
668
|
-
*
|
|
669
|
-
*
|
|
664
|
+
* wiederholen lassen: Beleg (auch Null- und Startbeleg ueber
|
|
665
|
+
* `createReceipt`), Storno, FinanzOnline, die drei Geldwege, der Druckjob
|
|
666
|
+
* (zweiter Bon) und die Belegmail (zweite Mail). Ob die Anfrage vor dem
|
|
667
|
+
* Abriss schon draussen war, sieht das Paket nicht (fetch wirft in beiden
|
|
668
|
+
* Faellen gleich); darum gilt hier immer der vorsichtige Satz, auch fuer
|
|
669
|
+
* einen Fehler, der vor dem Senden entstand.
|
|
670
|
+
*
|
|
671
|
+
* Seit 1.5.1 fuehrt der Transport jeden Aufruf mit Wirkung als unklar
|
|
672
|
+
* (`UNKNOWN_OUTCOME_CALLS`, eine Obermenge dieser Liste), und
|
|
673
|
+
* [messageOutcome] folgt zuerst ihm. Die Liste bleibt als Vertrag der
|
|
674
|
+
* Kassentexte (`callsWithEffect` in `fixtures/pos-texts.json`) unveraendert.
|
|
670
675
|
*/
|
|
671
676
|
export declare const CALLS_WITH_EFFECT: readonly ["createReceipt", "cancelReceipt", "financeWebService", "hobexPayApi", "hobexRefundApi", "stripeCaptureIntent", "createPrintJob", "sendReceiptEmail"];
|
|
672
677
|
/**
|
package/dist/esm/pos/texte.js
CHANGED
|
@@ -368,12 +368,17 @@ export function findErrorRule(kind, detail = {}) {
|
|
|
368
368
|
}
|
|
369
369
|
/**
|
|
370
370
|
* Kassen-Aufrufe mit Wirkung, die sich nach einem Netzfehler nicht gefahrlos
|
|
371
|
-
* wiederholen lassen:
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
371
|
+
* wiederholen lassen: Beleg (auch Null- und Startbeleg ueber
|
|
372
|
+
* `createReceipt`), Storno, FinanzOnline, die drei Geldwege, der Druckjob
|
|
373
|
+
* (zweiter Bon) und die Belegmail (zweite Mail). Ob die Anfrage vor dem
|
|
374
|
+
* Abriss schon draussen war, sieht das Paket nicht (fetch wirft in beiden
|
|
375
|
+
* Faellen gleich); darum gilt hier immer der vorsichtige Satz, auch fuer
|
|
376
|
+
* einen Fehler, der vor dem Senden entstand.
|
|
377
|
+
*
|
|
378
|
+
* Seit 1.5.1 fuehrt der Transport jeden Aufruf mit Wirkung als unklar
|
|
379
|
+
* (`UNKNOWN_OUTCOME_CALLS`, eine Obermenge dieser Liste), und
|
|
380
|
+
* [messageOutcome] folgt zuerst ihm. Die Liste bleibt als Vertrag der
|
|
381
|
+
* Kassentexte (`callsWithEffect` in `fixtures/pos-texts.json`) unveraendert.
|
|
377
382
|
*/
|
|
378
383
|
export const CALLS_WITH_EFFECT = Object.freeze([
|
|
379
384
|
'createReceipt',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Fingerabdruck des Vertrags-Exports, aus dem diese Datei stammt (`_quelle.sha256`). */
|
|
2
|
-
export declare const VOKABULAR_QUELLE = "
|
|
2
|
+
export declare const VOKABULAR_QUELLE = "6e6eae018f1e84116d3942cbfd35bc2d5d6f5c5e5551823c7ed88f15ed407744";
|
|
3
3
|
/** Schema-Notation des Vertrags: Blatt 'aussen': 'innen', Objekt { __: 'innen', ... }, Liste [ { __: 'innen', ... } ]. */
|
|
4
4
|
export type SchemaEintrag = string | SchemaObjekt | readonly [SchemaObjekt];
|
|
5
5
|
export interface SchemaObjekt {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Erzeugt von scripts/stored-vokabular.mjs aus fixtures/v3/v3-vokabular.json.
|
|
2
2
|
// Nicht von Hand aendern: test/stored.test.ts vergleicht mit dem Vertrag.
|
|
3
3
|
/** Fingerabdruck des Vertrags-Exports, aus dem diese Datei stammt (`_quelle.sha256`). */
|
|
4
|
-
export const VOKABULAR_QUELLE = "
|
|
4
|
+
export const VOKABULAR_QUELLE = "6e6eae018f1e84116d3942cbfd35bc2d5d6f5c5e5551823c7ed88f15ed407744";
|
|
5
5
|
/** Schema je Endpunkt (aussen -> innen) und Wertverweise auf die Kataloge. */
|
|
6
6
|
export const SCHEMAS = {
|
|
7
7
|
"getReceipt": {
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
package/fixtures/pos-texts.json
CHANGED
package/fixtures/surface.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.6.0",
|
|
3
3
|
"baseUrls": {
|
|
4
4
|
"public": "https://api.kasseneck.at/v3",
|
|
5
5
|
"pos": "https://kasse.kasseneck.at/api/v3"
|
|
@@ -81,7 +81,12 @@
|
|
|
81
81
|
"extendReservation",
|
|
82
82
|
"releaseReservation",
|
|
83
83
|
"getReservation",
|
|
84
|
-
"listReservations"
|
|
84
|
+
"listReservations",
|
|
85
|
+
"createVariantGroup",
|
|
86
|
+
"updateVariantGroup",
|
|
87
|
+
"getVariantGroup",
|
|
88
|
+
"listVariantGroups",
|
|
89
|
+
"addVariant"
|
|
85
90
|
],
|
|
86
91
|
"pos": [
|
|
87
92
|
"cancelReceipt",
|
|
@@ -202,7 +207,12 @@
|
|
|
202
207
|
"extendReservation",
|
|
203
208
|
"releaseReservation",
|
|
204
209
|
"getReservation",
|
|
205
|
-
"listReservations"
|
|
210
|
+
"listReservations",
|
|
211
|
+
"createVariantGroup",
|
|
212
|
+
"updateVariantGroup",
|
|
213
|
+
"getVariantGroup",
|
|
214
|
+
"listVariantGroups",
|
|
215
|
+
"addVariant"
|
|
206
216
|
],
|
|
207
217
|
"pos": [
|
|
208
218
|
"pairRegisterDevice",
|
|
@@ -235,6 +245,63 @@
|
|
|
235
245
|
"setMyCashregisterStockLocation"
|
|
236
246
|
]
|
|
237
247
|
},
|
|
248
|
+
"unknownOutcomeCalls": [
|
|
249
|
+
"activateCashregister",
|
|
250
|
+
"addVariant",
|
|
251
|
+
"cancelInvoice",
|
|
252
|
+
"cancelReceipt",
|
|
253
|
+
"changeStockCondition",
|
|
254
|
+
"createArticle",
|
|
255
|
+
"createCreditNote",
|
|
256
|
+
"createCustomer",
|
|
257
|
+
"createCustomerCashregister",
|
|
258
|
+
"createInvoiceItem",
|
|
259
|
+
"createPartnerCustomer",
|
|
260
|
+
"createPartnerWebhook",
|
|
261
|
+
"createPrintJob",
|
|
262
|
+
"createReceipt",
|
|
263
|
+
"createReservation",
|
|
264
|
+
"createVariantGroup",
|
|
265
|
+
"createWebhook",
|
|
266
|
+
"deactivateArticle",
|
|
267
|
+
"deletePartnerWebhook",
|
|
268
|
+
"deleteWebhook",
|
|
269
|
+
"extendReservation",
|
|
270
|
+
"financeWebService",
|
|
271
|
+
"hobexPayApi",
|
|
272
|
+
"hobexRefundApi",
|
|
273
|
+
"issueInvoice",
|
|
274
|
+
"pairRegisterDevice",
|
|
275
|
+
"receiveGoods",
|
|
276
|
+
"recordInvoicePayment",
|
|
277
|
+
"recordStockLoss",
|
|
278
|
+
"releaseReservation",
|
|
279
|
+
"reportCustomerContract",
|
|
280
|
+
"requestCustomerSignature",
|
|
281
|
+
"reverseStockMovement",
|
|
282
|
+
"revokeCustomerMandate",
|
|
283
|
+
"rotatePartnerWebhookSecret",
|
|
284
|
+
"rotateWebhookSecret",
|
|
285
|
+
"sendPartnerCustomerFonLink",
|
|
286
|
+
"sendPartnerWebhookTest",
|
|
287
|
+
"sendReceiptEmail",
|
|
288
|
+
"sendWebhookTest",
|
|
289
|
+
"setCustomerMandate",
|
|
290
|
+
"setMyCashregisterStockLocation",
|
|
291
|
+
"setMyKasseLogo",
|
|
292
|
+
"setMyKasseSettings",
|
|
293
|
+
"setMyRegisterDeviceSettings",
|
|
294
|
+
"stripeCaptureIntent",
|
|
295
|
+
"transferStock",
|
|
296
|
+
"unpairRegisterDevice",
|
|
297
|
+
"updateArticle",
|
|
298
|
+
"updateCustomer",
|
|
299
|
+
"updateInvoiceItem",
|
|
300
|
+
"updatePartnerWebhook",
|
|
301
|
+
"updateVariantGroup",
|
|
302
|
+
"updateWebhook",
|
|
303
|
+
"withdrawInvoiceItem"
|
|
304
|
+
],
|
|
238
305
|
"enums": {
|
|
239
306
|
"autoLogoutMinutes": [
|
|
240
307
|
0,
|
|
@@ -1016,7 +1083,12 @@
|
|
|
1016
1083
|
"extendReservation",
|
|
1017
1084
|
"releaseReservation",
|
|
1018
1085
|
"getReservation",
|
|
1019
|
-
"listReservations"
|
|
1086
|
+
"listReservations",
|
|
1087
|
+
"createVariantGroup",
|
|
1088
|
+
"updateVariantGroup",
|
|
1089
|
+
"getVariantGroup",
|
|
1090
|
+
"listVariantGroups",
|
|
1091
|
+
"addVariant"
|
|
1020
1092
|
],
|
|
1021
1093
|
"inventoryErrorCodes": [
|
|
1022
1094
|
"validation",
|
|
@@ -1079,7 +1151,12 @@
|
|
|
1079
1151
|
"reason_required",
|
|
1080
1152
|
"insufficient_available",
|
|
1081
1153
|
"reservation_not_found",
|
|
1082
|
-
"reservation_not_active"
|
|
1154
|
+
"reservation_not_active",
|
|
1155
|
+
"variant_group_not_found",
|
|
1156
|
+
"variant_already_exists",
|
|
1157
|
+
"invalid_variant_attributes",
|
|
1158
|
+
"variant_group_inactive",
|
|
1159
|
+
"variant_limit"
|
|
1083
1160
|
],
|
|
1084
1161
|
"inventoryRequestErrorCodes": [
|
|
1085
1162
|
"account_not_found",
|
|
@@ -1128,7 +1205,9 @@
|
|
|
1128
1205
|
"article.deactivated",
|
|
1129
1206
|
"reservation.expired",
|
|
1130
1207
|
"reservation.released",
|
|
1131
|
-
"reservation.redeemed"
|
|
1208
|
+
"reservation.redeemed",
|
|
1209
|
+
"variant_group.created",
|
|
1210
|
+
"variant_group.updated"
|
|
1132
1211
|
],
|
|
1133
1212
|
"landedCostAllocations": [
|
|
1134
1213
|
"value",
|
|
@@ -2,7 +2,7 @@
|
|
|
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": "
|
|
5
|
+
"inputsSha256": "8490315ac4059c3b26274649b8c3323295b26a6422a02da3a3cc241338cc797b",
|
|
6
6
|
"backendPackage": "@kreiseck/kasseneck-api@0.33.0",
|
|
7
7
|
"inputs": [
|
|
8
8
|
"docs/api/fehlercodes.json",
|
|
@@ -2,7 +2,7 @@
|
|
|
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": "
|
|
5
|
+
"inputsSha256": "8490315ac4059c3b26274649b8c3323295b26a6422a02da3a3cc241338cc797b",
|
|
6
6
|
"backendPackage": "@kreiseck/kasseneck-api@0.33.0",
|
|
7
7
|
"inputs": [
|
|
8
8
|
"docs/api/fehlercodes.json",
|
|
@@ -2,7 +2,7 @@
|
|
|
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": "
|
|
5
|
+
"inputsSha256": "8490315ac4059c3b26274649b8c3323295b26a6422a02da3a3cc241338cc797b",
|
|
6
6
|
"backendPackage": "@kreiseck/kasseneck-api@0.33.0",
|
|
7
7
|
"inputs": [
|
|
8
8
|
"docs/api/fehlercodes.json",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"default": {
|
|
5
5
|
"sha256": "bf1e7c100e328517c72d5badf31904183efe22d1fddec308e2fe2722068854bc",
|
|
6
6
|
"head": [],
|
|
7
|
-
"inputsSha256": "
|
|
7
|
+
"inputsSha256": "10b8007647d9d9ba2a1c904b320f1ad5a97f66ab2ae3f4511ba18bfcbd616dea",
|
|
8
8
|
"backendPackage": "@kreiseck/kasseneck-api@0.33.0",
|
|
9
9
|
"inputs": [
|
|
10
10
|
"functions-kasse/test/unit/fixtures/kassen-welt.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"channel",
|
|
25
25
|
"note"
|
|
26
26
|
],
|
|
27
|
-
"inputsSha256": "
|
|
27
|
+
"inputsSha256": "35cb1bb7c33a3eb238dd7a4a38ef604df1170e108afb3a8800fbf17ea6d3a3cb",
|
|
28
28
|
"backendPackage": "@kreiseck/kasseneck-api@0.14.0",
|
|
29
29
|
"inputs": [
|
|
30
30
|
"functions-kasse/gemeinsam/api-rand.js",
|