awesome-node-checkout 1.0.1 → 1.1.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 +37 -0
- package/README.md +44 -10
- package/dist/abstract/base-payment-provider.abstract.d.ts +30 -0
- package/dist/abstract/base-payment-provider.abstract.d.ts.map +1 -0
- package/dist/abstract/base-payment-provider.abstract.js +28 -0
- package/dist/abstract/base-payment-provider.abstract.js.map +1 -0
- package/dist/adapters/express/index.d.ts +65 -0
- package/dist/adapters/express/index.d.ts.map +1 -0
- package/dist/adapters/express/index.js +176 -0
- package/dist/adapters/express/index.js.map +1 -0
- package/dist/checkout-configurator.d.ts +66 -0
- package/dist/checkout-configurator.d.ts.map +1 -0
- package/dist/checkout-configurator.js +148 -0
- package/dist/checkout-configurator.js.map +1 -0
- package/dist/events/checkout-event-bus.d.ts +29 -0
- package/dist/events/checkout-event-bus.d.ts.map +1 -0
- package/dist/events/checkout-event-bus.js +37 -0
- package/dist/events/checkout-event-bus.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/payment-provider.interface.d.ts +33 -0
- package/dist/interfaces/payment-provider.interface.d.ts.map +1 -0
- package/dist/interfaces/payment-provider.interface.js +3 -0
- package/dist/interfaces/payment-provider.interface.js.map +1 -0
- package/dist/interfaces/transaction-store.interface.d.ts +24 -0
- package/dist/interfaces/transaction-store.interface.d.ts.map +1 -0
- package/dist/interfaces/transaction-store.interface.js +3 -0
- package/dist/interfaces/transaction-store.interface.js.map +1 -0
- package/dist/models/checkout-config.model.d.ts +12 -0
- package/dist/models/checkout-config.model.d.ts.map +1 -0
- package/dist/models/checkout-config.model.js +3 -0
- package/dist/models/checkout-config.model.js.map +1 -0
- package/dist/models/errors.d.ts +7 -0
- package/dist/models/errors.d.ts.map +1 -0
- package/dist/models/errors.js +17 -0
- package/dist/models/errors.js.map +1 -0
- package/dist/models/payment-request.model.d.ts +21 -0
- package/dist/models/payment-request.model.d.ts.map +1 -0
- package/dist/models/payment-request.model.js +3 -0
- package/dist/models/payment-request.model.js.map +1 -0
- package/dist/models/payment-result.model.d.ts +23 -0
- package/dist/models/payment-result.model.d.ts.map +1 -0
- package/dist/models/payment-result.model.js +3 -0
- package/dist/models/payment-result.model.js.map +1 -0
- package/dist/providers/nexi/nexi.provider.d.ts +64 -0
- package/dist/providers/nexi/nexi.provider.d.ts.map +1 -0
- package/dist/providers/nexi/nexi.provider.js +227 -0
- package/dist/providers/nexi/nexi.provider.js.map +1 -0
- package/dist/providers/paypal/paypal.provider.d.ts +33 -0
- package/dist/providers/paypal/paypal.provider.d.ts.map +1 -0
- package/dist/providers/paypal/paypal.provider.js +167 -0
- package/dist/providers/paypal/paypal.provider.js.map +1 -0
- package/dist/providers/satispay/satispay.provider.d.ts +79 -0
- package/dist/providers/satispay/satispay.provider.d.ts.map +1 -0
- package/dist/providers/satispay/satispay.provider.js +301 -0
- package/dist/providers/satispay/satispay.provider.js.map +1 -0
- package/dist/stores/in-memory-transaction.store.d.ts +17 -0
- package/dist/stores/in-memory-transaction.store.d.ts.map +1 -0
- package/dist/stores/in-memory-transaction.store.js +30 -0
- package/dist/stores/in-memory-transaction.store.js.map +1 -0
- package/package.json +12 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-configurator.js","sourceRoot":"","sources":["../src/checkout-configurator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type CheckoutEventName = 'payment.created' | 'payment.completed' | 'payment.failed' | 'payment.refunded' | 'webhook.received';
|
|
2
|
+
export interface CheckoutEventPayload {
|
|
3
|
+
provider: string;
|
|
4
|
+
paymentId?: string;
|
|
5
|
+
orderId?: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
data?: any;
|
|
9
|
+
timestamp: Date;
|
|
10
|
+
}
|
|
11
|
+
type EventListener = (payload: CheckoutEventPayload) => void | Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Simple event bus for checkout lifecycle events.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* ```typescript
|
|
17
|
+
* checkout.events.on('payment.completed', ({ provider, paymentId }) => {
|
|
18
|
+
* console.log(`Payment ${paymentId} completed via ${provider}`);
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class CheckoutEventBus {
|
|
23
|
+
private readonly listeners;
|
|
24
|
+
on(event: CheckoutEventName, listener: EventListener): this;
|
|
25
|
+
off(event: CheckoutEventName, listener: EventListener): this;
|
|
26
|
+
emit(event: CheckoutEventName, payload: Omit<CheckoutEventPayload, 'timestamp'>): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=checkout-event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-event-bus.d.ts","sourceRoot":"","sources":["../../src/events/checkout-event-bus.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7E;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;IAEhF,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAM3D,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQtD,IAAI,CACR,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;CAKjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CheckoutEventBus = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Simple event bus for checkout lifecycle events.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* checkout.events.on('payment.completed', ({ provider, paymentId }) => {
|
|
10
|
+
* console.log(`Payment ${paymentId} completed via ${provider}`);
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
class CheckoutEventBus {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.listeners = new Map();
|
|
17
|
+
}
|
|
18
|
+
on(event, listener) {
|
|
19
|
+
const handlers = this.listeners.get(event) ?? [];
|
|
20
|
+
this.listeners.set(event, [...handlers, listener]);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
off(event, listener) {
|
|
24
|
+
const handlers = this.listeners.get(event);
|
|
25
|
+
if (handlers) {
|
|
26
|
+
this.listeners.set(event, handlers.filter((h) => h !== listener));
|
|
27
|
+
}
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
async emit(event, payload) {
|
|
31
|
+
const handlers = this.listeners.get(event) ?? [];
|
|
32
|
+
const fullPayload = { ...payload, timestamp: new Date() };
|
|
33
|
+
await Promise.all(handlers.map((h) => h(fullPayload)));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.CheckoutEventBus = CheckoutEventBus;
|
|
37
|
+
//# sourceMappingURL=checkout-event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-event-bus.js","sourceRoot":"","sources":["../../src/events/checkout-event-bus.ts"],"names":[],"mappings":";;;AAmBA;;;;;;;;;GASG;AACH,MAAa,gBAAgB;IAA7B;QACmB,cAAS,GAA4C,IAAI,GAAG,EAAE,CAAC;IAwBlF,CAAC;IAtBC,EAAE,CAAC,KAAwB,EAAE,QAAuB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAwB,EAAE,QAAuB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAwB,EACxB,OAAgD;QAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,WAAW,GAAyB,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QAChF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAzBD,4CAyBC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { CheckoutConfigurator } from './checkout-configurator';
|
|
2
|
+
export type { IPaymentProvider, PaymentFlow } from './interfaces/payment-provider.interface';
|
|
3
|
+
export type { ITransactionStore, TransactionData } from './interfaces/transaction-store.interface';
|
|
4
|
+
export type { PaymentRequest } from './models/payment-request.model';
|
|
5
|
+
export type { PaymentResult, WebhookResult } from './models/payment-result.model';
|
|
6
|
+
export type { CheckoutConfig } from './models/checkout-config.model';
|
|
7
|
+
export { CheckoutError } from './models/errors';
|
|
8
|
+
export type { CheckoutErrorCode } from './models/errors';
|
|
9
|
+
export { BasePaymentProvider } from './abstract/base-payment-provider.abstract';
|
|
10
|
+
export { CheckoutEventBus } from './events/checkout-event-bus';
|
|
11
|
+
export type { CheckoutEventName, CheckoutEventPayload } from './events/checkout-event-bus';
|
|
12
|
+
export { InMemoryTransactionStore } from './stores/in-memory-transaction.store';
|
|
13
|
+
export { PayPalProvider } from './providers/paypal/paypal.provider';
|
|
14
|
+
export type { PayPalProviderConfig } from './providers/paypal/paypal.provider';
|
|
15
|
+
export { NexiProvider } from './providers/nexi/nexi.provider';
|
|
16
|
+
export type { NexiProviderConfig } from './providers/nexi/nexi.provider';
|
|
17
|
+
export { SatispayProvider } from './providers/satispay/satispay.provider';
|
|
18
|
+
export type { SatispayProviderConfig } from './providers/satispay/satispay.provider';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC7F,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAGnG,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAClF,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAG3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SatispayProvider = exports.NexiProvider = exports.PayPalProvider = exports.InMemoryTransactionStore = exports.CheckoutEventBus = exports.BasePaymentProvider = exports.CheckoutError = exports.CheckoutConfigurator = void 0;
|
|
4
|
+
// ---- Configurator ----------------------------------------------------------
|
|
5
|
+
var checkout_configurator_1 = require("./checkout-configurator");
|
|
6
|
+
Object.defineProperty(exports, "CheckoutConfigurator", { enumerable: true, get: function () { return checkout_configurator_1.CheckoutConfigurator; } });
|
|
7
|
+
var errors_1 = require("./models/errors");
|
|
8
|
+
Object.defineProperty(exports, "CheckoutError", { enumerable: true, get: function () { return errors_1.CheckoutError; } });
|
|
9
|
+
// ---- Abstract --------------------------------------------------------------
|
|
10
|
+
var base_payment_provider_abstract_1 = require("./abstract/base-payment-provider.abstract");
|
|
11
|
+
Object.defineProperty(exports, "BasePaymentProvider", { enumerable: true, get: function () { return base_payment_provider_abstract_1.BasePaymentProvider; } });
|
|
12
|
+
// ---- Events ----------------------------------------------------------------
|
|
13
|
+
var checkout_event_bus_1 = require("./events/checkout-event-bus");
|
|
14
|
+
Object.defineProperty(exports, "CheckoutEventBus", { enumerable: true, get: function () { return checkout_event_bus_1.CheckoutEventBus; } });
|
|
15
|
+
// ---- Stores ----------------------------------------------------------------
|
|
16
|
+
var in_memory_transaction_store_1 = require("./stores/in-memory-transaction.store");
|
|
17
|
+
Object.defineProperty(exports, "InMemoryTransactionStore", { enumerable: true, get: function () { return in_memory_transaction_store_1.InMemoryTransactionStore; } });
|
|
18
|
+
// ---- Providers -------------------------------------------------------------
|
|
19
|
+
var paypal_provider_1 = require("./providers/paypal/paypal.provider");
|
|
20
|
+
Object.defineProperty(exports, "PayPalProvider", { enumerable: true, get: function () { return paypal_provider_1.PayPalProvider; } });
|
|
21
|
+
var nexi_provider_1 = require("./providers/nexi/nexi.provider");
|
|
22
|
+
Object.defineProperty(exports, "NexiProvider", { enumerable: true, get: function () { return nexi_provider_1.NexiProvider; } });
|
|
23
|
+
var satispay_provider_1 = require("./providers/satispay/satispay.provider");
|
|
24
|
+
Object.defineProperty(exports, "SatispayProvider", { enumerable: true, get: function () { return satispay_provider_1.SatispayProvider; } });
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+EAA+E;AAC/E,iEAA+D;AAAtD,6HAAA,oBAAoB,OAAA;AAU7B,0CAAgD;AAAvC,uGAAA,aAAa,OAAA;AAGtB,+EAA+E;AAC/E,4FAAgF;AAAvE,qIAAA,mBAAmB,OAAA;AAE5B,+EAA+E;AAC/E,kEAA+D;AAAtD,sHAAA,gBAAgB,OAAA;AAGzB,+EAA+E;AAC/E,oFAAgF;AAAvE,uIAAA,wBAAwB,OAAA;AAEjC,+EAA+E;AAC/E,sEAAoE;AAA3D,iHAAA,cAAc,OAAA;AAGvB,gEAA8D;AAArD,6GAAA,YAAY,OAAA;AAGrB,4EAA0E;AAAjE,qHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PaymentRequest } from '../models/payment-request.model';
|
|
2
|
+
import { PaymentResult, WebhookResult } from '../models/payment-result.model';
|
|
3
|
+
export type PaymentFlow = 'redirect' | 'webhook' | 'direct';
|
|
4
|
+
export interface IPaymentProvider {
|
|
5
|
+
/** Unique provider name, lowercase (e.g. 'paypal', 'nexi', 'satispay') */
|
|
6
|
+
readonly name: string;
|
|
7
|
+
/**
|
|
8
|
+
* Declares the confirmation flow used by this provider:
|
|
9
|
+
* - `redirect`: user is redirected to provider and returns with query params
|
|
10
|
+
* - `webhook`: provider calls a webhook URL asynchronously after payment
|
|
11
|
+
* - `direct`: payment is processed synchronously (e.g. card tokenization)
|
|
12
|
+
*/
|
|
13
|
+
readonly flow: PaymentFlow;
|
|
14
|
+
/** Create a new payment and return a result (may include an approvalUrl for redirect flow) */
|
|
15
|
+
createPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
16
|
+
/** Execute/capture a previously created payment */
|
|
17
|
+
executePayment(paymentId: string, data?: Record<string, string>): Promise<PaymentResult>;
|
|
18
|
+
/** Retrieve the current status and details of a payment */
|
|
19
|
+
getPaymentDetails(paymentId: string): Promise<PaymentResult>;
|
|
20
|
+
/** Issue a full or partial refund on a completed payment */
|
|
21
|
+
refundPayment(paymentId: string, amount?: number): Promise<PaymentResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Handle an incoming webhook notification from the provider.
|
|
24
|
+
* Optional — implement only for providers that use the `webhook` flow.
|
|
25
|
+
*/
|
|
26
|
+
handleWebhook?(body: Record<string, unknown>, headers: Record<string, string>): Promise<WebhookResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Handle the redirect callback from the provider (query params from returnUrl).
|
|
29
|
+
* Optional — implement only for providers that use the `redirect` flow.
|
|
30
|
+
*/
|
|
31
|
+
handleRedirect?(query: Record<string, string>): Promise<PaymentResult>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=payment-provider.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/payment-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,8FAA8F;IAC9F,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/D,mDAAmD;IACnD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzF,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7D,4DAA4D;IAC5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1E;;;OAGG;IACH,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvG;;;OAGG;IACH,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-provider.interface.js","sourceRoot":"","sources":["../../src/interfaces/payment-provider.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arbitrary data associated with a transaction.
|
|
3
|
+
* Extended by providers that need to persist state across async flows
|
|
4
|
+
* (e.g. correlating a Satispay webhook with the original order).
|
|
5
|
+
*/
|
|
6
|
+
export interface TransactionData {
|
|
7
|
+
provider: string;
|
|
8
|
+
orderId?: string;
|
|
9
|
+
paymentId?: string;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
metadata?: Record<string, any>;
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Abstraction over transaction state persistence.
|
|
16
|
+
* Built-in: InMemoryTransactionStore.
|
|
17
|
+
* Implement this interface to use Redis, PostgreSQL, MongoDB, etc.
|
|
18
|
+
*/
|
|
19
|
+
export interface ITransactionStore {
|
|
20
|
+
save(key: string, data: TransactionData): Promise<void>;
|
|
21
|
+
get(key: string): Promise<TransactionData | null>;
|
|
22
|
+
delete(key: string): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=transaction-store.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-store.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/transaction-store.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-store.interface.js","sourceRoot":"","sources":["../../src/interfaces/transaction-store.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global configuration for CheckoutConfigurator.
|
|
3
|
+
*/
|
|
4
|
+
export interface CheckoutConfig {
|
|
5
|
+
/**
|
|
6
|
+
* When `true`, the event bus emits lifecycle events for every payment
|
|
7
|
+
* operation (payment.created, payment.completed, payment.failed, etc.).
|
|
8
|
+
* @default true
|
|
9
|
+
*/
|
|
10
|
+
emitEvents?: boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=checkout-config.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-config.model.d.ts","sourceRoot":"","sources":["../../src/models/checkout-config.model.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-config.model.js","sourceRoot":"","sources":["../../src/models/checkout-config.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type CheckoutErrorCode = 'PROVIDER_NOT_FOUND' | 'PROVIDER_ALREADY_REGISTERED' | 'PAYMENT_FAILED' | 'WEBHOOK_NOT_SUPPORTED' | 'REDIRECT_NOT_SUPPORTED' | 'TRANSACTION_NOT_FOUND';
|
|
2
|
+
export declare class CheckoutError extends Error {
|
|
3
|
+
readonly code: CheckoutErrorCode;
|
|
4
|
+
readonly provider?: string | undefined;
|
|
5
|
+
constructor(message: string, code: CheckoutErrorCode, provider?: string | undefined);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/models/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,6BAA6B,GAC7B,gBAAgB,GAChB,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,EAAE,iBAAiB;aACvB,QAAQ,CAAC,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,CAAC,EAAE,MAAM,YAAA;CASpC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CheckoutError = void 0;
|
|
4
|
+
class CheckoutError extends Error {
|
|
5
|
+
constructor(message, code, provider) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.provider = provider;
|
|
9
|
+
this.name = 'CheckoutError';
|
|
10
|
+
// Maintains proper stack trace in V8
|
|
11
|
+
if (Error.captureStackTrace) {
|
|
12
|
+
Error.captureStackTrace(this, CheckoutError);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.CheckoutError = CheckoutError;
|
|
17
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/models/errors.ts"],"names":[],"mappings":";;;AAQA,MAAa,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACC,IAAuB,EACvB,QAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAmB;QACvB,aAAQ,GAAR,QAAQ,CAAS;QAGjC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,qCAAqC;QACrC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AAbD,sCAaC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified payment request passed to any provider.
|
|
3
|
+
* All monetary values are in major currency units (e.g. 9.99 for €9.99).
|
|
4
|
+
*/
|
|
5
|
+
export interface PaymentRequest {
|
|
6
|
+
/** Amount in major currency units (e.g. 9.99) */
|
|
7
|
+
amount: number;
|
|
8
|
+
/** ISO 4217 currency code (e.g. 'EUR', 'USD') */
|
|
9
|
+
currency: string;
|
|
10
|
+
/** Human-readable description of the payment */
|
|
11
|
+
description?: string;
|
|
12
|
+
/** URL to redirect the user to after a successful payment */
|
|
13
|
+
returnUrl: string;
|
|
14
|
+
/** URL to redirect the user to if the payment is cancelled */
|
|
15
|
+
cancelUrl: string;
|
|
16
|
+
/** External order identifier from the merchant's system */
|
|
17
|
+
orderId?: string;
|
|
18
|
+
/** Arbitrary key-value pairs forwarded to the provider when supported */
|
|
19
|
+
metadata?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=payment-request.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-request.model.d.ts","sourceRoot":"","sources":["../../src/models/payment-request.model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IAEf,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAElB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-request.model.js","sourceRoot":"","sources":["../../src/models/payment-request.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Unified result returned by all payment operations */
|
|
2
|
+
export interface PaymentResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
/** Provider-specific payment identifier */
|
|
5
|
+
paymentId?: string;
|
|
6
|
+
/** Redirect URL for the user (redirect-flow providers: PayPal, Nexi) */
|
|
7
|
+
approvalUrl?: string;
|
|
8
|
+
/** Current payment status (provider-specific string, e.g. 'COMPLETED', 'ACCEPTED') */
|
|
9
|
+
status?: string;
|
|
10
|
+
/** Error message if success is false */
|
|
11
|
+
error?: string;
|
|
12
|
+
/** Raw provider response — useful for debugging or provider-specific fields */
|
|
13
|
+
raw?: any;
|
|
14
|
+
}
|
|
15
|
+
/** Result returned by handleWebhook() */
|
|
16
|
+
export interface WebhookResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
paymentId?: string;
|
|
19
|
+
status?: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
raw?: any;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=payment-result.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-result.model.d.ts","sourceRoot":"","sources":["../../src/models/payment-result.model.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IAEjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+EAA+E;IAC/E,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-result.model.js","sourceRoot":"","sources":["../../src/models/payment-result.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { BasePaymentProvider } from '../../abstract/base-payment-provider.abstract';
|
|
2
|
+
import { PaymentRequest } from '../../models/payment-request.model';
|
|
3
|
+
import { PaymentResult } from '../../models/payment-result.model';
|
|
4
|
+
export interface NexiProviderConfig {
|
|
5
|
+
merchantId: string;
|
|
6
|
+
macKey: string;
|
|
7
|
+
/** Optional group identifier */
|
|
8
|
+
group?: string;
|
|
9
|
+
/** @default 'sandbox' */
|
|
10
|
+
environment?: 'sandbox' | 'production';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Nexi eCommerce provider.
|
|
14
|
+
* Flow: `redirect` — builds a signed checkout URL, redirects the user to Nexi,
|
|
15
|
+
* then handles the POST-back via `handleRedirect`.
|
|
16
|
+
*
|
|
17
|
+
* Note: Nexi XPay mandates SHA-1 for MAC computation. This is a requirement of
|
|
18
|
+
* the Nexi API and cannot be changed on the client side.
|
|
19
|
+
*/
|
|
20
|
+
export declare class NexiProvider extends BasePaymentProvider {
|
|
21
|
+
private readonly config;
|
|
22
|
+
readonly name = "nexi";
|
|
23
|
+
readonly flow: "redirect";
|
|
24
|
+
private readonly apiUrl;
|
|
25
|
+
constructor(config: NexiProviderConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Computes the SHA-1 MAC required by Nexi to authenticate the payment request.
|
|
28
|
+
* Format: `codTrans={val}divisa={val}importo={val}{macKey}`
|
|
29
|
+
*
|
|
30
|
+
* SHA-1 is used here because Nexi XPay mandates it for MAC computation.
|
|
31
|
+
*/
|
|
32
|
+
private generateMac;
|
|
33
|
+
/**
|
|
34
|
+
* Computes the SHA-1 MAC for the status (getPaymentDetails) API call.
|
|
35
|
+
* Format: `alias={alias}codTrans={codTrans}timestamp={timestamp}{macKey}`
|
|
36
|
+
*/
|
|
37
|
+
private generateStatusMac;
|
|
38
|
+
/**
|
|
39
|
+
* Computes the SHA-1 MAC for the refund (storno) API call.
|
|
40
|
+
* Format: `alias={alias}codTrans={codTrans}importo={importo}timestamp={timestamp}{macKey}`
|
|
41
|
+
*/
|
|
42
|
+
private generateRefundMac;
|
|
43
|
+
/**
|
|
44
|
+
* Verifies the SHA-1 MAC included in a Nexi POST-back response.
|
|
45
|
+
* Format: `codTrans={val}esito={val}importo={val}divisa={val}{macKey}`
|
|
46
|
+
*/
|
|
47
|
+
private verifyResponseMac;
|
|
48
|
+
createPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Validates the POST-back data from Nexi.
|
|
51
|
+
* `data` is the query/body object sent by Nexi to the returnUrl.
|
|
52
|
+
* The MAC is verified before the result is considered authoritative.
|
|
53
|
+
*/
|
|
54
|
+
executePayment(paymentId: string, data?: Record<string, string>): Promise<PaymentResult>;
|
|
55
|
+
getPaymentDetails(paymentId: string): Promise<PaymentResult>;
|
|
56
|
+
refundPayment(paymentId: string, amount?: number): Promise<PaymentResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Handles the POST-back from Nexi to the returnUrl.
|
|
59
|
+
* Nexi sends `esito`, `codTrans`, `importo`, `divisa`, `mac`, etc. as query/body params.
|
|
60
|
+
* The MAC is verified to ensure the response was not spoofed.
|
|
61
|
+
*/
|
|
62
|
+
handleRedirect(query: Record<string, string>): Promise<PaymentResult>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=nexi.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexi.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/nexi/nexi.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,mBAAmB;IAMvC,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEH,MAAM,EAAE,kBAAkB;IAQvD;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAYnB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAiCpE;;;;OAIG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCxF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2B5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkC/E;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAG5E"}
|