yoomoney-sdk
Advanced tools
Comparing version 1.0.3 to 1.0.5
import type * as t from "./api.types"; | ||
import { QueryStringifiable } from "./fetch"; | ||
import { AnyRecord } from "./shared.types"; | ||
/** | ||
* Ошибка, которую выбрасывает API при ошибочном ответе от сервера | ||
*/ | ||
export declare class YMApiError extends Error { | ||
response: any; | ||
response: AnyRecord; | ||
code: string; | ||
constructor(response: any); | ||
/** | ||
* Объект ответа | ||
* @param {AnyRecord} response | ||
*/ | ||
constructor(response: AnyRecord); | ||
} | ||
/** | ||
* Имплементирует [основное API YooMoney](https://yoomoney.ru/docs/wallet) | ||
* | ||
* @see {@link https://yoomoney.ru/docs/wallet|Описание} | ||
*/ | ||
export declare class API { | ||
readonly token: string; | ||
readonly endpoint: string; | ||
/** | ||
* | ||
* @param {string} token Токен авторизации пользователя | ||
* @param {string} endpoint | ||
*/ | ||
constructor(token: string, endpoint?: string); | ||
call(method: string, params: QueryStringifiable): Promise<any>; | ||
/** | ||
* Позволяет совершить вызов произвольного метода API | ||
* | ||
* @template T | ||
* @param {string} method Название метода | ||
* @param {QueryStringifiable} parameters Параметры метода | ||
* | ||
* @return {Promise<T>} | ||
*/ | ||
call<T = any>(method: string, parameters: QueryStringifiable): Promise<T>; | ||
/** | ||
* Получение информации о состоянии счета пользователя. | ||
* | ||
* Требуемые права токена: `account-info`. | ||
* | ||
* @return {t.AccountInfoResponse} | ||
*/ | ||
@@ -23,4 +52,7 @@ accountInfo(): Promise<t.AccountInfoResponse>; | ||
* Требуемые права токена: `operation-history`. | ||
* | ||
* @param {t.OperationHistoryParams=} parameters Параметры вызова | ||
* @return {Promise<t.OperationHistoryResponse>} | ||
*/ | ||
operationHistory(params?: t.OperationHistoryParams): Promise<t.OperationHistoryResponse>; | ||
operationHistory(parameters?: t.OperationHistoryParams): Promise<t.OperationHistoryResponse>; | ||
/** | ||
@@ -30,4 +62,7 @@ * Позволяет получить детальную информацию об операции из истории. | ||
* Требуемые права токена: `operation-details`. | ||
* | ||
* @param {t.OperationDetailsParams=} parameters Параметры вызова | ||
* @return {Promise<t.Operation>} | ||
*/ | ||
operationDetails(params: t.OperationDetailsParams): Promise<t.Operation>; | ||
operationDetails(parameters: t.OperationDetailsParams): Promise<t.Operation>; | ||
/** | ||
@@ -39,8 +74,14 @@ * Создание платежа, проверка параметров и возможности приема платежа магазином или перевода средств на счет пользователя ЮMoney. | ||
* - для перевода средств на счета других пользователей: `payment.to-account` («идентификатор получателя», «тип идентификатора») или `payment-p2p`. | ||
* | ||
* @param {t.RequestPaymentParams=} parameters Параметры вызова | ||
* @return {Promise<t.RequestPaymentResponse>} | ||
*/ | ||
requestPayment(params: t.RequestPaymentParams): Promise<t.RequestPaymentResponse>; | ||
requestPayment(parameters: t.RequestPaymentParams): Promise<t.RequestPaymentResponse>; | ||
/** | ||
* Подтверждение платежа, ранее созданного методом [request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment). Указание метода проведения платежа. | ||
* | ||
* @param {t.ProcessPaymentParams=} parameters Параметры вызова | ||
* @return {Promise<t.ProcessPaymentResponse>} | ||
*/ | ||
processPayment(params: t.ProcessPaymentParams): Promise<t.ProcessPaymentResponse>; | ||
processPayment(parameters: t.ProcessPaymentParams): Promise<t.ProcessPaymentResponse>; | ||
/** | ||
@@ -52,4 +93,7 @@ * Прием входящих переводов, защищенных кодом протекции, и переводов до востребования. | ||
* Требуемые права токена: `incoming-transfers` | ||
* | ||
* @param {t.IncomingTransferAcceptParams=} parameters Параметры вызова | ||
* @return {Promise<t.IncomingTransferAcceptResponse>} | ||
*/ | ||
incomingTransferAccept(params: t.IncomingTransferAcceptParams): Promise<t.IncomingTransferAcceptResponse>; | ||
incomingTransferAccept(parameters: t.IncomingTransferAcceptParams): Promise<t.IncomingTransferAcceptResponse>; | ||
/** | ||
@@ -59,4 +103,7 @@ * Отмена входящих переводов, защищенных кодом протекции, и переводов до востребования. При отмене перевода он возвращается отправителю. | ||
* Требуемые права токена: `incoming-transfers` | ||
* | ||
* @param {t.IncomingTransferRejectParams=} parameters Параметры вызова | ||
* @return {Promise<t.IncomingTransferRejectResponse>} | ||
*/ | ||
incomingTransferReject(params: t.IncomingTransferRejectParams): Promise<t.IncomingTransferRejectResponse>; | ||
incomingTransferReject(parameters: t.IncomingTransferRejectParams): Promise<t.IncomingTransferRejectResponse>; | ||
} |
@@ -5,11 +5,28 @@ "use strict"; | ||
const fetch_1 = require("./fetch"); | ||
/** | ||
* Ошибка, которую выбрасывает API при ошибочном ответе от сервера | ||
*/ | ||
class YMApiError extends Error { | ||
/** | ||
* Объект ответа | ||
* @param {AnyRecord} response | ||
*/ | ||
constructor(response) { | ||
super(`API returned error code: ${response.error}`); | ||
super(`API returned error code: ${response["error"]}`); | ||
this.response = response; | ||
this.code = response.error; | ||
this.code = response["error"]; | ||
} | ||
} | ||
exports.YMApiError = YMApiError; | ||
/** | ||
* Имплементирует [основное API YooMoney](https://yoomoney.ru/docs/wallet) | ||
* | ||
* @see {@link https://yoomoney.ru/docs/wallet|Описание} | ||
*/ | ||
class API { | ||
/** | ||
* | ||
* @param {string} token Токен авторизации пользователя | ||
* @param {string} endpoint | ||
*/ | ||
constructor(token, endpoint = "https://yoomoney.ru/api") { | ||
@@ -19,5 +36,14 @@ this.token = token; | ||
} | ||
async call(method, params) { | ||
const response = await fetch_1.fetch(`${this.endpoint}/${method}`, params, { | ||
Authorization: `Bearer ${this.token}`, | ||
/** | ||
* Позволяет совершить вызов произвольного метода API | ||
* | ||
* @template T | ||
* @param {string} method Название метода | ||
* @param {QueryStringifiable} parameters Параметры метода | ||
* | ||
* @return {Promise<T>} | ||
*/ | ||
async call(method, parameters) { | ||
const response = await fetch_1.fetch(`${this.endpoint}/${method}`, parameters, { | ||
Authorization: `Bearer ${this.token}` | ||
}); | ||
@@ -33,2 +59,4 @@ const data = await response.json(); | ||
* Требуемые права токена: `account-info`. | ||
* | ||
* @return {t.AccountInfoResponse} | ||
*/ | ||
@@ -42,5 +70,8 @@ async accountInfo() { | ||
* Требуемые права токена: `operation-history`. | ||
* | ||
* @param {t.OperationHistoryParams=} parameters Параметры вызова | ||
* @return {Promise<t.OperationHistoryResponse>} | ||
*/ | ||
async operationHistory(params = {}) { | ||
return await this.call("operation-history", params); | ||
async operationHistory(parameters = {}) { | ||
return await this.call("operation-history", parameters); | ||
} | ||
@@ -51,5 +82,8 @@ /** | ||
* Требуемые права токена: `operation-details`. | ||
* | ||
* @param {t.OperationDetailsParams=} parameters Параметры вызова | ||
* @return {Promise<t.Operation>} | ||
*/ | ||
async operationDetails(params) { | ||
return await this.call("operation-history", params); | ||
async operationDetails(parameters) { | ||
return await this.call("operation-history", parameters); | ||
} | ||
@@ -62,11 +96,17 @@ /** | ||
* - для перевода средств на счета других пользователей: `payment.to-account` («идентификатор получателя», «тип идентификатора») или `payment-p2p`. | ||
* | ||
* @param {t.RequestPaymentParams=} parameters Параметры вызова | ||
* @return {Promise<t.RequestPaymentResponse>} | ||
*/ | ||
async requestPayment(params) { | ||
return await this.call("request-payment", params); | ||
async requestPayment(parameters) { | ||
return await this.call("request-payment", parameters); | ||
} | ||
/** | ||
* Подтверждение платежа, ранее созданного методом [request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment). Указание метода проведения платежа. | ||
* | ||
* @param {t.ProcessPaymentParams=} parameters Параметры вызова | ||
* @return {Promise<t.ProcessPaymentResponse>} | ||
*/ | ||
async processPayment(params) { | ||
return await this.call("process-payment", params); | ||
async processPayment(parameters) { | ||
return await this.call("process-payment", parameters); | ||
} | ||
@@ -79,5 +119,8 @@ /** | ||
* Требуемые права токена: `incoming-transfers` | ||
* | ||
* @param {t.IncomingTransferAcceptParams=} parameters Параметры вызова | ||
* @return {Promise<t.IncomingTransferAcceptResponse>} | ||
*/ | ||
async incomingTransferAccept(params) { | ||
return await this.call("incoming-transfer-accept", params); | ||
async incomingTransferAccept(parameters) { | ||
return await this.call("incoming-transfer-accept", parameters); | ||
} | ||
@@ -88,7 +131,10 @@ /** | ||
* Требуемые права токена: `incoming-transfers` | ||
* | ||
* @param {t.IncomingTransferRejectParams=} parameters Параметры вызова | ||
* @return {Promise<t.IncomingTransferRejectResponse>} | ||
*/ | ||
async incomingTransferReject(params) { | ||
return await this.call("incoming-transfer-accept", params); | ||
async incomingTransferReject(parameters) { | ||
return await this.call("incoming-transfer-accept", parameters); | ||
} | ||
} | ||
exports.API = API; |
"use strict"; | ||
/* eslint-disable unicorn/prevent-abbreviations */ | ||
/* eslint-disable camelcase */ | ||
Object.defineProperty(exports, "__esModule", { value: true }); |
declare type AuthScope = "account-info" | "operation-history" | "operation-details" | "incoming-transfers" | "payment" | "payment-shop" | "payment-p2p" | "money-source"; | ||
/** | ||
* Ошибка в процессе авторизации | ||
*/ | ||
export declare class YMAuthError extends Error { | ||
code: string; | ||
/** | ||
* | ||
* @param {string} code Код ошибки | ||
*/ | ||
constructor(code: string); | ||
} | ||
/** | ||
* Реализует всё необходимое для [авторизации через YooMoney](https://yoomoney.ru/docs/wallet/using-api/authorization/basics) | ||
* | ||
* @see {@link https://yoomoney.ru/docs/wallet/using-api/authorization/basics|Описание протокола} | ||
*/ | ||
export declare class Auth { | ||
@@ -11,6 +23,25 @@ readonly clientId: string; | ||
readonly endpoint: string; | ||
/** | ||
* | ||
* @param {string} clientId ID приложения | ||
* @param {string} redirectUrl URL-перенаправления | ||
* @param {string=} clientSecret Секретное Слово | ||
* @param {string=} endpoint | ||
*/ | ||
constructor(clientId: string, redirectUrl: string, clientSecret?: string | undefined, endpoint?: string); | ||
/** | ||
* Генерирует html-форму перенаправления пользователя на авторизацию | ||
* | ||
* @param {AuthScope[]} scopes | ||
* @param {string=} instanceName | ||
* @return {string} | ||
*/ | ||
getAuthForm(scopes: AuthScope[], instanceName?: string): string; | ||
/** | ||
* | ||
* @param {string} code Временный токен (authorization code), подлежащий обмену на постоянный токен авторизации | ||
* @return {Promise<string>} Токен авторизации | ||
*/ | ||
exchangeCode2Token(code: string): Promise<string>; | ||
} | ||
export {}; |
@@ -6,3 +6,10 @@ "use strict"; | ||
const fetch_1 = require("./fetch"); | ||
/** | ||
* Ошибка в процессе авторизации | ||
*/ | ||
class YMAuthError extends Error { | ||
/** | ||
* | ||
* @param {string} code Код ошибки | ||
*/ | ||
constructor(code) { | ||
@@ -14,3 +21,15 @@ super(`API returned error: ${code}`); | ||
exports.YMAuthError = YMAuthError; | ||
/** | ||
* Реализует всё необходимое для [авторизации через YooMoney](https://yoomoney.ru/docs/wallet/using-api/authorization/basics) | ||
* | ||
* @see {@link https://yoomoney.ru/docs/wallet/using-api/authorization/basics|Описание протокола} | ||
*/ | ||
class Auth { | ||
/** | ||
* | ||
* @param {string} clientId ID приложения | ||
* @param {string} redirectUrl URL-перенаправления | ||
* @param {string=} clientSecret Секретное Слово | ||
* @param {string=} endpoint | ||
*/ | ||
constructor(clientId, redirectUrl, clientSecret, endpoint = "https://yoomoney.ru/oauth") { | ||
@@ -22,2 +41,9 @@ this.clientId = clientId; | ||
} | ||
/** | ||
* Генерирует html-форму перенаправления пользователя на авторизацию | ||
* | ||
* @param {AuthScope[]} scopes | ||
* @param {string=} instanceName | ||
* @return {string} | ||
*/ | ||
getAuthForm(scopes, instanceName) { | ||
@@ -34,2 +60,7 @@ const builder = new redirect_form_builder_1.FormBuilder() | ||
} | ||
/** | ||
* | ||
* @param {string} code Временный токен (authorization code), подлежащий обмену на постоянный токен авторизации | ||
* @return {Promise<string>} Токен авторизации | ||
*/ | ||
async exchangeCode2Token(code) { | ||
@@ -41,3 +72,3 @@ const response = await fetch_1.fetch(`${this.endpoint}/token`, { | ||
redirect_uri: this.redirectUrl, | ||
client_secret: this.clientSecret, | ||
client_secret: this.clientSecret | ||
}); | ||
@@ -44,0 +75,0 @@ const json = await response.json(); |
@@ -0,2 +1,10 @@ | ||
import { Response } from "node-fetch"; | ||
export declare type QueryStringifiable = Record<string, string | number | boolean | ReadonlyArray<string> | ReadonlyArray<number> | ReadonlyArray<boolean> | null | undefined>; | ||
export declare function fetch(url: string, params: QueryStringifiable, headers?: Record<string, string>): Promise<import("node-fetch").Response>; | ||
/** | ||
* | ||
* @param {string} url URL адрес запроса | ||
* @param {QueryStringifiable} parameters Параметры запроса | ||
* @param {Record<string, string>=} headers Заголовки запроса | ||
* @return {Promise<Response>} Ответ | ||
*/ | ||
export declare function fetch(url: string, parameters: QueryStringifiable, headers?: Record<string, string>): Promise<Response>; |
@@ -9,13 +9,20 @@ "use strict"; | ||
const querystring_1 = require("querystring"); | ||
async function fetch(url, params, headers = {}) { | ||
/** | ||
* | ||
* @param {string} url URL адрес запроса | ||
* @param {QueryStringifiable} parameters Параметры запроса | ||
* @param {Record<string, string>=} headers Заголовки запроса | ||
* @return {Promise<Response>} Ответ | ||
*/ | ||
async function fetch(url, parameters, headers = {}) { | ||
return await node_fetch_1.default(url, { | ||
method: "POST", | ||
body: querystring_1.stringify(params), | ||
body: querystring_1.stringify(parameters), | ||
headers: { | ||
...headers, | ||
"Content-Type": "application/x-www-form-urlencoded", | ||
Accept: "application/json", | ||
}, | ||
Accept: "application/json" | ||
} | ||
}); | ||
} | ||
exports.fetch = fetch; |
export { API as YMApi, YMApiError } from "./api"; | ||
export * as ymTypes from "./api.types"; | ||
export { Auth as YMAuth, YMAuthError } from "./auth"; | ||
export { NotificationChecker as YMNotificationChecker, NotificationDTO as YMNotificationDTO, YMNotificationError, } from "./notifications"; | ||
export { FormConfig as YMFormConfig, PaymentFromBuilder as YMPaymentFromBuilder, } from "./payment-form-builder"; | ||
export { NotificationChecker as YMNotificationChecker, NotificationDTO as YMNotificationDTO, YMNotificationError } from "./notifications"; | ||
export { FormConfig as YMFormConfig, PaymentFromBuilder as YMPaymentFromBuilder } from "./payment-form-builder"; |
@@ -26,8 +26,25 @@ export declare type NotificationDTO = { | ||
}; | ||
/** | ||
* Ошибка проверки уведомления от YooMoney | ||
*/ | ||
export declare class YMNotificationError extends Error { | ||
} | ||
/** | ||
* Класс, который реализует [механизм проверки уведомлений от YooMoney](https://yoomoney.ru/docs/wallet/using-api/notification-p2p-incoming#security) | ||
* | ||
* @see {@link https://yoomoney.ru/docs/wallet/using-api/notification-p2p-incoming#security|Описание механизма} | ||
*/ | ||
export declare class NotificationChecker { | ||
private readonly secret; | ||
/** | ||
* | ||
* @param {string} secret Секретное слово | ||
*/ | ||
constructor(secret: string); | ||
/** | ||
* | ||
* @param {*} notification Объект уведомления | ||
* @return {*} | ||
*/ | ||
check(notification: Record<keyof NotificationDTO, string>): NotificationDTO; | ||
} |
@@ -5,13 +5,30 @@ "use strict"; | ||
const crypto_1 = require("crypto"); | ||
/** | ||
* Ошибка проверки уведомления от YooMoney | ||
*/ | ||
class YMNotificationError extends Error { | ||
} | ||
exports.YMNotificationError = YMNotificationError; | ||
/** | ||
* Класс, который реализует [механизм проверки уведомлений от YooMoney](https://yoomoney.ru/docs/wallet/using-api/notification-p2p-incoming#security) | ||
* | ||
* @see {@link https://yoomoney.ru/docs/wallet/using-api/notification-p2p-incoming#security|Описание механизма} | ||
*/ | ||
class NotificationChecker { | ||
/** | ||
* | ||
* @param {string} secret Секретное слово | ||
*/ | ||
constructor(secret) { | ||
this.secret = secret; | ||
} | ||
/** | ||
* | ||
* @param {*} notification Объект уведомления | ||
* @return {*} | ||
*/ | ||
check(notification) { | ||
const notificationWithSecret = { | ||
...notification, | ||
notification_secret: this.secret, | ||
notification_secret: this.secret | ||
}; | ||
@@ -21,5 +38,6 @@ const pattern = "notification_type&operation_id&amount¤cy&datetime&sender&codepro¬ification_secret&label"; | ||
.split("&") | ||
.map(key => notificationWithSecret[key]) | ||
.map((key) => notificationWithSecret[key]) | ||
.join("&"); | ||
const hash = crypto_1.createHash("sha1").update(signature).digest("hex"); | ||
// eslint-disable-next-line security/detect-possible-timing-attacks | ||
if (hash !== notification.sha1_hash) { | ||
@@ -30,9 +48,9 @@ throw new YMNotificationError(`Hash sum not matched: ${hash} !== ${notification.sha1_hash}`); | ||
...notification, | ||
amount: parseFloat(notification.amount), | ||
amount: Number.parseFloat(notification.amount), | ||
notification_type: notification.notification_type, | ||
withdraw_amount: parseFloat(notification.withdraw_amount) || 0, | ||
withdraw_amount: Number.parseFloat(notification.withdraw_amount) || 0, | ||
currency: notification.currency, | ||
codepro: Boolean(notification.codepro), | ||
test_notification: Boolean(notification.test_notification), | ||
unaccepted: Boolean(notification.unaccepted), | ||
unaccepted: Boolean(notification.unaccepted) | ||
}; | ||
@@ -39,0 +57,0 @@ } |
@@ -59,8 +59,39 @@ /// <reference types="node" /> | ||
}; | ||
/** | ||
* Генерирует HTML формы для переводов | ||
*/ | ||
export declare class PaymentFromBuilder { | ||
readonly config: FormConfig; | ||
/** | ||
* | ||
* @param {FormConfig=} config Изначальные настройки формы | ||
*/ | ||
constructor(config?: FormConfig); | ||
/** | ||
* Генерирует стандартные сеттеры | ||
* | ||
* @param {string} field | ||
* @return {Function} | ||
*/ | ||
private _makeSetter; | ||
/** | ||
* Задаёт сумму платежа | ||
* | ||
* @param {string | number} amount Сумма | ||
* @return {this} | ||
*/ | ||
setAmount(amount: number | string): this; | ||
/** | ||
* Задаёт получателя платежа | ||
* | ||
* @param {string | number} receiver Получатель | ||
* @return {this} | ||
*/ | ||
setReceiver(receiver: number | string): this; | ||
/** | ||
* Задаёт URL перенаправления после успешного платежа | ||
* | ||
* @param {string | URL} url URL | ||
* @return {this} | ||
*/ | ||
setSuccessURL(url: string | URL): this; | ||
@@ -75,7 +106,31 @@ readonly setTargets: (value: string) => this; | ||
readonly setComment: (value: string | undefined) => this; | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requireFio(doRequire?: boolean): this; | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requireAddress(doRequire?: boolean): this; | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requireEmail(doRequire?: boolean): this; | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requirePhone(doRequire?: boolean): this; | ||
/** | ||
* Генерирует HTML на основе заданных параметров | ||
* @return {string} | ||
*/ | ||
buildHtml(): string; | ||
} |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.PaymentFromBuilder = void 0; | ||
/* eslint-disable no-invalid-this */ | ||
const redirect_form_builder_1 = require("redirect-form-builder"); | ||
/** | ||
* | ||
* @param {FormConfig} config | ||
* @return {FormQueryObject} | ||
*/ | ||
function convert(config) { | ||
@@ -20,6 +26,13 @@ return { | ||
label: config.label, | ||
successURL: config.successURL, | ||
successURL: config.successURL | ||
}; | ||
} | ||
/** | ||
* Генерирует HTML формы для переводов | ||
*/ | ||
class PaymentFromBuilder { | ||
/** | ||
* | ||
* @param {FormConfig=} config Изначальные настройки формы | ||
*/ | ||
constructor(config = { | ||
@@ -30,3 +43,3 @@ paymentType: "PC", | ||
quickPayForm: "shop", | ||
targets: "", | ||
targets: "" | ||
}) { | ||
@@ -43,2 +56,8 @@ this.config = config; | ||
} | ||
/** | ||
* Генерирует стандартные сеттеры | ||
* | ||
* @param {string} field | ||
* @return {Function} | ||
*/ | ||
_makeSetter(field) { | ||
@@ -50,6 +69,18 @@ return (value) => { | ||
} | ||
/** | ||
* Задаёт сумму платежа | ||
* | ||
* @param {string | number} amount Сумма | ||
* @return {this} | ||
*/ | ||
setAmount(amount) { | ||
this.config.sum = parseFloat(amount.toString()); | ||
this.config.sum = Number.parseFloat(amount.toString()); | ||
return this; | ||
} | ||
/** | ||
* Задаёт получателя платежа | ||
* | ||
* @param {string | number} receiver Получатель | ||
* @return {this} | ||
*/ | ||
setReceiver(receiver) { | ||
@@ -59,2 +90,8 @@ this.config.receiver = receiver.toString(); | ||
} | ||
/** | ||
* Задаёт URL перенаправления после успешного платежа | ||
* | ||
* @param {string | URL} url URL | ||
* @return {this} | ||
*/ | ||
setSuccessURL(url) { | ||
@@ -64,2 +101,7 @@ this.config.successURL = url.toString(); | ||
} | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requireFio(doRequire = true) { | ||
@@ -69,2 +111,7 @@ this.config.needFio = doRequire; | ||
} | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requireAddress(doRequire = true) { | ||
@@ -74,2 +121,7 @@ this.config.needAddress = doRequire; | ||
} | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requireEmail(doRequire = true) { | ||
@@ -79,2 +131,7 @@ this.config.needEmail = doRequire; | ||
} | ||
/** | ||
* | ||
* @param {boolean} doRequire | ||
* @return {this} | ||
*/ | ||
requirePhone(doRequire = true) { | ||
@@ -84,2 +141,6 @@ this.config.needPhone = doRequire; | ||
} | ||
/** | ||
* Генерирует HTML на основе заданных параметров | ||
* @return {string} | ||
*/ | ||
buildHtml() { | ||
@@ -86,0 +147,0 @@ return new redirect_form_builder_1.FormBuilder("https://yoomoney.ru/quickpay/confirm.xml", "POST", convert(this.config)).buildHtml(); |
{ | ||
"name": "yoomoney-sdk", | ||
"version": "1.0.3", | ||
"version": "1.0.5", | ||
"description": "YooMoney typed SDK", | ||
@@ -15,3 +15,5 @@ "main": "dist/index.js", | ||
"generate-lock-files": "npm i && yarn install", | ||
"glf": "npm run generate-lock-files" | ||
"glf": "npm run generate-lock-files", | ||
"lint": "eslint src/*", | ||
"prettify": "prettier --write src/**/*" | ||
}, | ||
@@ -43,3 +45,4 @@ "files": [ | ||
"bugs": { | ||
"url": "https://github.com/AlexXanderGrib/yoomoney-sdk/issues" | ||
"url": "https://github.com/AlexXanderGrib/yoomoney-sdk/issues", | ||
"email": "me@alexxgrib.me" | ||
}, | ||
@@ -53,10 +56,15 @@ "homepage": "https://github.com/AlexXanderGrib/yoomoney-sdk#readme", | ||
"eslint": "^7.24.0", | ||
"eslint-config-prettier": "^8.1.0", | ||
"eslint-config-google": "^0.14.0", | ||
"eslint-config-prettier": "^8.2.0", | ||
"eslint-config-standard": "^16.0.2", | ||
"eslint-plugin-import": "^2.22.1", | ||
"eslint-plugin-node": "^11.1.0", | ||
"eslint-plugin-prettier": "^3.3.1", | ||
"eslint-plugin-promise": "^4.3.1", | ||
"eslint-plugin-prettier": "^3.4.0", | ||
"eslint-plugin-promise": "^5.1.0", | ||
"eslint-plugin-security": "^1.4.0", | ||
"eslint-plugin-unicorn": "^30.0.0", | ||
"husky": "^6.0.0", | ||
"jest": "^26.6.3", | ||
"prettier": "^2.2.1", | ||
"rimraf": "^3.0.2", | ||
"ts-jest": "^26.5.4", | ||
@@ -69,3 +77,9 @@ "ts-node": "^9.1.1", | ||
"redirect-form-builder": "^1.0.0" | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "npm run lint && npm run prettify", | ||
"pre-push": "npm test" | ||
} | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
101316
22
1401
21