diff --git a/.auto-changelog b/.auto-changelog new file mode 100644 index 0000000..7e742ff --- /dev/null +++ b/.auto-changelog @@ -0,0 +1,15 @@ +{ + "output": "README.md", + "template": "changelog-template.md", + "unreleased": false, + "release-summary": false, + "commitLimit": false, + "replaceText": { + "(^\\+)(.*)": "$2", + "(^feature/)(.*)": "$2", + "(^fix/)(.*)": "$2" + }, + "includeBranch": [ + "master" + ] +} diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..3063f07 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +lib +node_modules diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..30eebf4 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,26 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + sourceType: 'module' + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended' + ], + root: true, + env: { + node: true, + jest: true + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + 'prettier/prettier': ['error', {'endOfLine': 'lf'}], + '@typescript-eslint/ban-ts-comment': 'off', + } +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7d07d70 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=lf diff --git a/.gitignore b/.gitignore index 9a98dbd..b221e3b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,8 @@ node_modules -.npmignore \ No newline at end of file +.npmignore +/.idea/codeStyles/codeStyleConfig.xml +/.idea/codeStyles/Project.xml +/.idea/inspectionProfiles/Project_Default.xml +/.idea/jsLibraryMappings.xml +/.idea/vcs.xml +/.idea/workspace.xml diff --git a/.onever.json b/.onever.json new file mode 100644 index 0000000..41f85f4 --- /dev/null +++ b/.onever.json @@ -0,0 +1,6 @@ +{ + "version": "0.1.14", + "packages": [ + "package.json" + ] +} \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..efa4bf7 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,9 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "arrowParens": "always", + "bracketSpacing": true, + "semi": false, + "tabWidth": 2, + "useTabs": true +} diff --git a/LICENSE b/LICENSE index 2708307..56d4bf1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,7 @@ MIT License Copyright (c) 2020 Oleg Polyakov +Copyright (c) 2023 Andrey Zolotarev (Typescript version) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/README.md b/README.md index 82ab470..8a48d99 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# YooKassa API для Node.js +# Yookassa API для Node.js -Клиент для работы с платежами по API YooKassa. Подходит тем, у кого способ подключения называется API. +Клиент для работы с платежами по API Yookassa. Подходит тем, у кого способ подключения называется API. ## Требования @@ -10,32 +10,32 @@ ## Установка ```sh -npm i yookassa +npm i yookassa-ts ``` ## Начало работы ```js -const YooKassa = require('yookassa'); +import YooKassa from 'yookassa-ts/lib/yookassa' -const yooKassa = new YooKassa({ - shopId: '<Идентификатор магазина>', - secretKey: '<Секретный ключ>' +const yooKassa = new Yookassa({ +shopId: '<Идентификатор магазина>', +secretKey: '<Секретный ключ>' }); const payment = await yooKassa.createPayment({ - amount: { - value: "2.00", - currency: "RUB" - }, - payment_method_data: { - type: "bank_card" - }, - confirmation: { - type: "redirect", - return_url: "https://www.merchant-website.com/return_url" - }, - description: "Заказ №72" +amount: { +value: "2.00", +currency: "RUB" +}, +payment_method_data: { +type: "bank_card" +}, +confirmation: { +type: "redirect", +return_url: "https://www.merchant-website.com/return_url" +}, +description: "Заказ №72" }); ``` @@ -50,7 +50,6 @@ const payment = await yooKassa.createPayment({ | `createRefund` | [Создание возврата](https://yookassa.ru/developers/api#create_refund) | | `getRefund` | [Информация о возврате](https://yookassa.ru/developers/api#get_refund) | - ## API платежа ### Свойства @@ -64,7 +63,6 @@ const payment = await yooKassa.createPayment({ | `isResolved` | Равен ли статус платежа `succeeded` или `canceled` | | `confirmationUrl` | URL для подтверждения | - ### Методы | Название | Аргументы | Описание | @@ -74,11 +72,87 @@ const payment = await yooKassa.createPayment({ | `cancel` | | Отменить платеж | | `refund` | amount | Вернуть платеж | - ## API возврата ### Методы | Название | Аргументы | Описание | | --- | --- | --- | -| `reload` | | Получить информацию о возврате | \ No newline at end of file +| `reload` | | Получить информацию о возврате | + +## История версий +``` +0.1.14 @ 24 May 2023 +- Fix usage tips in README +- Upgrade app version to 0.1.14 + +0.1.13 @ 22 May 2023 +- Upgrade app version to 0.1.13 +- Release version 0.1.13 +- Fix non required idempotenceKey for createPayment method + +0.1.12 @ 22 May 2023 +- Release version 0.1.12 +- Upgrade app version to 0.1.12 + +0.1.11 @ 22 May 2023 +- Upgrade app version to 0.1.11 +- Release version 0.1.11 +- Fix publish script + +0.1.10 @ 22 May 2023 +- Upgrade app version to 0.1.8 +- Release version 0.1.9 +- Fix publish script +- Release version 0.1.10 +- Upgrade app version to 0.1.10 +- Upgrade app version to 0.1.9 +- Fix publish script +- Fix publish script + +0.1.7 @ 22 May 2023 +- Fix publish script +- Upgrade app version + +0.1.6 @ 22 May 2023 +- Upgrade app version + +0.1.5 @ 22 May 2023 +- Upgrade app version + +0.1.4 @ 22 May 2023 +- Fix bank_card structure +- Upgrade app version + +0.1.3 @ 21 May 2023 +- Fix publish +- Fix Amount types +- Add new build +- Upgrade app version + +0.1.2 @ 21 May 2023 +- Initial commit +- Restore original logics with injected typings +- WIP: Add almost all of used types, enums and annotations +- Initial commit +- Fix typings in main module, add publish script and changelog +- Fix publish script +- Update Readme +- Refactor YooKassa class +- Fix version +- Upgrade app version +- Fix publish script +- Fix publish script +- Update version +- Update README.md + +``` + +## Контакты + +Почта: [dev@its.bz](mailto:dev@its.bz)\ +Сайт: [its.bz](https://its.bz) + +## Лицензия + +MIT diff --git a/changelog-template.md b/changelog-template.md new file mode 100644 index 0000000..c9889bb --- /dev/null +++ b/changelog-template.md @@ -0,0 +1,101 @@ +# Yookassa API для Node.js + +Клиент для работы с платежами по API Yookassa. Подходит тем, у кого способ подключения называется API. + +## Требования + +1. Node.js +2. npm + +## Установка + +```sh +npm i yookassa-ts +``` + +## Начало работы + +```js +import YooKassa from 'yookassa-ts/lib/yookassa' + +const yooKassa = new Yookassa({ + shopId: '<Идентификатор магазина>', + secretKey: '<Секретный ключ>' +}); + +const payment = await yooKassa.createPayment({ + amount: { + value: "2.00", + currency: "RUB" + }, + payment_method_data: { + type: "bank_card" + }, + confirmation: { + type: "redirect", + return_url: "https://www.merchant-website.com/return_url" + }, + description: "Заказ №72" +}); +``` + +## API кассы + +| Метод | Описание | +| --- | --- | +| `createPayment` | [Создание платежа](https://yookassa.ru/developers/api#create_payment) | +| `getPayment` | [Информация о платеже](https://yookassa.ru/developers/api#get_payment) | +| `capturePayment` | [Подтверждение платежа](https://yookassa.ru/developers/api#capture_payment) | +| `cancelPayment` | [Отмена платежа](https://yookassa.ru/developers/api#cancel_payment) | +| `createRefund` | [Создание возврата](https://yookassa.ru/developers/api#create_refund) | +| `getRefund` | [Информация о возврате](https://yookassa.ru/developers/api#get_refund) | + + +## API платежа + +### Свойства + +| Название | Описание | +| --- | --- | +| `isPending` | Равен ли статус платежа `pending` | +| `isWaitingForCapture` | Равен ли статус платежа `waiting_for_capture` | +| `isSucceeded` | Равен ли статус платежа `succeeded` | +| `isCanceled` | Равен ли статус платежа `canceled` | +| `isResolved` | Равен ли статус платежа `succeeded` или `canceled` | +| `confirmationUrl` | URL для подтверждения | + + +### Методы + +| Название | Аргументы | Описание | +| --- | --- | --- | +| `reload` | | Получить информацию о платеже | +| `capture` | amount | Подтвердить платеж | +| `cancel` | | Отменить платеж | +| `refund` | amount | Вернуть платеж | + + +## API возврата + +### Методы + +| Название | Аргументы | Описание | +| --- | --- | --- | +| `reload` | | Получить информацию о возврате | + +## История версий +``` +{{#each releases}}{{title}} @ {{niceDate}}{{#commits}} + - {{subject}}{{/commits}} + +{{/each}} +``` + +## Контакты + +Почта: [dev@its.bz](mailto:dev@its.bz)\ +Сайт: [its.bz](https://its.bz) + +## Лицензия + +MIT diff --git a/index.js b/index.js deleted file mode 100644 index 4cc88b3..0000000 --- a/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib'); \ No newline at end of file diff --git a/lib/index.d.ts b/lib/index.d.ts new file mode 100644 index 0000000..6840a5a --- /dev/null +++ b/lib/index.d.ts @@ -0,0 +1 @@ +export * from './yookassa'; diff --git a/lib/index.js b/lib/index.js index 78faac8..c1c8b7c 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1 +1,18 @@ -module.exports = require('./yookassa'); \ No newline at end of file +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./yookassa"), exports); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/index.js.map b/lib/index.js.map new file mode 100644 index 0000000..67f1ded --- /dev/null +++ b/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B"} \ No newline at end of file diff --git a/lib/payment-error.d.ts b/lib/payment-error.d.ts new file mode 100644 index 0000000..afd3221 --- /dev/null +++ b/lib/payment-error.d.ts @@ -0,0 +1,4 @@ +export default class PaymentError extends Error { + private parameter; + constructor(error: Error); +} diff --git a/lib/payment-error.js b/lib/payment-error.js index 114b937..76551ba 100644 --- a/lib/payment-error.js +++ b/lib/payment-error.js @@ -1,19 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); class PaymentError extends Error { constructor(error) { super(error.message); - if (Error.captureStackTrace) { Error.captureStackTrace(this, PaymentError); - } else { - this.stack = (new Error()).stack; } - + else { + this.stack = new Error().stack; + } this.name = 'PaymentError'; - this.message = error.description; - this.id = error.id; - this.code = error.code; - this.parameter = error.parameter; + this.message = error.message; } } - -module.exports = PaymentError; \ No newline at end of file +exports.default = PaymentError; +//# sourceMappingURL=payment-error.js.map \ No newline at end of file diff --git a/lib/payment-error.js.map b/lib/payment-error.js.map new file mode 100644 index 0000000..016ddd0 --- /dev/null +++ b/lib/payment-error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"payment-error.js","sourceRoot":"","sources":["../src/payment-error.ts"],"names":[],"mappings":";;AAAA,MAAqB,YAAa,SAAQ,KAAK;IAE9C,YAAY,KAAY;QACvB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEpB,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;SAC3C;aAAM;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAA;SAC9B;QAED,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,CAAC;CACD;AAdD,+BAcC"} \ No newline at end of file diff --git a/lib/payment.d.ts b/lib/payment.d.ts new file mode 100644 index 0000000..01e41f0 --- /dev/null +++ b/lib/payment.d.ts @@ -0,0 +1,39 @@ +import { IConfirmation, IPayment, PaymentStatusEnum } from './types/Payment'; +import { IAmount } from './types/Common'; +import { IPaymentMethod } from './types/PaymentMethod'; +import { ReceiptRegistrationEnum } from './types/Receipt'; +import YooKassa from './yookassa'; +export default class Payment implements IPayment { + _instance: YooKassa; + amount: IAmount; + captured_at: string; + confirmation: IConfirmation; + created_at: string; + description: string; + expires_at: string; + id: string; + income_amount: IAmount; + metadata: object; + paid: boolean; + payment_method: IPaymentMethod; + receipt_registration: ReceiptRegistrationEnum; + recipient: { + account_id: string; + gateway_id: string; + }; + refundable: boolean; + refunded_amount: IAmount; + status: PaymentStatusEnum; + test: boolean; + constructor(instance: YooKassa, data: Payment); + get isPending(): boolean; + get isWaitingForCapture(): boolean; + get isSucceeded(): boolean; + get isCanceled(): boolean; + get isResolved(): boolean; + get confirmationUrl(): string; + reload(): Promise; + capture(amount: IAmount): Promise; + cancel(): Promise; + refund(amount: IAmount): Promise; +} diff --git a/lib/payment.js b/lib/payment.js index 36477a0..263f309 100644 --- a/lib/payment.js +++ b/lib/payment.js @@ -1,125 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Payment_1 = require("./types/Payment"); class Payment { - /** - * Платеж создан, но не завершен - */ - static PENDING = 'pending'; - - /** - * Платеж завершен и ожидает ваших действий - */ - static WAITING_FOR_CAPTURE = 'waiting_for_capture'; - - /** - * Платеж успешно завершен, деньги придут на ваш расчетный счет - */ - static SUCCEEDED = 'succeeded'; - - /** - * Платеж отменен - */ - static CANCELED = 'canceled'; - constructor(instance, data) { Object.assign(this, data, { _instance: instance }); } - - /** - * Is payment pending - * @see https://kassa.yandex.ru/docs/guides/#platezhi - * @returns {Boolean} - */ get isPending() { - return this.status === Payment.PENDING; + return this.status === Payment_1.PaymentStatusEnum.PENDING; } - - /** - * Is payment waiting for capture - * @see https://kassa.yandex.ru/docs/guides/#platezhi - * @returns {Boolean} - */ get isWaitingForCapture() { - return this.status === Payment.WAITING_FOR_CAPTURE; + return this.status === Payment_1.PaymentStatusEnum.WAITING_FOR_CAPTURE; } - - /** - * Is payment succeeded - * @see https://kassa.yandex.ru/docs/guides/#platezhi - * @returns {Boolean} - */ get isSucceeded() { - return this.status === Payment.SUCCEEDED; + return this.status === Payment_1.PaymentStatusEnum.SUCCEEDED; } - - /** - * Is payment canceled - * @see https://kassa.yandex.ru/docs/guides/#platezhi - * @returns {Boolean} - */ get isCanceled() { - return this.status === Payment.CANCELED; + return this.status === Payment_1.PaymentStatusEnum.CANCELED; } - - /** - * Is payment succeeded or canceled - * @see https://kassa.yandex.ru/docs/guides/#platezhi - * @returns {Boolean} - */ get isResolved() { - return ( - this.status === Payment.SUCCEEDED || - this.status === Payment.CANCELED - ); + return (this.status === Payment_1.PaymentStatusEnum.SUCCEEDED || + this.status === Payment_1.PaymentStatusEnum.CANCELED); } - get confirmationUrl() { - return this.confirmation ? this.confirmation.confirmation_url : undefined; + return this.confirmation && + this.confirmation.type === Payment_1.ConfirmationTypesEnum.redirect + ? this.confirmation.confirmation_url + : undefined; } - - /** - * Retrieve payment info - * @returns {Promise} - */ reload() { - return this._instance.getPayment(this.id) - .then(data => { - Object.assign(this, data); - return true; - }); + return this._instance.getPayment(this.id).then((data) => { + Object.assign(this, data); + return true; + }); } - - /** - * Capture payment - * @param amount - * @returns {*} - */ capture(amount) { - return this._instance.capturePayment(this.id, amount || this.amount) - .then(data => { - Object.assign(this, data); - return true; - }); + return this._instance + .capturePayment(this.id, amount || this.amount) + .then((data) => { + Object.assign(this, data); + return true; + }); } - - /** - * Cancel Payment - * @returns {*} - */ cancel() { - return this._instance.cancelPayment(this.id) - .then(data => { - Object.assign(this, data); - return true; - }); + return this._instance.cancelPayment(this.id).then((data) => { + Object.assign(this, data); + return true; + }); } - - /** - * Create refund - * @param amount - * @returns {*|Promise.} - */ refund(amount) { return this._instance.createRefund(this.id, amount || this.amount); } } - -module.exports = Payment; \ No newline at end of file +exports.default = Payment; +//# sourceMappingURL=payment.js.map \ No newline at end of file diff --git a/lib/payment.js.map b/lib/payment.js.map new file mode 100644 index 0000000..528bbfe --- /dev/null +++ b/lib/payment.js.map @@ -0,0 +1 @@ +{"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":";;AAAA,6CAKwB;AAMxB,MAAqB,OAAO;IAoB3B,YAAY,QAAkB,EAAE,IAAa;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAOD,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,KAAK,2BAAiB,CAAC,OAAO,CAAA;IACjD,CAAC;IAOD,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,MAAM,KAAK,2BAAiB,CAAC,mBAAmB,CAAA;IAC7D,CAAC;IAOD,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,KAAK,2BAAiB,CAAC,SAAS,CAAA;IACnD,CAAC;IAOD,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,MAAM,KAAK,2BAAiB,CAAC,QAAQ,CAAA;IAClD,CAAC;IAOD,IAAI,UAAU;QACb,OAAO,CACN,IAAI,CAAC,MAAM,KAAK,2BAAiB,CAAC,SAAS;YAC3C,IAAI,CAAC,MAAM,KAAK,2BAAiB,CAAC,QAAQ,CAC1C,CAAA;IACF,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,+BAAqB,CAAC,QAAQ;YACzD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB;YACpC,CAAC,CAAC,SAAS,CAAA;IACb,CAAC;IAMD,MAAM;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CAAA;IACH,CAAC;IAOD,OAAO,CAAC,MAAe;QACtB,OAAO,IAAI,CAAC,SAAS;aACnB,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;aAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAMD,MAAM;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CAAA;IACH,CAAC;IAOD,MAAM,CAAC,MAAe;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;IACnE,CAAC;CACD;AA3HD,0BA2HC"} \ No newline at end of file diff --git a/lib/refund.d.ts b/lib/refund.d.ts new file mode 100644 index 0000000..97ccc2f --- /dev/null +++ b/lib/refund.d.ts @@ -0,0 +1,7 @@ +import YooKassa from './yookassa'; +export default class Refund { + _instance: YooKassa; + id: string; + constructor(instance: any, data: any); + reload(): Promise; +} diff --git a/lib/refund.js b/lib/refund.js index 99eca2e..cca570f 100644 --- a/lib/refund.js +++ b/lib/refund.js @@ -1,15 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); class Refund { constructor(instance, data) { Object.assign(this, data, { _instance: instance }); } - reload() { - return this._instance.getRefund(this.id) - .then(data => { - Object.assign(this, data); - return true; - }); + return this._instance.getRefund(this.id).then((data) => { + Object.assign(this, data); + return true; + }); } } - -module.exports = Refund; \ No newline at end of file +exports.default = Refund; +//# sourceMappingURL=refund.js.map \ No newline at end of file diff --git a/lib/refund.js.map b/lib/refund.js.map new file mode 100644 index 0000000..bcfbce6 --- /dev/null +++ b/lib/refund.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refund.js","sourceRoot":"","sources":["../src/refund.ts"],"names":[],"mappings":";;AAEA,MAAqB,MAAM;IAG1B,YAAY,QAAQ,EAAE,IAAI;QACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAbD,yBAaC"} \ No newline at end of file diff --git a/lib/tsconfig.tsbuildinfo b/lib/tsconfig.tsbuildinfo new file mode 100644 index 0000000..ed5cf19 --- /dev/null +++ b/lib/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/typescript/lib/lib.es2017.full.d.ts","../node_modules/axios/index.d.ts","../src/types/common.ts","../src/types/paymentmethod.ts","../src/types/receipt.ts","../src/types/payment.ts","../src/payment.ts","../src/refund.ts","../src/payment-error.ts","../src/utils.ts","../src/yookassa.ts","../src/index.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"9a60b92bca4c1257db03b349d58e63e4868cfc0d1c8d0ba60c2dbc63f4e6c9f6","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"994c234848afc14a2586b6565777f4c0b05dc479ede0a041bfd5becf6dceb586","1d729ea435a93e1a70519d06a6f13fa418c4c39a52b69e6db86750ebfcdf5554",{"version":"7b66f90e4fa19d2b384e4390cc2c17ee2280b6553268545ef3563c41e5645566","signature":"5e636b2cdacde882a5a3d5bedd0492daf100ef3057197a447a4d57935f103d91"},{"version":"4719445496c1452ba7b6f39194a6e69ed096e253a624713cc6ec90b17c98cee6","signature":"df37150926b6ebd8ae38a28984905186b7d02ba7d6c22d42f4223182d8e03bd2"},{"version":"0dd51b8bdac592e1b75290b4ad4076b4df8aea17d252b793044fcacbf36bea06","signature":"4d2a767d3801c66969575112379157b42cc66d10ac27d8c0f38e0f33406c301e"},{"version":"43ee356dc79497267cebc3928742bb90f335a35162f9d3fc28ea826c7ee3d0d5","signature":"5aeec98c4ab8284979271bcd65ac30fa1e10ee41777832e5ad1b3a4ae8446e6c"},{"version":"a2429296ac15034ead8ffaf71c003d3c6f1b5ac878b82dea4cf575bce80a24aa","signature":"85e7f40da616b0cc783cc157a8b60d54afecd9d1b320c920b5400a3397edbb7f"},{"version":"0e647927df7876a8f63cdf51463a4a3040a01da38b02ae9d706725175435018f","signature":"84fe45fd5dc6440c7146defaea0133e38eaff0c351b6f37c27a3b62d651ee831"},{"version":"3c90fac8971130da2a67e271d35f8ecdd4f0ef21e2652c022c00032d519a6eb5","signature":"27a6b1c77392ee1821dc3867632f2f40b56437ed075d7d18803cd0e279782b23"},{"version":"56efffcc0405e340a985f59061053472b091a89da58466c97628855aace9326d","signature":"59765676d7005a6139fe321e1e09a1ca39b2d0bbd39a19708acb5c69ebefeb09"},{"version":"3fb90ea9941967e070064a3d7f8afd0bdac620794e7d5e9c1c17ca0840a9b445","signature":"f1c4e790aaf17cfed313b65c563dd8f3efa67465de246f3c3331cfe137adabfd"},{"version":"ec9a3c868922ec788a872ba662b728adc94317fb87ecea518997bd0b1ecb9247","signature":"11c4482976bf72e020a806f25830a6b0e50ca261432299633dfdb0e54498bbff"},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","66a6e7b6e32eea099615d627028ed0d681679e31237df03e68e1b912e3e61da0","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true},"fd536fe411f46ae62c4729e342a3494adbdd54335e41039c238170c9781da9ff",{"version":"772ff00e189d93488d1ca6f0f4dfba77bd090a99ed31e19a14bc16fad4078e48","affectsGlobalScope":true},"d9b1fa0da9fbff85402c3ee794bcfe6d7cfef2fa053761b7d83989cdb7f9b26d","ac0c7cb0a4c1bec60be2c0460b3bda1e674eaf2c98312d7b6f16a0bb58718e2d",{"version":"7e2181a6fc140b4525d5a45c204477c37fa78a635558e88552c68f76a4325403","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","6a6bfa45d3ed96dea1ad653444fb26ddaa9245d2e2d6ddaab050cb9a2c0936d7","276b547eeb8eeeee9a446a3bfa6e07d1c0199269bdcf33813abab1281394a9cb","c999f7816955f75b447823e3e4085f699600e2a4a3327907df9af65b0a9c0df6","958df89fdcf5555cdfd57a14037e05505048dd29c59e8009bea279b65523b241","ffa8324a4c0611f9a50262fb36f097eeabe0fa0d71755aa67156da13cde1b932","9b814e0806922056145bedb096f11b73bdce70cc871f3ccfc4ce00b2cba75718",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"be3d24f3fd8c85fedd91485b207d180f14ac2602805b52f6a33462ada14c27b0","affectsGlobalScope":true},"e58cfbe7db26c2077027662ef6c87a3cf9d721717e77ecaa98c4d8d7911b3299","2ad6a251b6ef19fd1f8498f83bb7b265033bd52287e1f6569d09544f18806713","bfa08f2c30c475aef1c9451855ba6b2acfdc64f61950a38fae75806d66fb85c2","159807eb55a9439f9a675bd493788190a6203b5f36c315f8c3acbfcb875c7072","fe31b2b31ac5453fc7b8eef32b62017e55b214ceb884f0b177f442af92e84682","dd72576c8ea64d55af46a386068503d3cfcecce84ed7e1cbd4ff4081ba67fafc",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"70a7e8a7880d55396285e4b85ff5bdf3af3083176abe07f944967836f2a43188","3570df7c6f3a976109f55b596a2d88c2f87e0574cd1502272594ee5c4e56d0ef","850e95721334c2aa7697b08782f443ec4286274e5024169d4443933544f359d7",{"version":"74e6cd21f7b5e29fab05060ea24e2b90aa254f16f3f62ccd7055bdb8fc7b2ff5","affectsGlobalScope":true},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true},"1eb6c5569d41e6021832d0a8a71f45fecbc13d03ad7d306da485999148b64955","c05ef0ecf06540ad3039515c10d3b27f9380639ced40f4093fd073e1b5ff21d9","c774096c5935712de41c763e3c08a04b7a788a85fb07a0c2df23fb5ace3bc610","2b847f2aba41dcd69677684d5d300c08aea4e306c305fd39bf548cef19f03cfe","f4c0cbc93eb51fd61e07a86111739770dd524f6297bd83266ff004aec553e085","9a134dbb29f0af914d90b23f609b39019d66ed53db7d492ab6b04c67114559da","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","7b3781fbdfddbee8dba55ccee5aa74a7c8d6701ade11d49ab7d8cb1fcefe669e","c4aab2ec3a249f2a4caa9cbdb099752a80daf999b79d85aa3504cdfd6e559476",{"version":"2cff47e15621f3055af1df1547426f833c9d0a571750c4f0659836f45c50fe0a","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","c764a6cf523d13f2304a23216cd1084e28c041eebabd8aa9b2a9d99866c668c0","1272a5c2bd05961adc473e905332b7a422b00485c10b41c752f7fcf6835e3436","30ef92bf8135ce36ba1231fe41715276f2a40be72a478ddeb862bc16672e8680",{"version":"4ace0a30a70fe5963442d75ea6e69f525671ae76f6e57ab7556c44839b4237e8","affectsGlobalScope":true},{"version":"a6f03dbf03c001fb3ac1c9bea6dde049dfff27ef8886cc4a886374aacf2e997d","affectsGlobalScope":true},"66bfb3de947abf4b117ee849c245425dbe494d6903e28f9ded566e91c9d05d77","c28d4f58131b93d60e087b86148d4e0c9d9b5c49c23ff1a9d1a9594fdedd5d08","c6b5d7f259544c91024ecf2b17138574a3f6ff2476468fafd7f957d2b68d6d98",{"version":"1ec27c4b695590464113276d174f873e260e468ef226b7dc18f9193875fa559d","affectsGlobalScope":true},"33da4ee2ab9fdd9ef8b3fc526d871ce02ae8c825283f5695e7cad507c087b97c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"71709584ed5ed7d236dc225441ec4634ffc6c718853e04b9c27b9ea121459044","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","b9f96255e1048ed2ea33ec553122716f0e57fc1c3ad778e9aa15f5b46547bd23","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","a1a261624efb3a00ff346b13580f70f3463b8cdcc58b60f5793ff11785d52cab"],"root":[[50,59]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"target":4},"fileIdsList":[[107],[61,107],[64,107],[65,70,98,107],[66,77,78,85,95,106,107],[66,67,77,85,107],[68,107],[69,70,78,86,107],[70,95,103,107],[71,73,77,85,107],[72,107],[73,74,107],[77,107],[75,77,107],[77,78,79,95,106,107],[77,78,79,92,95,98,107],[107,111],[73,77,80,85,95,106,107],[77,78,80,81,85,95,103,106,107],[80,82,95,103,106,107],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],[77,83,107],[84,106,107],[73,77,85,95,107],[86,107],[87,107],[64,88,107],[89,105,107,111],[90,107],[91,107],[77,92,93,107],[92,94,107,109],[65,77,95,96,97,98,107],[65,95,97,107],[95,96,107],[98,107],[99,107],[95,107],[77,101,102,107],[101,102,107],[70,85,95,103,107],[104,107],[85,105,107],[65,80,91,106,107],[70,107],[95,107,108],[107,109],[107,110],[65,70,77,79,88,95,106,107,109,111],[95,107,112],[107,115,154],[107,115,139,154],[107,154],[107,115],[107,115,140,154],[107,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153],[107,140,154],[58,107],[50,51,52,53,58,107],[50,51,52,107],[50,107],[49,50,53,54,55,56,57,107],[58],[50,51,52,53,55,58],[50,51,52],[50],[50,53,54,55]],"referencedMap":[[60,1],[61,2],[62,2],[64,3],[65,4],[66,5],[67,6],[68,7],[69,8],[70,9],[71,10],[72,11],[73,12],[74,12],[76,13],[75,14],[77,13],[78,15],[79,16],[63,17],[113,1],[80,18],[81,19],[82,20],[114,21],[83,22],[84,23],[85,24],[86,25],[87,26],[88,27],[89,28],[90,29],[91,30],[92,31],[93,31],[94,32],[95,33],[97,34],[96,35],[98,36],[99,37],[100,38],[101,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[108,46],[109,47],[110,48],[111,49],[112,50],[139,51],[140,52],[115,53],[118,53],[137,51],[138,51],[128,51],[127,54],[125,51],[120,51],[133,51],[131,51],[135,51],[119,51],[132,51],[136,51],[121,51],[122,51],[134,51],[116,51],[123,51],[124,51],[126,51],[130,51],[141,55],[129,51],[117,51],[154,56],[153,1],[148,55],[150,57],[149,55],[142,55],[143,55],[145,55],[147,55],[151,57],[152,57],[144,57],[146,57],[49,1],[46,1],[47,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[48,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1],[59,58],[56,1],[54,59],[55,58],[50,1],[53,60],[51,61],[52,61],[57,1],[58,62]],"exportedModulesMap":[[60,1],[61,2],[62,2],[64,3],[65,4],[66,5],[67,6],[68,7],[69,8],[70,9],[71,10],[72,11],[73,12],[74,12],[76,13],[75,14],[77,13],[78,15],[79,16],[63,17],[113,1],[80,18],[81,19],[82,20],[114,21],[83,22],[84,23],[85,24],[86,25],[87,26],[88,27],[89,28],[90,29],[91,30],[92,31],[93,31],[94,32],[95,33],[97,34],[96,35],[98,36],[99,37],[100,38],[101,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[108,46],[109,47],[110,48],[111,49],[112,50],[139,51],[140,52],[115,53],[118,53],[137,51],[138,51],[128,51],[127,54],[125,51],[120,51],[133,51],[131,51],[135,51],[119,51],[132,51],[136,51],[121,51],[122,51],[134,51],[116,51],[123,51],[124,51],[126,51],[130,51],[141,55],[129,51],[117,51],[154,56],[153,1],[148,55],[150,57],[149,55],[142,55],[143,55],[145,55],[147,55],[151,57],[152,57],[144,57],[146,57],[49,1],[46,1],[47,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[48,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1],[59,63],[54,64],[55,63],[53,65],[51,66],[52,66],[58,67]],"semanticDiagnosticsPerFile":[60,61,62,64,65,66,67,68,69,70,71,72,73,74,76,75,77,78,79,63,113,80,81,82,114,83,84,85,86,87,88,89,90,91,92,93,94,95,97,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,139,140,115,118,137,138,128,127,125,120,133,131,135,119,132,136,121,122,134,116,123,124,126,130,141,129,117,154,153,148,150,149,142,143,145,147,151,152,144,146,49,46,47,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,48,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,59,56,54,55,50,53,51,52,57,58]},"version":"5.0.4"} \ No newline at end of file diff --git a/lib/types/Common.d.ts b/lib/types/Common.d.ts new file mode 100644 index 0000000..b76c14b --- /dev/null +++ b/lib/types/Common.d.ts @@ -0,0 +1,129 @@ +export declare enum LocaleEnum { + ru_RU = "ru_RU", + en_US = "en_US" +} +export declare enum CurrencyEnum { + USD = "USD", + CAD = "CAD", + EUR = "EUR", + AED = "AED", + AFN = "AFN", + ALL = "ALL", + AMD = "AMD", + ARS = "ARS", + AUD = "AUD", + AZN = "AZN", + BAM = "BAM", + BDT = "BDT", + BGN = "BGN", + BHD = "BHD", + BIF = "BIF", + BND = "BND", + BOB = "BOB", + BRL = "BRL", + BWP = "BWP", + BYN = "BYN", + BZD = "BZD", + CDF = "CDF", + CHF = "CHF", + CLP = "CLP", + CNY = "CNY", + COP = "COP", + CRC = "CRC", + CVE = "CVE", + CZK = "CZK", + DJF = "DJF", + DKK = "DKK", + DOP = "DOP", + DZD = "DZD", + EEK = "EEK", + EGP = "EGP", + ERN = "ERN", + ETB = "ETB", + GBP = "GBP", + GEL = "GEL", + GHS = "GHS", + GNF = "GNF", + GTQ = "GTQ", + HKD = "HKD", + HNL = "HNL", + HRK = "HRK", + HUF = "HUF", + IDR = "IDR", + ILS = "ILS", + INR = "INR", + IQD = "IQD", + IRR = "IRR", + ISK = "ISK", + JMD = "JMD", + JOD = "JOD", + JPY = "JPY", + KES = "KES", + KHR = "KHR", + KMF = "KMF", + KRW = "KRW", + KWD = "KWD", + KZT = "KZT", + LBP = "LBP", + LKR = "LKR", + LTL = "LTL", + LVL = "LVL", + LYD = "LYD", + MAD = "MAD", + MDL = "MDL", + MGA = "MGA", + MKD = "MKD", + MMK = "MMK", + MOP = "MOP", + MUR = "MUR", + MXN = "MXN", + MYR = "MYR", + MZN = "MZN", + NAD = "NAD", + NGN = "NGN", + NIO = "NIO", + NOK = "NOK", + NPR = "NPR", + NZD = "NZD", + OMR = "OMR", + PAB = "PAB", + PEN = "PEN", + PHP = "PHP", + PKR = "PKR", + PLN = "PLN", + PYG = "PYG", + QAR = "QAR", + RON = "RON", + RSD = "RSD", + RUB = "RUB", + RWF = "RWF", + SAR = "SAR", + SDG = "SDG", + SEK = "SEK", + SGD = "SGD", + SOS = "SOS", + SYP = "SYP", + THB = "THB", + TND = "TND", + TOP = "TOP", + TRY = "TRY", + TTD = "TTD", + TWD = "TWD", + TZS = "TZS", + UAH = "UAH", + UGX = "UGX", + UYU = "UYU", + UZS = "UZS", + VEF = "VEF", + VND = "VND", + XAF = "XAF", + XOF = "XOF", + YER = "YER", + ZAR = "ZAR", + ZMK = "ZMK", + ZWL = "ZWL" +} +export interface IAmount { + value: string; + currency: CurrencyEnum; +} diff --git a/lib/types/Common.js b/lib/types/Common.js new file mode 100644 index 0000000..f2902a2 --- /dev/null +++ b/lib/types/Common.js @@ -0,0 +1,131 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CurrencyEnum = exports.LocaleEnum = void 0; +var LocaleEnum; +(function (LocaleEnum) { + LocaleEnum["ru_RU"] = "ru_RU"; + LocaleEnum["en_US"] = "en_US"; +})(LocaleEnum = exports.LocaleEnum || (exports.LocaleEnum = {})); +var CurrencyEnum; +(function (CurrencyEnum) { + CurrencyEnum["USD"] = "USD"; + CurrencyEnum["CAD"] = "CAD"; + CurrencyEnum["EUR"] = "EUR"; + CurrencyEnum["AED"] = "AED"; + CurrencyEnum["AFN"] = "AFN"; + CurrencyEnum["ALL"] = "ALL"; + CurrencyEnum["AMD"] = "AMD"; + CurrencyEnum["ARS"] = "ARS"; + CurrencyEnum["AUD"] = "AUD"; + CurrencyEnum["AZN"] = "AZN"; + CurrencyEnum["BAM"] = "BAM"; + CurrencyEnum["BDT"] = "BDT"; + CurrencyEnum["BGN"] = "BGN"; + CurrencyEnum["BHD"] = "BHD"; + CurrencyEnum["BIF"] = "BIF"; + CurrencyEnum["BND"] = "BND"; + CurrencyEnum["BOB"] = "BOB"; + CurrencyEnum["BRL"] = "BRL"; + CurrencyEnum["BWP"] = "BWP"; + CurrencyEnum["BYN"] = "BYN"; + CurrencyEnum["BZD"] = "BZD"; + CurrencyEnum["CDF"] = "CDF"; + CurrencyEnum["CHF"] = "CHF"; + CurrencyEnum["CLP"] = "CLP"; + CurrencyEnum["CNY"] = "CNY"; + CurrencyEnum["COP"] = "COP"; + CurrencyEnum["CRC"] = "CRC"; + CurrencyEnum["CVE"] = "CVE"; + CurrencyEnum["CZK"] = "CZK"; + CurrencyEnum["DJF"] = "DJF"; + CurrencyEnum["DKK"] = "DKK"; + CurrencyEnum["DOP"] = "DOP"; + CurrencyEnum["DZD"] = "DZD"; + CurrencyEnum["EEK"] = "EEK"; + CurrencyEnum["EGP"] = "EGP"; + CurrencyEnum["ERN"] = "ERN"; + CurrencyEnum["ETB"] = "ETB"; + CurrencyEnum["GBP"] = "GBP"; + CurrencyEnum["GEL"] = "GEL"; + CurrencyEnum["GHS"] = "GHS"; + CurrencyEnum["GNF"] = "GNF"; + CurrencyEnum["GTQ"] = "GTQ"; + CurrencyEnum["HKD"] = "HKD"; + CurrencyEnum["HNL"] = "HNL"; + CurrencyEnum["HRK"] = "HRK"; + CurrencyEnum["HUF"] = "HUF"; + CurrencyEnum["IDR"] = "IDR"; + CurrencyEnum["ILS"] = "ILS"; + CurrencyEnum["INR"] = "INR"; + CurrencyEnum["IQD"] = "IQD"; + CurrencyEnum["IRR"] = "IRR"; + CurrencyEnum["ISK"] = "ISK"; + CurrencyEnum["JMD"] = "JMD"; + CurrencyEnum["JOD"] = "JOD"; + CurrencyEnum["JPY"] = "JPY"; + CurrencyEnum["KES"] = "KES"; + CurrencyEnum["KHR"] = "KHR"; + CurrencyEnum["KMF"] = "KMF"; + CurrencyEnum["KRW"] = "KRW"; + CurrencyEnum["KWD"] = "KWD"; + CurrencyEnum["KZT"] = "KZT"; + CurrencyEnum["LBP"] = "LBP"; + CurrencyEnum["LKR"] = "LKR"; + CurrencyEnum["LTL"] = "LTL"; + CurrencyEnum["LVL"] = "LVL"; + CurrencyEnum["LYD"] = "LYD"; + CurrencyEnum["MAD"] = "MAD"; + CurrencyEnum["MDL"] = "MDL"; + CurrencyEnum["MGA"] = "MGA"; + CurrencyEnum["MKD"] = "MKD"; + CurrencyEnum["MMK"] = "MMK"; + CurrencyEnum["MOP"] = "MOP"; + CurrencyEnum["MUR"] = "MUR"; + CurrencyEnum["MXN"] = "MXN"; + CurrencyEnum["MYR"] = "MYR"; + CurrencyEnum["MZN"] = "MZN"; + CurrencyEnum["NAD"] = "NAD"; + CurrencyEnum["NGN"] = "NGN"; + CurrencyEnum["NIO"] = "NIO"; + CurrencyEnum["NOK"] = "NOK"; + CurrencyEnum["NPR"] = "NPR"; + CurrencyEnum["NZD"] = "NZD"; + CurrencyEnum["OMR"] = "OMR"; + CurrencyEnum["PAB"] = "PAB"; + CurrencyEnum["PEN"] = "PEN"; + CurrencyEnum["PHP"] = "PHP"; + CurrencyEnum["PKR"] = "PKR"; + CurrencyEnum["PLN"] = "PLN"; + CurrencyEnum["PYG"] = "PYG"; + CurrencyEnum["QAR"] = "QAR"; + CurrencyEnum["RON"] = "RON"; + CurrencyEnum["RSD"] = "RSD"; + CurrencyEnum["RUB"] = "RUB"; + CurrencyEnum["RWF"] = "RWF"; + CurrencyEnum["SAR"] = "SAR"; + CurrencyEnum["SDG"] = "SDG"; + CurrencyEnum["SEK"] = "SEK"; + CurrencyEnum["SGD"] = "SGD"; + CurrencyEnum["SOS"] = "SOS"; + CurrencyEnum["SYP"] = "SYP"; + CurrencyEnum["THB"] = "THB"; + CurrencyEnum["TND"] = "TND"; + CurrencyEnum["TOP"] = "TOP"; + CurrencyEnum["TRY"] = "TRY"; + CurrencyEnum["TTD"] = "TTD"; + CurrencyEnum["TWD"] = "TWD"; + CurrencyEnum["TZS"] = "TZS"; + CurrencyEnum["UAH"] = "UAH"; + CurrencyEnum["UGX"] = "UGX"; + CurrencyEnum["UYU"] = "UYU"; + CurrencyEnum["UZS"] = "UZS"; + CurrencyEnum["VEF"] = "VEF"; + CurrencyEnum["VND"] = "VND"; + CurrencyEnum["XAF"] = "XAF"; + CurrencyEnum["XOF"] = "XOF"; + CurrencyEnum["YER"] = "YER"; + CurrencyEnum["ZAR"] = "ZAR"; + CurrencyEnum["ZMK"] = "ZMK"; + CurrencyEnum["ZWL"] = "ZWL"; +})(CurrencyEnum = exports.CurrencyEnum || (exports.CurrencyEnum = {})); +//# sourceMappingURL=Common.js.map \ No newline at end of file diff --git a/lib/types/Common.js.map b/lib/types/Common.js.map new file mode 100644 index 0000000..ada0f0d --- /dev/null +++ b/lib/types/Common.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Common.js","sourceRoot":"","sources":["../../src/types/Common.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,6BAAe,CAAA;IACf,6BAAe,CAAA;AAChB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAED,IAAY,YAwHX;AAxHD,WAAY,YAAY;IACvB,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,2BAAW,CAAA;AACZ,CAAC,EAxHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAwHvB"} \ No newline at end of file diff --git a/lib/types/Payment.d.ts b/lib/types/Payment.d.ts new file mode 100644 index 0000000..8b4e2af --- /dev/null +++ b/lib/types/Payment.d.ts @@ -0,0 +1,75 @@ +import { IPaymentMethod } from './PaymentMethod'; +import { IReceipt, ReceiptRegistrationEnum } from './Receipt'; +import { IAmount, LocaleEnum } from './Common'; +export declare enum PaymentStatusEnum { + PENDING = "pending", + WAITING_FOR_CAPTURE = "waiting_for_capture", + SUCCEEDED = "succeeded", + CANCELED = "canceled" +} +export interface ICreatePaymentRequest { + amount: IAmount; + description?: string; + receipt?: IReceipt; + recipient?: { + gateway_id: string; + }; + payment_method_data?: IPaymentMethod; + capture: boolean; + confirmation: IConfirmation; + save_payment_method?: boolean; + merchant_customer_id?: string; +} +export type IConfirmation = IConfirmationRedirect | IConfirmationEmbedded | IConfirmationQR | IConfirmationExternal | IConfirmationMobileApp; +export declare enum ConfirmationTypesEnum { + embedded = "embedded", + external = "external", + mobile_application = "mobile_application", + qr = "qr", + redirect = "redirect" +} +export interface IConfirmationRedirect { + type: 'redirect'; + confirmation_url: string; + enforce?: boolean; + locale?: LocaleEnum; + return_url: string; +} +export interface IConfirmationEmbedded { + type: ConfirmationTypesEnum.embedded; + locale?: LocaleEnum; +} +export interface IConfirmationQR { + type: ConfirmationTypesEnum.qr; + any: unknown; +} +export interface IConfirmationExternal { + type: ConfirmationTypesEnum.external; + any: unknown; +} +export interface IConfirmationMobileApp { + type: ConfirmationTypesEnum.mobile_application; + any: unknown; +} +export interface IPayment { + id: string; + status: PaymentStatusEnum; + amount: IAmount; + income_amount?: IAmount; + description?: string; + recipient: { + account_id: string; + gateway_id: string; + }; + payment_method?: IPaymentMethod; + captured_at?: string; + created_at: string; + expires_at?: string; + confirmation?: IConfirmation; + test: boolean; + refunded_amount?: IAmount; + paid: boolean; + refundable: boolean; + receipt_registration?: ReceiptRegistrationEnum; + metadata?: object; +} diff --git a/lib/types/Payment.js b/lib/types/Payment.js new file mode 100644 index 0000000..91c419b --- /dev/null +++ b/lib/types/Payment.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConfirmationTypesEnum = exports.PaymentStatusEnum = void 0; +var PaymentStatusEnum; +(function (PaymentStatusEnum) { + PaymentStatusEnum["PENDING"] = "pending"; + PaymentStatusEnum["WAITING_FOR_CAPTURE"] = "waiting_for_capture"; + PaymentStatusEnum["SUCCEEDED"] = "succeeded"; + PaymentStatusEnum["CANCELED"] = "canceled"; +})(PaymentStatusEnum = exports.PaymentStatusEnum || (exports.PaymentStatusEnum = {})); +var ConfirmationTypesEnum; +(function (ConfirmationTypesEnum) { + ConfirmationTypesEnum["embedded"] = "embedded"; + ConfirmationTypesEnum["external"] = "external"; + ConfirmationTypesEnum["mobile_application"] = "mobile_application"; + ConfirmationTypesEnum["qr"] = "qr"; + ConfirmationTypesEnum["redirect"] = "redirect"; +})(ConfirmationTypesEnum = exports.ConfirmationTypesEnum || (exports.ConfirmationTypesEnum = {})); +//# sourceMappingURL=Payment.js.map \ No newline at end of file diff --git a/lib/types/Payment.js.map b/lib/types/Payment.js.map new file mode 100644 index 0000000..4fed8c2 --- /dev/null +++ b/lib/types/Payment.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Payment.js","sourceRoot":"","sources":["../../src/types/Payment.ts"],"names":[],"mappings":";;;AAIA,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IAE5B,wCAAmB,CAAA;IAGnB,gEAA2C,CAAA;IAG3C,4CAAuB,CAAA;IAGvB,0CAAqB,CAAA;AACtB,CAAC,EAZW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAY5B;AAsCD,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAChC,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,kEAAyC,CAAA;IACzC,kCAAS,CAAA;IACT,8CAAqB,CAAA;AACtB,CAAC,EANW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAMhC"} \ No newline at end of file diff --git a/lib/types/PaymentMethod.d.ts b/lib/types/PaymentMethod.d.ts new file mode 100644 index 0000000..43e83ff --- /dev/null +++ b/lib/types/PaymentMethod.d.ts @@ -0,0 +1,65 @@ +import { IAmount } from './Common'; +export type IPaymentMethod = IPaymentMethodAlfabank | IPaymentMethodMobileBalance | IPaymentMethodCard | IPaymentMethodInstallments | IPaymentMethodCash | IPaymentMethodSbp | IPaymentMethodB2b_sberbank | IPaymentMethodTinkoff_bank | IPaymentMethodYooMoney | IPaymentMethodQiwi | IPaymentMethodSberbank; +export declare enum PaymentMethodsEnum { + bank_card = "bank_card", + yoo_money = "yoo_money", + qiwi = "qiwi", + sberbank = "sberbank", + alfabank = "alfabank", + tinkoff_bank = "tinkoff_bank", + b2b_sberbank = "b2b_sberbank", + sbp = "sbp", + mobile_balance = "mobile_balance", + cash = "cash", + installments = "installments" +} +export interface IPaymentMethodCard { + type: PaymentMethodsEnum.bank_card; + card?: { + number: string; + expiry_year?: string; + expiry_month: string; + csc?: string; + cardholder?: string; + }; +} +export interface IPaymentMethodMobileBalance { + type: PaymentMethodsEnum.mobile_balance; + phone: string; +} +export interface IPaymentMethodYooMoney { + type: PaymentMethodsEnum.yoo_money; +} +export interface IPaymentMethodQiwi { + type: PaymentMethodsEnum.qiwi; + phone?: string; +} +export interface IPaymentMethodSberbank { + type: PaymentMethodsEnum.sberbank; + phone?: string; +} +export interface IPaymentMethodAlfabank { + type: PaymentMethodsEnum.alfabank; + login?: string; +} +export interface IPaymentMethodTinkoff_bank { + type: PaymentMethodsEnum.tinkoff_bank; +} +export interface IPaymentMethodB2b_sberbank { + type: PaymentMethodsEnum.b2b_sberbank; + payment_purpose: string; + vat_data: { + type: 'mixed' | 'calculated' | 'untaxed'; + amount?: IAmount; + }; +} +export interface IPaymentMethodSbp { + type: PaymentMethodsEnum.sbp; +} +export interface IPaymentMethodCash { + type: PaymentMethodsEnum.cash; + phone?: string; +} +export interface IPaymentMethodInstallments { + type: PaymentMethodsEnum.installments; +} diff --git a/lib/types/PaymentMethod.js b/lib/types/PaymentMethod.js new file mode 100644 index 0000000..66e32a2 --- /dev/null +++ b/lib/types/PaymentMethod.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PaymentMethodsEnum = void 0; +var PaymentMethodsEnum; +(function (PaymentMethodsEnum) { + PaymentMethodsEnum["bank_card"] = "bank_card"; + PaymentMethodsEnum["yoo_money"] = "yoo_money"; + PaymentMethodsEnum["qiwi"] = "qiwi"; + PaymentMethodsEnum["sberbank"] = "sberbank"; + PaymentMethodsEnum["alfabank"] = "alfabank"; + PaymentMethodsEnum["tinkoff_bank"] = "tinkoff_bank"; + PaymentMethodsEnum["b2b_sberbank"] = "b2b_sberbank"; + PaymentMethodsEnum["sbp"] = "sbp"; + PaymentMethodsEnum["mobile_balance"] = "mobile_balance"; + PaymentMethodsEnum["cash"] = "cash"; + PaymentMethodsEnum["installments"] = "installments"; +})(PaymentMethodsEnum = exports.PaymentMethodsEnum || (exports.PaymentMethodsEnum = {})); +//# sourceMappingURL=PaymentMethod.js.map \ No newline at end of file diff --git a/lib/types/PaymentMethod.js.map b/lib/types/PaymentMethod.js.map new file mode 100644 index 0000000..994ba33 --- /dev/null +++ b/lib/types/PaymentMethod.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PaymentMethod.js","sourceRoot":"","sources":["../../src/types/PaymentMethod.ts"],"names":[],"mappings":";;;AAgBA,IAAY,kBAiCX;AAjCD,WAAY,kBAAkB;IAE7B,6CAAuB,CAAA;IAGvB,6CAAuB,CAAA;IAGvB,mCAAa,CAAA;IAGb,2CAAqB,CAAA;IAGrB,2CAAqB,CAAA;IAGrB,mDAA6B,CAAA;IAG7B,mDAA6B,CAAA;IAG7B,iCAAW,CAAA;IAGX,uDAAiC,CAAA;IAGjC,mCAAa,CAAA;IAGb,mDAA6B,CAAA;AAC9B,CAAC,EAjCW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAiC7B"} \ No newline at end of file diff --git a/lib/types/Receipt.d.ts b/lib/types/Receipt.d.ts new file mode 100644 index 0000000..01bb33e --- /dev/null +++ b/lib/types/Receipt.d.ts @@ -0,0 +1,44 @@ +import { IAmount } from './Common'; +export declare enum VatCodesEnum { + 'ndsNone' = 1, + 'nds0' = 2, + 'nds10' = 3, + 'nds20' = 4, + 'nds10/110' = 5, + 'nds20/120' = 6 +} +export declare enum TaxSystemCodesEnum { + 'OSN' = 1, + 'USN6' = 2, + 'USN15' = 3, + 'ENVD' = 4, + 'ESN' = 5, + 'PSN' = 6 +} +export declare enum ReceiptRegistrationEnum { + pending = "pending", + succeeded = "succeeded", + canceled = "canceled" +} +export interface ICustomer { + full_name?: string; + inn?: string; + email?: string; + phone?: string; +} +export interface IReceiptItem { + description: string; + amount: IAmount; + vat_code: VatCodesEnum; + quantity: string; + measure?: string; + mark_quantity?: { + numerator: number; + denominator: number; + }; +} +export interface IReceipt { + customer?: ICustomer; + items: IReceiptItem[]; + tax_system_code?: TaxSystemCodesEnum; +} diff --git a/lib/types/Receipt.js b/lib/types/Receipt.js new file mode 100644 index 0000000..8e51300 --- /dev/null +++ b/lib/types/Receipt.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ReceiptRegistrationEnum = exports.TaxSystemCodesEnum = exports.VatCodesEnum = void 0; +var VatCodesEnum; +(function (VatCodesEnum) { + VatCodesEnum[VatCodesEnum["ndsNone"] = 1] = "ndsNone"; + VatCodesEnum[VatCodesEnum["nds0"] = 2] = "nds0"; + VatCodesEnum[VatCodesEnum["nds10"] = 3] = "nds10"; + VatCodesEnum[VatCodesEnum["nds20"] = 4] = "nds20"; + VatCodesEnum[VatCodesEnum["nds10/110"] = 5] = "nds10/110"; + VatCodesEnum[VatCodesEnum["nds20/120"] = 6] = "nds20/120"; +})(VatCodesEnum = exports.VatCodesEnum || (exports.VatCodesEnum = {})); +var TaxSystemCodesEnum; +(function (TaxSystemCodesEnum) { + TaxSystemCodesEnum[TaxSystemCodesEnum["OSN"] = 1] = "OSN"; + TaxSystemCodesEnum[TaxSystemCodesEnum["USN6"] = 2] = "USN6"; + TaxSystemCodesEnum[TaxSystemCodesEnum["USN15"] = 3] = "USN15"; + TaxSystemCodesEnum[TaxSystemCodesEnum["ENVD"] = 4] = "ENVD"; + TaxSystemCodesEnum[TaxSystemCodesEnum["ESN"] = 5] = "ESN"; + TaxSystemCodesEnum[TaxSystemCodesEnum["PSN"] = 6] = "PSN"; +})(TaxSystemCodesEnum = exports.TaxSystemCodesEnum || (exports.TaxSystemCodesEnum = {})); +var ReceiptRegistrationEnum; +(function (ReceiptRegistrationEnum) { + ReceiptRegistrationEnum["pending"] = "pending"; + ReceiptRegistrationEnum["succeeded"] = "succeeded"; + ReceiptRegistrationEnum["canceled"] = "canceled"; +})(ReceiptRegistrationEnum = exports.ReceiptRegistrationEnum || (exports.ReceiptRegistrationEnum = {})); +//# sourceMappingURL=Receipt.js.map \ No newline at end of file diff --git a/lib/types/Receipt.js.map b/lib/types/Receipt.js.map new file mode 100644 index 0000000..f0c70bf --- /dev/null +++ b/lib/types/Receipt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Receipt.js","sourceRoot":"","sources":["../../src/types/Receipt.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAkBX;AAlBD,WAAY,YAAY;IAEvB,qDAAa,CAAA;IAGb,+CAAU,CAAA;IAGV,iDAAW,CAAA;IAGX,iDAAW,CAAA;IAGX,yDAAe,CAAA;IAGf,yDAAe,CAAA;AAChB,CAAC,EAlBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAkBvB;AAED,IAAY,kBAkBX;AAlBD,WAAY,kBAAkB;IAE7B,yDAAS,CAAA;IAGT,2DAAU,CAAA;IAGV,6DAAW,CAAA;IAGX,2DAAU,CAAA;IAGV,yDAAS,CAAA;IAGT,yDAAS,CAAA;AACV,CAAC,EAlBW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAkB7B;AAED,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAElC,8CAAmB,CAAA;IAEnB,kDAAuB,CAAA;IAEvB,gDAAqB,CAAA;AACtB,CAAC,EAPW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAOlC"} \ No newline at end of file diff --git a/lib/utils.d.ts b/lib/utils.d.ts new file mode 100644 index 0000000..67663f9 --- /dev/null +++ b/lib/utils.d.ts @@ -0,0 +1 @@ +export declare const delay: (ms: number) => Promise; diff --git a/lib/utils.js b/lib/utils.js index be69e28..7d06fc6 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,12 +1,13 @@ -function delay(ms) { - return new Promise(resolve => { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.delay = void 0; +const delay = (ms) => { + return new Promise((resolve) => { const timeoutId = setTimeout(() => { clearTimeout(timeoutId); - resolve(); + resolve(true); }, ms); }); -} - -module.exports = { - delay -}; \ No newline at end of file +}; +exports.delay = delay; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/lib/utils.js.map b/lib/utils.js.map new file mode 100644 index 0000000..21767b8 --- /dev/null +++ b/lib/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,EAAE,EAAE,CAAC,CAAA;IACP,CAAC,CAAC,CAAA;AACH,CAAC,CAAA;AAPY,QAAA,KAAK,SAOjB"} \ No newline at end of file diff --git a/lib/yookassa.d.ts b/lib/yookassa.d.ts new file mode 100644 index 0000000..a257829 --- /dev/null +++ b/lib/yookassa.d.ts @@ -0,0 +1,27 @@ +import Payment from './payment'; +import Refund from './refund'; +import { ICreatePaymentRequest } from './types/Payment'; +import { IAmount } from './types/Common'; +export default class YooKassa { + shopId: string; + secretKey: string; + apiUrl: string; + debug: boolean; + timeout: number; + retryDelay: number; + constructor({ shopId, secretKey, apiUrl, debug, timeout, retryDelay, }: { + shopId: any; + secretKey: any; + apiUrl?: string; + debug?: boolean; + timeout?: number; + retryDelay?: number; + }); + createPayment(payload: ICreatePaymentRequest, idempotenceKey?: string): Promise; + getPayment(paymentId: string, idempotenceKey?: string): Promise; + capturePayment(paymentId: string, amount: IAmount, idempotenceKey?: string): Promise; + cancelPayment(paymentId: string, idempotenceKey?: string): Promise; + createRefund(paymentId: string, amount: IAmount, idempotenceKey?: any): Promise; + getRefund(refundId: string, idempotenceKey?: string): Promise; + request(method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD', path: string, payload: unknown, idempotenceKey?: string): Promise; +} diff --git a/lib/yookassa.js b/lib/yookassa.js index 44144c5..d821f8e 100644 --- a/lib/yookassa.js +++ b/lib/yookassa.js @@ -1,34 +1,43 @@ -const request = require('request'); -const uuid = require('uuid').v4; - -const Payment = require('./payment'); -const Refund = require('./refund'); -const PaymentError = require('./payment-error'); -const utils = require('./utils'); - +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const axios_1 = __importDefault(require("axios")); +const uuid_1 = require("uuid"); +const payment_1 = __importDefault(require("./payment")); +const refund_1 = __importDefault(require("./refund")); +const payment_error_1 = __importDefault(require("./payment-error")); +const utils = __importStar(require("./utils")); const DEFAULT_URL = 'https://api.yookassa.ru/v3/'; const DEFAULT_DEBUG = false; -const DEFAULT_TIMEOUT = 120000; // 2 minutes (Node's default timeout) -const DEFAULT_DELAY = 60000; // 1 minute - +const DEFAULT_TIMEOUT = 120000; +const DEFAULT_DELAY = 60000; class YooKassa { - /** - * @param {string} shopId - * @param {string} secretKey - * @param {string} apiUrl - * @param {string} debug - * @param {string} timeout - * @param {string} retryDelay - * @returns {YooKassa} - */ - constructor({ - shopId, - secretKey, - apiUrl = DEFAULT_URL, - debug = DEFAULT_DEBUG, - timeout = DEFAULT_TIMEOUT, - retryDelay = DEFAULT_DELAY - }) { + constructor({ shopId, secretKey, apiUrl = DEFAULT_URL, debug = DEFAULT_DEBUG, timeout = DEFAULT_TIMEOUT, retryDelay = DEFAULT_DELAY, }) { this.shopId = shopId; this.secretKey = secretKey; this.apiUrl = apiUrl; @@ -36,162 +45,71 @@ class YooKassa { this.timeout = timeout; this.retryDelay = retryDelay; } - - /** - * Create a payment - * @see https://yookassa.ru/developers/api#create_payment - * @param {Object} payload - * @param {string} idempotenceKey - * @returns {Promise} - */ - createPayment(payload, idempotenceKey) { - return this.request('POST', 'payments', payload, idempotenceKey) - .then(data => { - return new Payment(this, data); - }); + createPayment(payload, idempotenceKey = null) { + return this.request('POST', 'payments', payload, idempotenceKey).then((data) => { + return new payment_1.default(this, data); + }); } - - /** - * Get info about a payment by id - * @see https://yookassa.ru/developers/api#get_payment - * @param {string} paymentId - * @param {string} idempotenceKey - * @returns {Promise} - */ - getPayment(paymentId, idempotenceKey) { - return this.request('GET', `payments/${paymentId}`, {}, idempotenceKey) - .then(data => { - return new Payment(this, data); - }); + getPayment(paymentId, idempotenceKey = null) { + return this.request('GET', `payments/${paymentId}`, {}, idempotenceKey).then((data) => { + return new payment_1.default(this, data); + }); } - - /** - * Capture a payment with status 'waiting_for_capture'. status change to 'succeeded' - * @see https://yookassa.ru/developers/api#capture_payment - * @param {string} paymentId - * @param {Object} amount - * @param {string} idempotenceKey - * @returns {Promise} - */ - capturePayment(paymentId, amount, idempotenceKey) { - return this.request('POST', `payments/${paymentId}/capture`, { amount }, idempotenceKey) - .then(data => { - return new Payment(this, data); - }); + capturePayment(paymentId, amount, idempotenceKey = null) { + return this.request('POST', `payments/${paymentId}/capture`, { amount }, idempotenceKey).then((data) => { + return new payment_1.default(this, data); + }); } - - /** - * Cancel a payment with status 'waiting_for_capture'. status change to 'canceled' - * @see https://kassa.yandex.ru/docs/checkout-api/#otmena-platezha - * @param {string} paymentId - * @param {string} idempotenceKey - * @returns {Promise} - */ - cancelPayment(paymentId, idempotenceKey) { - return this.request('POST', `payments/${paymentId}/cancel`, {}, idempotenceKey) - .then(data => { - return new Payment(this, data); - }); + cancelPayment(paymentId, idempotenceKey = null) { + return this.request('POST', `payments/${paymentId}/cancel`, {}, idempotenceKey).then((data) => { + return new payment_1.default(this, data); + }); } - - /** - * Create a refund - * @see https://yookassa.ru/developers/api#create_refund - * @param {string} paymentId - * @param {Object} amount - * @param {string} idempotenceKey - * @returns {Promise} - */ - createRefund(paymentId, amount, idempotenceKey) { - return this.request('POST', 'refunds', { payment_id: paymentId, amount }, idempotenceKey) - .then(data => { - return new Refund(this, data); - }); + createRefund(paymentId, amount, idempotenceKey = null) { + return this.request('POST', 'refunds', { payment_id: paymentId, amount }, idempotenceKey).then((data) => { + return new refund_1.default(this, data); + }); } - - /** - * Get info about a refund by id - * @see https://yookassa.ru/developers/api#get_refund - * @param {string} refundId - * @param {string} idempotenceKey - * @returns {Promise} - */ - getRefund(refundId, idempotenceKey) { - return this.request('GET', `refunds/${refundId}`, {}, idempotenceKey) - .then(data => { - return new Refund(this, data); - }); + getRefund(refundId, idempotenceKey = null) { + return this.request('GET', `refunds/${refundId}`, {}, idempotenceKey).then((data) => { + return new refund_1.default(this, data); + }); } - - request(method, path, payload, idempotenceKey) { - /** - * Generate idempotence key if not present - * @see https://yookassa.ru/developers/using-api/basics#idempotence - */ + request(method, path, payload, idempotenceKey = null) { if (!idempotenceKey) { - idempotenceKey = uuid(); + idempotenceKey = (0, uuid_1.v4)(); } - const uri = this.apiUrl + path; - if (this.debug) { - // eslint-disable-next-line no-console console.log(`${method}: ${uri}`); } - - return new Promise((resolve, reject) => { - request({ - method, - uri, - json: true, - body: payload, - timeout: this.timeout, - /** - * @see https://yookassa.ru/developers/using-api/basics#auth - */ - auth: { - user: this.shopId, - pass: this.secretKey - }, - resolveWithFullResponse: true, - headers: { - /** - * @see https://yookassa.ru/developers/using-api/basics#idempotence - */ - 'Idempotence-Key': idempotenceKey - } - }, function(error, response, body) { - if (error) return reject(error); - - if (response.body.type === 'error') { - return reject(response.body); - } - - resolve(response); - }); - }).then(response => { - switch (response.statusCode) { - /** - * Retry request - * @see https://yookassa.ru/developers/using-api/basics#sync - */ + return (0, axios_1.default)({ + method, + url: uri, + data: payload, + timeout: this.timeout, + auth: { + username: this.shopId, + password: this.secretKey, + }, + headers: { + 'Idempotence-Key': idempotenceKey, + }, + }) + .then((response) => { + switch (response.status) { case 202: - return utils.delay(response.body.retry_after || this.retryDelay). - then(this.request.bind(this, method, path, payload, idempotenceKey)); - - /** - * Normal response - */ + return utils + .delay(response.data.retry_after || this.retryDelay) + .then(this.request.bind(this, method, path, payload, idempotenceKey)); default: - return response.body; + return response.data; } - }).catch(error => { - /** - * @see https://yookassa.ru/developers/using-api/basics#http-codes - */ - return Promise.reject(new PaymentError(error)); + }) + .catch((error) => { + return Promise.reject(new payment_error_1.default(error)); }); } } - -module.exports = YooKassa; +exports.default = YooKassa; +//# sourceMappingURL=yookassa.js.map \ No newline at end of file diff --git a/lib/yookassa.js.map b/lib/yookassa.js.map new file mode 100644 index 0000000..4386a58 --- /dev/null +++ b/lib/yookassa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"yookassa.js","sourceRoot":"","sources":["../src/yookassa.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAC3B,+BAAiC;AACjC,wDAA+B;AAC/B,sDAA6B;AAC7B,oEAA0C;AAC1C,+CAAgC;AAIhC,MAAM,WAAW,GAAG,6BAA6B,CAAA;AACjD,MAAM,aAAa,GAAG,KAAK,CAAA;AAC3B,MAAM,eAAe,GAAG,MAAM,CAAA;AAC9B,MAAM,aAAa,GAAG,KAAK,CAAA;AAE3B,MAAqB,QAAQ;IAiB5B,YAAY,EACX,MAAM,EACN,SAAS,EACT,MAAM,GAAG,WAAW,EACpB,KAAK,GAAG,aAAa,EACrB,OAAO,GAAG,eAAe,EACzB,UAAU,GAAG,aAAa,GAC1B;QACA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC7B,CAAC;IASD,aAAa,CAAC,OAA8B,EAAE,iBAAyB,IAAI;QAC1E,OAAO,IAAI,CAAC,OAAO,CAClB,MAAM,EACN,UAAU,EACV,OAAO,EACP,cAAc,CACd,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACH,CAAC;IASD,UAAU,CAAC,SAAiB,EAAE,iBAAyB,IAAI;QAC1D,OAAO,IAAI,CAAC,OAAO,CAClB,KAAK,EACL,YAAY,SAAS,EAAE,EACvB,EAAE,EACF,cAAc,CACd,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACH,CAAC;IAUD,cAAc,CACb,SAAiB,EACjB,MAAe,EACf,iBAAyB,IAAI;QAE7B,OAAO,IAAI,CAAC,OAAO,CAClB,MAAM,EACN,YAAY,SAAS,UAAU,EAC/B,EAAE,MAAM,EAAE,EACV,cAAc,CACd,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACH,CAAC;IASD,aAAa,CAAC,SAAiB,EAAE,iBAAyB,IAAI;QAC7D,OAAO,IAAI,CAAC,OAAO,CAClB,MAAM,EACN,YAAY,SAAS,SAAS,EAC9B,EAAE,EACF,cAAc,CACd,CAAC,IAAI,CAAC,CAAC,IAAa,EAAE,EAAE;YACxB,OAAO,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACH,CAAC;IAUD,YAAY,CAAC,SAAiB,EAAE,MAAe,EAAE,cAAc,GAAG,IAAI;QACrE,OAAO,IAAI,CAAC,OAAO,CAClB,MAAM,EACN,SAAS,EACT,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EACjC,cAAc,CACd,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,gBAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACH,CAAC;IASD,SAAS,CAAC,QAAgB,EAAE,iBAAyB,IAAI;QACxD,OAAO,IAAI,CAAC,OAAO,CAClB,KAAK,EACL,WAAW,QAAQ,EAAE,EACrB,EAAE,EACF,cAAc,CACd,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,gBAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CACN,MAAkD,EAClD,IAAY,EACZ,OAAgB,EAChB,iBAAyB,IAAI;QAM7B,IAAI,CAAC,cAAc,EAAE;YACpB,cAAc,GAAG,IAAA,SAAI,GAAE,CAAA;SACvB;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAE9B,IAAI,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,EAAE,CAAC,CAAA;SAChC;QAED,OAAO,IAAA,eAAO,EAAC;YACd,MAAM;YACN,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,SAAS;aACxB;YACD,OAAO,EAAE;gBACR,iBAAiB,EAAE,cAAc;aACjC;SACD,CAAC;aACA,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClB,QAAQ,QAAQ,CAAC,MAAM,EAAE;gBAKxB,KAAK,GAAG;oBACP,OAAO,KAAK;yBACV,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;yBACnD,IAAI,CACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAC9D,CAAA;gBAKH;oBACC,OAAO,QAAQ,CAAC,IAAI,CAAA;aACrB;QACF,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAIhB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC;CACD;AA/MD,2BA+MC"} \ No newline at end of file diff --git a/package.json b/package.json index eaf3ed6..a3fddf4 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,50 @@ { - "name": "yookassa", - "version": "0.1.1", - "description": "YooKassa API for Node.js", - "main": "index.js", + "name": "yookassa-ts", + "version": "0.1.14", + "description": "YooKassa TypeScript API for Node.js", + "main": "lib/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "build": "tsc", + "test": "echo \"Error: no test specified\" && exit 1", + "lint": "eslint --fix --no-eslintrc --config ./.eslintrc.js --report-unused-disable-directives --format codeframe --ext js,ts,vue .", + "pub": "sh publish.sh", + "changelog": "yarn auto-changelog", + "print-version": "node -p \"'v' +require('./package.json').version\"" }, "dependencies": { - "request": "^2.80.0" + "axios": "^1.4.0", + "uuid": "^9.0.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "@typescript-eslint/eslint-plugin": "^5.59.2", + "@typescript-eslint/parser": "^5.59.2", + "auto-changelog": "^2.4.0", + "eslint": "8.39.0", + "eslint-config-prettier": "^8.8.0", + "eslint-formatter-codeframe": "^7.32.1", + "eslint-plugin-prettier": "^4.2.1", + "itsbz-onever": "^1.0.15", + "lint-staged": "^13.2.2", + "prettier": "^2.8.8", + "ts-loader": "^9.4.2", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.0.4" + }, + "lint-staged": { + "*.{js,ts}": [ + "lint --fix" + ] }, "keywords": [ - "yookassa" + "yookassa", + "yookassa-ts" ], "author": { - "name": "Oleg Polyakov", - "email": "olegpolyakov@outlook.com" + "name": "Andrey Zolotarev", + "email": "zolotarev@its.bz" }, - "repository": "olegpolyakov/yookassa", + "repository": "https://github.com/zolotarev/yookassa-ts", "license": "MIT" -} +} \ No newline at end of file diff --git a/publish.sh b/publish.sh new file mode 100644 index 0000000..8096335 --- /dev/null +++ b/publish.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +git switch master || exit 1 +yarn itsbz-onever inc patch +ver=$(yarn -s itsbz-onever get --machine) +git checkout .onever.json +yarn itsbz-onever set "$ver" && yarn itsbz-onever apply +git add ./.onever.json ./package.json +yarn build +git add ./lib +git commit -m "Upgrade app version to ${ver}" +git tag "$ver" +yarn changelog +git add --ignore-errors -A -f -- README.md +git commit -m "Release version ${ver}" +git tag -d "$ver" +git tag "$ver" +git push origin master --progress --tags +npm publish diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..4d691b2 --- /dev/null +++ b/src/index.ts @@ -0,0 +1 @@ +export * from './yookassa' diff --git a/src/payment-error.ts b/src/payment-error.ts new file mode 100644 index 0000000..29f83db --- /dev/null +++ b/src/payment-error.ts @@ -0,0 +1,15 @@ +export default class PaymentError extends Error { + private parameter: any + constructor(error: Error) { + super(error.message) + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, PaymentError) + } else { + this.stack = new Error().stack + } + + this.name = 'PaymentError' + this.message = error.message + } +} diff --git a/src/payment.ts b/src/payment.ts new file mode 100644 index 0000000..99164af --- /dev/null +++ b/src/payment.ts @@ -0,0 +1,135 @@ +import { + ConfirmationTypesEnum, + IConfirmation, + IPayment, + PaymentStatusEnum, +} from './types/Payment' +import { IAmount } from './types/Common' +import { IPaymentMethod } from './types/PaymentMethod' +import { ReceiptRegistrationEnum } from './types/Receipt' +import YooKassa from './yookassa' + +export default class Payment implements IPayment { + _instance: YooKassa + amount: IAmount + captured_at: string + confirmation: IConfirmation + created_at: string + description: string + expires_at: string + id: string + income_amount: IAmount + metadata: object + paid: boolean + payment_method: IPaymentMethod + receipt_registration: ReceiptRegistrationEnum + recipient: { account_id: string; gateway_id: string } + refundable: boolean + refunded_amount: IAmount + status: PaymentStatusEnum + test: boolean + + constructor(instance: YooKassa, data: Payment) { + Object.assign(this, data, { _instance: instance }) + } + + /** + * Is payment pending + * @see https://kassa.yandex.ru/docs/guides/#platezhi + * @returns {Boolean} + */ + get isPending() { + return this.status === PaymentStatusEnum.PENDING + } + + /** + * Is payment waiting for capture + * @see https://kassa.yandex.ru/docs/guides/#platezhi + * @returns {Boolean} + */ + get isWaitingForCapture() { + return this.status === PaymentStatusEnum.WAITING_FOR_CAPTURE + } + + /** + * Is payment succeeded + * @see https://kassa.yandex.ru/docs/guides/#platezhi + * @returns {Boolean} + */ + get isSucceeded() { + return this.status === PaymentStatusEnum.SUCCEEDED + } + + /** + * Is payment canceled + * @see https://kassa.yandex.ru/docs/guides/#platezhi + * @returns {Boolean} + */ + get isCanceled() { + return this.status === PaymentStatusEnum.CANCELED + } + + /** + * Is payment succeeded or canceled + * @see https://kassa.yandex.ru/docs/guides/#platezhi + * @returns {Boolean} + */ + get isResolved() { + return ( + this.status === PaymentStatusEnum.SUCCEEDED || + this.status === PaymentStatusEnum.CANCELED + ) + } + + get confirmationUrl() { + return this.confirmation && + this.confirmation.type === ConfirmationTypesEnum.redirect + ? this.confirmation.confirmation_url + : undefined + } + + /** + * Retrieve payment info + * @returns {Promise} + */ + reload() { + return this._instance.getPayment(this.id).then((data) => { + Object.assign(this, data) + return true + }) + } + + /** + * Capture payment + * @param amount + * @returns {*} + */ + capture(amount: IAmount) { + return this._instance + .capturePayment(this.id, amount || this.amount) + .then((data) => { + Object.assign(this, data) + return true + }) + } + + /** + * Cancel Payment + * @returns {*} + */ + cancel() { + return this._instance.cancelPayment(this.id).then((data) => { + Object.assign(this, data) + return true + }) + } + + /** + * Create refund + * @param amount + * @returns {*|Promise.} + */ + refund(amount: IAmount) { + return this._instance.createRefund(this.id, amount || this.amount) + } +} diff --git a/src/refund.ts b/src/refund.ts new file mode 100644 index 0000000..8e35826 --- /dev/null +++ b/src/refund.ts @@ -0,0 +1,16 @@ +import YooKassa from './yookassa' + +export default class Refund { + _instance: YooKassa + id: string + constructor(instance, data) { + Object.assign(this, data, { _instance: instance }) + } + + reload() { + return this._instance.getRefund(this.id).then((data) => { + Object.assign(this, data) + return true + }) + } +} diff --git a/src/types/Common.ts b/src/types/Common.ts new file mode 100644 index 0000000..65da471 --- /dev/null +++ b/src/types/Common.ts @@ -0,0 +1,133 @@ +export enum LocaleEnum { + ru_RU = 'ru_RU', + en_US = 'en_US', +} + +export enum CurrencyEnum { + USD = 'USD', + CAD = 'CAD', + EUR = 'EUR', + AED = 'AED', + AFN = 'AFN', + ALL = 'ALL', + AMD = 'AMD', + ARS = 'ARS', + AUD = 'AUD', + AZN = 'AZN', + BAM = 'BAM', + BDT = 'BDT', + BGN = 'BGN', + BHD = 'BHD', + BIF = 'BIF', + BND = 'BND', + BOB = 'BOB', + BRL = 'BRL', + BWP = 'BWP', + BYN = 'BYN', + BZD = 'BZD', + CDF = 'CDF', + CHF = 'CHF', + CLP = 'CLP', + CNY = 'CNY', + COP = 'COP', + CRC = 'CRC', + CVE = 'CVE', + CZK = 'CZK', + DJF = 'DJF', + DKK = 'DKK', + DOP = 'DOP', + DZD = 'DZD', + EEK = 'EEK', + EGP = 'EGP', + ERN = 'ERN', + ETB = 'ETB', + GBP = 'GBP', + GEL = 'GEL', + GHS = 'GHS', + GNF = 'GNF', + GTQ = 'GTQ', + HKD = 'HKD', + HNL = 'HNL', + HRK = 'HRK', + HUF = 'HUF', + IDR = 'IDR', + ILS = 'ILS', + INR = 'INR', + IQD = 'IQD', + IRR = 'IRR', + ISK = 'ISK', + JMD = 'JMD', + JOD = 'JOD', + JPY = 'JPY', + KES = 'KES', + KHR = 'KHR', + KMF = 'KMF', + KRW = 'KRW', + KWD = 'KWD', + KZT = 'KZT', + LBP = 'LBP', + LKR = 'LKR', + LTL = 'LTL', + LVL = 'LVL', + LYD = 'LYD', + MAD = 'MAD', + MDL = 'MDL', + MGA = 'MGA', + MKD = 'MKD', + MMK = 'MMK', + MOP = 'MOP', + MUR = 'MUR', + MXN = 'MXN', + MYR = 'MYR', + MZN = 'MZN', + NAD = 'NAD', + NGN = 'NGN', + NIO = 'NIO', + NOK = 'NOK', + NPR = 'NPR', + NZD = 'NZD', + OMR = 'OMR', + PAB = 'PAB', + PEN = 'PEN', + PHP = 'PHP', + PKR = 'PKR', + PLN = 'PLN', + PYG = 'PYG', + QAR = 'QAR', + RON = 'RON', + RSD = 'RSD', + RUB = 'RUB', + RWF = 'RWF', + SAR = 'SAR', + SDG = 'SDG', + SEK = 'SEK', + SGD = 'SGD', + SOS = 'SOS', + SYP = 'SYP', + THB = 'THB', + TND = 'TND', + TOP = 'TOP', + TRY = 'TRY', + TTD = 'TTD', + TWD = 'TWD', + TZS = 'TZS', + UAH = 'UAH', + UGX = 'UGX', + UYU = 'UYU', + UZS = 'UZS', + VEF = 'VEF', + VND = 'VND', + XAF = 'XAF', + XOF = 'XOF', + YER = 'YER', + ZAR = 'ZAR', + ZMK = 'ZMK', + ZWL = 'ZWL', +} + +export interface IAmount { + /** В формате: 10.00 */ + value: string + /** Трехбуквенный код валюты в формате ISO-4217. Пример: RUB. Должен соответствовать валюте субаккаунта (recipient.gateway_id), если вы разделяете потоки платежей, и валюте аккаунта (shopId в личном кабинете), если не разделяете. */ + currency: CurrencyEnum +} diff --git a/src/types/Payment.ts b/src/types/Payment.ts new file mode 100644 index 0000000..aa520e2 --- /dev/null +++ b/src/types/Payment.ts @@ -0,0 +1,141 @@ +import { IPaymentMethod } from './PaymentMethod' +import { IReceipt, ReceiptRegistrationEnum } from './Receipt' +import { IAmount, LocaleEnum } from './Common' + +export enum PaymentStatusEnum { + /** Платеж создан, но не завершен */ + PENDING = 'pending', + + /** Платеж завершен и ожидает ваших действий */ + WAITING_FOR_CAPTURE = 'waiting_for_capture', + + /** Платеж успешно завершен, деньги придут на ваш расчетный счет */ + SUCCEEDED = 'succeeded', + + /** Платеж отменен */ + CANCELED = 'canceled', +} + +export interface ICreatePaymentRequest { + /** Сумма платежа. Иногда партнеры ЮKassa берут с пользователя дополнительную комиссию, которая не входит в эту сумму. */ + amount: IAmount + /** Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь — при оплате. Например: «Оплата заказа № 72 для user@yoomoney.ru». */ + description?: string + /** Данные для формирования чека. + * Необходимо передавать в этих случаях: + * вы компания или ИП, используете решение ЮKassa для оплаты по 54-ФЗ и отправляете данные для формирования чеков по одному из сценариев: Платеж и чек одновременно или Сначала чек, потом платеж ; + * вы самозанятый и используете решение ЮKassa для автоотправки чеков + **/ + receipt?: IReceipt + /** Получатель платежа. Нужен, если вы разделяете потоки платежей в рамках одного аккаунта или создаете платеж в адрес другого аккаунта. */ + recipient?: { + /** Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта. */ + gateway_id: string + } + /** Данные для оплаты конкретным способом (payment_method). Вы можете не передавать этот объект в запросе. В этом случае пользователь будет выбирать способ оплаты на стороне ЮKassa. */ + payment_method_data?: IPaymentMethod + /** Автоматический прием поступившего платежа. */ + capture: boolean + /** Данные, необходимые для инициирования выбранного сценария подтверждения платежа пользователем. Подробнее о сценариях подтверждения */ + confirmation: IConfirmation + /** Сохранение платежных данных (с их помощью можно проводить повторные безакцептные списания ). Значение true инициирует создание многоразового payment_method. */ + save_payment_method?: boolean + /** Идентификатор покупателя в вашей системе, например электронная почта или номер телефона. Не более 200 символов. Присутствует, если вы хотите запомнить банковскую карту и отобразить ее при повторном платеже в виджете ЮKassa . */ + merchant_customer_id?: string +} + +/** === CONFIRMATION == */ +export type IConfirmation = + | IConfirmationRedirect + | IConfirmationEmbedded + | IConfirmationQR + | IConfirmationExternal + | IConfirmationMobileApp + +export enum ConfirmationTypesEnum { + embedded = 'embedded', + external = 'external', + mobile_application = 'mobile_application', + qr = 'qr', + redirect = 'redirect', +} + +export interface IConfirmationRedirect { + /** Код сценария подтверждения. */ + type: 'redirect' + /** URL, на который необходимо перенаправить пользователя для подтверждения оплаты. */ + confirmation_url: string + /** Запрос на проведение платежа с аутентификацией по 3-D Secure. Будет работать, если оплату банковской картой вы по умолчанию принимаете без подтверждения платежа пользователем. В остальных случаях аутентификацией по 3-D Secure будет управлять ЮKassa. Если хотите принимать платежи без дополнительного подтверждения пользователем, напишите вашему менеджеру ЮKassa. */ + enforce?: boolean + /** Язык интерфейса, писем и смс, которые будет видеть или получать пользователь. Формат соответствует ISO/IEC 15897. Возможные значения: ru_RU, en_US. Регистр важен. */ + locale?: LocaleEnum + /** URL, на который вернется пользователь после подтверждения или отмены платежа на веб-странице. Не более 2048 символов. */ + return_url: string +} + +export interface IConfirmationEmbedded { + /** Код сценария подтверждения. */ + type: ConfirmationTypesEnum.embedded + /** Язык интерфейса, писем и смс, которые будет видеть или получать пользователь. Формат соответствует ISO/IEC 15897. Возможные значения: ru_RU, en_US. Регистр важен. */ + locale?: LocaleEnum +} + +export interface IConfirmationQR { + type: ConfirmationTypesEnum.qr + //TODO: Добавить типы для QR-код + any: unknown +} + +export interface IConfirmationExternal { + type: ConfirmationTypesEnum.external + //TODO: Добавить типы для External + any: unknown +} + +export interface IConfirmationMobileApp { + type: ConfirmationTypesEnum.mobile_application + //TODO: Добавить типы для MobileApplication + any: unknown +} + +export interface IPayment { + /** Идентификатор платежа в ЮKassa. */ + id: string + /** Статус платежа. Возможные значения: pending, waiting_for_capture, succeeded и canceled. */ + status: PaymentStatusEnum + /** Сумма платежа. Иногда партнеры ЮKassa берут с пользователя дополнительную комиссию, которая не входит в эту сумму. */ + amount: IAmount + /** Сумма платежа, которую получит магазин, — значение amount за вычетом комиссии ЮKassa. Если вы партнер и для аутентификации запросов используете OAuth-токен, запросит */ + income_amount?: IAmount + /** Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь — при оплате. Например: «Оплата заказа № 72 для user@yoomoney.ru». */ + description?: string + /** Получатель платежа. */ + recipient: { + /** Идентификатор магазина в ЮKassa. */ + account_id: string + /** Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта. */ + gateway_id: string + } + /** Способ оплаты , который был использован для этого платежа. */ + payment_method?: IPaymentMethod + /** Время подтверждения платежа. Указывается по UTC и передается в формате ISO 8601. */ + captured_at?: string + /** Время создания заказа. Указывается по UTC и передается в формате ISO 8601. Пример: 2017-11-03T11:52:31.827Z*/ + created_at: string + /** Время, до которого вы можете бесплатно отменить или подтвердить платеж. В указанное время платеж в статусе waiting_for_capture будет автоматически отменен. Указывается по UTC и передается в формате ISO 8601. Пример: 2017-11-03T11:52:31.827Z */ + expires_at?: string + /** Выбранный способ подтверждения платежа. Присутствует, когда платеж ожидает подтверждения от пользователя. Подробнее о сценариях подтверждения */ + confirmation?: IConfirmation + /** Признак тестовой операции. */ + test: boolean + /** Сумма, которая вернулась пользователю. Присутствует, если у этого платежа есть успешные возвраты. */ + refunded_amount?: IAmount + /** Признак оплаты заказа. */ + paid: boolean + /** Возможность провести возврат по API. */ + refundable: boolean + /** Статус регистрации чека. Присутствует, если вы используете решения ЮKassa для отправки чеков в налоговую. */ + receipt_registration?: ReceiptRegistrationEnum + /** Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: максимум 16 ключей, имя ключа не больше 32 символов, значение ключа не больше 512 символов, тип данных — строка в формате UTF-8. */ + metadata?: object +} diff --git a/src/types/PaymentMethod.ts b/src/types/PaymentMethod.ts new file mode 100644 index 0000000..5371e9e --- /dev/null +++ b/src/types/PaymentMethod.ts @@ -0,0 +1,139 @@ +import { IAmount } from './Common' + +/** Способы оплаты */ +export type IPaymentMethod = + | IPaymentMethodAlfabank + | IPaymentMethodMobileBalance + | IPaymentMethodCard + | IPaymentMethodInstallments + | IPaymentMethodCash + | IPaymentMethodSbp + | IPaymentMethodB2b_sberbank + | IPaymentMethodTinkoff_bank + | IPaymentMethodYooMoney + | IPaymentMethodQiwi + | IPaymentMethodSberbank + +export enum PaymentMethodsEnum { + /** Банковская карта или карта МИР */ + bank_card = 'bank_card', + + /** ЮMoney */ + yoo_money = 'yoo_money', + + /** QIWI Кошелек */ + qiwi = 'qiwi', + + /** SberPay */ + sberbank = 'sberbank', + + /** Альфа-Клик */ + alfabank = 'alfabank', + + /** Тинькофф */ + tinkoff_bank = 'tinkoff_bank', + + /** СберБанк Бизнес Онлайн */ + b2b_sberbank = 'b2b_sberbank', + + /** СБП (Система быстрых платежей) */ + sbp = 'sbp', + + /** Баланс телефона */ + mobile_balance = 'mobile_balance', + + /** Наличные */ + cash = 'cash', + + /** Заплатить по частям */ + installments = 'installments', +} + +/** Банковская карта */ +export interface IPaymentMethodCard { + /** Код способа оплаты. */ + type: PaymentMethodsEnum.bank_card + /** Данные банковской карты (необходимы, если вы собираете данные карты пользователей на своей стороне). */ + card?: { + /** Номер банковской карты. */ + number: string + /** Срок действия, год, YYYY. */ + expiry_year?: string + /** Срок действия, месяц, MM. */ + expiry_month: string + /** Код CVC2 или CVV2, 3 или 4 символа, печатается на обратной стороне карты. */ + csc?: string + /** Имя владельца карты. */ + cardholder?: string + } +} + +/** Баланс телефона */ +export interface IPaymentMethodMobileBalance { + /** Код способа оплаты. */ + type: PaymentMethodsEnum.mobile_balance + /** Телефон, с баланса которого осуществляется платеж. Указывается в формате ITU-T E.164, например 79000000000. */ + phone: string +} + +/** ЮMoney */ +export interface IPaymentMethodYooMoney { + type: PaymentMethodsEnum.yoo_money +} + +/** QIWI Кошелек */ +export interface IPaymentMethodQiwi { + type: PaymentMethodsEnum.qiwi + /** Телефон, на который зарегистрирован аккаунт в QIWI. Указывается в формате ITU-T E.164, например 79000000000. */ + phone?: string +} + +/** SberPay */ +export interface IPaymentMethodSberbank { + type: PaymentMethodsEnum.sberbank + /** Телефон пользователя, на который зарегистрирован аккаунт в SberPay. Необходим для подтверждения оплаты по смс (сценарий подтверждения external). Указывается в формате ITU-T E.164, например 79000000000. */ + phone?: string +} + +/** Альфа-Клик */ +export interface IPaymentMethodAlfabank { + type: PaymentMethodsEnum.alfabank + /** Логин пользователя в Альфа-Клике. Обязателен для сценария External . */ + login?: string +} + +/** Тинькофф */ +export interface IPaymentMethodTinkoff_bank { + type: PaymentMethodsEnum.tinkoff_bank +} + +/** СберБанк Бизнес Онлайн */ +export interface IPaymentMethodB2b_sberbank { + type: PaymentMethodsEnum.b2b_sberbank + /** Назначение платежа (не больше 210 символов). */ + payment_purpose: string + /** Данные о налоге на добавленную стоимость (НДС). Платеж может облагаться или не облагаться НДС. Товары могут облагаться по одной ставке НДС или по разным. */ + vat_data: { + /** Код способа расчета НДС. */ + type: 'mixed' | 'calculated' | 'untaxed' + /** Сумма НДС. */ + amount?: IAmount + } +} + +/** СБП (Система быстрых платежей) */ +export interface IPaymentMethodSbp { + type: PaymentMethodsEnum.sbp +} + +/** Наличные */ +export interface IPaymentMethodCash { + type: PaymentMethodsEnum.cash + /** Телефон пользователя, на который придет смс с кодом платежа (для внесения наличных). Указывается в формате ITU-T E.164, например 79000000000. Поле можно оставить пустым: пользователь сможет заполнить его при оплате на стороне ЮKassa. */ + phone?: string +} + +/** Заплатить по частям */ +export interface IPaymentMethodInstallments { + type: PaymentMethodsEnum.installments +} diff --git a/src/types/Receipt.ts b/src/types/Receipt.ts new file mode 100644 index 0000000..a0fa342 --- /dev/null +++ b/src/types/Receipt.ts @@ -0,0 +1,111 @@ +import { IAmount } from './Common' + +export enum VatCodesEnum { + /** 1 Без НДС */ + 'ndsNone' = 1, + + /** 2 НДС по ставке 0% */ + 'nds0' = 2, + + /** 3 НДС по ставке 10% */ + 'nds10' = 3, + + /** 4 НДС чека по ставке 20% */ + 'nds20' = 4, + + /** 5 НДС чека по расчетной ставке 10/110 */ + 'nds10/110' = 5, + + /** 6 НДС чека по расчетной ставке 20/120 */ + 'nds20/120' = 6, +} + +export enum TaxSystemCodesEnum { + /** Общая система налогообложения */ + 'OSN' = 1, + + /** Упрощенная (УСН, доходы) */ + 'USN6' = 2, + + /** Упрощенная (УСН, доходы минус расходы) */ + 'USN15' = 3, + + /** Единый налог на вмененный доход (ЕНВД) */ + 'ENVD' = 4, + + /** Единый сельскохозяйственный налог (ЕСН) */ + 'ESN' = 5, + + /** Патентная система налогообложения */ + 'PSN' = 6, +} + +export enum ReceiptRegistrationEnum { + /** данные в обработке; */ + pending = 'pending', + /** чек успешно зарегистрирован; */ + succeeded = 'succeeded', + /** чек зарегистрировать не удалось, сформируйте чек вручную. */ + canceled = 'canceled', +} + +export interface ICustomer { + /** Для юрлица — название организации, для ИП и физического лица — ФИО. + * Если у физлица отсутствует ИНН, в этом же параметре передаются паспортные данные. + * Не более 256 символов. + * Онлайн-кассы, которые поддерживают этот параметр: Orange Data, Атол Онлайн. + **/ + full_name?: string + /** ИНН пользователя (10 или 12 цифр). Если у физического лица отсутствует ИНН, необходимо передать паспортные данные в параметре full_name. + * Онлайн-кассы, которые поддерживают этот параметр: Orange Data, Атол Онлайн. + * */ + inn?: string + /** Электронная почта пользователя для отправки чека. Обязательный параметр, если не передан phone. */ + email?: string + /** Телефон пользователя для отправки чека. Указывается в формате ITU-T E.164, например 79000000000. Обязательный параметр, если не передан email. */ + phone?: string +} + +export interface IReceiptItem { + /** Название товара (не более 128 символов). Тег в 54 ФЗ — 1030. */ + description: string + /** Цена товара (тег в 54 ФЗ — 1079). */ + amount: IAmount + /** Ставка НДС (тег в 54 ФЗ — 1199). + * Для чеков по 54-ФЗ: возможные значения — числа от 1 до 6. Подробнее про коды ставок НДС + * Для чеков самозанятых: фиксированное значение — 1. + * */ + vat_code: VatCodesEnum + /** Количество товара (тег в 54 ФЗ — 1023). + * Для чеков по 54-ФЗ: максимально возможное значение зависит от модели вашей онлайн-кассы. + * Для чеков самозанятых: только целые положительные числа (без разделителя и дробной части). Пример: 1. + * */ + quantity: string + /** Мера количества предмета расчета (тег в 54 ФЗ — 2108) — единица измерения товара, например штуки, граммы. Обязателен при использовании ФФД 1.2. + * Перечень возможных значений: https://yookassa.ru/developers/payment-acceptance/scenario-extensions/receipts/54fz/parameters-values#measure + * */ + measure?: string + /** Дробное количество маркированного товара (тег в 54 ФЗ — 1291). Нужно передавать при одновременном выполнении следующих условий: + * используется ФФД версии 1.2; + * расчет осуществляется за маркированный товар; + * поле measure имеет значение piece. + * Пример: вы продаете поштучно карандаши. Они поставляются пачками по 100 штук с одним кодом маркировки. + * При продаже одного карандаша нужно в numerator передать 1, а в denominator — 100. + * */ + mark_quantity?: { + /** Числитель — количество продаваемых товаров из одной потребительской упаковки (тег в 54 ФЗ — 1293). Не может превышать denominator. */ + numerator: number + /** Знаменатель — общее количество товаров в потребительской упаковке (тег в 54 ФЗ — 1294). */ + denominator: number + } +} + +export interface IReceipt { + /** Информация о пользователе. Необходимо указать как минимум контактные данные: электронную почту (customer.email) или номер телефона (customer.phone). */ + customer?: ICustomer + + /** Список товаров в заказе. Для чеков по 54-ФЗ можно передать не более 100 товаров, для чеков самозанятых — не более шести. */ + items: IReceiptItem[] + /** Система налогообложения магазина (тег в 54 ФЗ — 1055). Параметр необходим, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения, в остальных случаях не передается. */ + tax_system_code?: TaxSystemCodesEnum +} diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..15a7ec6 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,8 @@ +export const delay = (ms: number) => { + return new Promise((resolve) => { + const timeoutId = setTimeout(() => { + clearTimeout(timeoutId) + resolve(true) + }, ms) + }) +} diff --git a/src/yookassa.ts b/src/yookassa.ts new file mode 100644 index 0000000..5bb9969 --- /dev/null +++ b/src/yookassa.ts @@ -0,0 +1,222 @@ +import request from 'axios' +import { v4 as uuid } from 'uuid' +import Payment from './payment' +import Refund from './refund' +import PaymentError from './payment-error' +import * as utils from './utils' +import { ICreatePaymentRequest } from './types/Payment' +import { IAmount } from './types/Common' + +const DEFAULT_URL = 'https://api.yookassa.ru/v3/' +const DEFAULT_DEBUG = false +const DEFAULT_TIMEOUT = 120000 // 2 minutes (Node's default timeout) +const DEFAULT_DELAY = 60000 // 1 minute + +export default class YooKassa { + shopId: string + secretKey: string + apiUrl: string + debug: boolean + timeout: number + retryDelay: number + + /** + * @param {string} shopId + * @param {string} secretKey + * @param {string} apiUrl + * @param {string} debug + * @param {string} timeout + * @param {string} retryDelay + * @returns {YooKassa} + */ + constructor({ + shopId, + secretKey, + apiUrl = DEFAULT_URL, + debug = DEFAULT_DEBUG, + timeout = DEFAULT_TIMEOUT, + retryDelay = DEFAULT_DELAY, + }) { + this.shopId = shopId + this.secretKey = secretKey + this.apiUrl = apiUrl + this.debug = debug + this.timeout = timeout + this.retryDelay = retryDelay + } + + /** + * Create a payment + * @see https://yookassa.ru/developers/api#create_payment + * @param {Object} payload + * @param {string} idempotenceKey + * @returns {Promise} + */ + createPayment(payload: ICreatePaymentRequest, idempotenceKey: string = null) { + return this.request( + 'POST', + 'payments', + payload, + idempotenceKey, + ).then((data) => { + return new Payment(this, data) + }) + } + + /** + * Get info about a payment by id + * @see https://yookassa.ru/developers/api#get_payment + * @param {string} paymentId + * @param {string} idempotenceKey + * @returns {Promise} + */ + getPayment(paymentId: string, idempotenceKey: string = null) { + return this.request( + 'GET', + `payments/${paymentId}`, + {}, + idempotenceKey, + ).then((data) => { + return new Payment(this, data) + }) + } + + /** + * Capture a payment with status 'waiting_for_capture'. status change to 'succeeded' + * @see https://yookassa.ru/developers/api#capture_payment + * @param {string} paymentId + * @param {Object} amount + * @param {string} idempotenceKey + * @returns {Promise} + */ + capturePayment( + paymentId: string, + amount: IAmount, + idempotenceKey: string = null, + ) { + return this.request( + 'POST', + `payments/${paymentId}/capture`, + { amount }, + idempotenceKey, + ).then((data) => { + return new Payment(this, data) + }) + } + + /** + * Cancel a payment with status 'waiting_for_capture'. status change to 'canceled' + * @see https://kassa.yandex.ru/docs/checkout-api/#otmena-platezha + * @param {string} paymentId + * @param {string} idempotenceKey + * @returns {Promise} + */ + cancelPayment(paymentId: string, idempotenceKey: string = null) { + return this.request( + 'POST', + `payments/${paymentId}/cancel`, + {}, + idempotenceKey, + ).then((data: Payment) => { + return new Payment(this, data) + }) + } + + /** + * Create a refund + * @see https://yookassa.ru/developers/api#create_refund + * @param {string} paymentId + * @param {Object} amount + * @param {string} idempotenceKey + * @returns {Promise} + */ + createRefund(paymentId: string, amount: IAmount, idempotenceKey = null) { + return this.request( + 'POST', + 'refunds', + { payment_id: paymentId, amount }, + idempotenceKey, + ).then((data) => { + return new Refund(this, data) + }) + } + + /** + * Get info about a refund by id + * @see https://yookassa.ru/developers/api#get_refund + * @param {string} refundId + * @param {string} idempotenceKey + * @returns {Promise} + */ + getRefund(refundId: string, idempotenceKey: string = null) { + return this.request( + 'GET', + `refunds/${refundId}`, + {}, + idempotenceKey, + ).then((data) => { + return new Refund(this, data) + }) + } + + request( + method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD', + path: string, + payload: unknown, + idempotenceKey: string = null, + ): Promise { + /** + * Generate idempotence key if not present + * @see https://yookassa.ru/developers/using-api/basics#idempotence + */ + if (!idempotenceKey) { + idempotenceKey = uuid() + } + + const uri = this.apiUrl + path + + if (this.debug) { + console.log(`${method}: ${uri}`) + } + + return request({ + method, + url: uri, + data: payload, + timeout: this.timeout, + auth: { + username: this.shopId, + password: this.secretKey, + }, + headers: { + 'Idempotence-Key': idempotenceKey, + }, + }) + .then((response) => { + switch (response.status) { + /** + * Retry request + * @see https://yookassa.ru/developers/using-api/basics#sync + */ + case 202: + return utils + .delay(response.data.retry_after || this.retryDelay) + .then( + this.request.bind(this, method, path, payload, idempotenceKey), + ) + + /** + * Normal response + */ + default: + return response.data + } + }) + .catch((error) => { + /** + * @see https://yookassa.ru/developers/using-api/basics#http-codes + */ + return Promise.reject(new PaymentError(error)) + }) + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..961ce59 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./lib", + "baseUrl": "./src", + "incremental": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "paths": { + "@/*": ["src/*"], + } + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..346a089 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1696 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.10.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.39.0": + version "8.39.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" + integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/node@^20.0.0": + version "20.1.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.1.tgz#afc492e8dbe7f672dd3a13674823522b467a45ad" + integrity sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A== + +"@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@typescript-eslint/eslint-plugin@^5.59.2": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz#f156827610a3f8cefc56baeaa93cd4a5f32966b4" + integrity sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.59.5" + "@typescript-eslint/type-utils" "5.59.5" + "@typescript-eslint/utils" "5.59.5" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.59.2": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.5.tgz#63064f5eafbdbfb5f9dfbf5c4503cdf949852981" + integrity sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw== + dependencies: + "@typescript-eslint/scope-manager" "5.59.5" + "@typescript-eslint/types" "5.59.5" + "@typescript-eslint/typescript-estree" "5.59.5" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.59.5": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz#33ffc7e8663f42cfaac873de65ebf65d2bce674d" + integrity sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A== + dependencies: + "@typescript-eslint/types" "5.59.5" + "@typescript-eslint/visitor-keys" "5.59.5" + +"@typescript-eslint/type-utils@5.59.5": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz#485b0e2c5b923460bc2ea6b338c595343f06fc9b" + integrity sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg== + dependencies: + "@typescript-eslint/typescript-estree" "5.59.5" + "@typescript-eslint/utils" "5.59.5" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.59.5": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.5.tgz#e63c5952532306d97c6ea432cee0981f6d2258c7" + integrity sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w== + +"@typescript-eslint/typescript-estree@5.59.5": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz#9b252ce55dd765e972a7a2f99233c439c5101e42" + integrity sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg== + dependencies: + "@typescript-eslint/types" "5.59.5" + "@typescript-eslint/visitor-keys" "5.59.5" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.59.5": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.5.tgz#15b3eb619bb223302e60413adb0accd29c32bcae" + integrity sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.59.5" + "@typescript-eslint/types" "5.59.5" + "@typescript-eslint/typescript-estree" "5.59.5" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.59.5": + version "5.59.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz#ba5b8d6791a13cf9fea6716af1e7626434b29b9b" + integrity sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA== + dependencies: + "@typescript-eslint/types" "5.59.5" + eslint-visitor-keys "^3.3.0" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1, acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +auto-changelog@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/auto-changelog/-/auto-changelog-2.4.0.tgz#a2d57d49b70ada7ca2e7c6a20a71572561d19cd9" + integrity sha512-vh17hko1c0ItsEcw6m7qPRf3m45u+XK5QyCrrBFViElZ8jnKrPC1roSznrd1fIB/0vR/zawdECCRJtTuqIXaJw== + dependencies: + commander "^7.2.0" + handlebars "^4.7.7" + node-fetch "^2.6.1" + parse-github-url "^1.0.2" + semver "^7.3.5" + +axios@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" + integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4, chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.19: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^9.4.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +enhanced-resolve@^5.0.0: + version "5.14.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4" + integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + +eslint-formatter-codeframe@^7.32.1: + version "7.32.1" + resolved "https://registry.yarnpkg.com/eslint-formatter-codeframe/-/eslint-formatter-codeframe-7.32.1.tgz#50ef4024e1a533709564b62263c90dbf668a1a00" + integrity sha512-DK/3Q3+zVKq/7PdSYiCxPrsDF8H/TRMK5n8Hziwr4IMkMy+XiKSwbpj25AdajS63I/B61Snetq4uVvX9fOLyAg== + dependencies: + "@babel/code-frame" "7.12.11" + chalk "^4.0.0" + +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@8.39.0: + version "8.39.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.39.0.tgz#7fd20a295ef92d43809e914b70c39fd5a23cf3f1" + integrity sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.2" + "@eslint/js" "8.39.0" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.0" + espree "^9.5.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.1, espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fs@^0.0.1-security: + version "0.0.1-security" + resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" + integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w== + +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +itsbz-onever@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/itsbz-onever/-/itsbz-onever-1.0.15.tgz#931c4218971e34fbbfd38ca90a6910b84824810d" + integrity sha512-UB8RquFTb1GqbQzC2d4Na2rY6Z24r8xx8K8VrZMyXlCTlxYPR8MPE3T+91GnYUFN1Qtl+f2ngJKBojLF0Ls+fg== + dependencies: + chalk "^4" + commander "^9.4.0" + fs "^0.0.1-security" + +js-sdsl@^4.1.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lint-staged@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca" + integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA== + dependencies: + chalk "5.2.0" + cli-truncate "^3.1.0" + commander "^10.0.0" + debug "^4.3.4" + execa "^7.0.0" + lilconfig "2.1.0" + listr2 "^5.0.7" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.3" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.2.2" + +listr2@^5.0.7: + version "5.0.8" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" + integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.19" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.8.0" + through "^2.3.8" + wrap-ansi "^7.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-fetch@^2.6.1: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +object-inspect@^1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-github-url@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.8.8: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.8.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +semver@^7.3.4, semver@^7.3.7: + version "7.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.5: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +string-argv@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-loader@^9.4.2: + version "9.4.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" + integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typescript@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" + integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==