@wiicode/youcanpay-sdk 1.0.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/README.md +848 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.js +171 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -0
- package/dist/enums/currency.enum.d.ts +8 -0
- package/dist/enums/currency.enum.js +13 -0
- package/dist/enums/currency.enum.js.map +1 -0
- package/dist/enums/index.d.ts +2 -0
- package/dist/enums/index.js +19 -0
- package/dist/enums/index.js.map +1 -0
- package/dist/enums/lang.enum.d.ts +5 -0
- package/dist/enums/lang.enum.js +10 -0
- package/dist/enums/lang.enum.js.map +1 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +18 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/youcanpay.error.d.ts +16 -0
- package/dist/errors/youcanpay.error.js +32 -0
- package/dist/errors/youcanpay.error.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/index.d.ts +5 -0
- package/dist/interfaces/index.js +22 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/options.interface.d.ts +13 -0
- package/dist/interfaces/options.interface.js +3 -0
- package/dist/interfaces/options.interface.js.map +1 -0
- package/dist/interfaces/payment.interface.d.ts +22 -0
- package/dist/interfaces/payment.interface.js +3 -0
- package/dist/interfaces/payment.interface.js.map +1 -0
- package/dist/interfaces/token.interface.d.ts +26 -0
- package/dist/interfaces/token.interface.js +3 -0
- package/dist/interfaces/token.interface.js.map +1 -0
- package/dist/interfaces/transaction.interface.d.ts +10 -0
- package/dist/interfaces/transaction.interface.js +3 -0
- package/dist/interfaces/transaction.interface.js.map +1 -0
- package/dist/interfaces/webhook.interface.d.ts +16 -0
- package/dist/interfaces/webhook.interface.js +10 -0
- package/dist/interfaces/webhook.interface.js.map +1 -0
- package/dist/logging/index.d.ts +3 -0
- package/dist/logging/index.js +20 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/interfaces.d.ts +22 -0
- package/dist/logging/interfaces.js +3 -0
- package/dist/logging/interfaces.js.map +1 -0
- package/dist/logging/logger.d.ts +6 -0
- package/dist/logging/logger.js +37 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/logging/sanitizer.d.ts +1 -0
- package/dist/logging/sanitizer.js +55 -0
- package/dist/logging/sanitizer.js.map +1 -0
- package/dist/nestjs/decorators.d.ts +2 -0
- package/dist/nestjs/decorators.js +8 -0
- package/dist/nestjs/decorators.js.map +1 -0
- package/dist/nestjs/guards/index.d.ts +1 -0
- package/dist/nestjs/guards/index.js +9 -0
- package/dist/nestjs/guards/index.js.map +1 -0
- package/dist/nestjs/guards/webhook.guard.d.ts +16 -0
- package/dist/nestjs/guards/webhook.guard.js +59 -0
- package/dist/nestjs/guards/webhook.guard.js.map +1 -0
- package/dist/nestjs/index.d.ts +5 -0
- package/dist/nestjs/index.js +22 -0
- package/dist/nestjs/index.js.map +1 -0
- package/dist/nestjs/pipes/index.d.ts +1 -0
- package/dist/nestjs/pipes/index.js +7 -0
- package/dist/nestjs/pipes/index.js.map +1 -0
- package/dist/nestjs/pipes/webhook.pipe.d.ts +6 -0
- package/dist/nestjs/pipes/webhook.pipe.js +34 -0
- package/dist/nestjs/pipes/webhook.pipe.js.map +1 -0
- package/dist/nestjs/youcanpay.module.d.ts +6 -0
- package/dist/nestjs/youcanpay.module.js +48 -0
- package/dist/nestjs/youcanpay.module.js.map +1 -0
- package/dist/nestjs/youcanpay.service.d.ts +5 -0
- package/dist/nestjs/youcanpay.service.js +30 -0
- package/dist/nestjs/youcanpay.service.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.js +24 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/validators.d.ts +37 -0
- package/dist/security/validators.js +183 -0
- package/dist/security/validators.js.map +1 -0
- package/dist/security/webhook.d.ts +80 -0
- package/dist/security/webhook.js +146 -0
- package/dist/security/webhook.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +49 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Lang } from './enums';
|
|
2
|
+
import { YouCanPayOptions, CreateTokenParams, TokenResponse, PayCreditCardParams, PaymentResponse, PayCashPlusParams, CashPlusPaymentResponse, Transaction } from './interfaces';
|
|
3
|
+
export declare class YouCanPayClient {
|
|
4
|
+
private readonly http;
|
|
5
|
+
private readonly sandbox;
|
|
6
|
+
private readonly privateKey;
|
|
7
|
+
private readonly publicKey;
|
|
8
|
+
private readonly logger;
|
|
9
|
+
constructor(options: YouCanPayOptions);
|
|
10
|
+
createToken(params: CreateTokenParams): Promise<TokenResponse>;
|
|
11
|
+
getPaymentUrl(tokenId: string, lang?: Lang): string;
|
|
12
|
+
payWithCreditCard(params: PayCreditCardParams): Promise<PaymentResponse>;
|
|
13
|
+
payWithCashPlus(params: PayCashPlusParams): Promise<CashPlusPaymentResponse>;
|
|
14
|
+
getTransaction(transactionId: string): Promise<Transaction>;
|
|
15
|
+
verifyWebhook(payload: unknown): boolean;
|
|
16
|
+
private handleError;
|
|
17
|
+
}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.YouCanPayClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const errors_1 = require("./errors");
|
|
10
|
+
const enums_1 = require("./enums");
|
|
11
|
+
const logger_1 = require("./logging/logger");
|
|
12
|
+
class YouCanPayClient {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.sandbox = options.sandbox ?? false;
|
|
15
|
+
this.privateKey = options.privateKey;
|
|
16
|
+
this.publicKey = options.publicKey;
|
|
17
|
+
this.logger = new logger_1.YouCanPayLogger(options.logging);
|
|
18
|
+
this.http = axios_1.default.create({
|
|
19
|
+
baseURL: this.sandbox ? constants_1.YOUCANPAY_SANDBOX_BASE_URL : constants_1.YOUCANPAY_BASE_URL,
|
|
20
|
+
timeout: options.timeout ?? 30000,
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async createToken(params) {
|
|
27
|
+
const startTime = Date.now();
|
|
28
|
+
const body = new URLSearchParams();
|
|
29
|
+
body.append('pri_key', this.privateKey);
|
|
30
|
+
body.append('pub_key', this.publicKey);
|
|
31
|
+
body.append('order_id', params.orderId);
|
|
32
|
+
body.append('amount', String(params.amount));
|
|
33
|
+
body.append('currency', params.currency);
|
|
34
|
+
body.append('customer_ip', params.customerIp);
|
|
35
|
+
body.append('success_url', params.successUrl);
|
|
36
|
+
if (params.errorUrl)
|
|
37
|
+
body.append('error_url', params.errorUrl);
|
|
38
|
+
if (params.customer) {
|
|
39
|
+
const customer = params.customer;
|
|
40
|
+
if (customer.name)
|
|
41
|
+
body.append('customer_name', customer.name);
|
|
42
|
+
if (customer.email)
|
|
43
|
+
body.append('customer_email', customer.email);
|
|
44
|
+
if (customer.phone)
|
|
45
|
+
body.append('customer_phone', customer.phone);
|
|
46
|
+
if (customer.address)
|
|
47
|
+
body.append('customer_address', customer.address);
|
|
48
|
+
if (customer.zip_code)
|
|
49
|
+
body.append('customer_zip_code', customer.zip_code);
|
|
50
|
+
if (customer.city)
|
|
51
|
+
body.append('customer_city', customer.city);
|
|
52
|
+
if (customer.state)
|
|
53
|
+
body.append('customer_state', customer.state);
|
|
54
|
+
if (customer.country_code)
|
|
55
|
+
body.append('customer_country_code', customer.country_code);
|
|
56
|
+
}
|
|
57
|
+
if (params.metadata) {
|
|
58
|
+
for (const [key, value] of Object.entries(params.metadata)) {
|
|
59
|
+
body.append(`metadata[${key}]`, value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
const response = await this.http.post('/tokenize', body);
|
|
64
|
+
const data = response.data;
|
|
65
|
+
await this.logger.log('createToken', { orderId: params.orderId, amount: params.amount, currency: params.currency }, data, 'success', Date.now() - startTime, params.metadata);
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
await this.logger.log('createToken', { orderId: params.orderId, amount: params.amount, currency: params.currency }, undefined, 'error', Date.now() - startTime);
|
|
70
|
+
throw this.handleError(error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
getPaymentUrl(tokenId, lang = enums_1.Lang.FR) {
|
|
74
|
+
const baseUrl = this.sandbox ? constants_1.YOUCANPAY_SANDBOX_PAYMENT_URL : constants_1.YOUCANPAY_PAYMENT_URL;
|
|
75
|
+
return `${baseUrl}/${tokenId}?lang=${lang}`;
|
|
76
|
+
}
|
|
77
|
+
async payWithCreditCard(params) {
|
|
78
|
+
const startTime = Date.now();
|
|
79
|
+
const body = new URLSearchParams();
|
|
80
|
+
body.append('pri_key', this.privateKey);
|
|
81
|
+
body.append('pub_key', this.publicKey);
|
|
82
|
+
body.append('token_id', params.tokenId);
|
|
83
|
+
body.append('credit_card', params.creditCard);
|
|
84
|
+
body.append('expire_date', params.expireDate);
|
|
85
|
+
body.append('cvv', params.cvv);
|
|
86
|
+
body.append('card_holder_name', params.cardHolderName);
|
|
87
|
+
try {
|
|
88
|
+
const response = await this.http.post('/pay', body);
|
|
89
|
+
const data = response.data;
|
|
90
|
+
await this.logger.log('payWithCreditCard', { tokenId: params.tokenId, cardHolderName: params.cardHolderName }, data, 'success', Date.now() - startTime);
|
|
91
|
+
return data;
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
await this.logger.log('payWithCreditCard', { tokenId: params.tokenId }, undefined, 'error', Date.now() - startTime);
|
|
95
|
+
throw this.handleError(error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async payWithCashPlus(params) {
|
|
99
|
+
const startTime = Date.now();
|
|
100
|
+
const body = new URLSearchParams();
|
|
101
|
+
body.append('pri_key', this.privateKey);
|
|
102
|
+
body.append('pub_key', this.publicKey);
|
|
103
|
+
body.append('token_id', params.tokenId);
|
|
104
|
+
try {
|
|
105
|
+
const response = await this.http.post('/cashplus/init', body);
|
|
106
|
+
const data = response.data;
|
|
107
|
+
await this.logger.log('payWithCashPlus', { tokenId: params.tokenId }, data, 'success', Date.now() - startTime);
|
|
108
|
+
return data;
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
await this.logger.log('payWithCashPlus', { tokenId: params.tokenId }, undefined, 'error', Date.now() - startTime);
|
|
112
|
+
throw this.handleError(error);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async getTransaction(transactionId) {
|
|
116
|
+
const startTime = Date.now();
|
|
117
|
+
try {
|
|
118
|
+
const response = await this.http.get(`/transactions/${transactionId}`, {
|
|
119
|
+
params: { pri_key: this.privateKey },
|
|
120
|
+
});
|
|
121
|
+
const data = response.data;
|
|
122
|
+
await this.logger.log('getTransaction', { transactionId }, data, 'success', Date.now() - startTime);
|
|
123
|
+
return data;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
await this.logger.log('getTransaction', { transactionId }, undefined, 'error', Date.now() - startTime);
|
|
127
|
+
throw this.handleError(error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
verifyWebhook(payload) {
|
|
131
|
+
if (!payload || typeof payload !== 'object') {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
const p = payload;
|
|
135
|
+
return (typeof p['transaction_id'] === 'string' &&
|
|
136
|
+
typeof p['order_id'] === 'string' &&
|
|
137
|
+
typeof p['amount'] === 'number' &&
|
|
138
|
+
typeof p['status'] === 'string');
|
|
139
|
+
}
|
|
140
|
+
handleError(error) {
|
|
141
|
+
if (error !== null &&
|
|
142
|
+
typeof error === 'object' &&
|
|
143
|
+
'isAxiosError' in error &&
|
|
144
|
+
error.isAxiosError) {
|
|
145
|
+
const axiosError = error;
|
|
146
|
+
if (axiosError.response) {
|
|
147
|
+
const { status, data } = axiosError.response;
|
|
148
|
+
const message = data?.message ?? 'An API error occurred';
|
|
149
|
+
const details = data?.errors;
|
|
150
|
+
if (status === 401 || status === 403) {
|
|
151
|
+
return new errors_1.YouCanPayError(message, errors_1.ErrorCodes.UNAUTHORIZED, status, details);
|
|
152
|
+
}
|
|
153
|
+
if (status === 422) {
|
|
154
|
+
return new errors_1.YouCanPayError(message, errors_1.ErrorCodes.VALIDATION_ERROR, status, details);
|
|
155
|
+
}
|
|
156
|
+
if (status >= 400 && status < 500) {
|
|
157
|
+
return new errors_1.YouCanPayError(message, errors_1.ErrorCodes.PAYMENT_FAILED, status, details);
|
|
158
|
+
}
|
|
159
|
+
return new errors_1.YouCanPayError(message, errors_1.ErrorCodes.UNKNOWN_ERROR, status, details);
|
|
160
|
+
}
|
|
161
|
+
return new errors_1.YouCanPayError('Network error occurred', errors_1.ErrorCodes.NETWORK_ERROR);
|
|
162
|
+
}
|
|
163
|
+
if (error instanceof errors_1.YouCanPayError) {
|
|
164
|
+
return error;
|
|
165
|
+
}
|
|
166
|
+
const message = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
167
|
+
return new errors_1.YouCanPayError(message, errors_1.ErrorCodes.UNKNOWN_ERROR);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.YouCanPayClient = YouCanPayClient;
|
|
171
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const YOUCANPAY_OPTIONS = "YOUCANPAY_OPTIONS";
|
|
2
|
+
export declare const YOUCANPAY_BASE_URL = "https://youcanpay.com/api";
|
|
3
|
+
export declare const YOUCANPAY_SANDBOX_BASE_URL = "https://youcanpay.com/sandbox/api";
|
|
4
|
+
export declare const YOUCANPAY_PAYMENT_URL = "https://youcanpay.com/payment-form";
|
|
5
|
+
export declare const YOUCANPAY_SANDBOX_PAYMENT_URL = "https://youcanpay.com/sandbox/payment-form";
|
|
6
|
+
export declare const YOUCANPAY_TRANSACTION_API_URL = "https://api.youcanpay.com";
|
|
7
|
+
export declare const YOUCANPAY_SANDBOX_TRANSACTION_API_URL = "https://api.youcanpay.com";
|
|
8
|
+
export declare const YOUCANPAY_JS_SCRIPT = "https://youcanpay.com/js/ycpay.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.YOUCANPAY_JS_SCRIPT = exports.YOUCANPAY_SANDBOX_TRANSACTION_API_URL = exports.YOUCANPAY_TRANSACTION_API_URL = exports.YOUCANPAY_SANDBOX_PAYMENT_URL = exports.YOUCANPAY_PAYMENT_URL = exports.YOUCANPAY_SANDBOX_BASE_URL = exports.YOUCANPAY_BASE_URL = exports.YOUCANPAY_OPTIONS = void 0;
|
|
4
|
+
exports.YOUCANPAY_OPTIONS = 'YOUCANPAY_OPTIONS';
|
|
5
|
+
exports.YOUCANPAY_BASE_URL = 'https://youcanpay.com/api';
|
|
6
|
+
exports.YOUCANPAY_SANDBOX_BASE_URL = 'https://youcanpay.com/sandbox/api';
|
|
7
|
+
exports.YOUCANPAY_PAYMENT_URL = 'https://youcanpay.com/payment-form';
|
|
8
|
+
exports.YOUCANPAY_SANDBOX_PAYMENT_URL = 'https://youcanpay.com/sandbox/payment-form';
|
|
9
|
+
exports.YOUCANPAY_TRANSACTION_API_URL = 'https://api.youcanpay.com';
|
|
10
|
+
exports.YOUCANPAY_SANDBOX_TRANSACTION_API_URL = 'https://api.youcanpay.com';
|
|
11
|
+
exports.YOUCANPAY_JS_SCRIPT = 'https://youcanpay.com/js/ycpay.js';
|
|
12
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AACjD,QAAA,0BAA0B,GAAG,mCAAmC,CAAC;AACjE,QAAA,qBAAqB,GAAG,oCAAoC,CAAC;AAC7D,QAAA,6BAA6B,GAAG,4CAA4C,CAAC;AAC7E,QAAA,6BAA6B,GAAG,2BAA2B,CAAC;AAC5D,QAAA,qCAAqC,GAAG,2BAA2B,CAAC;AACpE,QAAA,mBAAmB,GAAG,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CurrencyCode = void 0;
|
|
4
|
+
var CurrencyCode;
|
|
5
|
+
(function (CurrencyCode) {
|
|
6
|
+
CurrencyCode["MAD"] = "MAD";
|
|
7
|
+
CurrencyCode["USD"] = "USD";
|
|
8
|
+
CurrencyCode["EUR"] = "EUR";
|
|
9
|
+
CurrencyCode["GBP"] = "GBP";
|
|
10
|
+
CurrencyCode["SAR"] = "SAR";
|
|
11
|
+
CurrencyCode["AED"] = "AED";
|
|
12
|
+
})(CurrencyCode || (exports.CurrencyCode = CurrencyCode = {}));
|
|
13
|
+
//# sourceMappingURL=currency.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.enum.js","sourceRoot":"","sources":["../../src/enums/currency.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;AACb,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./currency.enum"), exports);
|
|
18
|
+
__exportStar(require("./lang.enum"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,8CAA4B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Lang = void 0;
|
|
4
|
+
var Lang;
|
|
5
|
+
(function (Lang) {
|
|
6
|
+
Lang["AR"] = "ar";
|
|
7
|
+
Lang["EN"] = "en";
|
|
8
|
+
Lang["FR"] = "fr";
|
|
9
|
+
})(Lang || (exports.Lang = Lang = {}));
|
|
10
|
+
//# sourceMappingURL=lang.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lang.enum.js","sourceRoot":"","sources":["../../src/enums/lang.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,IAIX;AAJD,WAAY,IAAI;IACd,iBAAS,CAAA;IACT,iBAAS,CAAA;IACT,iBAAS,CAAA;AACX,CAAC,EAJW,IAAI,oBAAJ,IAAI,QAIf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './youcanpay.error';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./youcanpay.error"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class YouCanPayError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly statusCode?: number | undefined;
|
|
4
|
+
readonly details?: Record<string, string[]> | undefined;
|
|
5
|
+
constructor(message: string, code: string, statusCode?: number | undefined, details?: Record<string, string[]> | undefined);
|
|
6
|
+
toJSON(): Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare const ErrorCodes: {
|
|
9
|
+
readonly NETWORK_ERROR: "NETWORK_ERROR";
|
|
10
|
+
readonly VALIDATION_ERROR: "VALIDATION_ERROR";
|
|
11
|
+
readonly INVALID_TOKEN: "INVALID_TOKEN";
|
|
12
|
+
readonly PAYMENT_FAILED: "PAYMENT_FAILED";
|
|
13
|
+
readonly UNAUTHORIZED: "UNAUTHORIZED";
|
|
14
|
+
readonly UNKNOWN_ERROR: "UNKNOWN_ERROR";
|
|
15
|
+
};
|
|
16
|
+
export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorCodes = exports.YouCanPayError = void 0;
|
|
4
|
+
class YouCanPayError extends Error {
|
|
5
|
+
constructor(message, code, statusCode, details) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.statusCode = statusCode;
|
|
9
|
+
this.details = details;
|
|
10
|
+
this.name = 'YouCanPayError';
|
|
11
|
+
Object.setPrototypeOf(this, YouCanPayError.prototype);
|
|
12
|
+
}
|
|
13
|
+
toJSON() {
|
|
14
|
+
return {
|
|
15
|
+
name: this.name,
|
|
16
|
+
message: this.message,
|
|
17
|
+
code: this.code,
|
|
18
|
+
statusCode: this.statusCode,
|
|
19
|
+
details: this.details,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.YouCanPayError = YouCanPayError;
|
|
24
|
+
exports.ErrorCodes = {
|
|
25
|
+
NETWORK_ERROR: 'NETWORK_ERROR',
|
|
26
|
+
VALIDATION_ERROR: 'VALIDATION_ERROR',
|
|
27
|
+
INVALID_TOKEN: 'INVALID_TOKEN',
|
|
28
|
+
PAYMENT_FAILED: 'PAYMENT_FAILED',
|
|
29
|
+
UNAUTHORIZED: 'UNAUTHORIZED',
|
|
30
|
+
UNKNOWN_ERROR: 'UNKNOWN_ERROR',
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=youcanpay.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"youcanpay.error.js","sourceRoot":"","sources":["../../src/errors/youcanpay.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAe,SAAQ,KAAK;IACvC,YACE,OAAe,EACC,IAAY,EACZ,UAAmB,EACnB,OAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAA2B;QAGlD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AArBD,wCAqBC;AAEY,QAAA,UAAU,GAAG;IACxB,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;CACtB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { YouCanPayClient } from './client';
|
|
2
|
+
export { YouCanPayModule } from './nestjs/youcanpay.module';
|
|
3
|
+
export { YouCanPayService } from './nestjs/youcanpay.service';
|
|
4
|
+
export { InjectYouCanPay } from './nestjs/decorators';
|
|
5
|
+
export { WebhookGuard, WebhookOptions, WEBHOOK_SECRET_KEY } from './nestjs/guards';
|
|
6
|
+
export { ParseWebhookPipe } from './nestjs/pipes';
|
|
7
|
+
export { parseWebhookPayload, verifyWebhookSecret, verifyWebhookHMAC, createWebhookSignature, WebhookParseError, WebhookVerifyError, validateAmount, validateCurrency, validateRedirectURL, validateOrderId, validateIP, validateEmail, validatePaymentInput, sanitizeString, toCentimes, fromCentimes, formatAmount, SUPPORTED_CURRENCIES, type YouCanPayRawWebhook, type ParsedWebhookPayload, type WebhookVerifyOptions, type SupportedCurrency, type ValidationResult, } from './security';
|
|
8
|
+
export * from './interfaces';
|
|
9
|
+
export * from './enums';
|
|
10
|
+
export * from './errors';
|
|
11
|
+
export { YouCanPayLogger, YouCanPayLogEntry, YouCanPayLoggingOptions } from './logging';
|
|
12
|
+
export * from './constants';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.YouCanPayLogger = exports.SUPPORTED_CURRENCIES = exports.formatAmount = exports.fromCentimes = exports.toCentimes = exports.sanitizeString = exports.validatePaymentInput = exports.validateEmail = exports.validateIP = exports.validateOrderId = exports.validateRedirectURL = exports.validateCurrency = exports.validateAmount = exports.WebhookVerifyError = exports.WebhookParseError = exports.createWebhookSignature = exports.verifyWebhookHMAC = exports.verifyWebhookSecret = exports.parseWebhookPayload = exports.ParseWebhookPipe = exports.WEBHOOK_SECRET_KEY = exports.WebhookOptions = exports.WebhookGuard = exports.InjectYouCanPay = exports.YouCanPayService = exports.YouCanPayModule = exports.YouCanPayClient = void 0;
|
|
18
|
+
var client_1 = require("./client");
|
|
19
|
+
Object.defineProperty(exports, "YouCanPayClient", { enumerable: true, get: function () { return client_1.YouCanPayClient; } });
|
|
20
|
+
var youcanpay_module_1 = require("./nestjs/youcanpay.module");
|
|
21
|
+
Object.defineProperty(exports, "YouCanPayModule", { enumerable: true, get: function () { return youcanpay_module_1.YouCanPayModule; } });
|
|
22
|
+
var youcanpay_service_1 = require("./nestjs/youcanpay.service");
|
|
23
|
+
Object.defineProperty(exports, "YouCanPayService", { enumerable: true, get: function () { return youcanpay_service_1.YouCanPayService; } });
|
|
24
|
+
var decorators_1 = require("./nestjs/decorators");
|
|
25
|
+
Object.defineProperty(exports, "InjectYouCanPay", { enumerable: true, get: function () { return decorators_1.InjectYouCanPay; } });
|
|
26
|
+
var guards_1 = require("./nestjs/guards");
|
|
27
|
+
Object.defineProperty(exports, "WebhookGuard", { enumerable: true, get: function () { return guards_1.WebhookGuard; } });
|
|
28
|
+
Object.defineProperty(exports, "WebhookOptions", { enumerable: true, get: function () { return guards_1.WebhookOptions; } });
|
|
29
|
+
Object.defineProperty(exports, "WEBHOOK_SECRET_KEY", { enumerable: true, get: function () { return guards_1.WEBHOOK_SECRET_KEY; } });
|
|
30
|
+
var pipes_1 = require("./nestjs/pipes");
|
|
31
|
+
Object.defineProperty(exports, "ParseWebhookPipe", { enumerable: true, get: function () { return pipes_1.ParseWebhookPipe; } });
|
|
32
|
+
var security_1 = require("./security");
|
|
33
|
+
Object.defineProperty(exports, "parseWebhookPayload", { enumerable: true, get: function () { return security_1.parseWebhookPayload; } });
|
|
34
|
+
Object.defineProperty(exports, "verifyWebhookSecret", { enumerable: true, get: function () { return security_1.verifyWebhookSecret; } });
|
|
35
|
+
Object.defineProperty(exports, "verifyWebhookHMAC", { enumerable: true, get: function () { return security_1.verifyWebhookHMAC; } });
|
|
36
|
+
Object.defineProperty(exports, "createWebhookSignature", { enumerable: true, get: function () { return security_1.createWebhookSignature; } });
|
|
37
|
+
Object.defineProperty(exports, "WebhookParseError", { enumerable: true, get: function () { return security_1.WebhookParseError; } });
|
|
38
|
+
Object.defineProperty(exports, "WebhookVerifyError", { enumerable: true, get: function () { return security_1.WebhookVerifyError; } });
|
|
39
|
+
Object.defineProperty(exports, "validateAmount", { enumerable: true, get: function () { return security_1.validateAmount; } });
|
|
40
|
+
Object.defineProperty(exports, "validateCurrency", { enumerable: true, get: function () { return security_1.validateCurrency; } });
|
|
41
|
+
Object.defineProperty(exports, "validateRedirectURL", { enumerable: true, get: function () { return security_1.validateRedirectURL; } });
|
|
42
|
+
Object.defineProperty(exports, "validateOrderId", { enumerable: true, get: function () { return security_1.validateOrderId; } });
|
|
43
|
+
Object.defineProperty(exports, "validateIP", { enumerable: true, get: function () { return security_1.validateIP; } });
|
|
44
|
+
Object.defineProperty(exports, "validateEmail", { enumerable: true, get: function () { return security_1.validateEmail; } });
|
|
45
|
+
Object.defineProperty(exports, "validatePaymentInput", { enumerable: true, get: function () { return security_1.validatePaymentInput; } });
|
|
46
|
+
Object.defineProperty(exports, "sanitizeString", { enumerable: true, get: function () { return security_1.sanitizeString; } });
|
|
47
|
+
Object.defineProperty(exports, "toCentimes", { enumerable: true, get: function () { return security_1.toCentimes; } });
|
|
48
|
+
Object.defineProperty(exports, "fromCentimes", { enumerable: true, get: function () { return security_1.fromCentimes; } });
|
|
49
|
+
Object.defineProperty(exports, "formatAmount", { enumerable: true, get: function () { return security_1.formatAmount; } });
|
|
50
|
+
Object.defineProperty(exports, "SUPPORTED_CURRENCIES", { enumerable: true, get: function () { return security_1.SUPPORTED_CURRENCIES; } });
|
|
51
|
+
__exportStar(require("./interfaces"), exports);
|
|
52
|
+
__exportStar(require("./enums"), exports);
|
|
53
|
+
__exportStar(require("./errors"), exports);
|
|
54
|
+
var logging_1 = require("./logging");
|
|
55
|
+
Object.defineProperty(exports, "YouCanPayLogger", { enumerable: true, get: function () { return logging_1.YouCanPayLogger; } });
|
|
56
|
+
__exportStar(require("./constants"), exports);
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAGxB,8DAA4D;AAAnD,mHAAA,eAAe,OAAA;AACxB,gEAA8D;AAArD,qHAAA,gBAAgB,OAAA;AACzB,kDAAsD;AAA7C,6GAAA,eAAe,OAAA;AACxB,0CAAmF;AAA1E,sGAAA,YAAY,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AACzD,wCAAkD;AAAzC,yGAAA,gBAAgB,OAAA;AAGzB,uCA2BoB;AAzBlB,+GAAA,mBAAmB,OAAA;AACnB,+GAAA,mBAAmB,OAAA;AACnB,6GAAA,iBAAiB,OAAA;AACjB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,8GAAA,kBAAkB,OAAA;AAElB,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AACd,sGAAA,UAAU,OAAA;AACV,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AACZ,gHAAA,oBAAoB,OAAA;AAUtB,+CAA6B;AAG7B,0CAAwB;AAGxB,2CAAyB;AAGzB,qCAAwF;AAA/E,0GAAA,eAAe,OAAA;AAGxB,8CAA4B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./options.interface"), exports);
|
|
18
|
+
__exportStar(require("./token.interface"), exports);
|
|
19
|
+
__exportStar(require("./payment.interface"), exports);
|
|
20
|
+
__exportStar(require("./transaction.interface"), exports);
|
|
21
|
+
__exportStar(require("./webhook.interface"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,oDAAkC;AAClC,sDAAoC;AACpC,0DAAwC;AACxC,sDAAoC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { YouCanPayLoggingOptions } from '../logging/interfaces';
|
|
2
|
+
export interface YouCanPayOptions {
|
|
3
|
+
privateKey: string;
|
|
4
|
+
publicKey: string;
|
|
5
|
+
sandbox?: boolean;
|
|
6
|
+
timeout?: number;
|
|
7
|
+
logging?: YouCanPayLoggingOptions;
|
|
8
|
+
}
|
|
9
|
+
export interface YouCanPayAsyncOptions {
|
|
10
|
+
useFactory: (...args: unknown[]) => Promise<YouCanPayOptions> | YouCanPayOptions;
|
|
11
|
+
inject?: unknown[];
|
|
12
|
+
imports?: unknown[];
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.interface.js","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface PayCreditCardParams {
|
|
2
|
+
tokenId: string;
|
|
3
|
+
creditCard: string;
|
|
4
|
+
expireDate: string;
|
|
5
|
+
cvv: string;
|
|
6
|
+
cardHolderName: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PayCashPlusParams {
|
|
9
|
+
tokenId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface PaymentResponse {
|
|
12
|
+
success: boolean;
|
|
13
|
+
code: string;
|
|
14
|
+
message: string;
|
|
15
|
+
transaction_id: string;
|
|
16
|
+
order_id: string;
|
|
17
|
+
}
|
|
18
|
+
export interface CashPlusPaymentResponse {
|
|
19
|
+
success: boolean;
|
|
20
|
+
transaction_id: string;
|
|
21
|
+
cashplus_token: string;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment.interface.js","sourceRoot":"","sources":["../../src/interfaces/payment.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { CurrencyCode } from '../enums';
|
|
2
|
+
export interface CustomerInfo {
|
|
3
|
+
name?: string;
|
|
4
|
+
address?: string;
|
|
5
|
+
zip_code?: string;
|
|
6
|
+
city?: string;
|
|
7
|
+
state?: string;
|
|
8
|
+
country_code?: string;
|
|
9
|
+
phone?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateTokenParams {
|
|
13
|
+
orderId: string;
|
|
14
|
+
amount: number;
|
|
15
|
+
currency: CurrencyCode | string;
|
|
16
|
+
customerIp: string;
|
|
17
|
+
successUrl: string;
|
|
18
|
+
errorUrl?: string;
|
|
19
|
+
customer?: CustomerInfo;
|
|
20
|
+
metadata?: Record<string, string>;
|
|
21
|
+
}
|
|
22
|
+
export interface TokenResponse {
|
|
23
|
+
token: {
|
|
24
|
+
id: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.interface.js","sourceRoot":"","sources":["../../src/interfaces/token.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.interface.js","sourceRoot":"","sources":["../../src/interfaces/transaction.interface.ts"],"names":[],"mappings":""}
|