@kreiseck/kasseneck-api 0.12.0 → 0.13.1
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 +53 -0
- package/README.md +26 -0
- package/dist/cjs/client/api.d.ts +3 -1
- package/dist/cjs/client/api.js +1 -0
- package/dist/cjs/client/aufrufe.d.ts +1 -1
- package/dist/cjs/client/aufrufe.js +1 -0
- package/dist/cjs/client/index.d.ts +1 -1
- package/dist/cjs/client/index.js +2 -1
- package/dist/cjs/client/receipts.d.ts +57 -0
- package/dist/cjs/client/receipts.js +49 -0
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +5 -2
- package/dist/cjs/models/index.d.ts +1 -0
- package/dist/cjs/models/index.js +4 -1
- package/dist/cjs/models/receipt-email.d.ts +22 -0
- package/dist/cjs/models/receipt-email.js +32 -0
- package/dist/cjs/payments/hobex-hps/errors.d.ts +11 -0
- package/dist/cjs/payments/hobex-hps/errors.js +16 -0
- package/dist/cjs/payments/hobex-hps/index.d.ts +1 -1
- package/dist/cjs/payments/hobex-hps/index.js +2 -1
- package/dist/cjs/payments/hobex-hps/payments.js +6 -1
- package/dist/cjs/payments/hobex-hps/transaction-response.d.ts +12 -0
- package/dist/cjs/payments/hobex-hps/transaction-response.js +13 -1
- package/dist/cjs/payments/index.d.ts +1 -1
- package/dist/cjs/payments/index.js +2 -1
- package/dist/esm/client/api.d.ts +3 -1
- package/dist/esm/client/api.js +2 -1
- package/dist/esm/client/aufrufe.d.ts +1 -1
- package/dist/esm/client/aufrufe.js +1 -0
- package/dist/esm/client/index.d.ts +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/client/receipts.d.ts +57 -0
- package/dist/esm/client/receipts.js +48 -0
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.js +1 -0
- package/dist/esm/models/receipt-email.d.ts +22 -0
- package/dist/esm/models/receipt-email.js +28 -0
- package/dist/esm/payments/hobex-hps/errors.d.ts +11 -0
- package/dist/esm/payments/hobex-hps/errors.js +17 -1
- package/dist/esm/payments/hobex-hps/index.d.ts +1 -1
- package/dist/esm/payments/hobex-hps/index.js +1 -1
- package/dist/esm/payments/hobex-hps/payments.js +6 -1
- package/dist/esm/payments/hobex-hps/transaction-response.d.ts +12 -0
- package/dist/esm/payments/hobex-hps/transaction-response.js +12 -0
- package/dist/esm/payments/index.d.ts +1 -1
- package/dist/esm/payments/index.js +1 -1
- package/fixtures/hobex-hps-codes.json +1 -1
- package/fixtures/kasse-texte.json +1 -1
- package/fixtures/oberflaeche.json +2 -1
- package/package.json +1 -1
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
export { StripeLinkMode, type StripeLinkModeKey } from '../enums/index.js';
|
|
43
43
|
export { type CreateStripeLinkOptions, type StripeCaptureResult, createStripeLink, stripeCaptureIntent, } from './stripe.js';
|
|
44
44
|
export { type HobexPayOptions, type HobexRefundOptions, type HobexTransactionIdOptions, hobexPay, hobexRefund, newHobexTransactionId, } from './hobex.js';
|
|
45
|
-
export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
|
|
45
|
+
export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* nichts zu entscheiden.
|
|
42
42
|
*/
|
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.TRANSACTION_CANCELED_CODE = exports.TERMINAL_BUSY_HTTP_STATUS = exports.TECHNICAL_ERROR_CODE = exports.PREFLIGHT_CONNECT_CODES = exports.parseHpsTransactionResponse = exports.NO_STATEMENT_CODE = exports.NOT_ABORTABLE_CODE = exports.newHpsTransactionId = exports.MAX_TRANSACTION_ID_LENGTH = exports.mayRetrySafely = exports.isValidHpsTransactionId = exports.isUnknownCode = exports.isTechnicalError = exports.isNotAbortable = exports.isNoStatement = exports.isInProgress = exports.isHostUncertainResult = exports.isHostUncertain = exports.isConclusiveAsStatus = exports.isConclusive = exports.isApproved = exports.INVALID_TRANSACTION_CODE = exports.HpsTransactionIdError = exports.HpsPreflightError = exports.HpsConnectTransportError = exports.HpsConnectTerminalError = exports.HpsConnectException = exports.HpsClarifyTimeoutError = exports.hpsCodeReason = exports.hpsCodeInfo = exports.HPS_REASON_HINTS = exports.HPS_MEASURED_CODES = exports.HPS_CODES = exports.createHpsTransactionIdGenerator = exports.createHpsPayments = exports.createHpsConnectClient = exports.CARD_NOT_PRESENT_CODE = exports.APPROVED_CODE = exports.ABORTED_CODE = exports.newHobexTransactionId = exports.hobexRefund = exports.hobexPay = exports.stripeCaptureIntent = exports.createStripeLink = exports.StripeLinkMode = void 0;
|
|
44
|
+
exports.TRANSACTION_CANCELED_CODE = exports.TERMINAL_BUSY_HTTP_STATUS = exports.NOT_FOUND_HTTP_STATUS = exports.TECHNICAL_ERROR_CODE = exports.PREFLIGHT_CONNECT_CODES = exports.parseHpsTransactionResponse = exports.NO_STATEMENT_CODE = exports.NOT_ABORTABLE_CODE = exports.newHpsTransactionId = exports.MAX_TRANSACTION_ID_LENGTH = exports.mayRetrySafely = exports.isValidHpsTransactionId = exports.isUnknownCode = exports.isTechnicalError = exports.isNotAbortable = exports.isNoStatement = exports.isInProgress = exports.isHostUncertainResult = exports.isHostUncertain = exports.isConclusiveAsStatus = exports.isConclusive = exports.isApproved = exports.INVALID_TRANSACTION_CODE = exports.HpsTransactionIdError = exports.HpsPreflightError = exports.HpsConnectTransportError = exports.HpsConnectTerminalError = exports.HpsConnectException = exports.HpsClarifyTimeoutError = exports.hpsCodeReason = exports.hpsCodeInfo = exports.HPS_REASON_HINTS = exports.HPS_MEASURED_CODES = exports.HPS_CODES = exports.createHpsTransactionIdGenerator = exports.createHpsPayments = exports.createHpsConnectClient = exports.CARD_NOT_PRESENT_CODE = exports.APPROVED_CODE = exports.ABORTED_CODE = exports.newHobexTransactionId = exports.hobexRefund = exports.hobexPay = exports.stripeCaptureIntent = exports.createStripeLink = exports.StripeLinkMode = void 0;
|
|
45
45
|
var index_js_1 = require("../enums/index.js");
|
|
46
46
|
Object.defineProperty(exports, "StripeLinkMode", { enumerable: true, get: function () { return index_js_1.StripeLinkMode; } });
|
|
47
47
|
var stripe_js_1 = require("./stripe.js");
|
|
@@ -89,5 +89,6 @@ Object.defineProperty(exports, "NO_STATEMENT_CODE", { enumerable: true, get: fun
|
|
|
89
89
|
Object.defineProperty(exports, "parseHpsTransactionResponse", { enumerable: true, get: function () { return index_js_2.parseHpsTransactionResponse; } });
|
|
90
90
|
Object.defineProperty(exports, "PREFLIGHT_CONNECT_CODES", { enumerable: true, get: function () { return index_js_2.PREFLIGHT_CONNECT_CODES; } });
|
|
91
91
|
Object.defineProperty(exports, "TECHNICAL_ERROR_CODE", { enumerable: true, get: function () { return index_js_2.TECHNICAL_ERROR_CODE; } });
|
|
92
|
+
Object.defineProperty(exports, "NOT_FOUND_HTTP_STATUS", { enumerable: true, get: function () { return index_js_2.NOT_FOUND_HTTP_STATUS; } });
|
|
92
93
|
Object.defineProperty(exports, "TERMINAL_BUSY_HTTP_STATUS", { enumerable: true, get: function () { return index_js_2.TERMINAL_BUSY_HTTP_STATUS; } });
|
|
93
94
|
Object.defineProperty(exports, "TRANSACTION_CANCELED_CODE", { enumerable: true, get: function () { return index_js_2.TRANSACTION_CANCELED_CODE; } });
|
package/dist/esm/client/api.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type CreateStripeLinkOptions, type StripeCaptureResult } from '../payme
|
|
|
3
3
|
import { type HobexPayOptions, type HobexRefundOptions } from '../payments/hobex.js';
|
|
4
4
|
import { type TransportOptions } from './transport.js';
|
|
5
5
|
import { type CashboxStatus, type SignatureStatus } from './status.js';
|
|
6
|
-
import { type ListMyReceiptsOptions, type ReceiptList, type ReceiptWithCompany, type SellReceiptOptions, type CancelReceiptOptions, type CancelReceiptResult, type CreateCancelReceiptOptions } from './receipts.js';
|
|
6
|
+
import { type SendReceiptEmailOptions, type SendReceiptEmailResult, type ListMyReceiptsOptions, type ReceiptList, type ReceiptWithCompany, type SellReceiptOptions, type CancelReceiptOptions, type CancelReceiptResult, type CreateCancelReceiptOptions } from './receipts.js';
|
|
7
7
|
/**
|
|
8
8
|
* Schlichte Factory ueber den Endpunkt-Funktionen: bindet einen Transport
|
|
9
9
|
* einmal und liefert die Aufrufe ohne den wiederkehrenden ersten Parameter.
|
|
@@ -47,6 +47,8 @@ export interface KasseneckApi {
|
|
|
47
47
|
generateFullReceiptId(receiptId: string): Promise<string>;
|
|
48
48
|
/** Berichtsmonat des ersten Belegs (nicht fuer den Kassen-Benutzer-Weg). */
|
|
49
49
|
getFirstReceiptDate(): Promise<ReportMonth>;
|
|
50
|
+
/** Beleg als Link auf die oeffentliche Belegseite per E-Mail schicken. */
|
|
51
|
+
sendReceiptEmail(options: SendReceiptEmailOptions): Promise<SendReceiptEmailResult>;
|
|
50
52
|
/** Belegliste einer Kasse samt Kennzahlen (nur mit ID-Token, siehe receipts.ts). */
|
|
51
53
|
listMyReceipts(options: ListMyReceiptsOptions): Promise<ReceiptList>;
|
|
52
54
|
/** Kassen des angemeldeten Benutzers (nur mit ID-Token, siehe cashregisters.ts). */
|
package/dist/esm/client/api.js
CHANGED
|
@@ -3,7 +3,7 @@ import { hobexPay, hobexRefund } from '../payments/hobex.js';
|
|
|
3
3
|
import { createTransport, createBinaryTransport } from './transport.js';
|
|
4
4
|
import { downloadDailyReport, downloadMonthlyReport } from './reports.js';
|
|
5
5
|
import { getCashboxStatus, getSignatureStatus } from './status.js';
|
|
6
|
-
import { sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, } from './receipts.js';
|
|
6
|
+
import { sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, sendReceiptEmail, } from './receipts.js';
|
|
7
7
|
import { listMyCashregisters } from './cashregisters.js';
|
|
8
8
|
import { renewRegisterSession, endRegisterSession } from '../register/session.js';
|
|
9
9
|
export function createKasseneckApi(options) {
|
|
@@ -22,6 +22,7 @@ export function createKasseneckApi(options) {
|
|
|
22
22
|
generateFullReceiptId: (receiptId) => generateFullReceiptId(rufen, receiptId),
|
|
23
23
|
getFirstReceiptDate: () => getFirstReceiptDate(rufen),
|
|
24
24
|
listMyReceipts: (o) => listMyReceipts(rufen, o),
|
|
25
|
+
sendReceiptEmail: (o) => sendReceiptEmail(rufen, o),
|
|
25
26
|
listMyCashregisters: () => listMyCashregisters(rufen),
|
|
26
27
|
downloadDailyReport: (date) => downloadDailyReport(rufenBinaer, date),
|
|
27
28
|
downloadMonthlyReport: (reportMonth) => downloadMonthlyReport(rufenBinaer, reportMonth),
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* umhuellt, muss ihn weiterhin absetzen koennen.
|
|
14
14
|
*/
|
|
15
15
|
import type { TransportBodyFields } from './transport.js';
|
|
16
|
-
export declare const AUFRUFE: readonly ["activateCashregister", "cancelReceipt", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "hobexPayApi", "hobexRefundApi", "listCustomerCashregisters", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "requestCustomerSignature", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updatePartnerWebhook"];
|
|
16
|
+
export declare const AUFRUFE: readonly ["activateCashregister", "cancelReceipt", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "hobexPayApi", "hobexRefundApi", "listCustomerCashregisters", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "requestCustomerSignature", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updatePartnerWebhook"];
|
|
17
17
|
export type Aufruf = typeof AUFRUFE[number];
|
|
18
18
|
/** Wie [KasseneckTransport], nur mit bekanntem Aufrufnamen. Nicht exportiert nach aussen. */
|
|
19
19
|
export type InternerTransport = <T = unknown>(functionName: Aufruf, params?: Record<string, unknown>, extraBodyFields?: TransportBodyFields, secretParams?: readonly string[]) => Promise<T>;
|
|
@@ -2,7 +2,7 @@ export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type
|
|
|
2
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
3
|
export { AUFRUFE, type Aufruf, } from './aufrufe.js';
|
|
4
4
|
export { KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, } from './errors.js';
|
|
5
|
-
export { type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, 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 { type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, 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, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, } from './receipts.js';
|
|
6
6
|
export { listMyCashregisters } from './cashregisters.js';
|
|
7
7
|
export { downloadDailyReport, downloadMonthlyReport } from './reports.js';
|
|
8
8
|
export { type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, } from './status.js';
|
package/dist/esm/client/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { apiKeyAuth, registerUserAuth, } from './auth.js';
|
|
|
2
2
|
export { DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, createTransport, createBinaryTransport, } from './transport.js';
|
|
3
3
|
export { AUFRUFE, } from './aufrufe.js';
|
|
4
4
|
export { KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, } from './errors.js';
|
|
5
|
-
export { sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, checkVoucherCombinationError, } from './receipts.js';
|
|
5
|
+
export { sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, checkVoucherCombinationError, sendReceiptEmail, } from './receipts.js';
|
|
6
6
|
export { listMyCashregisters } from './cashregisters.js';
|
|
7
7
|
export { downloadDailyReport, downloadMonthlyReport } from './reports.js';
|
|
8
8
|
export { getCashboxStatus, getSignatureStatus, } from './status.js';
|
|
@@ -285,6 +285,63 @@ export declare function generateFullReceiptId(rufen: InternerTransport, receiptI
|
|
|
285
285
|
* (siehe Modulkommentar oben). Mit `apiKeyAuth` ist er offen.
|
|
286
286
|
*/
|
|
287
287
|
export declare function getFirstReceiptDate(rufen: InternerTransport): Promise<ReportMonth>;
|
|
288
|
+
/**
|
|
289
|
+
* Beleg per E-Mail an den Endkunden — die Eingabe von [sendReceiptEmail].
|
|
290
|
+
*
|
|
291
|
+
* `cashregisterId` steht hier bewusst **nicht**: der Geraeteweg bindet die
|
|
292
|
+
* Kasse ueber die Kopfzeile `cashregister-token`, der Kassen-Benutzer-Weg
|
|
293
|
+
* ueber den Parameter, den `registerUserAuth` ohnehin schon setzt. Eine
|
|
294
|
+
* dritte Stelle waere nur eine Gelegenheit, eine andere Kasse zu behaupten,
|
|
295
|
+
* als die, an der man angemeldet ist — und das Backend nimmt den Belegpfad aus
|
|
296
|
+
* der angemeldeten Kasse, nicht aus der Nutzlast.
|
|
297
|
+
*/
|
|
298
|
+
export interface SendReceiptEmailOptions {
|
|
299
|
+
/** Verschluesselte Volltext-Belegnummer (siehe [generateFullReceiptId]). */
|
|
300
|
+
fullReceiptId: string;
|
|
301
|
+
/** Empfaengeradresse, wie der Gast sie am Tresen nennt. */
|
|
302
|
+
to: string;
|
|
303
|
+
/**
|
|
304
|
+
* Sprache der Mail. Heute wertet das Backend genau `'de'` aus; der Parameter
|
|
305
|
+
* steht im Vertrag, damit eine zweite Sprache spaeter kein neuer Vertrag ist.
|
|
306
|
+
* Ohne Angabe geht das Feld gar nicht erst hinaus.
|
|
307
|
+
*/
|
|
308
|
+
sprache?: string;
|
|
309
|
+
}
|
|
310
|
+
/** Was der Versand bestaetigt (Backend: beleg-mail-endpoints.js). */
|
|
311
|
+
export interface SendReceiptEmailResult {
|
|
312
|
+
/** Adresse in der Form, in der das Backend sie protokolliert hat (getrimmt, klein). */
|
|
313
|
+
to: string;
|
|
314
|
+
/** Zeitpunkt des Versands, ISO mit Wiener Zonenoffset (`2026-09-11T14:05:00+02:00`). */
|
|
315
|
+
at: string;
|
|
316
|
+
/**
|
|
317
|
+
* Versandweg: `eigen` (Postfach des Betriebs), `plattform` oder
|
|
318
|
+
* `plattform-fallback`. `null`, wenn die Antwort ihn nicht nennt — das ist
|
|
319
|
+
* eine Auskunft ueber den Weg, keine ueber den Erfolg, und darf den
|
|
320
|
+
* bestaetigten Versand nicht zu einem Fehler machen.
|
|
321
|
+
*/
|
|
322
|
+
via: string | null;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Schickt einen bereits ausgestellten Beleg als **Link auf die oeffentliche
|
|
326
|
+
* Belegseite** an eine Adresse (Endpunkt `sendReceiptEmail`, Backend
|
|
327
|
+
* beleg-mail-endpoints.js). Kein PDF im Anhang: die Belegseite fuehrt dasselbe
|
|
328
|
+
* Zeilenmodell wie Bildschirm und Bon und liefert dort auf Wunsch ein PDF.
|
|
329
|
+
*
|
|
330
|
+
* **Der Beleg bleibt unberuehrt** (BAO §131/RKSV): das Versandprotokoll fuehrt
|
|
331
|
+
* das Backend in einer Unter-Sammlung neben dem Beleg.
|
|
332
|
+
*
|
|
333
|
+
* **Am Code entscheiden, nie am Text:** fachliche Fehler kommen als
|
|
334
|
+
* [KasseneckApiError] mit `code` aus [RECEIPT_EMAIL_ERROR_CODES] heraus —
|
|
335
|
+
* `adresse_ungueltig`, `beleg_nicht_gefunden` (auch fuer einen Beleg einer
|
|
336
|
+
* fremden Kasse: das Backend gibt darueber bewusst keine Auskunft), `zu_oft`
|
|
337
|
+
* (5 Mails je Beleg in 24 Stunden, 30 je Kasse und Stunde) und
|
|
338
|
+
* `versand_fehlgeschlagen`. Dieses Paket reicht sie unveraendert durch und
|
|
339
|
+
* legt keine eigenen Codes an.
|
|
340
|
+
*
|
|
341
|
+
* **Kein Wiederholen ohne Zutun des Bedieners:** ein zweiter Versuch schickt
|
|
342
|
+
* eine zweite Mail und zaehlt auf die Schleuse.
|
|
343
|
+
*/
|
|
344
|
+
export declare function sendReceiptEmail(rufen: InternerTransport, options: SendReceiptEmailOptions): Promise<SendReceiptEmailResult>;
|
|
288
345
|
/**
|
|
289
346
|
* Prueft die Gutschein-Kombination eines Belegs und liefert den ersten
|
|
290
347
|
* Regelverstoss als Text (oder `null`) — Zwilling von
|
|
@@ -313,6 +313,54 @@ export async function getFirstReceiptDate(rufen) {
|
|
|
313
313
|
throw antwortfehler('getFirstReceiptDate', 'Antwort enthaelt keinen lesbaren Zeitstempel');
|
|
314
314
|
}
|
|
315
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Schickt einen bereits ausgestellten Beleg als **Link auf die oeffentliche
|
|
318
|
+
* Belegseite** an eine Adresse (Endpunkt `sendReceiptEmail`, Backend
|
|
319
|
+
* beleg-mail-endpoints.js). Kein PDF im Anhang: die Belegseite fuehrt dasselbe
|
|
320
|
+
* Zeilenmodell wie Bildschirm und Bon und liefert dort auf Wunsch ein PDF.
|
|
321
|
+
*
|
|
322
|
+
* **Der Beleg bleibt unberuehrt** (BAO §131/RKSV): das Versandprotokoll fuehrt
|
|
323
|
+
* das Backend in einer Unter-Sammlung neben dem Beleg.
|
|
324
|
+
*
|
|
325
|
+
* **Am Code entscheiden, nie am Text:** fachliche Fehler kommen als
|
|
326
|
+
* [KasseneckApiError] mit `code` aus [RECEIPT_EMAIL_ERROR_CODES] heraus —
|
|
327
|
+
* `adresse_ungueltig`, `beleg_nicht_gefunden` (auch fuer einen Beleg einer
|
|
328
|
+
* fremden Kasse: das Backend gibt darueber bewusst keine Auskunft), `zu_oft`
|
|
329
|
+
* (5 Mails je Beleg in 24 Stunden, 30 je Kasse und Stunde) und
|
|
330
|
+
* `versand_fehlgeschlagen`. Dieses Paket reicht sie unveraendert durch und
|
|
331
|
+
* legt keine eigenen Codes an.
|
|
332
|
+
*
|
|
333
|
+
* **Kein Wiederholen ohne Zutun des Bedieners:** ein zweiter Versuch schickt
|
|
334
|
+
* eine zweite Mail und zaehlt auf die Schleuse.
|
|
335
|
+
*/
|
|
336
|
+
export async function sendReceiptEmail(rufen, options) {
|
|
337
|
+
// Getrimmt, weil beides von Hand oder per Scanner ins Feld kommt und ein
|
|
338
|
+
// angehaengtes Leerzeichen sonst als ungueltige Adresse zurueckkaeme --
|
|
339
|
+
// nach einem Aufruf, der schon eine Zeile im Protokoll gekostet hat.
|
|
340
|
+
const fullReceiptId = typeof options.fullReceiptId === 'string' ? options.fullReceiptId.trim() : '';
|
|
341
|
+
const to = typeof options.to === 'string' ? options.to.trim() : '';
|
|
342
|
+
if (fullReceiptId === '') {
|
|
343
|
+
throw new KasseneckValidationError('sendReceiptEmail', 'fullReceiptId fehlt', 'request');
|
|
344
|
+
}
|
|
345
|
+
if (to === '') {
|
|
346
|
+
throw new KasseneckValidationError('sendReceiptEmail', 'to fehlt (Empfaengeradresse)', 'request');
|
|
347
|
+
}
|
|
348
|
+
// Die Adresse selbst wird hier NICHT geprueft: das Backend prueft sie mit
|
|
349
|
+
// kreiseck_validator und antwortet mit `adresse_ungueltig`. Eine zweite,
|
|
350
|
+
// eigene Regel im Paket koennte strenger sein als die des Backends und eine
|
|
351
|
+
// gueltige Adresse abweisen, ohne dass jemand die Abweichung bemerkt.
|
|
352
|
+
const params = { fullReceiptId, to };
|
|
353
|
+
if (options.sprache !== undefined && options.sprache !== '')
|
|
354
|
+
params.sprache = options.sprache;
|
|
355
|
+
const daten = await rufen('sendReceiptEmail', params);
|
|
356
|
+
if (typeof daten?.to !== 'string' || daten.to === '') {
|
|
357
|
+
throw antwortfehler('sendReceiptEmail', 'Antwort nennt keine Empfaengeradresse (data.to fehlt)');
|
|
358
|
+
}
|
|
359
|
+
if (typeof daten.at !== 'string' || daten.at === '') {
|
|
360
|
+
throw antwortfehler('sendReceiptEmail', 'Antwort nennt keinen Zeitpunkt (data.at fehlt)');
|
|
361
|
+
}
|
|
362
|
+
return { to: daten.to, at: daten.at, via: typeof daten.via === 'string' && daten.via !== '' ? daten.via : null };
|
|
363
|
+
}
|
|
316
364
|
/**
|
|
317
365
|
* Prueft die Gutschein-Kombination eines Belegs und liefert den ersten
|
|
318
366
|
* Regelverstoss als Text (oder `null`) — Zwilling von
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
|
-
export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, type Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, remainingQuantities, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, istZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
3
|
-
export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type KasseneckTransport, type KasseneckBinaryTransport, AUFRUFE, type Aufruf, createTransport, createBinaryTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type CreateCancelReceiptOptions, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, downloadDailyReport, downloadMonthlyReport, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
|
|
2
|
+
export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, type Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, type ReceiptEmailErrorCode, RECEIPT_EMAIL_ERROR_CODES, isReceiptEmailErrorCode, remainingQuantities, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, istZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
3
|
+
export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type KasseneckTransport, type KasseneckBinaryTransport, AUFRUFE, type Aufruf, createTransport, createBinaryTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type CreateCancelReceiptOptions, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, downloadDailyReport, downloadMonthlyReport, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
|
|
4
4
|
export { parseServerTimeStamp, toViennaWallClock, type ViennaWallClock } from './vienna-time.js';
|
|
5
5
|
export { type KasseSettingsBetrieb, type KasseSettingsGeraet, type KasseSettings, type ArticleGroup, type KasseArtikel, KASSE_BETRIEB_STANDARD, KASSE_GERAET_STANDARD, mergeKasseSettings, fromArticleGroupPayload, fromKasseArtikelPayload, listMyArticleGroups, listMyArticles, getKasseSettings, setMyKasseSettings, setMyRegisterDeviceSettings, verteileRabatt, cancelScopeOf, receiptsScopeOf, } from './kasse/index.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ReceiptType, VatRate, KeckPaymentMethod, CreditCardProvider, VoucherType, VoucherAction, StripeLinkMode, } from './enums/index.js';
|
|
2
|
-
export { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, isTipItem, toVoucherPayload, fromVoucherPayload, voucherIsValid, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, remainingQuantities, fromReceiptCompanyPayload, receiptCompanyTaxInfo, fromCashregisterPayload, fromReceiptSummaryPayload, ZERO_KINDS, istZeroKind, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
3
|
-
export { apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, AUFRUFE, createTransport, createBinaryTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, listMyCashregisters, checkVoucherCombinationError, downloadDailyReport, downloadMonthlyReport, getCashboxStatus, getSignatureStatus, createKasseneckApi, } from './client/index.js';
|
|
2
|
+
export { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, isTipItem, toVoucherPayload, fromVoucherPayload, voucherIsValid, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, RECEIPT_EMAIL_ERROR_CODES, isReceiptEmailErrorCode, remainingQuantities, fromReceiptCompanyPayload, receiptCompanyTaxInfo, fromCashregisterPayload, fromReceiptSummaryPayload, ZERO_KINDS, istZeroKind, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
3
|
+
export { apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, AUFRUFE, createTransport, createBinaryTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, sellReceipt, sellReceiptWithCompany, cancelReceipt, createCancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, listMyCashregisters, checkVoucherCombinationError, sendReceiptEmail, downloadDailyReport, downloadMonthlyReport, getCashboxStatus, getSignatureStatus, createKasseneckApi, } from './client/index.js';
|
|
4
4
|
export { parseServerTimeStamp, toViennaWallClock } from './vienna-time.js';
|
|
5
5
|
export { KASSE_BETRIEB_STANDARD, KASSE_GERAET_STANDARD, mergeKasseSettings, fromArticleGroupPayload, fromKasseArtikelPayload, listMyArticleGroups, listMyArticles, getKasseSettings, setMyKasseSettings, setMyRegisterDeviceSettings, verteileRabatt, cancelScopeOf, receiptsScopeOf, } from './kasse/index.js';
|
|
@@ -2,6 +2,7 @@ export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead,
|
|
|
2
2
|
export { type Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid } from './voucher.js';
|
|
3
3
|
export { type Receipt, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, } from './receipt.js';
|
|
4
4
|
export { type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, remainingQuantities, } from './cancellation.js';
|
|
5
|
+
export { type ReceiptEmailErrorCode, RECEIPT_EMAIL_ERROR_CODES, isReceiptEmailErrorCode, } from './receipt-email.js';
|
|
5
6
|
export { type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, } from './receipt-company.js';
|
|
6
7
|
export { type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, fromCashregisterPayload, } from './cashregister.js';
|
|
7
8
|
export { type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, istZeroKind } from './receipt-summary.js';
|
package/dist/esm/models/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, re
|
|
|
2
2
|
export { toVoucherPayload, fromVoucherPayload, voucherIsValid } from './voucher.js';
|
|
3
3
|
export { toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, } from './receipt.js';
|
|
4
4
|
export { CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, remainingQuantities, } from './cancellation.js';
|
|
5
|
+
export { RECEIPT_EMAIL_ERROR_CODES, isReceiptEmailErrorCode, } from './receipt-email.js';
|
|
5
6
|
export { fromReceiptCompanyPayload, receiptCompanyTaxInfo, } from './receipt-company.js';
|
|
6
7
|
export { fromCashregisterPayload, } from './cashregister.js';
|
|
7
8
|
export { fromReceiptSummaryPayload, ZERO_KINDS, istZeroKind } from './receipt-summary.js';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beleg per E-Mail — Zwilling von `functions/beleg-mail-core.js`.
|
|
3
|
+
*
|
|
4
|
+
* Hier steht nur der Fehlercode-Katalog: der Aufruf selbst ist
|
|
5
|
+
* [sendReceiptEmail] (client/receipts.ts), und was verschickt wird, ist ein
|
|
6
|
+
* **Link auf die oeffentliche Belegseite** — der Beleg selbst bleibt
|
|
7
|
+
* unberuehrt (BAO §131/RKSV), das Versandprotokoll fuehrt das Backend in einer
|
|
8
|
+
* Unter-Sammlung neben ihm.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Stabile Fehlercodes von `sendReceiptEmail` — Zwilling von
|
|
12
|
+
* `beleg-mail-core.js` FEHLERCODES. Das Backend legt sie bei jedem fachlichen
|
|
13
|
+
* Fehler als `code` neben die Meldung; das Paket reicht sie als
|
|
14
|
+
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text** — die
|
|
15
|
+
* deutsche Meldung darf sich aendern, der Code nicht.
|
|
16
|
+
*
|
|
17
|
+
* Nur Auth-/Parameterfehler (Sitzung abgelaufen, Pflichtfeld fehlt) kommen
|
|
18
|
+
* ohne Code; dort bleibt `code` undefined.
|
|
19
|
+
*/
|
|
20
|
+
export declare const RECEIPT_EMAIL_ERROR_CODES: readonly ["adresse_ungueltig", "beleg_nicht_gefunden", "zu_oft", "versand_fehlgeschlagen"];
|
|
21
|
+
export type ReceiptEmailErrorCode = (typeof RECEIPT_EMAIL_ERROR_CODES)[number];
|
|
22
|
+
export declare function isReceiptEmailErrorCode(value: unknown): value is ReceiptEmailErrorCode;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beleg per E-Mail — Zwilling von `functions/beleg-mail-core.js`.
|
|
3
|
+
*
|
|
4
|
+
* Hier steht nur der Fehlercode-Katalog: der Aufruf selbst ist
|
|
5
|
+
* [sendReceiptEmail] (client/receipts.ts), und was verschickt wird, ist ein
|
|
6
|
+
* **Link auf die oeffentliche Belegseite** — der Beleg selbst bleibt
|
|
7
|
+
* unberuehrt (BAO §131/RKSV), das Versandprotokoll fuehrt das Backend in einer
|
|
8
|
+
* Unter-Sammlung neben ihm.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Stabile Fehlercodes von `sendReceiptEmail` — Zwilling von
|
|
12
|
+
* `beleg-mail-core.js` FEHLERCODES. Das Backend legt sie bei jedem fachlichen
|
|
13
|
+
* Fehler als `code` neben die Meldung; das Paket reicht sie als
|
|
14
|
+
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text** — die
|
|
15
|
+
* deutsche Meldung darf sich aendern, der Code nicht.
|
|
16
|
+
*
|
|
17
|
+
* Nur Auth-/Parameterfehler (Sitzung abgelaufen, Pflichtfeld fehlt) kommen
|
|
18
|
+
* ohne Code; dort bleibt `code` undefined.
|
|
19
|
+
*/
|
|
20
|
+
export const RECEIPT_EMAIL_ERROR_CODES = [
|
|
21
|
+
'adresse_ungueltig', // Empfaengeradresse unbrauchbar (Pruefung im Backend)
|
|
22
|
+
'beleg_nicht_gefunden', // Beleg gibt es nicht ODER er gehoert einer anderen Kasse
|
|
23
|
+
'zu_oft', // Schleuse: 5 Mails je Beleg (24 h), 30 je Kasse und Stunde
|
|
24
|
+
'versand_fehlgeschlagen', // die Mail selbst ging nicht hinaus
|
|
25
|
+
];
|
|
26
|
+
export function isReceiptEmailErrorCode(value) {
|
|
27
|
+
return typeof value === 'string' && RECEIPT_EMAIL_ERROR_CODES.includes(value);
|
|
28
|
+
}
|
|
@@ -101,6 +101,17 @@ export declare class HpsConnectTerminalError extends HpsConnectException {
|
|
|
101
101
|
* niemals umgekehrt.
|
|
102
102
|
*/
|
|
103
103
|
get isTerminalBusy(): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* `true`, wenn dies ein HTTP `404` beim Terminal-Kontakt ist -- Lesart
|
|
106
|
+
* ungemessen, siehe [NOT_FOUND_HTTP_STATUS] und den Dart-Zwilling
|
|
107
|
+
* (`HpsHttpException.isNotFound`): es kann "diesen Vorgang kenne ich nicht"
|
|
108
|
+
* heissen oder "diesen Endpunkt gibt es hier nicht". `payments.ts` benennt
|
|
109
|
+
* beim Abbruch beide Lesarten, statt eine zu behaupten.
|
|
110
|
+
*
|
|
111
|
+
* Liest, wie [isTerminalBusy], bevorzugt [terminalHttpStatus] und faellt nur
|
|
112
|
+
* ohne dieses Feld auf den Meldungstext zurueck.
|
|
113
|
+
*/
|
|
114
|
+
get isNotFound(): boolean;
|
|
104
115
|
}
|
|
105
116
|
/**
|
|
106
117
|
* Connect selbst war nicht erreichbar, oder die Antwort hatte nicht die
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TERMINAL_BUSY_HTTP_STATUS } from './transaction-response.js';
|
|
1
|
+
import { NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS } from './transaction-response.js';
|
|
2
2
|
/**
|
|
3
3
|
* Fehlerarten auf dem Weg ueber **Kasseneck Connect** zum hobex-HPS-Terminal.
|
|
4
4
|
*
|
|
@@ -124,6 +124,22 @@ export class HpsConnectTerminalError extends HpsConnectException {
|
|
|
124
124
|
}
|
|
125
125
|
return this.connectCode === 'terminal_error' && new RegExp(`\\(HTTP ${TERMINAL_BUSY_HTTP_STATUS}\\)`).test(this.message);
|
|
126
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* `true`, wenn dies ein HTTP `404` beim Terminal-Kontakt ist -- Lesart
|
|
129
|
+
* ungemessen, siehe [NOT_FOUND_HTTP_STATUS] und den Dart-Zwilling
|
|
130
|
+
* (`HpsHttpException.isNotFound`): es kann "diesen Vorgang kenne ich nicht"
|
|
131
|
+
* heissen oder "diesen Endpunkt gibt es hier nicht". `payments.ts` benennt
|
|
132
|
+
* beim Abbruch beide Lesarten, statt eine zu behaupten.
|
|
133
|
+
*
|
|
134
|
+
* Liest, wie [isTerminalBusy], bevorzugt [terminalHttpStatus] und faellt nur
|
|
135
|
+
* ohne dieses Feld auf den Meldungstext zurueck.
|
|
136
|
+
*/
|
|
137
|
+
get isNotFound() {
|
|
138
|
+
if (this.terminalHttpStatus !== undefined) {
|
|
139
|
+
return this.terminalHttpStatus === NOT_FOUND_HTTP_STATUS;
|
|
140
|
+
}
|
|
141
|
+
return this.connectCode === 'terminal_error' && new RegExp(`\\(HTTP ${NOT_FOUND_HTTP_STATUS}\\)`).test(this.message);
|
|
142
|
+
}
|
|
127
143
|
}
|
|
128
144
|
/**
|
|
129
145
|
* Connect selbst war nicht erreichbar, oder die Antwort hatte nicht die
|
|
@@ -23,5 +23,5 @@ export { type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver
|
|
|
23
23
|
export { type CardPaymentOutcome, type HpsPaymentResult, isHostUncertainResult, mayRetrySafely, } from './outcome.js';
|
|
24
24
|
export { type HpsCancelOptions, type HpsPaymentOptions, type HpsPayments, type HpsPaymentsOptions, type HpsRefundOptions, createHpsPayments, } from './payments.js';
|
|
25
25
|
export { MAX_TRANSACTION_ID_LENGTH, createHpsTransactionIdGenerator, isValidHpsTransactionId, newHpsTransactionId, type HpsTransactionIdGeneratorOptions, } from './transaction-id.js';
|
|
26
|
-
export { ABORTED_CODE, APP_SELECT_FAILED_CODE, APPROVED_CODE, BAD_REQUEST_CODE, CARD_DECLINED_CODE, CARD_INFO_NOT_ENTERED_CODE, CARD_NOT_PRESENT_CODE, CARD_NOT_SUPPORTED_CODE, CARD_READ_FAILED_CODE, CHIP_DATA_MISMATCH_CODE, COMPLETION_FAILED_CODE, DIAGNOSIS_FAILED_CODE, HOST_COMMUNICATION_FAILED_CODE, HOST_STEP_FAILED_CODE, HOST_TIMEOUT_REVERSED_CODE, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, INTERNAL_ERROR_CODE, INVALID_MESSAGE_TYPE_CODE, INVALID_TID_DOCUMENTED_CODE, INVALID_TX_TYPE_CODE, MAX_RETRIES_EXCEEDED_CODE, NOT_FOUND_CODE, PASSWORD_NOT_ENTERED_CODE, REFUND_DISABLED_CODE, REFUND_PASSWORD_INVALID_CODE, SCEP_ENROLLMENT_FAILED_CODE, TERMINAL_BLOCKED_CODE, TERMINAL_BUSY_CODE, TIP_SELECTION_FAILED_CODE, UNSUPPORTED_USER_DATA_CODE, hpsCodeInfo, hpsCodeReason, isHostUncertain, isHostUncertainReason, INVALID_TRANSACTION_CODE, NOT_ABORTABLE_CODE, INVALID_AMOUNT_CODE, AMOUNT_OUT_OF_RANGE_CODE, INVALID_TID_CODE, WRONG_PIN_CODE, NO_STATEMENT_CODE, TECHNICAL_ERROR_CODE, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, isApproved, isCanceled, isConclusive, isConclusiveAsStatus, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, parseHpsTransactionResponse, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsTransactionResponse, } from './transaction-response.js';
|
|
26
|
+
export { ABORTED_CODE, APP_SELECT_FAILED_CODE, APPROVED_CODE, BAD_REQUEST_CODE, CARD_DECLINED_CODE, CARD_INFO_NOT_ENTERED_CODE, CARD_NOT_PRESENT_CODE, CARD_NOT_SUPPORTED_CODE, CARD_READ_FAILED_CODE, CHIP_DATA_MISMATCH_CODE, COMPLETION_FAILED_CODE, DIAGNOSIS_FAILED_CODE, HOST_COMMUNICATION_FAILED_CODE, HOST_STEP_FAILED_CODE, HOST_TIMEOUT_REVERSED_CODE, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, INTERNAL_ERROR_CODE, INVALID_MESSAGE_TYPE_CODE, INVALID_TID_DOCUMENTED_CODE, INVALID_TX_TYPE_CODE, MAX_RETRIES_EXCEEDED_CODE, NOT_FOUND_CODE, PASSWORD_NOT_ENTERED_CODE, REFUND_DISABLED_CODE, REFUND_PASSWORD_INVALID_CODE, SCEP_ENROLLMENT_FAILED_CODE, TERMINAL_BLOCKED_CODE, TERMINAL_BUSY_CODE, TIP_SELECTION_FAILED_CODE, UNSUPPORTED_USER_DATA_CODE, hpsCodeInfo, hpsCodeReason, isHostUncertain, isHostUncertainReason, INVALID_TRANSACTION_CODE, NOT_ABORTABLE_CODE, INVALID_AMOUNT_CODE, AMOUNT_OUT_OF_RANGE_CODE, INVALID_TID_CODE, WRONG_PIN_CODE, NO_STATEMENT_CODE, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, isApproved, isCanceled, isConclusive, isConclusiveAsStatus, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, parseHpsTransactionResponse, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsTransactionResponse, } from './transaction-response.js';
|
|
27
27
|
export { hobexReceiptFromHps } from './receipt.js';
|
|
@@ -22,5 +22,5 @@ export { HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, H
|
|
|
22
22
|
export { isHostUncertainResult, mayRetrySafely, } from './outcome.js';
|
|
23
23
|
export { createHpsPayments, } from './payments.js';
|
|
24
24
|
export { MAX_TRANSACTION_ID_LENGTH, createHpsTransactionIdGenerator, isValidHpsTransactionId, newHpsTransactionId, } from './transaction-id.js';
|
|
25
|
-
export { ABORTED_CODE, APP_SELECT_FAILED_CODE, APPROVED_CODE, BAD_REQUEST_CODE, CARD_DECLINED_CODE, CARD_INFO_NOT_ENTERED_CODE, CARD_NOT_PRESENT_CODE, CARD_NOT_SUPPORTED_CODE, CARD_READ_FAILED_CODE, CHIP_DATA_MISMATCH_CODE, COMPLETION_FAILED_CODE, DIAGNOSIS_FAILED_CODE, HOST_COMMUNICATION_FAILED_CODE, HOST_STEP_FAILED_CODE, HOST_TIMEOUT_REVERSED_CODE, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, INTERNAL_ERROR_CODE, INVALID_MESSAGE_TYPE_CODE, INVALID_TID_DOCUMENTED_CODE, INVALID_TX_TYPE_CODE, MAX_RETRIES_EXCEEDED_CODE, NOT_FOUND_CODE, PASSWORD_NOT_ENTERED_CODE, REFUND_DISABLED_CODE, REFUND_PASSWORD_INVALID_CODE, SCEP_ENROLLMENT_FAILED_CODE, TERMINAL_BLOCKED_CODE, TERMINAL_BUSY_CODE, TIP_SELECTION_FAILED_CODE, UNSUPPORTED_USER_DATA_CODE, hpsCodeInfo, hpsCodeReason, isHostUncertain, isHostUncertainReason, INVALID_TRANSACTION_CODE, NOT_ABORTABLE_CODE, INVALID_AMOUNT_CODE, AMOUNT_OUT_OF_RANGE_CODE, INVALID_TID_CODE, WRONG_PIN_CODE, NO_STATEMENT_CODE, TECHNICAL_ERROR_CODE, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, isApproved, isCanceled, isConclusive, isConclusiveAsStatus, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, parseHpsTransactionResponse, } from './transaction-response.js';
|
|
25
|
+
export { ABORTED_CODE, APP_SELECT_FAILED_CODE, APPROVED_CODE, BAD_REQUEST_CODE, CARD_DECLINED_CODE, CARD_INFO_NOT_ENTERED_CODE, CARD_NOT_PRESENT_CODE, CARD_NOT_SUPPORTED_CODE, CARD_READ_FAILED_CODE, CHIP_DATA_MISMATCH_CODE, COMPLETION_FAILED_CODE, DIAGNOSIS_FAILED_CODE, HOST_COMMUNICATION_FAILED_CODE, HOST_STEP_FAILED_CODE, HOST_TIMEOUT_REVERSED_CODE, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, INTERNAL_ERROR_CODE, INVALID_MESSAGE_TYPE_CODE, INVALID_TID_DOCUMENTED_CODE, INVALID_TX_TYPE_CODE, MAX_RETRIES_EXCEEDED_CODE, NOT_FOUND_CODE, PASSWORD_NOT_ENTERED_CODE, REFUND_DISABLED_CODE, REFUND_PASSWORD_INVALID_CODE, SCEP_ENROLLMENT_FAILED_CODE, TERMINAL_BLOCKED_CODE, TERMINAL_BUSY_CODE, TIP_SELECTION_FAILED_CODE, UNSUPPORTED_USER_DATA_CODE, hpsCodeInfo, hpsCodeReason, isHostUncertain, isHostUncertainReason, INVALID_TRANSACTION_CODE, NOT_ABORTABLE_CODE, INVALID_AMOUNT_CODE, AMOUNT_OUT_OF_RANGE_CODE, INVALID_TID_CODE, WRONG_PIN_CODE, NO_STATEMENT_CODE, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, isApproved, isCanceled, isConclusive, isConclusiveAsStatus, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, parseHpsTransactionResponse, } from './transaction-response.js';
|
|
26
26
|
export { hobexReceiptFromHps } from './receipt.js';
|
|
@@ -318,7 +318,12 @@ export function createHpsPayments(client, target, options = {}) {
|
|
|
318
318
|
res = await withinBudget(elapsedMs, () => client.abort({ ...target, transactionId: id }), abortBudgetMs);
|
|
319
319
|
}
|
|
320
320
|
catch (e) {
|
|
321
|
-
|
|
321
|
+
// Siehe Dart-Zwilling: ein 404 hat zwei Lesarten, und wir kennen die
|
|
322
|
+
// richtige nicht. Der Nachweistext benennt beide und behauptet keine.
|
|
323
|
+
steps.push(e instanceof HpsConnectTerminalError && e.isNotFound
|
|
324
|
+
? 'Abbruch nicht bestaetigt (HTTP 404) -- das Terminal kennt entweder diesen Vorgang nicht '
|
|
325
|
+
+ 'oder den Abbruch-Endpunkt nicht; beides sagt nichts ueber die Zahlung, Ausgang wird abgefragt'
|
|
326
|
+
: `Abbruch nicht bestaetigt (${describe(e)}) -- ob er wirkte, ist offen, Ausgang wird abgefragt`);
|
|
322
327
|
noteUnexpected(e, id);
|
|
323
328
|
return null;
|
|
324
329
|
}
|
|
@@ -216,6 +216,18 @@ export declare const INTERNAL_ERROR_CODE = "100999";
|
|
|
216
216
|
* getrennte Auswertung.
|
|
217
217
|
*/
|
|
218
218
|
export declare const TERMINAL_BUSY_HTTP_STATUS = 409;
|
|
219
|
+
/**
|
|
220
|
+
* HTTP `404` beim Terminal-Kontakt. **Lesart ungemessen:** am Produktivgeraet
|
|
221
|
+
* (TID 3556988, Firmware 2.3.9) antwortet `POST /api/transaction/abort/...`
|
|
222
|
+
* damit, am Testgeraet (3600335) nie. Es kann "diesen Vorgang kenne ich nicht"
|
|
223
|
+
* heissen oder "diesen Endpunkt gibt es hier nicht" -- beides sagt nichts ueber
|
|
224
|
+
* die Zahlung. Bei hobex angefragt; bis dahin benennt `payments.ts` beim
|
|
225
|
+
* Abbruch beide Lesarten, statt eine zu behaupten.
|
|
226
|
+
*
|
|
227
|
+
* Wie [TERMINAL_BUSY_HTTP_STATUS] bewusst KEIN Eintrag in [HPS_CODES]: ein
|
|
228
|
+
* HTTP-Status ist kein `responseCode`.
|
|
229
|
+
*/
|
|
230
|
+
export declare const NOT_FOUND_HTTP_STATUS = 404;
|
|
219
231
|
/** Der Eintrag zu [code] in [HPS_CODES], oder `undefined`, wenn seine Bedeutung nicht feststeht. */
|
|
220
232
|
export declare function hpsCodeInfo(code: string | undefined): HpsCode | undefined;
|
|
221
233
|
/**
|
|
@@ -315,6 +315,18 @@ export const INTERNAL_ERROR_CODE = '100999';
|
|
|
315
315
|
* getrennte Auswertung.
|
|
316
316
|
*/
|
|
317
317
|
export const TERMINAL_BUSY_HTTP_STATUS = 409;
|
|
318
|
+
/**
|
|
319
|
+
* HTTP `404` beim Terminal-Kontakt. **Lesart ungemessen:** am Produktivgeraet
|
|
320
|
+
* (TID 3556988, Firmware 2.3.9) antwortet `POST /api/transaction/abort/...`
|
|
321
|
+
* damit, am Testgeraet (3600335) nie. Es kann "diesen Vorgang kenne ich nicht"
|
|
322
|
+
* heissen oder "diesen Endpunkt gibt es hier nicht" -- beides sagt nichts ueber
|
|
323
|
+
* die Zahlung. Bei hobex angefragt; bis dahin benennt `payments.ts` beim
|
|
324
|
+
* Abbruch beide Lesarten, statt eine zu behaupten.
|
|
325
|
+
*
|
|
326
|
+
* Wie [TERMINAL_BUSY_HTTP_STATUS] bewusst KEIN Eintrag in [HPS_CODES]: ein
|
|
327
|
+
* HTTP-Status ist kein `responseCode`.
|
|
328
|
+
*/
|
|
329
|
+
export const NOT_FOUND_HTTP_STATUS = 404;
|
|
318
330
|
const CODE_BY_ID = new Map(HPS_CODES.map((c) => [c.code, c]));
|
|
319
331
|
/** Der Eintrag zu [code] in [HPS_CODES], oder `undefined`, wenn seine Bedeutung nicht feststeht. */
|
|
320
332
|
export function hpsCodeInfo(code) {
|
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
export { StripeLinkMode, type StripeLinkModeKey } from '../enums/index.js';
|
|
43
43
|
export { type CreateStripeLinkOptions, type StripeCaptureResult, createStripeLink, stripeCaptureIntent, } from './stripe.js';
|
|
44
44
|
export { type HobexPayOptions, type HobexRefundOptions, type HobexTransactionIdOptions, hobexPay, hobexRefund, newHobexTransactionId, } from './hobex.js';
|
|
45
|
-
export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
|
|
45
|
+
export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
|
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
export { StripeLinkMode } from '../enums/index.js';
|
|
43
43
|
export { createStripeLink, stripeCaptureIntent, } from './stripe.js';
|
|
44
44
|
export { hobexPay, hobexRefund, newHobexTransactionId, } from './hobex.js';
|
|
45
|
-
export { ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
|
|
45
|
+
export { ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.13.1",
|
|
3
3
|
"aufrufe": [
|
|
4
4
|
"activateCashregister",
|
|
5
5
|
"cancelReceipt",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"requestCustomerSignature",
|
|
46
46
|
"sendPartnerCustomerFonLink",
|
|
47
47
|
"sendPartnerWebhookTest",
|
|
48
|
+
"sendReceiptEmail",
|
|
48
49
|
"setMyKasseSettings",
|
|
49
50
|
"setMyRegisterDeviceSettings",
|
|
50
51
|
"stripeCaptureIntent",
|