From bb8997e4da6b2083c58a1397481e4fdd3c8a80cf Mon Sep 17 00:00:00 2001 From: Alexander Gribochkin Date: Tue, 7 Dec 2021 16:48:57 +0300 Subject: [PATCH] =?UTF-8?q?chore():=20=D0=95=D0=B1=D0=B0=D0=BB=20=D1=8D?= =?UTF-8?q?=D1=82=D0=BE=20=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8?= =?UTF-8?q?=D1=82=D1=8B=20=D1=80=D0=B0=D0=B7=D0=B1=D0=B8=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.json | 3 +- docs/api/classes/YMApi.md | 85 ++++++++++----- docs/api/classes/YMApiError.md | 4 +- docs/api/classes/YMAuth.md | 26 +++-- docs/api/classes/YMAuthError.md | 4 +- docs/api/classes/YMNotificationChecker.md | 20 +++- docs/api/classes/YMPaymentFromBuilder.md | 120 +++++++++++++++------ docs/api/classes/vendor.MultiProcessor.md | 71 +++++++++++++ docs/api/modules.md | 123 +++++++++++++++++----- docs/api/modules/vendor.md | 9 ++ docs/api/modules/ymTypes.md | 68 ++++++------ examples/3-gachi-shop.js | 1 - package-lock.json | 4 +- package.json | 2 +- src/api.ts | 69 ++++++++---- src/api.types.ts | 15 ++- src/auth.ts | 18 +++- src/fetch.ts | 4 +- src/index.ts | 15 ++- src/kassa.ts | 6 +- src/kassa.types.ts | 2 - src/notifications.ts | 79 +++++++++++++- src/payment-form-builder.ts | 46 +++++--- src/vendor.ts | 34 ++++++ yarn.lock | 12 +-- 25 files changed, 637 insertions(+), 203 deletions(-) create mode 100644 docs/api/classes/vendor.MultiProcessor.md create mode 100644 docs/api/modules/vendor.md create mode 100644 src/vendor.ts diff --git a/.eslintrc.json b/.eslintrc.json index fb6269c..9b58304 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -32,7 +32,8 @@ "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/ban-types": "off", "new-cap": "off", - "unicorn/prefer-node-protocol": "off" + "unicorn/prefer-node-protocol": "off", + "camelcase": "off" }, "overrides": [ { diff --git a/docs/api/classes/YMApi.md b/docs/api/classes/YMApi.md index 858f9d5..0958b55 100644 --- a/docs/api/classes/YMApi.md +++ b/docs/api/classes/YMApi.md @@ -6,6 +6,8 @@ **`see`** [Описание](https://yoomoney.ru/docs/wallet) +**`export`** + ## Table of contents ### Constructors @@ -35,17 +37,21 @@ • **new YMApi**(`token`, `endpoint?`, `agent?`) +Creates an instance of API. + +**`memberof`** API + #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `token` | `string` | `undefined` | Токен авторизации пользователя | -| `endpoint` | `string` | `"https://yoomoney.ru/api"` | По умолчанию `https://yoomoney.ru/api` | +| `endpoint` | `string` | `"https://yoomoney.ru/api"` | - | | `agent?` | `Agent` \| (`parsedUrl`: `URL`) => `Agent` | `undefined` | - | #### Defined in -[src/api.ts:32](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L32) +[src/api.ts:36](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L36) ## Properties @@ -75,13 +81,15 @@ ___ Требуемые права токена: `account-info`. +**`throws`** {YMApiError} + #### Returns `Promise`<[`AccountInfoResponse`](../modules/ymTypes.md#accountinforesponse)\> #### Defined in -[src/api.ts:71](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L71) +[src/api.ts:77](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L77) ___ @@ -91,6 +99,8 @@ ___ Позволяет совершить вызов произвольного метода API +**`throws`** {YMApiError} + #### Type parameters | Name | Type | @@ -110,7 +120,7 @@ ___ #### Defined in -[src/api.ts:47](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L47) +[src/api.ts:52](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L52) ___ @@ -118,17 +128,22 @@ ___ ▸ **incomingTransferAccept**(`parameters`): `Promise`<[`IncomingTransferAcceptResponse`](../modules/ymTypes.md#incomingtransferacceptresponse)\> -Прием входящих переводов, защищенных кодом протекции, и переводов до востребования. +Прием входящих переводов, защищенных кодом протекции, и +переводов до востребования. -Количество попыток приема входящего перевода с кодом протекции ограничено. При исчерпании количества попыток, перевод автоматически отвергается (перевод возвращается отправителю). +Количество попыток приема входящего перевода с кодом протекции +ограничено. При исчерпании количества попыток, перевод +автоматически отвергается (перевод возвращается отправителю). Требуемые права токена: `incoming-transfers` +**`throws`** {YMApiError} + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `parameters` | [`IncomingTransferAcceptParams`](../modules/ymTypes.md#incomingtransferacceptparams) | Параметры вызова | +| `parameters` | [`IncomingTransferAcceptParameters`](../modules/ymTypes.md#incomingtransferacceptparameters) | Параметры вызова | #### Returns @@ -136,7 +151,7 @@ ___ #### Defined in -[src/api.ts:141](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L141) +[src/api.ts:163](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L163) ___ @@ -144,15 +159,19 @@ ___ ▸ **incomingTransferReject**(`parameters`): `Promise`<[`IncomingTransferRejectResponse`](../modules/ymTypes.md#incomingtransferrejectresponse)\> -Отмена входящих переводов, защищенных кодом протекции, и переводов до востребования. При отмене перевода он возвращается отправителю. +Отмена входящих переводов, защищенных кодом протекции, и +переводов до востребования. При отмене перевода он возвращается +отправителю. Требуемые права токена: `incoming-transfers` +**`throws`** {YMApiError} + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `parameters` | [`IncomingTransferRejectParams`](../modules/ymTypes.md#incomingtransferrejectparams) | Параметры вызова | +| `parameters` | [`IncomingTransferRejectParameters`](../modules/ymTypes.md#incomingtransferrejectparameters) | Параметры вызова | #### Returns @@ -160,7 +179,7 @@ ___ #### Defined in -[src/api.ts:155](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L155) +[src/api.ts:180](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L180) ___ @@ -172,11 +191,13 @@ ___ Требуемые права токена: `operation-details`. +**`throws`** {YMApiError} + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `parameters` | [`OperationDetailsParams`](../modules/ymTypes.md#operationdetailsparams) | Параметры вызова | +| `parameters` | [`OperationDetailsParameters`](../modules/ymTypes.md#operationdetailsparameters) | Параметры вызова | #### Returns @@ -184,7 +205,7 @@ ___ #### Defined in -[src/api.ts:97](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L97) +[src/api.ts:105](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L105) ___ @@ -196,11 +217,13 @@ ___ Требуемые права токена: `operation-history`. +**`throws`** {YMApiError} + #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `parameters` | [`OperationHistoryParams`](../modules/ymTypes.md#operationhistoryparams) | Параметры вызова | +| Name | Type | +| :------ | :------ | +| `parameters` | [`OperationHistoryParameters`](../modules/ymTypes.md#operationhistoryparameters) | #### Returns @@ -208,7 +231,7 @@ ___ #### Defined in -[src/api.ts:83](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L83) +[src/api.ts:90](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L90) ___ @@ -216,13 +239,17 @@ ___ ▸ **processPayment**(`parameters`): `Promise`<[`ProcessPaymentResponse`](../modules/ymTypes.md#processpaymentresponse)\> -Подтверждение платежа, ранее созданного методом [request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment). Указание метода проведения платежа. +Подтверждение платежа, ранее созданного методом +[request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment). +Указание метода проведения платежа. + +**`throws`** {YMApiError} #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `parameters` | [`ProcessPaymentParams`](../modules/ymTypes.md#processpaymentparams) | Параметры вызова | +| `parameters` | [`ProcessPaymentParameters`](../modules/ymTypes.md#processpaymentparameters) | Параметры вызова | #### Returns @@ -230,7 +257,7 @@ ___ #### Defined in -[src/api.ts:125](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L125) +[src/api.ts:143](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L143) ___ @@ -238,17 +265,25 @@ ___ ▸ **requestPayment**(`parameters`): `Promise`<[`RequestPaymentResponse`](../modules/ymTypes.md#requestpaymentresponse)\> -Создание платежа, проверка параметров и возможности приема платежа магазином или перевода средств на счет пользователя ЮMoney. +Создание платежа, проверка параметров и возможности приема +платежа магазином или перевода средств на счет пользователя +ЮMoney. Требуемые права токена: -- для платежа в магазин: `payment.to-pattern` («шаблон платежа») или `payment-shop`. -- для перевода средств на счета других пользователей: `payment.to-account` («идентификатор получателя», «тип идентификатора») или `payment-p2p`. +- для платежа в магазин: `payment.to-pattern` +(«шаблон платежа») или `payment-shop`. + +- для перевода средств на счета других пользователей: + `payment.to-account` («идентификатор получателя», +«тип идентификатора») или `payment-p2p`. + +**`throws`** {YMApiError} #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `parameters` | [`RequestPaymentParams`](../modules/ymTypes.md#requestpaymentparams) | Параметры вызова | +| `parameters` | [`RequestPaymentParameters`](../modules/ymTypes.md#requestpaymentparameters) | Параметры вызова | #### Returns @@ -256,4 +291,4 @@ ___ #### Defined in -[src/api.ts:113](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L113) +[src/api.ts:128](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L128) diff --git a/docs/api/classes/YMApiError.md b/docs/api/classes/YMApiError.md index 3ef3589..ad73995 100644 --- a/docs/api/classes/YMApiError.md +++ b/docs/api/classes/YMApiError.md @@ -50,7 +50,7 @@ Error.constructor #### Defined in -[src/api.ts:15](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L15) +[src/api.ts:15](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L15) ## Properties @@ -60,7 +60,7 @@ Error.constructor #### Defined in -[src/api.ts:9](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.ts#L9) +[src/api.ts:9](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.ts#L9) ___ diff --git a/docs/api/classes/YMAuth.md b/docs/api/classes/YMAuth.md index c452f3d..4054bc2 100644 --- a/docs/api/classes/YMAuth.md +++ b/docs/api/classes/YMAuth.md @@ -6,6 +6,8 @@ **`see`** [Описание протокола](https://yoomoney.ru/docs/wallet/using-api/authorization/basics) +**`export`** + ## Table of contents ### Constructors @@ -31,19 +33,23 @@ • **new YMAuth**(`clientId`, `redirectUrl`, `clientSecret?`, `endpoint?`, `agent?`) +Creates an instance of Auth. + +**`memberof`** Auth + #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `clientId` | `string` | `undefined` | ID приложения | | `redirectUrl` | `string` | `undefined` | URL-перенаправления | -| `clientSecret?` | `string` | `undefined` | Секретное Слово | -| `endpoint` | `string` | `"https://yoomoney.ru/oauth"` | По умолчанию `https://yoomoney.ru/oauth` | +| `clientSecret?` | `string` | `undefined` | - | +| `endpoint` | `string` | `"https://yoomoney.ru/oauth"` | - | | `agent?` | `Agent` \| (`parsedUrl`: `URL`) => `Agent` | `undefined` | - | #### Defined in -[src/auth.ts:40](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/auth.ts#L40) +[src/auth.ts:46](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/auth.ts#L46) ## Properties @@ -81,11 +87,17 @@ ___ ▸ **exchangeCode2Token**(`code`): `Promise`<`string`\> +Обменивает временный токен на постоянный токен авторизации + +**`memberof`** Auth + +**`throws`** {YMAuthError} + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `code` | `string` | Временный токен (authorization code), подлежащий обмену на постоянный токен авторизации | +| `code` | `string` | Временный токен (authorization code) | #### Returns @@ -95,7 +107,7 @@ ___ #### Defined in -[src/auth.ts:75](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/auth.ts#L75) +[src/auth.ts:85](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/auth.ts#L85) ___ @@ -105,6 +117,8 @@ ___ Генерирует html-форму перенаправления пользователя на авторизацию +**`memberof`** Auth + #### Parameters | Name | Type | @@ -118,4 +132,4 @@ ___ #### Defined in -[src/auth.ts:55](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/auth.ts#L55) +[src/auth.ts:62](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/auth.ts#L62) diff --git a/docs/api/classes/YMAuthError.md b/docs/api/classes/YMAuthError.md index f0f6e45..b16ac2d 100644 --- a/docs/api/classes/YMAuthError.md +++ b/docs/api/classes/YMAuthError.md @@ -4,6 +4,8 @@ Ошибка в процессе авторизации +**`export`** + ## Hierarchy - `Error` @@ -47,7 +49,7 @@ Error.constructor #### Defined in -[src/auth.ts:22](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/auth.ts#L22) +[src/auth.ts:24](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/auth.ts#L24) ## Properties diff --git a/docs/api/classes/YMNotificationChecker.md b/docs/api/classes/YMNotificationChecker.md index bb3c06c..53f655b 100644 --- a/docs/api/classes/YMNotificationChecker.md +++ b/docs/api/classes/YMNotificationChecker.md @@ -6,6 +6,8 @@ **`see`** [Описание механизма](https://yoomoney.ru/docs/wallet/using-api/notification-p2p-incoming#security) +**`export`** + ## Table of contents ### Constructors @@ -23,6 +25,10 @@ • **new YMNotificationChecker**(`secret`) +Creates an instance of NotificationChecker. + +**`memberof`** NotificationChecker + #### Parameters | Name | Type | Description | @@ -31,7 +37,7 @@ #### Defined in -[src/notifications.ts:71](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/notifications.ts#L71) +[src/notifications.ts:141](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/notifications.ts#L141) ## Methods @@ -39,6 +45,12 @@ ▸ **check**(`notification`): [`YMNotificationDTO`](../modules.md#ymnotificationdto) +Проверяет полученное уведомление и возвращает типизированную версию + +**`throws`** {YMNotificationError} Если хеш уведомления не совпадает + +**`memberof`** NotificationChecker + #### Parameters | Name | Type | Description | @@ -51,7 +63,7 @@ #### Defined in -[src/notifications.ts:78](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/notifications.ts#L78) +[src/notifications.ts:151](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/notifications.ts#L151) ___ @@ -63,6 +75,8 @@ ___ #### Это middleware кидает ошибки, позаботьтесь об их обработке +**`memberof`** NotificationChecker + #### Parameters | Name | Type | @@ -106,4 +120,4 @@ app.use((error, request, response, next) => { #### Defined in -[src/notifications.ts:153](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/notifications.ts#L153) +[src/notifications.ts:226](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/notifications.ts#L226) diff --git a/docs/api/classes/YMPaymentFromBuilder.md b/docs/api/classes/YMPaymentFromBuilder.md index 5194637..b609d71 100644 --- a/docs/api/classes/YMPaymentFromBuilder.md +++ b/docs/api/classes/YMPaymentFromBuilder.md @@ -4,6 +4,8 @@ Генерирует HTML формы для переводов +**`export`** + ## Table of contents ### Constructors @@ -40,15 +42,19 @@ • **new YMPaymentFromBuilder**(`config?`) +Creates an instance of PaymentFormBuilder. + +**`memberof`** PaymentFormBuilder + #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `config` | [`YMFormConfig`](../modules.md#ymformconfig) | Изначальные настройки формы | +| Name | Type | +| :------ | :------ | +| `config` | [`YMFormConfig`](../modules.md#ymformconfig) | #### Defined in -[src/payment-form-builder.ts:124](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L124) +[src/payment-form-builder.ts:133](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L133) ## Properties @@ -64,7 +70,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -78,7 +88,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:188](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L188) +[src/payment-form-builder.ts:200](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L200) ___ @@ -88,7 +98,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -102,7 +116,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:185](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L185) +[src/payment-form-builder.ts:197](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L197) ___ @@ -112,7 +126,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -126,7 +144,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:187](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L187) +[src/payment-form-builder.ts:199](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L199) ___ @@ -136,7 +154,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -150,7 +172,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:182](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L182) +[src/payment-form-builder.ts:194](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L194) ___ @@ -160,7 +182,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -174,7 +200,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:183](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L183) +[src/payment-form-builder.ts:195](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L195) ___ @@ -184,7 +210,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -198,7 +228,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:186](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L186) +[src/payment-form-builder.ts:198](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L198) ___ @@ -208,7 +238,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -222,7 +256,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:181](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L181) +[src/payment-form-builder.ts:193](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L193) ___ @@ -232,7 +266,11 @@ ___ #### Type declaration -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -246,7 +284,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:184](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L184) +[src/payment-form-builder.ts:196](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L196) ## Methods @@ -256,6 +294,8 @@ ___ Генерирует стандартные сеттеры +**`memberof`** PaymentFromBuilder + #### Type parameters | Name | Type | @@ -272,7 +312,11 @@ ___ `fn` -▸ (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +▸ `Private` (`value`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) + +Генерирует стандартные сеттеры + +**`memberof`** PaymentFromBuilder ##### Parameters @@ -286,7 +330,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:140](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L140) +[src/payment-form-builder.ts:151](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L151) ___ @@ -296,6 +340,8 @@ ___ Генерирует HTML на основе заданных параметров +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Default value | @@ -308,7 +354,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:235](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L235) +[src/payment-form-builder.ts:251](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L251) ___ @@ -316,6 +362,8 @@ ___ ▸ **requireAddress**(`doRequire?`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Default value | @@ -328,7 +376,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:205](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L205) +[src/payment-form-builder.ts:219](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L219) ___ @@ -336,6 +384,8 @@ ___ ▸ **requireEmail**(`doRequire?`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Default value | @@ -348,7 +398,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:215](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L215) +[src/payment-form-builder.ts:230](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L230) ___ @@ -356,6 +406,8 @@ ___ ▸ **requireFio**(`doRequire?`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Default value | @@ -368,7 +420,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:195](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L195) +[src/payment-form-builder.ts:208](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L208) ___ @@ -376,6 +428,8 @@ ___ ▸ **requirePhone**(`doRequire?`): [`YMPaymentFromBuilder`](YMPaymentFromBuilder.md) +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Default value | @@ -388,7 +442,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:225](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L225) +[src/payment-form-builder.ts:240](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L240) ___ @@ -398,6 +452,8 @@ ___ Задаёт сумму платежа +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Description | @@ -410,7 +466,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:154](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L154) +[src/payment-form-builder.ts:164](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L164) ___ @@ -420,6 +476,8 @@ ___ Задаёт получателя платежа +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Description | @@ -432,7 +490,7 @@ ___ #### Defined in -[src/payment-form-builder.ts:165](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L165) +[src/payment-form-builder.ts:176](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L176) ___ @@ -442,6 +500,8 @@ ___ Задаёт URL перенаправления после успешного платежа +**`memberof`** PaymentFromBuilder + #### Parameters | Name | Type | Description | @@ -454,4 +514,4 @@ ___ #### Defined in -[src/payment-form-builder.ts:176](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L176) +[src/payment-form-builder.ts:188](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L188) diff --git a/docs/api/classes/vendor.MultiProcessor.md b/docs/api/classes/vendor.MultiProcessor.md new file mode 100644 index 0000000..87780ee --- /dev/null +++ b/docs/api/classes/vendor.MultiProcessor.md @@ -0,0 +1,71 @@ +[yoomoney-sdk](../README.md) / [Exports](../modules.md) / [vendor](../modules/vendor.md) / MultiProcessor + +# Class: MultiProcessor + +[vendor](../modules/vendor.md).MultiProcessor + +**`export`** + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | extends `Object` | + +## Table of contents + +### Constructors + +- [constructor](vendor.MultiProcessor.md#constructor) + +### Methods + +- [process](vendor.MultiProcessor.md#process) + +## Constructors + +### constructor + +• **new MultiProcessor**<`T`\>(`_resolveSecret`) + +Creates an instance of MultiProcessor. + +**`memberof`** MultiProcessor + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | extends `Object` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `_resolveSecret` | (`label`: `string`) => `Promise`<`T`\> | + +#### Defined in + +src/vendor.ts:16 + +## Methods + +### process + +▸ **process**(`notification`): `Promise`<[nf: YMNotificationDTO, receiver: T]\> + +**`memberof`** MultiProcessor + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `notification` | `Record` | + +#### Returns + +`Promise`<[nf: YMNotificationDTO, receiver: T]\> + +#### Defined in + +src/vendor.ts:25 diff --git a/docs/api/modules.md b/docs/api/modules.md index a1551d1..81b7997 100644 --- a/docs/api/modules.md +++ b/docs/api/modules.md @@ -4,8 +4,21 @@ ## Table of contents +### References + +- [API](modules.md#api) +- [Auth](modules.md#auth) +- [FormConfig](modules.md#formconfig) +- [FormPaymentType](modules.md#formpaymenttype) +- [NotificationChecker](modules.md#notificationchecker) +- [NotificationDTO](modules.md#notificationdto) +- [PaymentFormBuilder](modules.md#paymentformbuilder) +- [PaymentType](modules.md#paymenttype) +- [YMPaymentFormBuilder](modules.md#ympaymentformbuilder) + ### Namespaces +- [vendor](modules/vendor.md) - [ymTypes](modules/ymTypes.md) ### Classes @@ -27,6 +40,60 @@ - [YMFormPaymentType](modules.md#ymformpaymenttype) +## References + +### API + +Renames and re-exports [YMApi](classes/YMApi.md) + +___ + +### Auth + +Renames and re-exports [YMAuth](classes/YMAuth.md) + +___ + +### FormConfig + +Renames and re-exports [YMFormConfig](modules.md#ymformconfig) + +___ + +### FormPaymentType + +Renames and re-exports [YMFormPaymentType](modules.md#ymformpaymenttype) + +___ + +### NotificationChecker + +Renames and re-exports [YMNotificationChecker](classes/YMNotificationChecker.md) + +___ + +### NotificationDTO + +Renames and re-exports [YMNotificationDTO](modules.md#ymnotificationdto) + +___ + +### PaymentFormBuilder + +Renames and re-exports [YMPaymentFromBuilder](classes/YMPaymentFromBuilder.md) + +___ + +### PaymentType + +Renames and re-exports [YMFormPaymentType](modules.md#ymformpaymenttype) + +___ + +### YMPaymentFormBuilder + +Renames and re-exports [YMPaymentFromBuilder](classes/YMPaymentFromBuilder.md) + ## Type aliases ### YMFormConfig @@ -54,7 +121,7 @@ #### Defined in -[src/payment-form-builder.ts:12](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L12) +[src/payment-form-builder.ts:11](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L11) ___ @@ -64,35 +131,35 @@ ___ #### Type declaration -| Name | Type | -| :------ | :------ | -| `amount` | `number` | -| `building?` | `string` | -| `city?` | `string` | -| `codepro` | `boolean` | -| `currency` | ``"643"`` | -| `datetime` | `string` | -| `email?` | `string` | -| `fathersname?` | `string` | -| `firstname?` | `string` | -| `flat?` | `string` | -| `label` | `string` | -| `lastname?` | `string` | -| `notification_type` | ``"p2p-incoming"`` \| ``"card-incoming"`` | -| `operation_id` | `string` | -| `phone?` | `string` | -| `sender` | `string` | -| `sha1_hash` | `string` | -| `street?` | `string` | -| `suite?` | `string` | -| `test_notification` | `boolean` | -| `unaccepted` | `boolean` | -| `withdraw_amount` | `number` | -| `zip?` | `string` | +| Name | Type | Description | +| :------ | :------ | :------ | +| `amount` | `number` | Сумма, которая зачислена на счет получателя. | +| `building?` | `string` | Дом. | +| `city?` | `string` | Город. | +| `codepro` | `boolean` | Для переводов из кошелька — перевод защищен кодом протекции. Для переводов с произвольной карты — всегда `false`. | +| `currency` | ``"643"`` | Код валюты — всегда `643` (рубль РФ согласно ISO 4217). | +| `datetime` | `string` | Дата и время совершения перевода. | +| `email?` | `string` | Адрес электронной почты отправителя перевода. Если почта не запрашивалась, параметр содержит пустую строку. | +| `fathersname?` | `string` | Отчество. | +| `firstname?` | `string` | Имя. | +| `flat?` | `string` | Квартира. | +| `label` | `string` | Метка платежа. Если ее нет, параметр содержит пустую строку. | +| `lastname?` | `string` | Фамилия. | +| `notification_type` | ``"p2p-incoming"`` \| ``"card-incoming"`` | Для переводов из кошелька — `p2p-incoming`. Для переводов с произвольной карты — `card-incoming`. | +| `operation_id` | `string` | Идентификатор операции в истории счета получателя. | +| `phone?` | `string` | Телефон отправителя перевода. Если телефон не запрашивался, параметр содержит пустую строку. | +| `sender` | `string` | Для переводов из кошелька — номер кошелька отправителя. Для переводов с произвольной карты — параметр содержит пустую строку. | +| `sha1_hash` | `string` | SHA-1 hash параметров уведомления. | +| `street?` | `string` | Улица. | +| `suite?` | `string` | Корпус. | +| `test_notification` | `boolean` | - | +| `unaccepted` | `boolean` | Перевод еще не зачислен. Получателю нужно освободить место в кошельке или использовать код протекции (если `codepro=true`). | +| `withdraw_amount` | `number` | Сумма, которая списана со счета отправителя. | +| `zip?` | `string` | Индекс. | #### Defined in -[src/notifications.ts:6](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/notifications.ts#L6) +[src/notifications.ts:5](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/notifications.ts#L5) ## Variables @@ -110,4 +177,4 @@ ___ #### Defined in -[src/payment-form-builder.ts:5](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/payment-form-builder.ts#L5) +[src/payment-form-builder.ts:5](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/payment-form-builder.ts#L5) diff --git a/docs/api/modules/vendor.md b/docs/api/modules/vendor.md new file mode 100644 index 0000000..4fc3f3f --- /dev/null +++ b/docs/api/modules/vendor.md @@ -0,0 +1,9 @@ +[yoomoney-sdk](../README.md) / [Exports](../modules.md) / vendor + +# Namespace: vendor + +## Table of contents + +### Classes + +- [MultiProcessor](../classes/vendor.MultiProcessor.md) diff --git a/docs/api/modules/ymTypes.md b/docs/api/modules/ymTypes.md index a9ed6cc..89f9f23 100644 --- a/docs/api/modules/ymTypes.md +++ b/docs/api/modules/ymTypes.md @@ -7,20 +7,20 @@ ### Type aliases - [AccountInfoResponse](ymTypes.md#accountinforesponse) -- [IncomingTransferAcceptParams](ymTypes.md#incomingtransferacceptparams) +- [IncomingTransferAcceptParameters](ymTypes.md#incomingtransferacceptparameters) - [IncomingTransferAcceptResponse](ymTypes.md#incomingtransferacceptresponse) -- [IncomingTransferRejectParams](ymTypes.md#incomingtransferrejectparams) +- [IncomingTransferRejectParameters](ymTypes.md#incomingtransferrejectparameters) - [IncomingTransferRejectResponse](ymTypes.md#incomingtransferrejectresponse) - [Operation](ymTypes.md#operation) -- [OperationDetailsParams](ymTypes.md#operationdetailsparams) -- [OperationHistoryParams](ymTypes.md#operationhistoryparams) +- [OperationDetailsParameters](ymTypes.md#operationdetailsparameters) +- [OperationHistoryParameters](ymTypes.md#operationhistoryparameters) - [OperationHistoryResponse](ymTypes.md#operationhistoryresponse) - [P2PPaymentRequest](ymTypes.md#p2ppaymentrequest) - [PhoneProviderPaymentRequest](ymTypes.md#phoneproviderpaymentrequest) -- [ProcessPaymentParams](ymTypes.md#processpaymentparams) +- [ProcessPaymentParameters](ymTypes.md#processpaymentparameters) - [ProcessPaymentResponse](ymTypes.md#processpaymentresponse) - [RequestPaymentMoneySource](ymTypes.md#requestpaymentmoneysource) -- [RequestPaymentParams](ymTypes.md#requestpaymentparams) +- [RequestPaymentParameters](ymTypes.md#requestpaymentparameters) - [RequestPaymentResponse](ymTypes.md#requestpaymentresponse) ## Type aliases @@ -47,13 +47,13 @@ #### Defined in -[src/api.types.ts:48](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L48) +[src/api.types.ts:45](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L45) ___ -### IncomingTransferAcceptParams +### IncomingTransferAcceptParameters -Ƭ **IncomingTransferAcceptParams**: `Object` +Ƭ **IncomingTransferAcceptParameters**: `Object` #### Index signature @@ -68,7 +68,7 @@ ___ #### Defined in -[src/api.types.ts:551](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L551) +[src/api.types.ts:548](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L548) ___ @@ -78,13 +78,13 @@ ___ #### Defined in -[src/api.types.ts:563](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L563) +[src/api.types.ts:560](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L560) ___ -### IncomingTransferRejectParams +### IncomingTransferRejectParameters -Ƭ **IncomingTransferRejectParams**: `Object` +Ƭ **IncomingTransferRejectParameters**: `Object` #### Index signature @@ -98,7 +98,7 @@ ___ #### Defined in -[src/api.types.ts:576](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L576) +[src/api.types.ts:573](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L573) ___ @@ -108,7 +108,7 @@ ___ #### Defined in -[src/api.types.ts:584](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L584) +[src/api.types.ts:581](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L581) ___ @@ -149,13 +149,13 @@ ___ #### Defined in -[src/api.types.ts:159](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L159) +[src/api.types.ts:156](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L156) ___ -### OperationDetailsParams +### OperationDetailsParameters -Ƭ **OperationDetailsParams**: `Object` +Ƭ **OperationDetailsParameters**: `Object` #### Index signature @@ -169,13 +169,13 @@ ___ #### Defined in -[src/api.types.ts:280](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L280) +[src/api.types.ts:277](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L277) ___ -### OperationHistoryParams +### OperationHistoryParameters -Ƭ **OperationHistoryParams**: `Object` +Ƭ **OperationHistoryParameters**: `Object` #### Index signature @@ -195,7 +195,7 @@ ___ #### Defined in -[src/api.types.ts:95](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L95) +[src/api.types.ts:92](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L92) ___ @@ -216,7 +216,7 @@ ___ #### Defined in -[src/api.types.ts:274](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L274) +[src/api.types.ts:271](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L271) ___ @@ -228,7 +228,7 @@ ___ #### Defined in -[src/api.types.ts:291](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L291) +[src/api.types.ts:288](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L288) ___ @@ -252,13 +252,13 @@ ___ #### Defined in -[src/api.types.ts:324](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L324) +[src/api.types.ts:321](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L321) ___ -### ProcessPaymentParams +### ProcessPaymentParameters -Ƭ **ProcessPaymentParams**: `Object` +Ƭ **ProcessPaymentParameters**: `Object` #### Index signature @@ -276,7 +276,7 @@ ___ #### Defined in -[src/api.types.ts:442](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L442) +[src/api.types.ts:439](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L439) ___ @@ -308,7 +308,7 @@ ___ #### Defined in -[src/api.types.ts:475](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L475) +[src/api.types.ts:472](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L472) ___ @@ -329,17 +329,17 @@ ___ #### Defined in -[src/api.types.ts:348](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L348) +[src/api.types.ts:345](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L345) ___ -### RequestPaymentParams +### RequestPaymentParameters -Ƭ **RequestPaymentParams**: [`P2PPaymentRequest`](ymTypes.md#p2ppaymentrequest) \| [`PhoneProviderPaymentRequest`](ymTypes.md#phoneproviderpaymentrequest) \| { [key: string]: `string`; `pattern_id`: `string` } +Ƭ **RequestPaymentParameters**: [`P2PPaymentRequest`](ymTypes.md#p2ppaymentrequest) \| [`PhoneProviderPaymentRequest`](ymTypes.md#phoneproviderpaymentrequest) \| { [key: string]: `string`; `pattern_id`: `string` } #### Defined in -[src/api.types.ts:343](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L343) +[src/api.types.ts:340](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L340) ___ @@ -349,4 +349,4 @@ ___ #### Defined in -[src/api.types.ts:389](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/ca8499d/src/api.types.ts#L389) +[src/api.types.ts:386](https://github.com/AlexXanderGrib/yoomoney-sdk/blob/5f14ef9/src/api.types.ts#L386) diff --git a/examples/3-gachi-shop.js b/examples/3-gachi-shop.js index e3c45e5..a8bd5c9 100644 --- a/examples/3-gachi-shop.js +++ b/examples/3-gachi-shop.js @@ -1,7 +1,6 @@ // ♂️Gachi♂️ магазинчик на Express const express = require("express"); -const bodyParser = require("body-parser"); const app = express(); // const { YMPaymentFromBuilder, YMFormPaymentType, YMNotificationChecker, YMNotificationError } = require("yoomoney-sdk"); diff --git a/package-lock.json b/package-lock.json index 9f4acdd..c5c155e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "yoomoney-sdk", - "version": "1.2.6", + "version": "1.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "yoomoney-sdk", - "version": "1.2.6", + "version": "1.3.0", "license": "MIT", "dependencies": { "node-fetch": "^2.6.1", diff --git a/package.json b/package.json index da3a34f..4d761e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yoomoney-sdk", - "version": "1.2.6", + "version": "1.3.0", "description": "YooMoney typed SDK", "main": "dist/index.js", "types": "./dist/index.d.ts", diff --git a/src/api.ts b/src/api.ts index 8bf2ea8..469e291 100644 --- a/src/api.ts +++ b/src/api.ts @@ -22,16 +22,20 @@ export class YMApiError extends Error { * Имплементирует [основное API YooMoney](https://yoomoney.ru/docs/wallet) * * @see {@link https://yoomoney.ru/docs/wallet|Описание} + * @export + * @class API */ export class API { /** - * + * Creates an instance of API. * @param {string} token Токен авторизации пользователя - * @param {string} endpoint По умолчанию `https://yoomoney.ru/api` + * @param {string=} [endpoint="https://yoomoney.ru/api"] По умолчанию `https://yoomoney.ru/api` + * @param {Agent=} [agent] + * @memberof API */ constructor( public token: string, - public endpoint = "https://yoomoney.ru/api", + public endpoint: string = "https://yoomoney.ru/api", public agent?: Agent ) {} @@ -41,6 +45,7 @@ export class API { * @template T * @param {string} method Название метода * @param {QueryStringifiable} parameters Параметры метода + * @throws {YMApiError} * * @return {Promise} */ @@ -66,6 +71,7 @@ export class API { * * Требуемые права токена: `account-info`. * + * @throws {YMApiError} * @return {t.AccountInfoResponse} */ async accountInfo(): Promise { @@ -77,11 +83,12 @@ export class API { * * Требуемые права токена: `operation-history`. * - * @param {t.OperationHistoryParams=} parameters Параметры вызова + * @throws {YMApiError} + * @param {t.OperationHistoryParameters=} [parameters={}] Параметры вызова * @return {Promise} */ async operationHistory( - parameters: t.OperationHistoryParams = {} + parameters: t.OperationHistoryParameters = {} ): Promise { return await this.call("operation-history", parameters); } @@ -91,69 +98,87 @@ export class API { * * Требуемые права токена: `operation-details`. * - * @param {t.OperationDetailsParams=} parameters Параметры вызова + * @throws {YMApiError} + * @param {t.OperationDetailsParameters} parameters Параметры вызова * @return {Promise} */ async operationDetails( - parameters: t.OperationDetailsParams + parameters: t.OperationDetailsParameters ): Promise { return await this.call("operation-details", parameters); } /** - * Создание платежа, проверка параметров и возможности приема платежа магазином или перевода средств на счет пользователя ЮMoney. + * Создание платежа, проверка параметров и возможности приема + * платежа магазином или перевода средств на счет пользователя + * ЮMoney. * * Требуемые права токена: - * - для платежа в магазин: `payment.to-pattern` («шаблон платежа») или `payment-shop`. - * - для перевода средств на счета других пользователей: `payment.to-account` («идентификатор получателя», «тип идентификатора») или `payment-p2p`. + * - для платежа в магазин: `payment.to-pattern` + * («шаблон платежа») или `payment-shop`. + * + * - для перевода средств на счета других пользователей: + * `payment.to-account` («идентификатор получателя», + * «тип идентификатора») или `payment-p2p`. * - * @param {t.RequestPaymentParams=} parameters Параметры вызова + * @throws {YMApiError} + * @param {t.RequestPaymentParameters} parameters Параметры вызова * @return {Promise} */ async requestPayment( - parameters: t.RequestPaymentParams + parameters: t.RequestPaymentParameters ): Promise { return await this.call("request-payment", parameters); } /** - * Подтверждение платежа, ранее созданного методом [request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment). Указание метода проведения платежа. + * Подтверждение платежа, ранее созданного методом + * [request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment). + * Указание метода проведения платежа. * - * @param {t.ProcessPaymentParams=} parameters Параметры вызова + * @throws {YMApiError} + * @param {t.ProcessPaymentParameters} parameters Параметры вызова * @return {Promise} */ async processPayment( - parameters: t.ProcessPaymentParams + parameters: t.ProcessPaymentParameters ): Promise { return await this.call("process-payment", parameters); } /** - * Прием входящих переводов, защищенных кодом протекции, и переводов до востребования. + * Прием входящих переводов, защищенных кодом протекции, и + * переводов до востребования. * - * Количество попыток приема входящего перевода с кодом протекции ограничено. При исчерпании количества попыток, перевод автоматически отвергается (перевод возвращается отправителю). + * Количество попыток приема входящего перевода с кодом протекции + * ограничено. При исчерпании количества попыток, перевод + * автоматически отвергается (перевод возвращается отправителю). * * Требуемые права токена: `incoming-transfers` * - * @param {t.IncomingTransferAcceptParams=} parameters Параметры вызова + * @throws {YMApiError} + * @param {t.IncomingTransferAcceptParameters} parameters Параметры вызова * @return {Promise} */ async incomingTransferAccept( - parameters: t.IncomingTransferAcceptParams + parameters: t.IncomingTransferAcceptParameters ): Promise { return await this.call("incoming-transfer-accept", parameters); } /** - * Отмена входящих переводов, защищенных кодом протекции, и переводов до востребования. При отмене перевода он возвращается отправителю. + * Отмена входящих переводов, защищенных кодом протекции, и + * переводов до востребования. При отмене перевода он возвращается + * отправителю. * * Требуемые права токена: `incoming-transfers` * - * @param {t.IncomingTransferRejectParams=} parameters Параметры вызова + * @throws {YMApiError} + * @param {t.IncomingTransferRejectParameters} parameters Параметры вызова * @return {Promise} */ async incomingTransferReject( - parameters: t.IncomingTransferRejectParams + parameters: t.IncomingTransferRejectParameters ): Promise { return await this.call("incoming-transfer-accept", parameters); } diff --git a/src/api.types.ts b/src/api.types.ts index 98e0982..c196f6f 100644 --- a/src/api.types.ts +++ b/src/api.types.ts @@ -1,6 +1,3 @@ -/* eslint-disable unicorn/prevent-abbreviations */ -/* eslint-disable camelcase */ - import { CardType } from "./shared.types"; type AccountBalanceDetails = { @@ -92,7 +89,7 @@ export type AccountInfoResponse = { [key: string]: any; }; -export type OperationHistoryParams = { +export type OperationHistoryParameters = { /** * Перечень типов операций, которые требуется отобразить. Возможные значения: * @@ -277,7 +274,7 @@ export type OperationHistoryResponse = { [key: string]: any; }; -export type OperationDetailsParams = { +export type OperationDetailsParameters = { /** * Идентификатор операции. Значение параметра следует указывать как значение параметра `operation_id` ответа метода [operation-history](https://yoomoney.ru/docs/wallet/user-account/operation-history#response) или значение поля `payment_id` ответа метода [process-payment](https://yoomoney.ru/docs/wallet/process-payments/process-payment#response), если запрашивается история счета плательщика. */ @@ -340,7 +337,7 @@ export type PhoneProviderPaymentRequest = { amount: number; [key: string]: any; }; -export type RequestPaymentParams = +export type RequestPaymentParameters = | P2PPaymentRequest | PhoneProviderPaymentRequest | { pattern_id: string; [key: string]: string }; @@ -439,7 +436,7 @@ export type RequestPaymentResponse = BaseApiErrors & { [key: string]: any; }; -export type ProcessPaymentParams = { +export type ProcessPaymentParameters = { /** * Идентификатор запроса, полученный из ответа метода [request-payment](https://yoomoney.ru/docs/wallet/process-payments/request-payment#response). */ @@ -548,7 +545,7 @@ export type ProcessPaymentResponse = { [key: string]: any; }; -export type IncomingTransferAcceptParams = { +export type IncomingTransferAcceptParameters = { /** * Идентификатор операции, значение параметра `operation_id` ответа метода [operation-history](https://yoomoney.ru/docs/wallet/user-account/operation-history). */ @@ -573,7 +570,7 @@ export type IncomingTransferAcceptResponse = BaseApiErrors & { [key: string]: any; }; -export type IncomingTransferRejectParams = { +export type IncomingTransferRejectParameters = { /** * Идентификатор операции, значение параметра `operation_id` ответа метода [operation-history](https://yoomoney.ru/docs/wallet/user-account/operation-history). */ diff --git a/src/auth.ts b/src/auth.ts index 0fffe88..63a2d38 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -13,6 +13,8 @@ type AuthScope = /** * Ошибка в процессе авторизации + * @export + * @class YMAuthError */ export class YMAuthError extends Error { /** @@ -28,14 +30,18 @@ export class YMAuthError extends Error { * Реализует всё необходимое для [авторизации через YooMoney](https://yoomoney.ru/docs/wallet/using-api/authorization/basics) * * @see {@link https://yoomoney.ru/docs/wallet/using-api/authorization/basics|Описание протокола} + * @export + * @class Auth */ export class Auth { /** - * + * Creates an instance of Auth. + * @memberof Auth * @param {string} clientId ID приложения * @param {string} redirectUrl URL-перенаправления - * @param {string=} clientSecret Секретное Слово - * @param {string=} endpoint По умолчанию `https://yoomoney.ru/oauth` + * @param {string=} [clientSecret] Секретное Слово + * @param {string} [endpoint="https://yoomoney.ru/oauth"] По умолчанию `https://yoomoney.ru/oauth` + * @param {Agent=} [agent] HTTP Agent для использования с Proxy */ constructor( public clientId: string, @@ -48,6 +54,7 @@ export class Auth { /** * Генерирует html-форму перенаправления пользователя на авторизацию * + * @memberof Auth * @param {AuthScope[]} scopes * @param {string=} instanceName * @return {string} @@ -68,8 +75,11 @@ export class Auth { } /** + * Обменивает временный токен на постоянный токен авторизации * - * @param {string} code Временный токен (authorization code), подлежащий обмену на постоянный токен авторизации + * @memberof Auth + * @throws {YMAuthError} + * @param {string} code Временный токен (authorization code) * @return {Promise} Токен авторизации */ async exchangeCode2Token(code: string): Promise { diff --git a/src/fetch.ts b/src/fetch.ts index 884bf3f..b75a09c 100644 --- a/src/fetch.ts +++ b/src/fetch.ts @@ -18,8 +18,8 @@ export type Agent = RequestInit["agent"]; * * @param {string} url URL адрес запроса * @param {QueryStringifiable} parameters Параметры запроса - * @param {Record=} headers Заголовки запроса - * @param {*} agent Агент запроса + * @param {Record=} [headers={}] Заголовки запроса + * @param {Agent} [agent] Агент запроса * * @return {Promise} Ответ */ diff --git a/src/index.ts b/src/index.ts index a88e020..c9bddeb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,13 +1,22 @@ -export { API as YMApi, YMApiError } from "./api"; +export { API as YMApi, API as API, YMApiError } from "./api"; export * as ymTypes from "./api.types"; -export { Auth as YMAuth, YMAuthError } from "./auth"; +export { Auth as YMAuth, Auth, YMAuthError } from "./auth"; export { NotificationChecker as YMNotificationChecker, + NotificationChecker, NotificationDTO as YMNotificationDTO, + NotificationDTO, YMNotificationError } from "./notifications"; export { FormConfig as YMFormConfig, + FormConfig, PaymentType as YMFormPaymentType, - PaymentFromBuilder as YMPaymentFromBuilder + PaymentType as FormPaymentType, + PaymentType, + PaymentFormBuilder as YMPaymentFromBuilder, + PaymentFormBuilder as YMPaymentFormBuilder, + PaymentFormBuilder as PaymentFormBuilder } from "./payment-form-builder"; + +export * as vendor from "./vendor"; diff --git a/src/kassa.ts b/src/kassa.ts index 98c8d72..468a2b2 100644 --- a/src/kassa.ts +++ b/src/kassa.ts @@ -10,13 +10,13 @@ export class Kassa { * * @param {string} merchantId * @param {string} secretKey - * @param {string} endpoint - * @param {Agent} agent + * @param {string} [endpoint="https://api.yookassa.ru/v3"] + * @param {Agent} [agent] */ constructor( public merchantId: string, public secretKey: string, - public readonly endpoint = "https://api.yookassa.ru/v3", + public readonly endpoint: string = "https://api.yookassa.ru/v3", public agent?: Agent ) {} } diff --git a/src/kassa.types.ts b/src/kassa.types.ts index 51cae65..aecedf2 100644 --- a/src/kassa.types.ts +++ b/src/kassa.types.ts @@ -1,5 +1,3 @@ -/* eslint-disable camelcase */ - import { CountryCode, Currency } from "./shared.types"; export type PaymentStatus = diff --git a/src/notifications.ts b/src/notifications.ts index bd37216..d4d1314 100644 --- a/src/notifications.ts +++ b/src/notifications.ts @@ -1,31 +1,98 @@ -/* eslint-disable camelcase */ import { createHash, timingSafeEqual } from "crypto"; import { parse } from "querystring"; import type { RequestHandler } from "express"; export type NotificationDTO = { + /** + * Для переводов из кошелька — `p2p-incoming`. + * + * Для переводов с произвольной карты — `card-incoming`. + */ notification_type: "p2p-incoming" | "card-incoming"; + + /** Идентификатор операции в истории счета получателя. */ operation_id: string; + + /** Сумма, которая зачислена на счет получателя. */ amount: number; + + /** Сумма, которая списана со счета отправителя. */ withdraw_amount: number; + + /** Код валюты — всегда `643` (рубль РФ согласно ISO 4217). */ currency: "643"; + + /** Дата и время совершения перевода. */ datetime: string; + + /** + * Для переводов из кошелька — номер кошелька отправителя. + * + * Для переводов с произвольной карты — параметр содержит пустую + * строку. + */ sender: string; + + /** + * Для переводов из кошелька — перевод защищен кодом протекции. + * + * Для переводов с произвольной карты — всегда `false`. + */ codepro: boolean; + + /** + * Метка платежа. Если ее нет, параметр содержит пустую строку. + */ label: string; + + /** SHA-1 hash параметров уведомления. */ sha1_hash: string; + test_notification: boolean; + + /** + * Перевод еще не зачислен. Получателю нужно освободить место + * в кошельке или использовать код протекции (если `codepro=true`). + */ unaccepted: boolean; + + /** Фамилия. */ lastname?: string; + + /** Имя. */ firstname?: string; + + /** Отчество. */ fathersname?: string; + + /** + * Адрес электронной почты отправителя перевода. Если почта не + * запрашивалась, параметр содержит пустую строку. + */ email?: string; + + /** + * Телефон отправителя перевода. Если телефон не запрашивался, + * параметр содержит пустую строку. + */ phone?: string; + + /** Город. */ city?: string; + + /** Улица. */ street?: string; + + /** Дом. */ building?: string; + + /** Корпус. */ suite?: string; + + /** Квартира. */ flat?: string; + + /** Индекс. */ zip?: string; }; @@ -62,18 +129,24 @@ function promise any>(function_: T) { * Класс, который реализует [механизм проверки уведомлений от 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 + * @class NotificationChecker */ export class NotificationChecker { /** - * + * Creates an instance of NotificationChecker. * @param {string} secret Секретное слово + * @memberof NotificationChecker */ constructor(private readonly secret: string) {} /** + * Проверяет полученное уведомление и возвращает типизированную версию * + * @throws {YMNotificationError} Если хеш уведомления не совпадает * @param {Object} notification Объект уведомления * @return {NotificationDTO} + * @memberof NotificationChecker */ check(notification: Record): NotificationDTO { const notificationWithSecret = { @@ -117,7 +190,7 @@ export class NotificationChecker { * * @param {Object} [options={}] Параметры обработки запроса * @param {boolean} [options.memo=true] Флаг для включения/отключения пропуска повторяющихся запросов, если один из них был успешно обработан - * + * @memberof NotificationChecker * @param {RequestHandler, any, NotificationDTO>=} actualHandler * @return {RequestHandler} * diff --git a/src/payment-form-builder.ts b/src/payment-form-builder.ts index 67a171c..aaa24f0 100644 --- a/src/payment-form-builder.ts +++ b/src/payment-form-builder.ts @@ -8,7 +8,6 @@ export const PaymentType = { FromMobileBalance: "MC" } as const; -/* eslint-disable no-useless-constructor */ export type FormConfig = { /** * Номер кошелька ЮMoney, на который нужно зачислять деньги отправителей. @@ -115,11 +114,21 @@ function convert(config: FormConfig): FormQueryObject { /** * Генерирует HTML формы для переводов + * @export + * @class PaymentFormBuilder */ -export class PaymentFromBuilder { +export class PaymentFormBuilder { /** * - * @param {FormConfig=} config Изначальные настройки формы + * Creates an instance of PaymentFormBuilder. + * @param {FormConfig} [config={ + * paymentType: "PC", + * receiver: "", + * sum: 100, + * quickPayForm: "shop", + * targets: "" + * }] Изначальные настройки формы + * @memberof PaymentFormBuilder */ constructor( public readonly config: FormConfig = { @@ -136,18 +145,19 @@ export class PaymentFromBuilder { * * @param {string} field * @return {Function} + * @private + * @memberof PaymentFromBuilder */ - private _makeSetter(field: T) { - return (value: FormConfig[T]) => { - // eslint-disable-next-line security/detect-object-injection - this.config[field] = value; - return this; - }; + private _makeSetter( + field: T + ): (value: FormConfig[T]) => this { + return (value: FormConfig[T]) => Object.defineProperty(this, field, { value }); } /** * Задаёт сумму платежа * + * @memberof PaymentFromBuilder * @param {string | number} amount Сумма * @return {this} */ @@ -159,6 +169,7 @@ export class PaymentFromBuilder { /** * Задаёт получателя платежа * + * @memberof PaymentFromBuilder * @param {string | number} receiver Получатель * @return {this} */ @@ -170,6 +181,7 @@ export class PaymentFromBuilder { /** * Задаёт URL перенаправления после успешного платежа * + * @memberof PaymentFromBuilder * @param {string | URL} url URL * @return {this} */ @@ -189,7 +201,8 @@ export class PaymentFromBuilder { /** * - * @param {boolean} doRequire + * @memberof PaymentFromBuilder + * @param {boolean} [doRequire=true] * @return {this} */ requireFio(doRequire = true): this { @@ -199,7 +212,8 @@ export class PaymentFromBuilder { /** * - * @param {boolean} doRequire + * @memberof PaymentFromBuilder + * @param {boolean} [doRequire=true] * @return {this} */ requireAddress(doRequire = true): this { @@ -209,7 +223,8 @@ export class PaymentFromBuilder { /** * - * @param {boolean} doRequire + * @memberof PaymentFromBuilder + * @param {boolean} [doRequire=true] * @return {this} */ requireEmail(doRequire = true): this { @@ -218,8 +233,8 @@ export class PaymentFromBuilder { } /** - * - * @param {boolean} doRequire + * @memberof PaymentFromBuilder + * @param {boolean} [doRequire=true] * @return {this} */ requirePhone(doRequire = true): this { @@ -229,7 +244,8 @@ export class PaymentFromBuilder { /** * Генерирует HTML на основе заданных параметров - * @param {boolean} fullPage + * @memberof PaymentFromBuilder + * @param {boolean} [fullPage=false] * @return {string} */ buildHtml(fullPage = false): string { diff --git a/src/vendor.ts b/src/vendor.ts new file mode 100644 index 0000000..faf2134 --- /dev/null +++ b/src/vendor.ts @@ -0,0 +1,34 @@ +import { NotificationChecker, NotificationDTO } from "./notifications"; + +/** + * + * + * @export + * @class MultiProcessor + * @template T + */ +export class MultiProcessor { + /** + * Creates an instance of MultiProcessor. + * @param {Function} _resolveSecret + * @memberof MultiProcessor + */ + constructor(private readonly _resolveSecret: (label: string) => Promise) {} + + /** + * + * + * @param {NotificationDTO} notification + * @return {Promise<[NotificationDTO, T]>} + * @memberof MultiProcessor + */ + async process( + notification: Record + ): Promise<[nf: NotificationDTO, receiver: T]> { + const receiver = await this._resolveSecret(notification.label); + const checker = new NotificationChecker(receiver.secret); + const result = checker.check(notification); + + return [result, receiver]; + } +} diff --git a/yarn.lock b/yarn.lock index c9da377..e6063c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -727,9 +727,9 @@ form-data "^3.0.0" "@types/node@*": - version "16.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" - integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== + version "16.11.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" + integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -3223,9 +3223,9 @@ nwsapi@^2.2.0: integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + version "1.11.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" + integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1"