@kreiseck/kasseneck-api 1.18.0 → 1.20.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 +22 -0
- package/README.md +90 -9
- package/dist/cjs/client/api.d.ts +19 -0
- package/dist/cjs/client/api.js +18 -0
- package/dist/cjs/client/aufrufe.d.ts +5 -3
- package/dist/cjs/client/aufrufe.js +20 -0
- package/dist/cjs/client/dep-export.d.ts +242 -0
- package/dist/cjs/client/dep-export.js +336 -0
- package/dist/cjs/client/index.d.ts +3 -2
- package/dist/cjs/client/index.js +22 -2
- package/dist/cjs/client/list-receipts.d.ts +45 -5
- package/dist/cjs/client/list-receipts.js +62 -3
- package/dist/cjs/client/receipts.js +2 -2
- package/dist/cjs/client/transport.d.ts +35 -0
- package/dist/cjs/client/transport.js +37 -2
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +21 -2
- package/dist/cjs/models/receipt.d.ts +5 -3
- 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/api.d.ts +19 -0
- package/dist/esm/client/api.js +19 -1
- package/dist/esm/client/aufrufe.d.ts +5 -3
- package/dist/esm/client/aufrufe.js +20 -0
- package/dist/esm/client/dep-export.d.ts +242 -0
- package/dist/esm/client/dep-export.js +325 -0
- package/dist/esm/client/index.d.ts +3 -2
- package/dist/esm/client/index.js +3 -2
- package/dist/esm/client/list-receipts.d.ts +45 -5
- package/dist/esm/client/list-receipts.js +61 -3
- package/dist/esm/client/receipts.js +2 -2
- package/dist/esm/client/transport.d.ts +35 -0
- package/dist/esm/client/transport.js +36 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/models/receipt.d.ts +5 -3
- 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 +12 -2
- package/fixtures/v3/antworten/belege.json +106 -8
- package/fixtures/v3/antworten/belegmail.json +1 -1
- package/fixtures/v3/antworten/berichte.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 +1 -1
- package/fixtures/v3/antworten/rechnungen.json +1 -1
- package/fixtures/v3/antworten/storno.json +14 -2
- 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 +153 -10
- package/fixtures/v3/zahlbetrag-faelle.json +1 -1
- package/package.json +1 -1
|
@@ -217,3 +217,38 @@ export type KasseneckPdfOrDataTransport = (functionName: string, params?: Record
|
|
|
217
217
|
* ist unlesbar mit denselben Gruenden wie dort.
|
|
218
218
|
*/
|
|
219
219
|
export declare function createPdfOrDataTransport(options: TransportOptions): KasseneckPdfOrDataTransport;
|
|
220
|
+
/**
|
|
221
|
+
* Ergebnis eines Aufrufs, der eine beliebige Datei **oder** eine Nutzlast
|
|
222
|
+
* liefert: die Datei mit Namen und Inhaltstyp aus den Kopfzeilen der Antwort
|
|
223
|
+
* (`Content-Disposition: attachment`), oder die `data` einer Erfolgshuelle
|
|
224
|
+
* (etwa ein Lese-Link, wenn die Datei zu gross fuer die Antwort ist).
|
|
225
|
+
*/
|
|
226
|
+
export type FileOrData = {
|
|
227
|
+
file: {
|
|
228
|
+
bytes: Uint8Array;
|
|
229
|
+
fileName: string | null;
|
|
230
|
+
contentType: string | undefined;
|
|
231
|
+
};
|
|
232
|
+
} | {
|
|
233
|
+
data: unknown;
|
|
234
|
+
};
|
|
235
|
+
/** Optionen je Aufruf des Datei-oder-Daten-Wegs ([createFileOrDataTransport]). */
|
|
236
|
+
export interface FileOrDataCallOptions {
|
|
237
|
+
/**
|
|
238
|
+
* Zeitlimit dieses Aufrufs in Millisekunden (Anmeldung, Anfrage und Lesen
|
|
239
|
+
* des Rumpfs); ohne Angabe `TransportOptions.timeoutMs` (Vorgabe 30 s). Eine
|
|
240
|
+
* Datei kommt im Rumpf und braucht dafuer laenger als eine Huelle.
|
|
241
|
+
*/
|
|
242
|
+
timeoutMs?: number;
|
|
243
|
+
}
|
|
244
|
+
/** Ruft eine Backend-Funktion auf, die irgendeine Datei **oder** eine JSON-Nutzlast liefert. */
|
|
245
|
+
export type KasseneckFileOrDataTransport = (functionName: string, params?: Record<string, unknown>, options?: FileOrDataCallOptions) => Promise<FileOrData>;
|
|
246
|
+
/**
|
|
247
|
+
* Vierter Einstiegspunkt, fuer Aufrufe, deren Datei kein PDF ist (DEP-JSON,
|
|
248
|
+
* CSV, ZIP: `getDepExportFile`). Die Antwort wird nur als Bytes gelesen.
|
|
249
|
+
* Entschieden wird an der Kopfzeile `Content-Disposition: attachment` — eine
|
|
250
|
+
* Datei ist hier selbst JSON und liesse sich am Inhalt nicht von der
|
|
251
|
+
* Erfolgshuelle trennen. Ohne diese Kopfzeile gilt der Rumpf als Huelle
|
|
252
|
+
* (Erfolg: `{ data }`, Fehler: derselbe fachliche Fehler wie auf dem JSON-Weg).
|
|
253
|
+
*/
|
|
254
|
+
export declare function createFileOrDataTransport(options: TransportOptions): KasseneckFileOrDataTransport;
|
|
@@ -4,6 +4,7 @@ exports.DEFAULT_TIMEOUT_MS = exports.POS_BASE_URL = exports.DEFAULT_BASE_URL = v
|
|
|
4
4
|
exports.createTransport = createTransport;
|
|
5
5
|
exports.createBinaryTransport = createBinaryTransport;
|
|
6
6
|
exports.createPdfOrDataTransport = createPdfOrDataTransport;
|
|
7
|
+
exports.createFileOrDataTransport = createFileOrDataTransport;
|
|
7
8
|
const auth_js_1 = require("./auth.js");
|
|
8
9
|
const aufrufe_js_1 = require("./aufrufe.js");
|
|
9
10
|
const version_js_1 = require("../version.js");
|
|
@@ -110,6 +111,37 @@ function createPdfOrDataTransport(options) {
|
|
|
110
111
|
const kern = createCore(options);
|
|
111
112
|
return (functionName, params) => kern(functionName, params, undefined, undefined, undefined, alsBytes, pdfOderDatenAuswerten);
|
|
112
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Vierter Einstiegspunkt, fuer Aufrufe, deren Datei kein PDF ist (DEP-JSON,
|
|
116
|
+
* CSV, ZIP: `getDepExportFile`). Die Antwort wird nur als Bytes gelesen.
|
|
117
|
+
* Entschieden wird an der Kopfzeile `Content-Disposition: attachment` — eine
|
|
118
|
+
* Datei ist hier selbst JSON und liesse sich am Inhalt nicht von der
|
|
119
|
+
* Erfolgshuelle trennen. Ohne diese Kopfzeile gilt der Rumpf als Huelle
|
|
120
|
+
* (Erfolg: `{ data }`, Fehler: derselbe fachliche Fehler wie auf dem JSON-Weg).
|
|
121
|
+
*/
|
|
122
|
+
function createFileOrDataTransport(options) {
|
|
123
|
+
const kern = createCore(options);
|
|
124
|
+
return (functionName, params, aufruf) => kern(functionName, params, undefined, undefined, undefined, alsRohAntwort, dateiOderDatenAuswerten, aufruf?.timeoutMs);
|
|
125
|
+
}
|
|
126
|
+
const alsRohAntwort = async (antwort, functionName) => ({
|
|
127
|
+
bytes: await alsBytes(antwort, functionName),
|
|
128
|
+
disposition: antwort.headers.get('content-disposition'),
|
|
129
|
+
});
|
|
130
|
+
/** Dateiname aus `Content-Disposition`; nur der letzte Pfadteil, ohne Steuerzeichen. `null`, wenn keiner da ist. */
|
|
131
|
+
function dateinameAusKopf(disposition) {
|
|
132
|
+
const treffer = /filename\s*=\s*"([^"]*)"|filename\s*=\s*([^;\s]+)/i.exec(disposition);
|
|
133
|
+
const roh = treffer ? (treffer[1] ?? treffer[2] ?? '') : '';
|
|
134
|
+
// eslint-disable-next-line no-control-regex
|
|
135
|
+
const name = (roh.split(/[\\/]/).pop() ?? '').replace(/[\u0000-\u001f\u007f]/g, '').trim();
|
|
136
|
+
return name === '' || name === '.' || name === '..' ? null : name;
|
|
137
|
+
}
|
|
138
|
+
function dateiOderDatenAuswerten(roh, functionName, statusCode, inhaltstyp, geheimnisse, unlesbar) {
|
|
139
|
+
if (roh.disposition !== null && /^\s*attachment\b/i.test(roh.disposition)) {
|
|
140
|
+
return { file: { bytes: roh.bytes, fileName: dateinameAusKopf(roh.disposition), contentType: inhaltstyp } };
|
|
141
|
+
}
|
|
142
|
+
const text = new TextDecoder('utf-8').decode(roh.bytes);
|
|
143
|
+
return { data: jsonAuswerten(text, functionName, statusCode, inhaltstyp, geheimnisse, unlesbar) };
|
|
144
|
+
}
|
|
113
145
|
/**
|
|
114
146
|
* Gemeinsamer Kern aller Einstiegspunkte: Anmeldung, Zeitlimit, Anfrage und
|
|
115
147
|
* HTTP-Status. Was danach mit dem Rumpf geschieht, entscheiden `lesen` und
|
|
@@ -119,7 +151,7 @@ function createCore(options) {
|
|
|
119
151
|
const oeffentlicheBasis = v3Basis('baseUrl', options.baseUrl) ?? exports.DEFAULT_BASE_URL;
|
|
120
152
|
const kassenBasis = v3Basis('posBaseUrl', options.posBaseUrl) ?? exports.POS_BASE_URL;
|
|
121
153
|
const kassenweg = (0, auth_js_1.isRegisterUserAuth)(options.auth);
|
|
122
|
-
const
|
|
154
|
+
const standardZeitlimitMs = options.timeoutMs ?? exports.DEFAULT_TIMEOUT_MS;
|
|
123
155
|
const holen = options.fetch ?? globalesFetch();
|
|
124
156
|
const kennung = options.clientHeader ?? `kasseneck-api/${version_js_1.PACKAGE_VERSION}`;
|
|
125
157
|
pruefeKennung(kennung);
|
|
@@ -132,7 +164,10 @@ function createCore(options) {
|
|
|
132
164
|
* (Berichte, Zahlungen, FinanzOnline), geht an die oeffentliche Basis.
|
|
133
165
|
*/
|
|
134
166
|
const basisFuer = (functionName) => (0, aufrufe_js_1.isPosOnlyCall)(functionName) || (kassenweg && (0, aufrufe_js_1.isPosCall)(functionName)) ? kassenBasis : oeffentlicheBasis;
|
|
135
|
-
return async function aufrufen(functionName, params = {}, extraBodyFields, secretParams, callOptions, lesen, auswerten
|
|
167
|
+
return async function aufrufen(functionName, params = {}, extraBodyFields, secretParams, callOptions, lesen, auswerten,
|
|
168
|
+
// Zeitlimit nur dieses Aufrufs (Datei-oder-Daten-Weg); sonst das des Transports.
|
|
169
|
+
eigenesZeitlimitMs) {
|
|
170
|
+
const zeitlimitMs = eigenesZeitlimitMs ?? standardZeitlimitMs;
|
|
136
171
|
// Die URL nennt die Backend-Funktion, die Fehler nennen den **Vorgang**:
|
|
137
172
|
// `financeWebService` fuehrt ein Dutzend verschiedener Vorgaenge unter einem
|
|
138
173
|
// Endpunkt, und ein Fehler, der nur "financeWebService" sagt, verschweigt
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ReceiptType, type ReceiptTypeKey, VatRate, type VatRateKey, KeckPaymentMethod, type KeckPaymentMethodKey, CreditCardProvider, type CreditCardProviderKey, VoucherType, type VoucherTypeKey, VoucherAction, type VoucherActionKey, StripeLinkMode, type StripeLinkModeKey, } from './enums/index.js';
|
|
2
2
|
export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, isVoucherItem, isVoucherFloatItem, type Voucher, type VoucherArticle, type IssuedVoucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, type ReturnDisposition, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError, type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, RECEIPT_OUTPUT_KINDS, type ReceiptOutputKind, RECEIPT_OUTPUT_LOG_KINDS, type ReceiptOutputLogKind, RECEIPT_OUTPUT_RESULTS, type ReceiptOutputResult, RECEIPT_OUTPUT_ENTRIES_MAX, type ReceiptOutput, type ReceiptOutputActor, RECEIPT_OUTPUT_ENTRY_ERROR_CODES, type ReceiptOutputEntryErrorCode, RECEIPT_OUTPUT_ERROR_CODES, type ReceiptOutputErrorCode, isReceiptOutputErrorCode, receiptOutputErrorCode, isReceiptOutputError, receiptOutputFieldErrors, type ReceiptOutputFieldError, type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, TIP_REFUND_SOURCES, type TipRefundSource, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, type CashregisterAutoLogout, type CashregisterAutoLogoutPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
3
|
-
export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type TransportCallOptions, type KasseneckTransport, type KasseneckBinaryTransport, type KasseneckPdfOrDataTransport, type PdfOrData, ALL_CALLS, type ApiCall, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, type PublicCall, type PosCall, createTransport, createBinaryTransport, createPdfOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, type ErrorOutcome, CLIENT_ERROR_CODES, type ClientErrorCode, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, type ReceiptOutputEntry, type LogReceiptOutputsOptions, type LogReceiptOutputsResult, type RejectedReceiptOutput, logReceiptOutputs, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, type CashregisterReportPeriod, getReportV2, type ReportV2, type ReportV2Metadata, type ReportV2Options, listReceipts, listAllReceipts, fromListReceiptsSummaryPayload, LIST_RECEIPTS_VIEWS, LIST_RECEIPTS_ORDERS, LIST_RECEIPTS_LIMIT_MAX, LIST_RECEIPTS_DAYS_MAX, LIST_ALL_RECEIPTS_MAX_PAGES, LIST_RECEIPTS_ERROR_CODES, type ListReceiptsErrorCode, type ListReceiptsView, type ListReceiptsOrder, type ListReceiptsOptions, type ListReceiptsWindow, type ListReceiptsGrossByRate, type ListReceiptsSummary, type ListReceiptsDaySummary, type ListReceiptsPage, type ListedReceipt, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
|
|
3
|
+
export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type TransportCallOptions, type KasseneckTransport, type KasseneckBinaryTransport, type KasseneckPdfOrDataTransport, type PdfOrData, ALL_CALLS, type ApiCall, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, type PublicCall, type PosCall, createTransport, createBinaryTransport, createPdfOrDataTransport, createFileOrDataTransport, type FileOrData, type FileOrDataCallOptions, type KasseneckFileOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, type ErrorOutcome, CLIENT_ERROR_CODES, type ClientErrorCode, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, type ReceiptOutputEntry, type LogReceiptOutputsOptions, type LogReceiptOutputsResult, type RejectedReceiptOutput, logReceiptOutputs, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, type CashregisterReportPeriod, getReportV2, type ReportV2, type ReportV2Metadata, type ReportV2Options, listReceipts, listAllReceipts, fromListReceiptsSummaryPayload, listedReceiptWithCompany, LIST_RECEIPTS_VIEWS, LIST_RECEIPTS_ORDERS, LIST_RECEIPTS_LIMIT_MAX, LIST_RECEIPTS_DAYS_MAX, LIST_ALL_RECEIPTS_MAX_PAGES, LIST_RECEIPTS_ERROR_CODES, type ListReceiptsErrorCode, type ListReceiptsView, type ListReceiptsOrder, type ListReceiptsOptions, type ListReceiptsWindow, type ListReceiptsGrossByRate, type ListReceiptsSummary, type ListReceiptsDaySummary, type ListReceiptsPage, type ListedReceipt, createDepExport, getDepExport, waitForDepExport, getDepExportFile, createDepHandoverLink, revokeDepHandoverLink, DepExportTimeoutError, DepExportChecksumError, DEP_EXPORT_STATUSES, DEP_EXPORT_FILES, DEP_EXPORT_ERROR_CODES, DEP_EXPORT_FAILURES, DEP_EXPORT_POLL_START_MS, DEP_EXPORT_POLL_FACTOR, DEP_EXPORT_POLL_MAX_MS, DEP_EXPORT_WAIT_TIMEOUT_MS, DEP_EXPORT_DOWNLOAD_TIMEOUT_MS, type DepExportStatus, type DepExportFileKind, type DepExportErrorCode, type DepExportFailure, type CreateDepExportOptions, type CreateDepExportResult, type DepExportGap, type DepExportChainBreak, type DepExportFindings, type DepExportItems, type DepHandoverLinkInfo, type DepExport, type WaitForDepExportOptions, type GetDepExportFileOptions, type DepExportFile, type DepHandoverLink, type RevokedDepHandoverLink, type ListedFullReceipt, type ListReceiptsHeader, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
|
|
4
4
|
export { type ReceiptDueTip, type ReceiptDueTipRecipient, type ReceiptDueOptions, type ReceiptDueBuckets, type ReceiptDueBreakdown, type ReceiptDueErrorReason, receiptDueCents, receiptDueBreakdown, ReceiptDueError, RECEIPT_DUE_ERROR_REASONS, isReceiptDueError, type VoucherDueInfo, type VoucherDueArticle, type VoucherDueType, type VoucherRedeemContext, voucherRedeemMaxCents, VOUCHER_ZERO_RATE_BUCKET_FROM, } from './receipt/due.js';
|
|
5
5
|
export { parseServerTimeStamp, toViennaWallClock, type ViennaWallClock } from './vienna-time.js';
|
|
6
6
|
export { type PosBusinessSettings, type PosDeviceSettings, type PosSettings, type ArticleGroup, type PosArticle, POS_BUSINESS_DEFAULTS, POS_DEVICE_DEFAULTS, mergePosSettings, fromArticleGroupPayload, fromPosArticlePayload, listMyArticleGroups, listMyArticles, getPosSettings, setMyPosSettings, setMyRegisterDeviceSettings, distributeDiscount, cancelScopeOf, receiptsScopeOf, stockViewOf, voucherPermsOf, } from './pos/index.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RECEIPT_OUTPUT_LOG_KINDS = exports.RECEIPT_OUTPUT_KINDS = exports.receiptEmailFieldErrors = exports.isReceiptEmailError = exports.receiptEmailErrorCode = exports.isReceiptEmailErrorCode = exports.RECEIPT_EMAIL_VIAS = exports.RECEIPT_EMAIL_SEND_ERROR_CODES = exports.RECEIPT_EMAIL_ERROR_CODES = exports.paymentFieldErrors = exports.isPaymentError = exports.paymentErrorCode = exports.isPaymentErrorCode = exports.PAYMENT_ERROR_CODES = exports.toReceiptPaymentPayload = exports.fromReceiptPaymentPayload = exports.cancellationFieldErrors = exports.isCancellationError = exports.cancellationErrorCode = exports.isCancellationErrorCode = exports.isReturnDisposition = exports.isCancellationReason = exports.CANCELLATION_RESERVATION_MS = exports.CANCELLATION_ERROR_CODES = exports.CANCELLATION_STATUSES = exports.CANCELLATION_REASONS = exports.RETURN_DISPOSITIONS = exports.receiptValueVoucherSign = exports.receiptSumCents = exports.receiptSubSumCents = exports.fromReceiptPayload = exports.toReceiptPayload = exports.voucherIsValid = exports.fromVoucherPayload = exports.toVoucherPayload = exports.isVoucherFloatItem = exports.isVoucherItem = exports.isTipItem = 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
4
|
exports.createPdfOrDataTransport = exports.createBinaryTransport = exports.createTransport = exports.UNKNOWN_OUTCOME_CALLS = exports.POS_CALLS = exports.PUBLIC_CALLS = exports.ALL_CALLS = exports.DEFAULT_TIMEOUT_MS = exports.POS_BASE_URL = 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.isZeroKind = exports.ZERO_KINDS = exports.fromReceiptSummaryPayload = exports.fromCashregisterPayload = exports.receiptCompanyTaxInfo = exports.fromReceiptCompanyPayload = exports.asksRefundTip = exports.asksTipRefundSource = exports.cancellationCashRefundCents = exports.cancellationItemsForTip = exports.openStaffTipCents = exports.isTipRefundSource = exports.TIP_REFUND_SOURCES = exports.remainingQuantities = exports.receiptFieldErrors = exports.isReceiptError = exports.receiptErrorCode = exports.isReceiptErrorCode = exports.RECEIPT_ERROR_CODES = exports.receiptOutputFieldErrors = exports.isReceiptOutputError = exports.receiptOutputErrorCode = exports.isReceiptOutputErrorCode = exports.RECEIPT_OUTPUT_ERROR_CODES = exports.RECEIPT_OUTPUT_ENTRY_ERROR_CODES = exports.RECEIPT_OUTPUT_ENTRIES_MAX = exports.RECEIPT_OUTPUT_RESULTS = void 0;
|
|
5
|
-
exports.
|
|
6
|
-
exports.voucherPermsOf = exports.stockViewOf = exports.receiptsScopeOf = exports.cancelScopeOf = exports.distributeDiscount = exports.setMyRegisterDeviceSettings = exports.setMyPosSettings = exports.getPosSettings = exports.listMyArticles = exports.listMyArticleGroups = exports.fromPosArticlePayload = exports.fromArticleGroupPayload = exports.mergePosSettings = exports.POS_DEVICE_DEFAULTS = exports.POS_BUSINESS_DEFAULTS = exports.toViennaWallClock = exports.parseServerTimeStamp = exports.VOUCHER_ZERO_RATE_BUCKET_FROM = void 0;
|
|
5
|
+
exports.DepExportTimeoutError = exports.revokeDepHandoverLink = exports.createDepHandoverLink = exports.getDepExportFile = exports.waitForDepExport = exports.getDepExport = exports.createDepExport = exports.LIST_RECEIPTS_ERROR_CODES = exports.LIST_ALL_RECEIPTS_MAX_PAGES = exports.LIST_RECEIPTS_DAYS_MAX = exports.LIST_RECEIPTS_LIMIT_MAX = exports.LIST_RECEIPTS_ORDERS = exports.LIST_RECEIPTS_VIEWS = exports.listedReceiptWithCompany = exports.fromListReceiptsSummaryPayload = exports.listAllReceipts = exports.listReceipts = exports.getReportV2 = exports.getCashregisterReport = exports.downloadMonthlyReport = exports.downloadDailyReport = exports.logReceiptOutputs = exports.sendReceiptEmail = exports.checkVoucherCombinationError = exports.listMyCashregisters = exports.listMyReceipts = exports.getFirstReceiptDate = exports.generateFullReceiptId = exports.getReceiptWithCompany = exports.getReceipt = exports.zeroReceipt = exports.cancelReceipt = exports.receiptLayoutFromResult = exports.cardRefundReference = exports.paymentsExpectedCents = exports.sellReceiptWithCompany = exports.sellReceipt = exports.isOutcomeUnknown = exports.isKasseneckValidationError = exports.isKasseneckNetworkError = exports.isKasseneckHttpError = exports.isKasseneckAuthError = exports.isKasseneckApiError = exports.CLIENT_ERROR_CODES = exports.KasseneckValidationError = exports.KasseneckNetworkError = exports.KasseneckHttpError = exports.KasseneckAuthError = exports.KasseneckApiError = exports.createFileOrDataTransport = void 0;
|
|
6
|
+
exports.voucherPermsOf = exports.stockViewOf = exports.receiptsScopeOf = exports.cancelScopeOf = exports.distributeDiscount = exports.setMyRegisterDeviceSettings = exports.setMyPosSettings = exports.getPosSettings = exports.listMyArticles = exports.listMyArticleGroups = exports.fromPosArticlePayload = exports.fromArticleGroupPayload = exports.mergePosSettings = exports.POS_DEVICE_DEFAULTS = exports.POS_BUSINESS_DEFAULTS = exports.toViennaWallClock = exports.parseServerTimeStamp = exports.VOUCHER_ZERO_RATE_BUCKET_FROM = exports.voucherRedeemMaxCents = exports.isReceiptDueError = exports.RECEIPT_DUE_ERROR_REASONS = exports.ReceiptDueError = exports.receiptDueBreakdown = exports.receiptDueCents = exports.createKasseneckApi = exports.getSignatureStatus = exports.getCashboxStatus = exports.DEP_EXPORT_DOWNLOAD_TIMEOUT_MS = exports.DEP_EXPORT_WAIT_TIMEOUT_MS = exports.DEP_EXPORT_POLL_MAX_MS = exports.DEP_EXPORT_POLL_FACTOR = exports.DEP_EXPORT_POLL_START_MS = exports.DEP_EXPORT_FAILURES = exports.DEP_EXPORT_ERROR_CODES = exports.DEP_EXPORT_FILES = exports.DEP_EXPORT_STATUSES = exports.DepExportChecksumError = void 0;
|
|
7
7
|
var index_js_1 = require("./enums/index.js");
|
|
8
8
|
Object.defineProperty(exports, "ReceiptType", { enumerable: true, get: function () { return index_js_1.ReceiptType; } });
|
|
9
9
|
Object.defineProperty(exports, "VatRate", { enumerable: true, get: function () { return index_js_1.VatRate; } });
|
|
@@ -107,6 +107,7 @@ Object.defineProperty(exports, "UNKNOWN_OUTCOME_CALLS", { enumerable: true, get:
|
|
|
107
107
|
Object.defineProperty(exports, "createTransport", { enumerable: true, get: function () { return index_js_3.createTransport; } });
|
|
108
108
|
Object.defineProperty(exports, "createBinaryTransport", { enumerable: true, get: function () { return index_js_3.createBinaryTransport; } });
|
|
109
109
|
Object.defineProperty(exports, "createPdfOrDataTransport", { enumerable: true, get: function () { return index_js_3.createPdfOrDataTransport; } });
|
|
110
|
+
Object.defineProperty(exports, "createFileOrDataTransport", { enumerable: true, get: function () { return index_js_3.createFileOrDataTransport; } });
|
|
110
111
|
Object.defineProperty(exports, "KasseneckApiError", { enumerable: true, get: function () { return index_js_3.KasseneckApiError; } });
|
|
111
112
|
Object.defineProperty(exports, "KasseneckAuthError", { enumerable: true, get: function () { return index_js_3.KasseneckAuthError; } });
|
|
112
113
|
Object.defineProperty(exports, "KasseneckHttpError", { enumerable: true, get: function () { return index_js_3.KasseneckHttpError; } });
|
|
@@ -142,12 +143,30 @@ Object.defineProperty(exports, "getReportV2", { enumerable: true, get: function
|
|
|
142
143
|
Object.defineProperty(exports, "listReceipts", { enumerable: true, get: function () { return index_js_3.listReceipts; } });
|
|
143
144
|
Object.defineProperty(exports, "listAllReceipts", { enumerable: true, get: function () { return index_js_3.listAllReceipts; } });
|
|
144
145
|
Object.defineProperty(exports, "fromListReceiptsSummaryPayload", { enumerable: true, get: function () { return index_js_3.fromListReceiptsSummaryPayload; } });
|
|
146
|
+
Object.defineProperty(exports, "listedReceiptWithCompany", { enumerable: true, get: function () { return index_js_3.listedReceiptWithCompany; } });
|
|
145
147
|
Object.defineProperty(exports, "LIST_RECEIPTS_VIEWS", { enumerable: true, get: function () { return index_js_3.LIST_RECEIPTS_VIEWS; } });
|
|
146
148
|
Object.defineProperty(exports, "LIST_RECEIPTS_ORDERS", { enumerable: true, get: function () { return index_js_3.LIST_RECEIPTS_ORDERS; } });
|
|
147
149
|
Object.defineProperty(exports, "LIST_RECEIPTS_LIMIT_MAX", { enumerable: true, get: function () { return index_js_3.LIST_RECEIPTS_LIMIT_MAX; } });
|
|
148
150
|
Object.defineProperty(exports, "LIST_RECEIPTS_DAYS_MAX", { enumerable: true, get: function () { return index_js_3.LIST_RECEIPTS_DAYS_MAX; } });
|
|
149
151
|
Object.defineProperty(exports, "LIST_ALL_RECEIPTS_MAX_PAGES", { enumerable: true, get: function () { return index_js_3.LIST_ALL_RECEIPTS_MAX_PAGES; } });
|
|
150
152
|
Object.defineProperty(exports, "LIST_RECEIPTS_ERROR_CODES", { enumerable: true, get: function () { return index_js_3.LIST_RECEIPTS_ERROR_CODES; } });
|
|
153
|
+
Object.defineProperty(exports, "createDepExport", { enumerable: true, get: function () { return index_js_3.createDepExport; } });
|
|
154
|
+
Object.defineProperty(exports, "getDepExport", { enumerable: true, get: function () { return index_js_3.getDepExport; } });
|
|
155
|
+
Object.defineProperty(exports, "waitForDepExport", { enumerable: true, get: function () { return index_js_3.waitForDepExport; } });
|
|
156
|
+
Object.defineProperty(exports, "getDepExportFile", { enumerable: true, get: function () { return index_js_3.getDepExportFile; } });
|
|
157
|
+
Object.defineProperty(exports, "createDepHandoverLink", { enumerable: true, get: function () { return index_js_3.createDepHandoverLink; } });
|
|
158
|
+
Object.defineProperty(exports, "revokeDepHandoverLink", { enumerable: true, get: function () { return index_js_3.revokeDepHandoverLink; } });
|
|
159
|
+
Object.defineProperty(exports, "DepExportTimeoutError", { enumerable: true, get: function () { return index_js_3.DepExportTimeoutError; } });
|
|
160
|
+
Object.defineProperty(exports, "DepExportChecksumError", { enumerable: true, get: function () { return index_js_3.DepExportChecksumError; } });
|
|
161
|
+
Object.defineProperty(exports, "DEP_EXPORT_STATUSES", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_STATUSES; } });
|
|
162
|
+
Object.defineProperty(exports, "DEP_EXPORT_FILES", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_FILES; } });
|
|
163
|
+
Object.defineProperty(exports, "DEP_EXPORT_ERROR_CODES", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_ERROR_CODES; } });
|
|
164
|
+
Object.defineProperty(exports, "DEP_EXPORT_FAILURES", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_FAILURES; } });
|
|
165
|
+
Object.defineProperty(exports, "DEP_EXPORT_POLL_START_MS", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_POLL_START_MS; } });
|
|
166
|
+
Object.defineProperty(exports, "DEP_EXPORT_POLL_FACTOR", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_POLL_FACTOR; } });
|
|
167
|
+
Object.defineProperty(exports, "DEP_EXPORT_POLL_MAX_MS", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_POLL_MAX_MS; } });
|
|
168
|
+
Object.defineProperty(exports, "DEP_EXPORT_WAIT_TIMEOUT_MS", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_WAIT_TIMEOUT_MS; } });
|
|
169
|
+
Object.defineProperty(exports, "DEP_EXPORT_DOWNLOAD_TIMEOUT_MS", { enumerable: true, get: function () { return index_js_3.DEP_EXPORT_DOWNLOAD_TIMEOUT_MS; } });
|
|
151
170
|
Object.defineProperty(exports, "getCashboxStatus", { enumerable: true, get: function () { return index_js_3.getCashboxStatus; } });
|
|
152
171
|
Object.defineProperty(exports, "getSignatureStatus", { enumerable: true, get: function () { return index_js_3.getSignatureStatus; } });
|
|
153
172
|
Object.defineProperty(exports, "createKasseneckApi", { enumerable: true, get: function () { return index_js_3.createKasseneckApi; } });
|
|
@@ -25,9 +25,11 @@ import { type ReceiptPayment, type ReceiptPaymentPayload } from './receipt-payme
|
|
|
25
25
|
* **Zahlungen stehen in `payments`.** `paymentMethod` vergibt der Server
|
|
26
26
|
* (`mixed` bei mehreren Zahlarten); gesendet wird es unter `/v3` nie. Die
|
|
27
27
|
* Anbieterdaten (`payments[].providerPaymentId`/`providerData`, bei
|
|
28
|
-
* Altbelegen `cardPaymentId`/`cardPaymentData`)
|
|
29
|
-
* (
|
|
30
|
-
*
|
|
28
|
+
* Altbelegen `cardPaymentId`/`cardPaymentData`) bekommt nur der Betrieb
|
|
29
|
+
* selbst (API-Schluessel oder Kassen-Anmeldung, in beiden Kanaelen); ein
|
|
30
|
+
* Partner-Zugang nie. Darum sind sie hier optional. `providerData` ist die
|
|
31
|
+
* Rohform des Zahlungsanbieters ohne zugesagte Form; fuer Logik `provider`,
|
|
32
|
+
* `providerPaymentId` und `id` nehmen.
|
|
31
33
|
*/
|
|
32
34
|
export interface Receipt {
|
|
33
35
|
receiptId: string;
|
|
@@ -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 = "b06a8be2fe8c96e7e266a4e237c77588e9bef4e3272a9343ed2969ba722a87f4";
|
|
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 {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.KATALOGE = exports.ARTIKEL_FELDER = exports.SCHEMAS = exports.VOKABULAR_QUELLE = void 0;
|
|
6
6
|
/** Fingerabdruck des Vertrags-Exports, aus dem diese Datei stammt (`_quelle.sha256`). */
|
|
7
|
-
exports.VOKABULAR_QUELLE = "
|
|
7
|
+
exports.VOKABULAR_QUELLE = "b06a8be2fe8c96e7e266a4e237c77588e9bef4e3272a9343ed2969ba722a87f4";
|
|
8
8
|
/** Schema je Endpunkt (aussen -> innen) und Wertverweise auf die Kataloge. */
|
|
9
9
|
exports.SCHEMAS = {
|
|
10
10
|
"getReceipt": {
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
package/dist/esm/client/api.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type HobexPayOptions, type HobexRefundOptions } from '../payments/hobex
|
|
|
4
4
|
import { type TransportOptions } from './transport.js';
|
|
5
5
|
import { type CashregisterReportPeriod, type ReportV2, type ReportV2Options } from './reports.js';
|
|
6
6
|
import { type CashboxStatus, type SignatureStatus } from './status.js';
|
|
7
|
+
import { type CreateDepExportOptions, type CreateDepExportResult, type DepExport, type DepExportFile, type DepHandoverLink, type GetDepExportFileOptions, type RevokedDepHandoverLink, type WaitForDepExportOptions } from './dep-export.js';
|
|
7
8
|
import { type ListedReceipt, type ListReceiptsOptions, type ListReceiptsPage, type ListReceiptsView } from './list-receipts.js';
|
|
8
9
|
import { type SendReceiptEmailOptions, type SendReceiptEmailResult, type LogReceiptOutputsOptions, type LogReceiptOutputsResult, type ListMyReceiptsOptions, type ReceiptList, type ReceiptWithCompany, type SellReceiptOptions, type CancelReceiptOptions, type CancelReceiptResult } from './receipts.js';
|
|
9
10
|
/**
|
|
@@ -61,6 +62,24 @@ export interface KasseneckApi {
|
|
|
61
62
|
listReceipts<V extends ListReceiptsView = 'summary'>(options: ListReceiptsOptions<V>): Promise<ListReceiptsPage<V>>;
|
|
62
63
|
/** Alle Belege eines Tages oder Zeitraums, Seite fuer Seite geholt (hoechstens 100 Seiten). */
|
|
63
64
|
listAllReceipts<V extends ListReceiptsView = 'summary'>(options: ListReceiptsOptions<V>): AsyncGenerator<ListedReceipt<V>, void, undefined>;
|
|
65
|
+
/** DEP-Export fuer die Kassennachschau einstellen (`createDepExport`, nur /v3); antwortet sofort, der Export laeuft im Hintergrund. */
|
|
66
|
+
createDepExport(options?: CreateDepExportOptions): Promise<CreateDepExportResult>;
|
|
67
|
+
/** Zustand, Kennzahlen, Befund und Pruefer-Links eines Exports (`getDepExport`). */
|
|
68
|
+
getDepExport(options: {
|
|
69
|
+
exportId: string;
|
|
70
|
+
}): Promise<DepExport>;
|
|
71
|
+
/** Wartet, bis der Export fertig ist (Abfrage 2 s, x1,5, hoechstens 15 s; Vorgabe 10 Minuten). */
|
|
72
|
+
waitForDepExport(options: WaitForDepExportOptions): Promise<DepExport>;
|
|
73
|
+
/** Eine Datei des Exports (dep, protocol, items, zip) laden und gegen die SHA-256-Summe pruefen. */
|
|
74
|
+
getDepExportFile(options: GetDepExportFileOptions): Promise<DepExportFile>;
|
|
75
|
+
/** Pruefer-Link (Adresse und 6-stelliger Code, 14 Tage) zu einem fertigen Export. */
|
|
76
|
+
createDepHandoverLink(options: {
|
|
77
|
+
exportId: string;
|
|
78
|
+
}): Promise<DepHandoverLink>;
|
|
79
|
+
/** Pruefer-Link der eigenen Kasse widerrufen. */
|
|
80
|
+
revokeDepHandoverLink(options: {
|
|
81
|
+
linkId: string;
|
|
82
|
+
}): Promise<RevokedDepHandoverLink>;
|
|
64
83
|
/** Kassenbericht als PDF (v2): abgeschlossener Monat, Tag oder Zeitraum (Endpunkt `getCashregisterReport`). */
|
|
65
84
|
getCashregisterReport(options: CashregisterReportPeriod): Promise<Uint8Array>;
|
|
66
85
|
/** @deprecated Since 1.10.0: use getCashregisterReport. Tagesbericht als PDF (Kalendertag nach Wiener Zeit). */
|
package/dist/esm/client/api.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createStripeLink, stripeCaptureIntent, } from '../payments/stripe.js';
|
|
2
2
|
import { hobexPay, hobexRefund } from '../payments/hobex.js';
|
|
3
|
-
import { createTransport, createBinaryTransport } from './transport.js';
|
|
3
|
+
import { createTransport, createBinaryTransport, createFileOrDataTransport } from './transport.js';
|
|
4
4
|
import { downloadDailyReport, downloadMonthlyReport, getCashregisterReport, getReportV2 } from './reports.js';
|
|
5
5
|
import { getCashboxStatus, getSignatureStatus } from './status.js';
|
|
6
|
+
import { createDepExport, createDepHandoverLink, getDepExport, getDepExportFile, revokeDepHandoverLink, waitForDepExport, } from './dep-export.js';
|
|
6
7
|
import { listAllReceipts, listReceipts } from './list-receipts.js';
|
|
7
8
|
import { sellReceipt, sellReceiptWithCompany, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, sendReceiptEmail, logReceiptOutputs, } from './receipts.js';
|
|
8
9
|
import { listMyCashregisters } from './cashregisters.js';
|
|
@@ -12,6 +13,17 @@ export function createKasseneckApi(options) {
|
|
|
12
13
|
// Zweiter Einstiegspunkt fuer die PDF-Downloads; dieselben Optionen,
|
|
13
14
|
// dieselbe Anmeldung — nur die Antwort wird als Bytes gelesen.
|
|
14
15
|
const rufenBinaer = createBinaryTransport(options);
|
|
16
|
+
// Fuer Dateien beliebiger Art (DEP-Export): Datei oder Lese-Link.
|
|
17
|
+
const rufenDatei = createFileOrDataTransport(options);
|
|
18
|
+
// Das globale fetch erst beim Folgen eines Lese-Links holen: ohne Link braucht es niemand.
|
|
19
|
+
const holen = (url, init) => {
|
|
20
|
+
if (options.fetch)
|
|
21
|
+
return options.fetch(url, init);
|
|
22
|
+
const umgebung = globalThis;
|
|
23
|
+
if (typeof umgebung.fetch !== 'function')
|
|
24
|
+
throw new Error('getDepExportFile: kein globales fetch vorhanden');
|
|
25
|
+
return umgebung.fetch(url, init);
|
|
26
|
+
};
|
|
15
27
|
return {
|
|
16
28
|
sellReceipt: (o) => sellReceipt(rufen, o),
|
|
17
29
|
sellReceiptWithCompany: (o) => sellReceiptWithCompany(rufen, o),
|
|
@@ -28,6 +40,12 @@ export function createKasseneckApi(options) {
|
|
|
28
40
|
getReportV2: (o) => getReportV2(rufen, o),
|
|
29
41
|
listReceipts: (o) => listReceipts(rufen, o),
|
|
30
42
|
listAllReceipts: (o) => listAllReceipts(rufen, o),
|
|
43
|
+
createDepExport: (o) => createDepExport(rufen, o),
|
|
44
|
+
getDepExport: (o) => getDepExport(rufen, o),
|
|
45
|
+
waitForDepExport: (o) => waitForDepExport(rufen, o),
|
|
46
|
+
getDepExportFile: (o) => getDepExportFile(rufenDatei, holen, o),
|
|
47
|
+
createDepHandoverLink: (o) => createDepHandoverLink(rufen, o),
|
|
48
|
+
revokeDepHandoverLink: (o) => revokeDepHandoverLink(rufen, o),
|
|
31
49
|
getCashregisterReport: (options) => getCashregisterReport(rufenBinaer, options),
|
|
32
50
|
downloadDailyReport: (date) => downloadDailyReport(rufenBinaer, date),
|
|
33
51
|
downloadMonthlyReport: (reportMonth) => downloadMonthlyReport(rufenBinaer, reportMonth),
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
* weiterhin jeden `string`: wer einen Aufruf braucht, den dieses Paket nicht
|
|
13
13
|
* umhuellt, muss ihn weiterhin absetzen koennen.
|
|
14
14
|
*/
|
|
15
|
-
import type { PdfOrData, TransportBodyFields, TransportCallOptions } from './transport.js';
|
|
16
|
-
export declare const ALL_CALLS: readonly ["activateCashregister", "cancelInvoice", "cancelReceipt", "createCreditNote", "createCustomer", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCashregisterReport", "getCustomer", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getInvoice", "getInvoicePdf", "getInvoiceSetupStatus", "getInvoiceXml", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "getReportV2", "hobexPayApi", "hobexRefundApi", "issueInvoice", "listCustomerCashregisters", "listInvoices", "listBrands", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyStock", "listMyStockLocations", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listReceipts", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "recordInvoicePayment", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "reportCustomerContract", "requestCustomerSignature", "searchCustomers", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyCashregisterStockLocation", "setMyKasseLogo", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updateCustomer", "updatePartnerWebhook", "getArticle", "listArticles", "lookupArticleByCode", "listLocations", "getStock", "listStock", "listStockMovements", "createWebhook", "updateWebhook", "deleteWebhook", "listWebhooks", "sendWebhookTest", "rotateWebhookSecret", "listWebhookDeliveries", "createArticle", "updateArticle", "deactivateArticle", "receiveGoods", "transferStock", "recordStockLoss", "changeStockCondition", "reverseStockMovement", "createReservation", "extendReservation", "releaseReservation", "getReservation", "listReservations", "createVariantGroup", "updateVariantGroup", "getVariantGroup", "listVariantGroups", "addVariant", "createStocktake", "listStocktakes", "getStocktake", "listStocktakeItems", "recordStocktakeCount", "voidStocktakeCount", "listStocktakeCounts", "reviewStocktake", "recountStocktake", "closeStocktake", "cancelStocktake", "getStocktakePdf", "orderSignatureCard", "getSignatureCardOrder", "listMyStocktakes", "listMyStocktakeItems", "listMyStocktakeCounts", "recordMyStocktakeCount", "voidMyStocktakeCount", "checkVoucher", "reprintVoucherLabel", "getMyDrawerState", "openMyShift", "recordMyCashMovement", "logMyDrawerOpenings", "getMyShiftReport", "closeMyShift", "logReceiptOutputs"];
|
|
15
|
+
import type { FileOrData, FileOrDataCallOptions, PdfOrData, TransportBodyFields, TransportCallOptions } from './transport.js';
|
|
16
|
+
export declare const ALL_CALLS: readonly ["activateCashregister", "cancelInvoice", "cancelReceipt", "createCreditNote", "createCustomer", "createCustomerCashregister", "createDepExport", "createDepHandoverLink", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCashregisterReport", "getCustomer", "getCustomerCredentials", "getCustomerSignatureStatus", "getDepExport", "getDepExportFile", "getFirstReceiptDate", "getInvoice", "getInvoicePdf", "getInvoiceSetupStatus", "getInvoiceXml", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "getReportV2", "hobexPayApi", "hobexRefundApi", "issueInvoice", "listCustomerCashregisters", "listInvoices", "listBrands", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyStock", "listMyStockLocations", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listReceipts", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "recordInvoicePayment", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "reportCustomerContract", "requestCustomerSignature", "revokeDepHandoverLink", "searchCustomers", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyCashregisterStockLocation", "setMyKasseLogo", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updateCustomer", "updatePartnerWebhook", "getArticle", "listArticles", "lookupArticleByCode", "listLocations", "getStock", "listStock", "listStockMovements", "createWebhook", "updateWebhook", "deleteWebhook", "listWebhooks", "sendWebhookTest", "rotateWebhookSecret", "listWebhookDeliveries", "createArticle", "updateArticle", "deactivateArticle", "receiveGoods", "transferStock", "recordStockLoss", "changeStockCondition", "reverseStockMovement", "createReservation", "extendReservation", "releaseReservation", "getReservation", "listReservations", "createVariantGroup", "updateVariantGroup", "getVariantGroup", "listVariantGroups", "addVariant", "createStocktake", "listStocktakes", "getStocktake", "listStocktakeItems", "recordStocktakeCount", "voidStocktakeCount", "listStocktakeCounts", "reviewStocktake", "recountStocktake", "closeStocktake", "cancelStocktake", "getStocktakePdf", "orderSignatureCard", "getSignatureCardOrder", "listMyStocktakes", "listMyStocktakeItems", "listMyStocktakeCounts", "recordMyStocktakeCount", "voidMyStocktakeCount", "checkVoucher", "reprintVoucherLabel", "getMyDrawerState", "openMyShift", "recordMyCashMovement", "logMyDrawerOpenings", "getMyShiftReport", "closeMyShift", "logReceiptOutputs"];
|
|
17
17
|
export type ApiCall = typeof ALL_CALLS[number];
|
|
18
18
|
/**
|
|
19
19
|
* Die oeffentlichen Endpunkte unter `/v3` (`https://api.kasseneck.at/v3/<name>`),
|
|
@@ -21,7 +21,7 @@ export type ApiCall = typeof ALL_CALLS[number];
|
|
|
21
21
|
* (`fixtures/v3/v3-vokabular.json`, `endpoints.public`, umbenannt nach
|
|
22
22
|
* `names`). Ein Test haelt beide Listen deckungsgleich.
|
|
23
23
|
*/
|
|
24
|
-
export declare const PUBLIC_CALLS: readonly ["createReceipt", "getReceipt", "cancelReceipt", "sendReceiptEmail", "generateFullReceiptId", "downloadReceipt", "getFirstReceiptDate", "getReportV2", "downloadReport", "downloadDailyReport", "getCashregisterReport", "createPaymentLinkStripe", "stripeCaptureIntent", "hobexPayApi", "hobexRefundApi", "hobexGetStatus", "financeWebService", "listMyTipRecipients", "getPartnerInfo", "createPartnerCustomer", "checkPartnerCustomerEmail", "listPartnerCustomers", "getPartnerCustomer", "sendPartnerCustomerFonLink", "createPartnerWebhook", "updatePartnerWebhook", "deletePartnerWebhook", "listPartnerWebhooks", "sendPartnerWebhookTest", "rotatePartnerWebhookSecret", "listPartnerWebhookDeliveries", "requestCustomerSignature", "getCustomerSignatureStatus", "createCustomerCashregister", "activateCashregister", "listCustomerCashregisters", "getCustomerCredentials", "reportCustomerContract", "getPartnerBilling", "getPartnerBillingMonth", "createCustomer", "getCustomer", "updateCustomer", "searchCustomers", "issueInvoice", "cancelInvoice", "createCreditNote", "getInvoice", "listInvoices", "getInvoicePdf", "getInvoiceXml", "getInvoiceSetupStatus", "listBrands", "recordInvoicePayment", "createInvoiceItem", "updateInvoiceItem", "withdrawInvoiceItem", "getInvoiceItem", "listInvoiceItems", "setCustomerMandate", "revokeCustomerMandate", "getArticle", "listArticles", "lookupArticleByCode", "listLocations", "getStock", "listStock", "listStockMovements", "createWebhook", "updateWebhook", "deleteWebhook", "listWebhooks", "sendWebhookTest", "rotateWebhookSecret", "listWebhookDeliveries", "createArticle", "updateArticle", "deactivateArticle", "receiveGoods", "transferStock", "recordStockLoss", "changeStockCondition", "reverseStockMovement", "createReservation", "extendReservation", "releaseReservation", "getReservation", "listReservations", "createVariantGroup", "updateVariantGroup", "getVariantGroup", "listVariantGroups", "addVariant", "createStocktake", "listStocktakes", "getStocktake", "listStocktakeItems", "recordStocktakeCount", "voidStocktakeCount", "listStocktakeCounts", "reviewStocktake", "recountStocktake", "closeStocktake", "cancelStocktake", "getStocktakePdf", "orderSignatureCard", "getSignatureCardOrder", "listReceipts"];
|
|
24
|
+
export declare const PUBLIC_CALLS: readonly ["createReceipt", "getReceipt", "cancelReceipt", "sendReceiptEmail", "generateFullReceiptId", "downloadReceipt", "getFirstReceiptDate", "getReportV2", "downloadReport", "downloadDailyReport", "getCashregisterReport", "createPaymentLinkStripe", "stripeCaptureIntent", "hobexPayApi", "hobexRefundApi", "hobexGetStatus", "financeWebService", "listMyTipRecipients", "getPartnerInfo", "createPartnerCustomer", "checkPartnerCustomerEmail", "listPartnerCustomers", "getPartnerCustomer", "sendPartnerCustomerFonLink", "createPartnerWebhook", "updatePartnerWebhook", "deletePartnerWebhook", "listPartnerWebhooks", "sendPartnerWebhookTest", "rotatePartnerWebhookSecret", "listPartnerWebhookDeliveries", "requestCustomerSignature", "getCustomerSignatureStatus", "createCustomerCashregister", "activateCashregister", "listCustomerCashregisters", "getCustomerCredentials", "reportCustomerContract", "getPartnerBilling", "getPartnerBillingMonth", "createCustomer", "getCustomer", "updateCustomer", "searchCustomers", "issueInvoice", "cancelInvoice", "createCreditNote", "getInvoice", "listInvoices", "getInvoicePdf", "getInvoiceXml", "getInvoiceSetupStatus", "listBrands", "recordInvoicePayment", "createInvoiceItem", "updateInvoiceItem", "withdrawInvoiceItem", "getInvoiceItem", "listInvoiceItems", "setCustomerMandate", "revokeCustomerMandate", "getArticle", "listArticles", "lookupArticleByCode", "listLocations", "getStock", "listStock", "listStockMovements", "createWebhook", "updateWebhook", "deleteWebhook", "listWebhooks", "sendWebhookTest", "rotateWebhookSecret", "listWebhookDeliveries", "createArticle", "updateArticle", "deactivateArticle", "receiveGoods", "transferStock", "recordStockLoss", "changeStockCondition", "reverseStockMovement", "createReservation", "extendReservation", "releaseReservation", "getReservation", "listReservations", "createVariantGroup", "updateVariantGroup", "getVariantGroup", "listVariantGroups", "addVariant", "createStocktake", "listStocktakes", "getStocktake", "listStocktakeItems", "recordStocktakeCount", "voidStocktakeCount", "listStocktakeCounts", "reviewStocktake", "recountStocktake", "closeStocktake", "cancelStocktake", "getStocktakePdf", "orderSignatureCard", "getSignatureCardOrder", "listReceipts", "createDepExport", "getDepExport", "getDepExportFile", "createDepHandoverLink", "revokeDepHandoverLink"];
|
|
25
25
|
/**
|
|
26
26
|
* Die Endpunkte des Kassenwegs (`https://kasse.kasseneck.at/api/v3/<name>`,
|
|
27
27
|
* Web-Kasse: gleicher Ursprung `/api/v3`), in der Reihenfolge von
|
|
@@ -99,3 +99,5 @@ export type InternerTransport = <T = unknown>(functionName: ApiCall, params?: Re
|
|
|
99
99
|
export type InternerBinaerTransport = (functionName: ApiCall, params?: Record<string, unknown>) => Promise<Uint8Array>;
|
|
100
100
|
/** Wie `createPdfOrDataTransport` (transport.ts), nur mit bekanntem Aufrufnamen. */
|
|
101
101
|
export type InternerPdfOderDatenTransport = (functionName: ApiCall, params?: Record<string, unknown>) => Promise<PdfOrData>;
|
|
102
|
+
/** Wie `createFileOrDataTransport` (transport.ts), nur mit bekanntem Aufrufnamen. */
|
|
103
|
+
export type InternerDateiOderDatenTransport = (functionName: ApiCall, params?: Record<string, unknown>, options?: FileOrDataCallOptions) => Promise<FileOrData>;
|
|
@@ -5,6 +5,8 @@ export const ALL_CALLS = [
|
|
|
5
5
|
'createCreditNote',
|
|
6
6
|
'createCustomer',
|
|
7
7
|
'createCustomerCashregister',
|
|
8
|
+
'createDepExport',
|
|
9
|
+
'createDepHandoverLink',
|
|
8
10
|
'createPartnerCustomer',
|
|
9
11
|
'checkPartnerCustomerEmail',
|
|
10
12
|
'createPartnerWebhook',
|
|
@@ -21,6 +23,8 @@ export const ALL_CALLS = [
|
|
|
21
23
|
'getCustomer',
|
|
22
24
|
'getCustomerCredentials',
|
|
23
25
|
'getCustomerSignatureStatus',
|
|
26
|
+
'getDepExport',
|
|
27
|
+
'getDepExportFile',
|
|
24
28
|
'getFirstReceiptDate',
|
|
25
29
|
'getInvoice',
|
|
26
30
|
'getInvoicePdf',
|
|
@@ -59,6 +63,7 @@ export const ALL_CALLS = [
|
|
|
59
63
|
'renewRegisterSession',
|
|
60
64
|
'reportCustomerContract',
|
|
61
65
|
'requestCustomerSignature',
|
|
66
|
+
'revokeDepHandoverLink',
|
|
62
67
|
'searchCustomers',
|
|
63
68
|
'sendPartnerCustomerFonLink',
|
|
64
69
|
'sendPartnerWebhookTest',
|
|
@@ -265,6 +270,12 @@ export const PUBLIC_CALLS = [
|
|
|
265
270
|
'getSignatureCardOrder',
|
|
266
271
|
// Belege einer Kasse auflisten, nur unter /v3 (Nachfolger von getReportV2 fuer Listen).
|
|
267
272
|
'listReceipts',
|
|
273
|
+
// DEP-Export fuer die Kassennachschau (Kassen-Token), nur unter /v3.
|
|
274
|
+
'createDepExport',
|
|
275
|
+
'getDepExport',
|
|
276
|
+
'getDepExportFile',
|
|
277
|
+
'createDepHandoverLink',
|
|
278
|
+
'revokeDepHandoverLink',
|
|
268
279
|
];
|
|
269
280
|
/**
|
|
270
281
|
* Die Endpunkte des Kassenwegs (`https://kasse.kasseneck.at/api/v3/<name>`,
|
|
@@ -449,6 +460,15 @@ export const CALLS_WITHOUT_EFFECT = Object.freeze({
|
|
|
449
460
|
getCustomer: 'read',
|
|
450
461
|
getCustomerCredentials: 'read',
|
|
451
462
|
getCustomerSignatureStatus: 'read',
|
|
463
|
+
// DEP-Export: ein verlorener Ausgang ist harmlos wiederholbar. createDepExport ist mit requestId idempotent, ohne nur
|
|
464
|
+
// doppelt (Grenze 20 je Tag, keine Buchung). createDepHandoverLink erzeugt bei Wiederholung einen zweiten Link (der
|
|
465
|
+
// alte steht in getDepExport().handoverLinks und ist widerrufbar; Preis hoechstens too_many_links). revokeDepHandoverLink
|
|
466
|
+
// ist idempotent.
|
|
467
|
+
createDepExport: 'repeatable',
|
|
468
|
+
createDepHandoverLink: 'repeatable',
|
|
469
|
+
revokeDepHandoverLink: 'repeatable',
|
|
470
|
+
getDepExport: 'read',
|
|
471
|
+
getDepExportFile: 'read',
|
|
452
472
|
getFirstReceiptDate: 'read',
|
|
453
473
|
getInvoice: 'read',
|
|
454
474
|
getInvoiceItem: 'read',
|