diff --git a/.eslintrc-ts.js b/.eslintrc-ts.js
index 183b2fc..aacb721 100644
--- a/.eslintrc-ts.js
+++ b/.eslintrc-ts.js
@@ -23,6 +23,8 @@ module.exports = {
},
],
+ '@typescript-eslint/await-thenable': 'off',
+
// Disabled because: no configurable options for .length > 0, arr[0] and similar constructions.
'no-magic-numbers': 'off',
'@typescript-eslint/no-magic-numbers': 'off',
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..9c9b3f2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,55 @@
+name: Bug Report
+description: Сообщите о проблеме, если что-то работает не так, как ожидалось.
+title: '[Bug]: '
+labels: ['bug']
+body:
+ - type: textarea
+ id: description
+ attributes:
+ label: Описание
+ description: Подробное описание проблемы.
+ validations:
+ required: true
+ - type: textarea
+ id: steps
+ attributes:
+ label: Шаги воспроизведения
+ description: Последовательность, при которой ошибка стабильно воспроизводится.
+ validations:
+ required: true
+ - type: input
+ id: version
+ attributes:
+ label: Версия vkid/sdk
+ description: Поможет локализовать проблему.
+ validations:
+ required: true
+ - type: dropdown
+ id: browsers
+ attributes:
+ label: В каких браузерах воспроизводится проблема?
+ multiple: true
+ options:
+ - Firefox
+ - Chrome
+ - Safari
+ - Microsoft Edge
+ - Yandex Browser
+ - Другое (укажите в описании)
+ validations:
+ required: true
+ - type: textarea
+ id: expectations
+ attributes:
+ label: Ожидаемое поведение
+ description: Если считаете, что из описания ожидаемое поведение непонятно.
+ - type: textarea
+ id: screenshots
+ attributes:
+ label: Скриншоты
+ description: Прикрепите скриншоты, если есть такая возможность.
+ - type: textarea
+ id: example
+ attributes:
+ label: Пример с воспроизведением
+ description: Приложите ссылку (например из https://codesandbox.io). Сильно ускоряет поиск причин проблемы.
diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml
new file mode 100644
index 0000000..c0fdad0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/documentation.yml
@@ -0,0 +1,12 @@
+name: Documentation
+description: Сообщите об ошибке в документации или идею по ее улучшению, нам очень важна обратная связь
+title: '[Doc]: '
+labels: ['doc']
+body:
+ - type: textarea
+ id: description
+ attributes:
+ label: Описание
+ description: Подробное описание ошибки/желаемого поведения.
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000..44e4d28
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,17 @@
+name: Feature request
+description: Отправьте свое предложение по новой функциональности.
+title: '[Feature]: '
+labels: ['feature']
+body:
+ - type: textarea
+ id: description
+ attributes:
+ label: Описание
+ description: Описание новой или улучшения текущей функциональности.
+ validations:
+ required: true
+ - type: textarea
+ id: screenshots
+ attributes:
+ label: Скриншоты
+ description: Примеры того, как это будет выглядеть.
diff --git a/.husky/pre-commit b/.husky/pre-commit
index ee3e5fe..b323de0 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -2,4 +2,4 @@
. "$(dirname -- "$0")/_/husky.sh"
. "$(dirname "$0")/common.sh"
-yarn lint-staged && yarn docs:prod && git add ./.wiki
+yarn lint-staged && yarn docs:prod && git add ./docs
diff --git a/.wiki/README.md b/.wiki/README.md
deleted file mode 100644
index 76a4bc7..0000000
--- a/.wiki/README.md
+++ /dev/null
@@ -1,124 +0,0 @@
-@vkid/sdk / [Modules](modules.md)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- VK ID SDK — это библиотека для безопасной и удобной авторизации пользователей в вашем сервисе через VK ID.
-
-
-
----
-
-:information_source: VK ID SDK сейчас находится в бета-тестировании. О проблемах вы можете сообщить с помощью issues репозитория.
-
----
-
-## Установка
-
-**NPM:**
-
-```sh
-npm i @vkid/sdk
-```
-
-**YARN:**
-
-```sh
-yarn add @vkid/sdk
-```
-
-**PNPM:**
-
-```sh
-pnpm add @vkid/sdk
-```
-
-**CDN:**
-
-```html
-
-```
-
-> Обратите внимание: Для работы авторизации нужен APP_ID. Вы получите его, когда [создадите](https://id.vk.com/business/go/docs/ru/vkid/latest/vk-id/connection/create-application) приложение в кабинете подключения VK ID.
-
-## Пример
-
-
- Базовая авторизация
-
-```javascript
-import * as VKID from '@vkid/sdk';
-
-VKID.Config.set({
- app: APP_ID,
- redirectUrl: 'https://example.com'
-});
-
-const authButton = document.createElement('button');
-authButton.onclick = () => {
- VKID.Auth.login(); // После авторизации будет редирект на адрес, указанный в параметре redirect_uri
-};
-
-document.getElementById('container').appendChild(authButton);
-```
-
-
-
- OneTap
-
-```javascript
-import * as VKID from '@vkid/sdk';
-
-VKID.Config.set({
- app: APP_ID,
- redirectUrl: 'https://example.com'
-});
-
-const oneTap = new VKID.OneTap();
-
-const container = document.getElementById('VkIdSdkOneTap');
-
-if (container) {
- oneTap.render({ container });
-}
-```
-
-
-## Документация
-
-- [Что такое VK ID](https://id.vk.com/business/go/docs/ru/vkid/latest/vk-id/intro/start-page)
-- [Создание приложения](https://id.vk.com/business/go/docs/ru/vkid/latest/vk-id/connection/create-application)
-- [Требования к дизайну](https://id.vk.com/business/go/docs/ru/vkid/archive/1.60/vk-id/guidelines/design-rules)
-- [Спецификация](.wiki/README.md)
-
-## Contributing
-
-Проект VK ID SDK имеет открытый исходный код на GitHub, и вы можете присоединиться к его доработке — мы будем благодарны за внесение улучшений и исправление возможных ошибок.
-
-### Code of Conduct
-
-Если вы собираетесь вносить изменения в проект VK ID SDK, следуйте правилам [разработки](CODE_OF_CONDUCT.md). Они помогут понять, какие действия возможны, а какие недопустимы.
-
-### Contributing Guide
-
-В [руководстве](CONTRIBUTING.md) вы можете подробно ознакомиться с процессом разработки и узнать, как предлагать улучшения и исправления, а ещё — как добавлять и тестировать свои изменения в VK ID SDK.
-Также рекомендуем ознакомиться с общими [правилами оформления кода](CODE_STYLE.md) в проекте.
diff --git a/.wiki/classes/auth.Auth.md b/.wiki/classes/auth.Auth.md
deleted file mode 100644
index 6a6cec5..0000000
--- a/.wiki/classes/auth.Auth.md
+++ /dev/null
@@ -1,47 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [auth](../modules/auth.md) / Auth
-
-# Class: Auth
-
-[auth](../modules/auth.md).Auth
-
-## Table of contents
-
-### Constructors
-
-- [constructor](auth.Auth.md#constructor)
-
-### Properties
-
-- [\_\_config](auth.Auth.md#__config)
-
-### Methods
-
-- [login](auth.Auth.md#login)
-
-## Constructors
-
-### constructor
-
-• **new Auth**()
-
-## Properties
-
-### \_\_config
-
-▪ `Static` **\_\_config**: [`Config`](core_config.Config.md)
-
-## Methods
-
-### login
-
-▸ `Readonly` **login**(`params?`): `void`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `params?` | [`AuthParams`](../interfaces/auth.AuthParams.md) |
-
-#### Returns
-
-`void`
diff --git a/.wiki/classes/core_config.Config.md b/.wiki/classes/core_config.Config.md
deleted file mode 100644
index e7adeaa..0000000
--- a/.wiki/classes/core_config.Config.md
+++ /dev/null
@@ -1,48 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [core/config](../modules/core_config.md) / Config
-
-# Class: Config
-
-[core/config](../modules/core_config.md).Config
-
-## Table of contents
-
-### Constructors
-
-- [constructor](core_config.Config.md#constructor)
-
-### Methods
-
-- [get](core_config.Config.md#get)
-- [set](core_config.Config.md#set)
-
-## Constructors
-
-### constructor
-
-• **new Config**()
-
-## Methods
-
-### get
-
-▸ **get**(): [`ConfigData`](../interfaces/core_config.ConfigData.md)
-
-#### Returns
-
-[`ConfigData`](../interfaces/core_config.ConfigData.md)
-
-___
-
-### set
-
-▸ **set**(`config`): [`Config`](core_config.Config.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `config` | `Partial`<[`ConfigData`](../interfaces/core_config.ConfigData.md)\> |
-
-#### Returns
-
-[`Config`](core_config.Config.md)
diff --git a/.wiki/classes/widgets_floatingOneTap.FloatingOneTap.md b/.wiki/classes/widgets_floatingOneTap.FloatingOneTap.md
deleted file mode 100644
index fcdf290..0000000
--- a/.wiki/classes/widgets_floatingOneTap.FloatingOneTap.md
+++ /dev/null
@@ -1,165 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/floatingOneTap](../modules/widgets_floatingOneTap.md) / FloatingOneTap
-
-# Class: FloatingOneTap
-
-[widgets/floatingOneTap](../modules/widgets_floatingOneTap.md).FloatingOneTap
-
-## Hierarchy
-
-- `Widget`<`Omit`<[`FloatingOneTapParams`](../interfaces/widgets_floatingOneTap.FloatingOneTapParams.md), ``"appName"``\>\>
-
- ↳ **`FloatingOneTap`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](widgets_floatingOneTap.FloatingOneTap.md#constructor)
-
-### Properties
-
-- [\_\_auth](widgets_floatingOneTap.FloatingOneTap.md#__auth)
-- [\_\_config](widgets_floatingOneTap.FloatingOneTap.md#__config)
-
-### Methods
-
-- [close](widgets_floatingOneTap.FloatingOneTap.md#close)
-- [hide](widgets_floatingOneTap.FloatingOneTap.md#hide)
-- [off](widgets_floatingOneTap.FloatingOneTap.md#off)
-- [on](widgets_floatingOneTap.FloatingOneTap.md#on)
-- [render](widgets_floatingOneTap.FloatingOneTap.md#render)
-- [show](widgets_floatingOneTap.FloatingOneTap.md#show)
-
-## Constructors
-
-### constructor
-
-• **new FloatingOneTap**()
-
-#### Inherited from
-
-Widget\>.constructor
-
-## Properties
-
-### \_\_auth
-
-▪ `Static` **\_\_auth**: [`Auth`](auth.Auth.md)
-
-#### Inherited from
-
-Widget.\_\_auth
-
-___
-
-### \_\_config
-
-▪ `Static` **\_\_config**: [`Config`](core_config.Config.md)
-
-#### Inherited from
-
-Widget.\_\_config
-
-## Methods
-
-### close
-
-▸ **close**(): `void`
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Widget.close
-
-___
-
-### hide
-
-▸ **hide**(): [`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Returns
-
-[`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Inherited from
-
-Widget.hide
-
-___
-
-### off
-
-▸ **off**(`event`, `handler`): [`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `event` | `string` |
-| `handler` | `any` |
-
-#### Returns
-
-[`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Inherited from
-
-Widget.off
-
-___
-
-### on
-
-▸ **on**(`event`, `handler`): [`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `event` | `string` |
-| `handler` | `any` |
-
-#### Returns
-
-[`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Inherited from
-
-Widget.on
-
-___
-
-### render
-
-▸ **render**(`params`): [`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `params` | [`FloatingOneTapParams`](../interfaces/widgets_floatingOneTap.FloatingOneTapParams.md) |
-
-#### Returns
-
-[`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Overrides
-
-Widget.render
-
-___
-
-### show
-
-▸ **show**(): [`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Returns
-
-[`FloatingOneTap`](widgets_floatingOneTap.FloatingOneTap.md)
-
-#### Inherited from
-
-Widget.show
diff --git a/.wiki/classes/widgets_oauthList.OAuthList.md b/.wiki/classes/widgets_oauthList.OAuthList.md
deleted file mode 100644
index 27a1995..0000000
--- a/.wiki/classes/widgets_oauthList.OAuthList.md
+++ /dev/null
@@ -1,165 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oauthList](../modules/widgets_oauthList.md) / OAuthList
-
-# Class: OAuthList
-
-[widgets/oauthList](../modules/widgets_oauthList.md).OAuthList
-
-## Hierarchy
-
-- `Widget`<[`OAuthListParams`](../interfaces/widgets_oauthList.OAuthListParams.md)\>
-
- ↳ **`OAuthList`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](widgets_oauthList.OAuthList.md#constructor)
-
-### Properties
-
-- [\_\_auth](widgets_oauthList.OAuthList.md#__auth)
-- [\_\_config](widgets_oauthList.OAuthList.md#__config)
-
-### Methods
-
-- [close](widgets_oauthList.OAuthList.md#close)
-- [hide](widgets_oauthList.OAuthList.md#hide)
-- [off](widgets_oauthList.OAuthList.md#off)
-- [on](widgets_oauthList.OAuthList.md#on)
-- [render](widgets_oauthList.OAuthList.md#render)
-- [show](widgets_oauthList.OAuthList.md#show)
-
-## Constructors
-
-### constructor
-
-• **new OAuthList**()
-
-#### Inherited from
-
-Widget.constructor
-
-## Properties
-
-### \_\_auth
-
-▪ `Static` **\_\_auth**: [`Auth`](auth.Auth.md)
-
-#### Inherited from
-
-Widget.\_\_auth
-
-___
-
-### \_\_config
-
-▪ `Static` **\_\_config**: [`Config`](core_config.Config.md)
-
-#### Inherited from
-
-Widget.\_\_config
-
-## Methods
-
-### close
-
-▸ **close**(): `void`
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Widget.close
-
-___
-
-### hide
-
-▸ **hide**(): [`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Returns
-
-[`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Inherited from
-
-Widget.hide
-
-___
-
-### off
-
-▸ **off**(`event`, `handler`): [`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `event` | `string` |
-| `handler` | `any` |
-
-#### Returns
-
-[`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Inherited from
-
-Widget.off
-
-___
-
-### on
-
-▸ **on**(`event`, `handler`): [`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `event` | `string` |
-| `handler` | `any` |
-
-#### Returns
-
-[`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Inherited from
-
-Widget.on
-
-___
-
-### render
-
-▸ **render**(`params`): [`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `params` | [`OAuthListParams`](../interfaces/widgets_oauthList.OAuthListParams.md) |
-
-#### Returns
-
-[`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Overrides
-
-Widget.render
-
-___
-
-### show
-
-▸ **show**(): [`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Returns
-
-[`OAuthList`](widgets_oauthList.OAuthList.md)
-
-#### Inherited from
-
-Widget.show
diff --git a/.wiki/classes/widgets_oneTap.OneTap.md b/.wiki/classes/widgets_oneTap.OneTap.md
deleted file mode 100644
index 046c18a..0000000
--- a/.wiki/classes/widgets_oneTap.OneTap.md
+++ /dev/null
@@ -1,165 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oneTap](../modules/widgets_oneTap.md) / OneTap
-
-# Class: OneTap
-
-[widgets/oneTap](../modules/widgets_oneTap.md).OneTap
-
-## Hierarchy
-
-- `Widget`<[`OneTapParams`](../interfaces/widgets_oneTap.OneTapParams.md)\>
-
- ↳ **`OneTap`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](widgets_oneTap.OneTap.md#constructor)
-
-### Properties
-
-- [\_\_auth](widgets_oneTap.OneTap.md#__auth)
-- [\_\_config](widgets_oneTap.OneTap.md#__config)
-
-### Methods
-
-- [close](widgets_oneTap.OneTap.md#close)
-- [hide](widgets_oneTap.OneTap.md#hide)
-- [off](widgets_oneTap.OneTap.md#off)
-- [on](widgets_oneTap.OneTap.md#on)
-- [render](widgets_oneTap.OneTap.md#render)
-- [show](widgets_oneTap.OneTap.md#show)
-
-## Constructors
-
-### constructor
-
-• **new OneTap**()
-
-#### Inherited from
-
-Widget.constructor
-
-## Properties
-
-### \_\_auth
-
-▪ `Static` **\_\_auth**: [`Auth`](auth.Auth.md)
-
-#### Inherited from
-
-Widget.\_\_auth
-
-___
-
-### \_\_config
-
-▪ `Static` **\_\_config**: [`Config`](core_config.Config.md)
-
-#### Inherited from
-
-Widget.\_\_config
-
-## Methods
-
-### close
-
-▸ **close**(): `void`
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Widget.close
-
-___
-
-### hide
-
-▸ **hide**(): [`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Returns
-
-[`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Inherited from
-
-Widget.hide
-
-___
-
-### off
-
-▸ **off**(`event`, `handler`): [`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `event` | `string` |
-| `handler` | `any` |
-
-#### Returns
-
-[`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Inherited from
-
-Widget.off
-
-___
-
-### on
-
-▸ **on**(`event`, `handler`): [`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `event` | `string` |
-| `handler` | `any` |
-
-#### Returns
-
-[`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Inherited from
-
-Widget.on
-
-___
-
-### render
-
-▸ **render**(`params`): [`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `params` | [`OneTapParams`](../interfaces/widgets_oneTap.OneTapParams.md) |
-
-#### Returns
-
-[`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Overrides
-
-Widget.render
-
-___
-
-### show
-
-▸ **show**(): [`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Returns
-
-[`OneTap`](widgets_oneTap.OneTap.md)
-
-#### Inherited from
-
-Widget.show
diff --git a/.wiki/enums/auth.AuthErrorCode.md b/.wiki/enums/auth.AuthErrorCode.md
deleted file mode 100644
index c843c53..0000000
--- a/.wiki/enums/auth.AuthErrorCode.md
+++ /dev/null
@@ -1,46 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [auth](../modules/auth.md) / AuthErrorCode
-
-# Enumeration: AuthErrorCode
-
-[auth](../modules/auth.md).AuthErrorCode
-
-## Table of contents
-
-### Enumeration Members
-
-- [AuthorizationFailed](auth.AuthErrorCode.md#authorizationfailed)
-- [CannotCreateNewTab](auth.AuthErrorCode.md#cannotcreatenewtab)
-- [EventNotSupported](auth.AuthErrorCode.md#eventnotsupported)
-- [NewTabHasBeenClosed](auth.AuthErrorCode.md#newtabhasbeenclosed)
-
-## Enumeration Members
-
-### AuthorizationFailed
-
-• **AuthorizationFailed** = ``103``
-
-Авторизация завершилась ошибкой
-
-___
-
-### CannotCreateNewTab
-
-• **CannotCreateNewTab** = ``101``
-
-Новая вкладка не создалась
-
-___
-
-### EventNotSupported
-
-• **EventNotSupported** = ``100``
-
-Неизвестное событие
-
-___
-
-### NewTabHasBeenClosed
-
-• **NewTabHasBeenClosed** = ``102``
-
-Новая вкладка была закрыта
diff --git a/.wiki/enums/types.Languages.md b/.wiki/enums/types.Languages.md
deleted file mode 100644
index 31d2930..0000000
--- a/.wiki/enums/types.Languages.md
+++ /dev/null
@@ -1,66 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [types](../modules/types.md) / Languages
-
-# Enumeration: Languages
-
-[types](../modules/types.md).Languages
-
-## Table of contents
-
-### Enumeration Members
-
-- [ENG](types.Languages.md#eng)
-- [FRA](types.Languages.md#fra)
-- [GERMAN](types.Languages.md#german)
-- [POL](types.Languages.md#pol)
-- [RUS](types.Languages.md#rus)
-- [SPA](types.Languages.md#spa)
-- [TURKEY](types.Languages.md#turkey)
-- [UKR](types.Languages.md#ukr)
-
-## Enumeration Members
-
-### ENG
-
-• **ENG** = ``3``
-
-___
-
-### FRA
-
-• **FRA** = ``16``
-
-___
-
-### GERMAN
-
-• **GERMAN** = ``6``
-
-___
-
-### POL
-
-• **POL** = ``15``
-
-___
-
-### RUS
-
-• **RUS** = ``0``
-
-___
-
-### SPA
-
-• **SPA** = ``4``
-
-___
-
-### TURKEY
-
-• **TURKEY** = ``82``
-
-___
-
-### UKR
-
-• **UKR** = ``1``
diff --git a/.wiki/enums/types.Scheme.md b/.wiki/enums/types.Scheme.md
deleted file mode 100644
index 7304a37..0000000
--- a/.wiki/enums/types.Scheme.md
+++ /dev/null
@@ -1,24 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [types](../modules/types.md) / Scheme
-
-# Enumeration: Scheme
-
-[types](../modules/types.md).Scheme
-
-## Table of contents
-
-### Enumeration Members
-
-- [DARK](types.Scheme.md#dark)
-- [LIGHT](types.Scheme.md#light)
-
-## Enumeration Members
-
-### DARK
-
-• **DARK** = ``"dark"``
-
-___
-
-### LIGHT
-
-• **LIGHT** = ``"light"``
diff --git a/.wiki/enums/widgets_floatingOneTap.FloatingOneTapContentId.md b/.wiki/enums/widgets_floatingOneTap.FloatingOneTapContentId.md
deleted file mode 100644
index 3853791..0000000
--- a/.wiki/enums/widgets_floatingOneTap.FloatingOneTapContentId.md
+++ /dev/null
@@ -1,64 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/floatingOneTap](../modules/widgets_floatingOneTap.md) / FloatingOneTapContentId
-
-# Enumeration: FloatingOneTapContentId
-
-[widgets/floatingOneTap](../modules/widgets_floatingOneTap.md).FloatingOneTapContentId
-
-## Table of contents
-
-### Enumeration Members
-
-- [MAKE\_ORDER\_WITHOUT\_SERVICE](widgets_floatingOneTap.FloatingOneTapContentId.md#make_order_without_service)
-- [MAKE\_ORDER\_WITH\_SERVICE](widgets_floatingOneTap.FloatingOneTapContentId.md#make_order_with_service)
-- [REGISTRATION\_FOR\_EVENT](widgets_floatingOneTap.FloatingOneTapContentId.md#registration_for_event)
-- [SIGN\_IN\_TO\_ACCOUNT](widgets_floatingOneTap.FloatingOneTapContentId.md#sign_in_to_account)
-- [SIGN\_IN\_TO\_SERVICE](widgets_floatingOneTap.FloatingOneTapContentId.md#sign_in_to_service)
-- [SUBMIT\_APPLICATIONS](widgets_floatingOneTap.FloatingOneTapContentId.md#submit_applications)
-
-## Enumeration Members
-
-### MAKE\_ORDER\_WITHOUT\_SERVICE
-
-• **MAKE\_ORDER\_WITHOUT\_SERVICE** = ``5``
-
-Оформление заказа
-
-___
-
-### MAKE\_ORDER\_WITH\_SERVICE
-
-• **MAKE\_ORDER\_WITH\_SERVICE** = ``4``
-
-Оформление заказа в сервисе
-
-___
-
-### REGISTRATION\_FOR\_EVENT
-
-• **REGISTRATION\_FOR\_EVENT** = ``2``
-
-Регистрация на мероприятие
-
-___
-
-### SIGN\_IN\_TO\_ACCOUNT
-
-• **SIGN\_IN\_TO\_ACCOUNT** = ``1``
-
-Войти в учетную запись сервиса
-
-___
-
-### SIGN\_IN\_TO\_SERVICE
-
-• **SIGN\_IN\_TO\_SERVICE** = ``0``
-
-Войти или зарегистрироваться
-
-___
-
-### SUBMIT\_APPLICATIONS
-
-• **SUBMIT\_APPLICATIONS** = ``3``
-
-Подача заявки
diff --git a/.wiki/enums/widgets_oauthList.OAuthName.md b/.wiki/enums/widgets_oauthList.OAuthName.md
deleted file mode 100644
index fbe23e5..0000000
--- a/.wiki/enums/widgets_oauthList.OAuthName.md
+++ /dev/null
@@ -1,31 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oauthList](../modules/widgets_oauthList.md) / OAuthName
-
-# Enumeration: OAuthName
-
-[widgets/oauthList](../modules/widgets_oauthList.md).OAuthName
-
-## Table of contents
-
-### Enumeration Members
-
-- [MAIL](widgets_oauthList.OAuthName.md#mail)
-- [OK](widgets_oauthList.OAuthName.md#ok)
-- [VK](widgets_oauthList.OAuthName.md#vk)
-
-## Enumeration Members
-
-### MAIL
-
-• **MAIL** = ``"mail_ru"``
-
-___
-
-### OK
-
-• **OK** = ``"ok_ru"``
-
-___
-
-### VK
-
-• **VK** = ``"vkid"``
diff --git a/.wiki/interfaces/auth.AuthError.md b/.wiki/interfaces/auth.AuthError.md
deleted file mode 100644
index 459f4fa..0000000
--- a/.wiki/interfaces/auth.AuthError.md
+++ /dev/null
@@ -1,37 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [auth](../modules/auth.md) / AuthError
-
-# Interface: AuthError
-
-[auth](../modules/auth.md).AuthError
-
-## Table of contents
-
-### Properties
-
-- [code](auth.AuthError.md#code)
-- [details](auth.AuthError.md#details)
-- [text](auth.AuthError.md#text)
-
-## Properties
-
-### code
-
-• **code**: [`AuthErrorCode`](../enums/auth.AuthErrorCode.md)
-
-Код ошибки
-
-___
-
-### details
-
-• `Optional` **details**: `any`
-
-Расширенная информация об ошибке
-
-___
-
-### text
-
-• **text**: `string`
-
-Текст ошибки
diff --git a/.wiki/interfaces/auth.AuthParams.md b/.wiki/interfaces/auth.AuthParams.md
deleted file mode 100644
index d019806..0000000
--- a/.wiki/interfaces/auth.AuthParams.md
+++ /dev/null
@@ -1,28 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [auth](../modules/auth.md) / AuthParams
-
-# Interface: AuthParams
-
-[auth](../modules/auth.md).AuthParams
-
-## Table of contents
-
-### Properties
-
-- [lang](auth.AuthParams.md#lang)
-- [scheme](auth.AuthParams.md#scheme)
-
-## Properties
-
-### lang
-
-• `Optional` **lang**: [`Languages`](../enums/types.Languages.md)
-
-Локализация, в которой будет отображена страница авторизации
-
-___
-
-### scheme
-
-• `Optional` **scheme**: [`Scheme`](../enums/types.Scheme.md)
-
-Цветовая тема, в которой будет отображена страница авторизации
diff --git a/.wiki/interfaces/auth.AuthResponse.md b/.wiki/interfaces/auth.AuthResponse.md
deleted file mode 100644
index c842f2c..0000000
--- a/.wiki/interfaces/auth.AuthResponse.md
+++ /dev/null
@@ -1,37 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [auth](../modules/auth.md) / AuthResponse
-
-# Interface: AuthResponse
-
-[auth](../modules/auth.md).AuthResponse
-
-## Table of contents
-
-### Properties
-
-- [token](auth.AuthResponse.md#token)
-- [ttl](auth.AuthResponse.md#ttl)
-- [type](auth.AuthResponse.md#type)
-
-## Properties
-
-### token
-
-• **token**: `string`
-
-Токен, полученный после прохождения авторизации
-
-___
-
-### ttl
-
-• **ttl**: `number`
-
-Время жизни токена
-
-___
-
-### type
-
-• **type**: ``"silent_token"``
-
-Вид токена
diff --git a/.wiki/interfaces/core_config.ConfigData.md b/.wiki/interfaces/core_config.ConfigData.md
deleted file mode 100644
index 3154470..0000000
--- a/.wiki/interfaces/core_config.ConfigData.md
+++ /dev/null
@@ -1,31 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [core/config](../modules/core_config.md) / ConfigData
-
-# Interface: ConfigData
-
-[core/config](../modules/core_config.md).ConfigData
-
-## Table of contents
-
-### Properties
-
-- [app](core_config.ConfigData.md#app)
-- [redirectUrl](core_config.ConfigData.md#redirecturl)
-- [state](core_config.ConfigData.md#state)
-
-## Properties
-
-### app
-
-• **app**: `number`
-
-___
-
-### redirectUrl
-
-• **redirectUrl**: `string`
-
-___
-
-### state
-
-• `Optional` **state**: `string`
diff --git a/.wiki/interfaces/widgets_floatingOneTap.FloatingOneTapIndent.md b/.wiki/interfaces/widgets_floatingOneTap.FloatingOneTapIndent.md
deleted file mode 100644
index ed0ae34..0000000
--- a/.wiki/interfaces/widgets_floatingOneTap.FloatingOneTapIndent.md
+++ /dev/null
@@ -1,37 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/floatingOneTap](../modules/widgets_floatingOneTap.md) / FloatingOneTapIndent
-
-# Interface: FloatingOneTapIndent
-
-[widgets/floatingOneTap](../modules/widgets_floatingOneTap.md).FloatingOneTapIndent
-
-## Table of contents
-
-### Properties
-
-- [bottom](widgets_floatingOneTap.FloatingOneTapIndent.md#bottom)
-- [right](widgets_floatingOneTap.FloatingOneTapIndent.md#right)
-- [top](widgets_floatingOneTap.FloatingOneTapIndent.md#top)
-
-## Properties
-
-### bottom
-
-• `Optional` **bottom**: `number`
-
-Отступы от нижней границы окна (учитывается только в мобильном отображении)
-
-___
-
-### right
-
-• `Optional` **right**: `number`
-
-Отступы от правой границы окна (не учитывается в мобильном отображении)
-
-___
-
-### top
-
-• `Optional` **top**: `number`
-
-Отступ от верхней границы окна (не учитывается в мобильном отображении)
diff --git a/.wiki/interfaces/widgets_floatingOneTap.FloatingOneTapParams.md b/.wiki/interfaces/widgets_floatingOneTap.FloatingOneTapParams.md
deleted file mode 100644
index bcf316a..0000000
--- a/.wiki/interfaces/widgets_floatingOneTap.FloatingOneTapParams.md
+++ /dev/null
@@ -1,87 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/floatingOneTap](../modules/widgets_floatingOneTap.md) / FloatingOneTapParams
-
-# Interface: FloatingOneTapParams
-
-[widgets/floatingOneTap](../modules/widgets_floatingOneTap.md).FloatingOneTapParams
-
-## Hierarchy
-
-- `Omit`<`WidgetParams`, ``"container"``\>
-
- ↳ **`FloatingOneTapParams`**
-
-## Table of contents
-
-### Properties
-
-- [appName](widgets_floatingOneTap.FloatingOneTapParams.md#appname)
-- [contentId](widgets_floatingOneTap.FloatingOneTapParams.md#contentid)
-- [indent](widgets_floatingOneTap.FloatingOneTapParams.md#indent)
-- [lang](widgets_floatingOneTap.FloatingOneTapParams.md#lang)
-- [oauthList](widgets_floatingOneTap.FloatingOneTapParams.md#oauthlist)
-- [scheme](widgets_floatingOneTap.FloatingOneTapParams.md#scheme)
-- [showAlternativeLogin](widgets_floatingOneTap.FloatingOneTapParams.md#showalternativelogin)
-
-## Properties
-
-### appName
-
-• **appName**: `string`
-
-Имя приложения из конфигурации приложения VK ID
-
-___
-
-### contentId
-
-• `Optional` **contentId**: [`FloatingOneTapContentId`](../enums/widgets_floatingOneTap.FloatingOneTapContentId.md)
-
-Тип отображаемого контента
-
-___
-
-### indent
-
-• `Optional` **indent**: [`FloatingOneTapIndent`](widgets_floatingOneTap.FloatingOneTapIndent.md)
-
-Отступы от границ окна
-
-___
-
-### lang
-
-• `Optional` **lang**: [`Languages`](../enums/types.Languages.md)
-
-Локализация
-
-#### Inherited from
-
-Omit.lang
-
-___
-
-### oauthList
-
-• `Optional` **oauthList**: [`OAuthName`](../enums/widgets_oauthList.OAuthName.md)[]
-
-Список внешних сервисов авторизации
-
-___
-
-### scheme
-
-• `Optional` **scheme**: [`Scheme`](../enums/types.Scheme.md)
-
-Цветовая схема виджета
-
-#### Inherited from
-
-Omit.scheme
-
-___
-
-### showAlternativeLogin
-
-• `Optional` **showAlternativeLogin**: `boolean` \| ``0`` \| ``1``
-
-Отображение кнопки входа другим способом
diff --git a/.wiki/interfaces/widgets_oauthList.OAuthListParams.md b/.wiki/interfaces/widgets_oauthList.OAuthListParams.md
deleted file mode 100644
index 7bb7b23..0000000
--- a/.wiki/interfaces/widgets_oauthList.OAuthListParams.md
+++ /dev/null
@@ -1,73 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oauthList](../modules/widgets_oauthList.md) / OAuthListParams
-
-# Interface: OAuthListParams
-
-[widgets/oauthList](../modules/widgets_oauthList.md).OAuthListParams
-
-## Hierarchy
-
-- `WidgetParams`
-
- ↳ **`OAuthListParams`**
-
-## Table of contents
-
-### Properties
-
-- [container](widgets_oauthList.OAuthListParams.md#container)
-- [lang](widgets_oauthList.OAuthListParams.md#lang)
-- [oauthList](widgets_oauthList.OAuthListParams.md#oauthlist)
-- [scheme](widgets_oauthList.OAuthListParams.md#scheme)
-- [styles](widgets_oauthList.OAuthListParams.md#styles)
-
-## Properties
-
-### container
-
-• **container**: `HTMLElement`
-
-HTML элемент, в который будет вставлен виджет
-
-#### Inherited from
-
-WidgetParams.container
-
-___
-
-### lang
-
-• `Optional` **lang**: [`Languages`](../enums/types.Languages.md)
-
-Локализация
-
-#### Inherited from
-
-WidgetParams.lang
-
-___
-
-### oauthList
-
-• **oauthList**: [`OAuthName`](../enums/widgets_oauthList.OAuthName.md)[]
-
-Список внешних сервисов авторизации
-
-___
-
-### scheme
-
-• `Optional` **scheme**: [`Scheme`](../enums/types.Scheme.md)
-
-Цветовая схема виджета
-
-#### Inherited from
-
-WidgetParams.scheme
-
-___
-
-### styles
-
-• `Optional` **styles**: [`OAuthListStyles`](widgets_oauthList.OAuthListStyles.md)
-
-Настройки внешнего вида
diff --git a/.wiki/interfaces/widgets_oauthList.OAuthListStyles.md b/.wiki/interfaces/widgets_oauthList.OAuthListStyles.md
deleted file mode 100644
index e37de21..0000000
--- a/.wiki/interfaces/widgets_oauthList.OAuthListStyles.md
+++ /dev/null
@@ -1,28 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oauthList](../modules/widgets_oauthList.md) / OAuthListStyles
-
-# Interface: OAuthListStyles
-
-[widgets/oauthList](../modules/widgets_oauthList.md).OAuthListStyles
-
-## Table of contents
-
-### Properties
-
-- [borderRadius](widgets_oauthList.OAuthListStyles.md#borderradius)
-- [height](widgets_oauthList.OAuthListStyles.md#height)
-
-## Properties
-
-### borderRadius
-
-• `Optional` **borderRadius**: `number`
-
-Скругление иконок
-
-___
-
-### height
-
-• `Optional` **height**: ``32`` \| ``34`` \| ``36`` \| ``38`` \| ``40`` \| ``42`` \| ``44`` \| ``46`` \| ``48`` \| ``50`` \| ``52`` \| ``54`` \| ``56``
-
-Высота кнопки
diff --git a/.wiki/interfaces/widgets_oneTap.OneTapParams.md b/.wiki/interfaces/widgets_oneTap.OneTapParams.md
deleted file mode 100644
index a2e612b..0000000
--- a/.wiki/interfaces/widgets_oneTap.OneTapParams.md
+++ /dev/null
@@ -1,91 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oneTap](../modules/widgets_oneTap.md) / OneTapParams
-
-# Interface: OneTapParams
-
-[widgets/oneTap](../modules/widgets_oneTap.md).OneTapParams
-
-## Hierarchy
-
-- `WidgetParams`
-
- ↳ **`OneTapParams`**
-
-## Table of contents
-
-### Properties
-
-- [container](widgets_oneTap.OneTapParams.md#container)
-- [lang](widgets_oneTap.OneTapParams.md#lang)
-- [oauthList](widgets_oneTap.OneTapParams.md#oauthlist)
-- [scheme](widgets_oneTap.OneTapParams.md#scheme)
-- [showAlternativeLogin](widgets_oneTap.OneTapParams.md#showalternativelogin)
-- [skin](widgets_oneTap.OneTapParams.md#skin)
-- [styles](widgets_oneTap.OneTapParams.md#styles)
-
-## Properties
-
-### container
-
-• **container**: `HTMLElement`
-
-HTML элемент, в который будет вставлен виджет
-
-#### Inherited from
-
-WidgetParams.container
-
-___
-
-### lang
-
-• `Optional` **lang**: [`Languages`](../enums/types.Languages.md)
-
-Локализация
-
-#### Inherited from
-
-WidgetParams.lang
-
-___
-
-### oauthList
-
-• `Optional` **oauthList**: [`OAuthName`](../enums/widgets_oauthList.OAuthName.md)[]
-
-Список внешних сервисов авторизации
-
-___
-
-### scheme
-
-• `Optional` **scheme**: [`Scheme`](../enums/types.Scheme.md)
-
-Цветовая схема виджета
-
-#### Inherited from
-
-WidgetParams.scheme
-
-___
-
-### showAlternativeLogin
-
-• `Optional` **showAlternativeLogin**: `boolean` \| ``0`` \| ``1``
-
-Отображение кнопки входа другим способом
-
-___
-
-### skin
-
-• `Optional` **skin**: ``"primary"`` \| ``"secondary"``
-
-Стиль отображения кнопки
-
-___
-
-### styles
-
-• `Optional` **styles**: [`OneTapStyles`](widgets_oneTap.OneTapStyles.md)
-
-Настройки внешнего вида
diff --git a/.wiki/interfaces/widgets_oneTap.OneTapStyles.md b/.wiki/interfaces/widgets_oneTap.OneTapStyles.md
deleted file mode 100644
index f4d43ca..0000000
--- a/.wiki/interfaces/widgets_oneTap.OneTapStyles.md
+++ /dev/null
@@ -1,37 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / [widgets/oneTap](../modules/widgets_oneTap.md) / OneTapStyles
-
-# Interface: OneTapStyles
-
-[widgets/oneTap](../modules/widgets_oneTap.md).OneTapStyles
-
-## Table of contents
-
-### Properties
-
-- [borderRadius](widgets_oneTap.OneTapStyles.md#borderradius)
-- [height](widgets_oneTap.OneTapStyles.md#height)
-- [width](widgets_oneTap.OneTapStyles.md#width)
-
-## Properties
-
-### borderRadius
-
-• `Optional` **borderRadius**: `number`
-
-Скругление кнопки
-
-___
-
-### height
-
-• `Optional` **height**: ``32`` \| ``34`` \| ``36`` \| ``38`` \| ``40`` \| ``42`` \| ``44`` \| ``46`` \| ``48`` \| ``50`` \| ``52`` \| ``54`` \| ``56``
-
-Высота кнопки
-
-___
-
-### width
-
-• `Optional` **width**: `number`
-
-Ширина кнопки
diff --git a/.wiki/modules.md b/.wiki/modules.md
deleted file mode 100644
index e386e97..0000000
--- a/.wiki/modules.md
+++ /dev/null
@@ -1,14 +0,0 @@
-[@vkid/sdk - v1.0.3](README.md) / Modules
-
-# @vkid/sdk - v1.0.3
-
-## Table of contents
-
-### Modules
-
-- [auth](modules/auth.md)
-- [core/config](modules/core_config.md)
-- [types](modules/types.md)
-- [widgets/floatingOneTap](modules/widgets_floatingOneTap.md)
-- [widgets/oauthList](modules/widgets_oauthList.md)
-- [widgets/oneTap](modules/widgets_oneTap.md)
diff --git a/.wiki/modules/auth.md b/.wiki/modules/auth.md
deleted file mode 100644
index dcb46cd..0000000
--- a/.wiki/modules/auth.md
+++ /dev/null
@@ -1,19 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / auth
-
-# Module: auth
-
-## Table of contents
-
-### Enumerations
-
-- [AuthErrorCode](../enums/auth.AuthErrorCode.md)
-
-### Classes
-
-- [Auth](../classes/auth.Auth.md)
-
-### Interfaces
-
-- [AuthError](../interfaces/auth.AuthError.md)
-- [AuthParams](../interfaces/auth.AuthParams.md)
-- [AuthResponse](../interfaces/auth.AuthResponse.md)
diff --git a/.wiki/modules/core_config.md b/.wiki/modules/core_config.md
deleted file mode 100644
index 9f6412d..0000000
--- a/.wiki/modules/core_config.md
+++ /dev/null
@@ -1,13 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / core/config
-
-# Module: core/config
-
-## Table of contents
-
-### Classes
-
-- [Config](../classes/core_config.Config.md)
-
-### Interfaces
-
-- [ConfigData](../interfaces/core_config.ConfigData.md)
diff --git a/.wiki/modules/types.md b/.wiki/modules/types.md
deleted file mode 100644
index 6d88a90..0000000
--- a/.wiki/modules/types.md
+++ /dev/null
@@ -1,10 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / types
-
-# Module: types
-
-## Table of contents
-
-### Enumerations
-
-- [Languages](../enums/types.Languages.md)
-- [Scheme](../enums/types.Scheme.md)
diff --git a/.wiki/modules/widgets_floatingOneTap.md b/.wiki/modules/widgets_floatingOneTap.md
deleted file mode 100644
index d6e2504..0000000
--- a/.wiki/modules/widgets_floatingOneTap.md
+++ /dev/null
@@ -1,18 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / widgets/floatingOneTap
-
-# Module: widgets/floatingOneTap
-
-## Table of contents
-
-### Enumerations
-
-- [FloatingOneTapContentId](../enums/widgets_floatingOneTap.FloatingOneTapContentId.md)
-
-### Classes
-
-- [FloatingOneTap](../classes/widgets_floatingOneTap.FloatingOneTap.md)
-
-### Interfaces
-
-- [FloatingOneTapIndent](../interfaces/widgets_floatingOneTap.FloatingOneTapIndent.md)
-- [FloatingOneTapParams](../interfaces/widgets_floatingOneTap.FloatingOneTapParams.md)
diff --git a/.wiki/modules/widgets_oauthList.md b/.wiki/modules/widgets_oauthList.md
deleted file mode 100644
index ee17be4..0000000
--- a/.wiki/modules/widgets_oauthList.md
+++ /dev/null
@@ -1,18 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / widgets/oauthList
-
-# Module: widgets/oauthList
-
-## Table of contents
-
-### Enumerations
-
-- [OAuthName](../enums/widgets_oauthList.OAuthName.md)
-
-### Classes
-
-- [OAuthList](../classes/widgets_oauthList.OAuthList.md)
-
-### Interfaces
-
-- [OAuthListParams](../interfaces/widgets_oauthList.OAuthListParams.md)
-- [OAuthListStyles](../interfaces/widgets_oauthList.OAuthListStyles.md)
diff --git a/.wiki/modules/widgets_oneTap.md b/.wiki/modules/widgets_oneTap.md
deleted file mode 100644
index 1ca0bf9..0000000
--- a/.wiki/modules/widgets_oneTap.md
+++ /dev/null
@@ -1,14 +0,0 @@
-[@vkid/sdk - v1.0.3](../README.md) / [Modules](../modules.md) / widgets/oneTap
-
-# Module: widgets/oneTap
-
-## Table of contents
-
-### Classes
-
-- [OneTap](../classes/widgets_oneTap.OneTap.md)
-
-### Interfaces
-
-- [OneTapParams](../interfaces/widgets_oneTap.OneTapParams.md)
-- [OneTapStyles](../interfaces/widgets_oneTap.OneTapStyles.md)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2db26a4..adb0d0e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,16 @@
# Change Log
+## 1.1.0
+
+### Новое
+- Добавлена возможность открытия авторизации в новой вкладке для всех модулей.
+
+### Исправления
+- Исправлен конфликт `css tokens`, который приводил к некорректному отображению стилей.
+
## 1.0.3
+
+### Исправления
- Исправлены текста в [шторке авторизации](https://id.vk.com/business/go/docs/ru/vkid/latest/vk-id/connection/web/auth)
- Исправлено падение сборки в проектах не использующих babel
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 78274e4..82ec41e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -73,7 +73,7 @@ yarn tests
## 🖊️ Документация
-> Автосгенерированная документация находится в папке `.wiki/`
+> Автосгенерированная документация находится в папке `./docs/`
Документация собирается с помощью [typedoc](https://typedoc.org/).
diff --git a/README.md b/README.md
index df79446..9219687 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@
---
-:information_source: VK ID SDK сейчас находится в бета-тестировании. О проблемах вы можете сообщить с помощью issues репозитория.
+VK ID SDK сейчас находится в бета-тестировании. О проблемах вы можете сообщить с помощью issues репозитория.
---
@@ -107,7 +107,7 @@ if (container) {
- [Что такое VK ID](https://id.vk.com/business/go/docs/ru/vkid/latest/vk-id/intro/start-page)
- [Создание приложения](https://id.vk.com/business/go/docs/ru/vkid/latest/vk-id/connection/create-application)
- [Требования к дизайну](https://id.vk.com/business/go/docs/ru/vkid/archive/1.60/vk-id/guidelines/design-rules)
-- [Спецификация](.wiki/README.md)
+- [Спецификация](https://vkcom.github.io/vkid-web-sdk/)
## Contributing
diff --git a/__tests__/auth/auth.tests.ts b/__tests__/auth/auth.tests.ts
index 6642d32..ff43b57 100644
--- a/__tests__/auth/auth.tests.ts
+++ b/__tests__/auth/auth.tests.ts
@@ -1,11 +1,12 @@
-import { AUTH_RESPONSE_TOKEN } from '#/auth/constants';
-import { Auth, AuthParams, Config, Languages } from '#/index';
+import { AUTH_RESPONSE_TOKEN, AUTH_VK_CONNECT_RESPONSE } from '#/auth/constants';
+import { Auth, AuthParams, AuthResponse, Config, ConfigAuthMode, Languages, Scheme } from '#/index';
import { version } from '../../package.json';
const APP_ID = 100;
const openFn = jest.fn();
+const closeFn = jest.fn();
const assignFn = jest.fn();
const eventListenerFn = jest.fn();
@@ -26,7 +27,7 @@ describe('Auth', () => {
});
beforeEach(() => {
- Config.set({ app: APP_ID, redirectUrl: 'test', state: 'test' });
+ Config.set({ app: APP_ID, redirectUrl: 'https://id.vk.com', state: 'test' });
reporter
.addLabel('layer', 'unit')
.feature('Units')
@@ -36,7 +37,7 @@ describe('Auth', () => {
.addLabel('Suite', 'Units');
});
- test('Should redirect to url with default fields', async () => {
+ test('Should redirect to url with default fields', () => {
Auth.login();
expect(assignFn).toHaveBeenCalled();
@@ -45,22 +46,22 @@ describe('Auth', () => {
const expectArr = [
expect(location[0]).toEqual(''),
- expect(location[1]).toEqual(`response_type=${AUTH_RESPONSE_TOKEN}`),
- expect(location[2]).toContain('uuid'),
+ expect(location[1]).toContain('uuid'),
+ expect(location[2]).toEqual(`response_type=${AUTH_RESPONSE_TOKEN}`),
expect(location[3]).toEqual(`v=%22${version}%22`),
expect(location[4]).toEqual('sdk_type=vkid'),
expect(location[5]).toEqual(`app_id=${APP_ID}`),
- expect(location[6]).toEqual('redirect_uri=test'),
+ expect(location[6]).toEqual('redirect_uri=https%3A%2F%2Fid.vk.com'),
expect(location[7]).toEqual('redirect_state=test'),
];
expect(location.length).toEqual(expectArr.length);
});
- test('Should redirect to url with additional fields', async () => {
+ test('Should redirect to url with additional fields', () => {
const params: AuthParams = {
- scheme: 'bright_light',
- lang: '0' as Languages,
+ scheme: Scheme.LIGHT,
+ lang: Languages.RUS,
screen: 'phone',
};
@@ -72,18 +73,112 @@ describe('Auth', () => {
const expectArr = [
expect(location[0]).toEqual(''),
- expect(location[1]).toEqual(`lang_id=${params.lang}`),
- expect(location[2]).toEqual(`scheme=${params.scheme}`),
- expect(location[3]).toEqual('screen=phone'),
+ expect(location[1]).toContain('uuid'),
+ expect(location[2]).toEqual(`lang_id=${params.lang}`),
+ expect(location[3]).toEqual(`scheme=${params.scheme}`),
+ expect(location[4]).toEqual('screen=phone'),
+ expect(location[5]).toEqual(`response_type=${AUTH_RESPONSE_TOKEN}`),
+ expect(location[6]).toEqual(`v=%22${version}%22`),
+ expect(location[7]).toEqual('sdk_type=vkid'),
+ expect(location[8]).toEqual(`app_id=${APP_ID}`),
+ expect(location[9]).toEqual('redirect_uri=https%3A%2F%2Fid.vk.com'),
+ expect(location[10]).toEqual('redirect_state=test'),
+ ];
+
+ expect(location.length).toEqual(expectArr.length);
+ });
+
+ test('Opens a window with default fields', () => {
+ Config.set({ mode: ConfigAuthMode.InNewTab });
+ Auth.login();
+ expect(openFn).toHaveBeenCalled();
+
+ const callArgs: string[] = openFn.mock.calls[0];
+ const location = new URL(callArgs[0]).search.split(/[?&]/);
+
+ const expectArr = [
+ expect(location[0]).toEqual(''),
+ expect(location[1]).toContain('uuid'),
+ expect(location[2]).toEqual(`response_type=${AUTH_RESPONSE_TOKEN}`),
+ expect(location[3]).toContain('origin'),
+ expect(location[4]).toEqual(`v=%22${version}%22`),
+ expect(location[5]).toEqual('sdk_type=vkid'),
+ expect(location[6]).toEqual(`app_id=${APP_ID}`),
+ expect(location[7]).toEqual('redirect_uri=https%3A%2F%2Fid.vk.com'),
+ expect(location[8]).toEqual('redirect_state=test'),
+ ];
+
+ expect(location.length).toEqual(expectArr.length);
+ });
+
+ test('Opens a window with additional fields', () => {
+ Config.set({ mode: ConfigAuthMode.InNewTab });
+ const params: AuthParams = {
+ scheme: Scheme.LIGHT,
+ lang: Languages.RUS,
+ };
+
+ Auth.login(params);
+ expect(openFn).toHaveBeenCalled();
+
+ const callArgs: string[] = openFn.mock.calls[0];
+ const location = new URL(callArgs[0]).search.split(/[?&]/);
+
+ const expectArr = [
+ expect(location[0]).toEqual(''),
+ expect(location[1]).toContain('uuid'),
+ expect(location[2]).toEqual(`lang_id=${params.lang}`),
+ expect(location[3]).toEqual(`scheme=${params.scheme}`),
expect(location[4]).toEqual(`response_type=${AUTH_RESPONSE_TOKEN}`),
- expect(location[5]).toContain('uuid'),
+ expect(location[5]).toContain('origin'),
expect(location[6]).toEqual(`v=%22${version}%22`),
expect(location[7]).toEqual('sdk_type=vkid'),
expect(location[8]).toEqual(`app_id=${APP_ID}`),
- expect(location[9]).toEqual('redirect_uri=test'),
+ expect(location[9]).toEqual('redirect_uri=https%3A%2F%2Fid.vk.com'),
expect(location[10]).toEqual('redirect_state=test'),
];
expect(location.length).toEqual(expectArr.length);
});
+
+ test('Must redirect with payload', async () => {
+ Config.set({ mode: ConfigAuthMode.InNewTab });
+
+ const response: AuthResponse = {
+ token: 'token',
+ type: 'silent_token',
+ ttl: 500,
+ };
+ const opener = {
+ closed: false,
+ close: closeFn,
+ };
+ openFn.mockReturnValue(opener);
+ eventListenerFn.mockImplementation((event, callback) => {
+ callback({
+ origin: 'vk.com',
+ source: opener,
+ data: {
+ action: AUTH_VK_CONNECT_RESPONSE + 'abc',
+ payload: response,
+ },
+ });
+ });
+
+ await Auth.login();
+ expect(openFn).toHaveBeenCalled();
+ expect(closeFn).toHaveBeenCalled();
+ expect(assignFn).toHaveBeenCalled();
+
+ const callArgs: string[] = assignFn.mock.calls[0];
+ const location = new URL(callArgs[0]).search.split(/[?&]/);
+
+ const expectArr = [
+ expect(location[0]).toEqual(''),
+ expect(location[1]).toEqual('payload=%7B%22type%22%3A%22silent_token%22%2C%22token%22%3A%22token%22%2C%22ttl%22%3A500%7D'),
+ expect(location[2]).toEqual('state=test'),
+ ];
+
+ expect(location.length).toEqual(expectArr.length);
+ });
});
diff --git a/__tests__/auth/authDataService.tests.ts b/__tests__/auth/authDataService.tests.ts
new file mode 100644
index 0000000..e7e1650
--- /dev/null
+++ b/__tests__/auth/authDataService.tests.ts
@@ -0,0 +1,100 @@
+import { AuthDataService } from '#/auth/authDataService';
+import { AUTH_ERROR_TEXT } from '#/auth/constants';
+import { AuthErrorCode } from '#/auth/types';
+
+describe('AuthDataService', () => {
+ beforeEach(() => {
+ reporter
+ .addLabel('Layer', 'unit')
+ .feature('Units')
+ .addLabel('Platform', 'Web')
+ .addLabel('Product', 'VK ID SDK')
+ .addLabel('Component', 'AuthDataService')
+ .addLabel('Suite', 'Units');
+ });
+
+ test('Must return data on successful completion', async () => {
+ const dataService = new AuthDataService();
+ const successData = {
+ additionally: 'additionally',
+ token: 'token',
+ type: 'type',
+ ttl: 600,
+ };
+ dataService.sendSuccessData(successData);
+
+ const data = await dataService.value;
+ expect(data).toEqual({
+ token: 'token',
+ type: 'type',
+ ttl: 600,
+ });
+ });
+
+ test('Must return error: new tab has been closed', async () => {
+ const dataService = new AuthDataService();
+ const error = {
+ code: AuthErrorCode.NewTabHasBeenClosed,
+ text: AUTH_ERROR_TEXT[AuthErrorCode.NewTabHasBeenClosed],
+ };
+
+ dataService.sendNewTabHasBeenClosed();
+
+ try {
+ await dataService.value;
+ } catch (e) {
+ expect(e).toEqual(error);
+ }
+ });
+
+ test('Must return error: event not supported', async () => {
+ const dataService = new AuthDataService();
+ const error = {
+ code: AuthErrorCode.EventNotSupported,
+ text: AUTH_ERROR_TEXT[AuthErrorCode.EventNotSupported],
+ };
+
+ dataService.sendEventNotSupported();
+
+ try {
+ await dataService.value;
+ } catch (e) {
+ expect(e).toEqual(error);
+ }
+ });
+
+ test('Must return error: cannot create new tab', async () => {
+ const dataService = new AuthDataService();
+ const error = {
+ code: AuthErrorCode.CannotCreateNewTab,
+ text: AUTH_ERROR_TEXT[AuthErrorCode.CannotCreateNewTab],
+ };
+
+ dataService.sendCannotCreateNewTab();
+
+ try {
+ await dataService.value;
+ } catch (e) {
+ expect(e).toEqual(error);
+ }
+ });
+
+ test('Must return error: authorization failed', async () => {
+ const dataService = new AuthDataService();
+ const additionally = {
+ additionally: 'additionally',
+ };
+ const error = {
+ code: AuthErrorCode.AuthorizationFailed,
+ text: AUTH_ERROR_TEXT[AuthErrorCode.AuthorizationFailed],
+ };
+
+ dataService.sendAuthorizationFailed(additionally);
+
+ try {
+ await dataService.value;
+ } catch (e) {
+ expect(e).toEqual({ ...error, details: additionally });
+ }
+ });
+});
diff --git a/__tests__/core/dataService/dataService.tests.ts b/__tests__/core/dataService/dataService.tests.ts
new file mode 100644
index 0000000..192cf08
--- /dev/null
+++ b/__tests__/core/dataService/dataService.tests.ts
@@ -0,0 +1,60 @@
+import { DataService } from '#/core/dataService';
+
+describe('DataService', () => {
+ beforeEach(() => {
+ reporter
+ .addLabel('Layer', 'unit')
+ .feature('Units')
+ .addLabel('Platform', 'Web')
+ .addLabel('Product', 'VK ID SDK')
+ .addLabel('Component', 'DataService')
+ .addLabel('Suite', 'Units');
+ });
+ test('Must return data on successful completion', async () => {
+ const dataService = new DataService();
+ const successData = 'success';
+ dataService.sendSuccess(successData);
+
+ const data = await dataService.value;
+ expect(data).toBe(successData);
+ });
+
+ test('Must return error data', async () => {
+ const dataService = new DataService();
+ const errorData = 'error';
+ dataService.sendError(errorData);
+
+ try {
+ await dataService.value;
+ } catch (e) {
+ expect(e).toBe(errorData);
+ }
+ });
+
+ test('Must return data on successful completion and execute a callback', async () => {
+ const dataService = new DataService();
+ const successData = 'success';
+ const callback = jest.fn();
+ dataService.setCallback(callback);
+ dataService.sendSuccess(successData);
+
+ const data = await dataService.value;
+ expect(data).toBe(successData);
+ expect(callback).toBeCalled();
+ });
+
+ test('Must return error data and execute a callback', async () => {
+ const dataService = new DataService();
+ const errorData = 'error';
+ const callback = jest.fn();
+ dataService.setCallback(callback);
+ dataService.sendError(errorData);
+
+ try {
+ await dataService.value;
+ } catch (e) {
+ expect(e).toBe(errorData);
+ expect(callback).toBeCalled();
+ }
+ });
+});
diff --git a/__tests__/jest-global-mock.js b/__tests__/jest-global-mock.js
index 11d6954..090ef86 100644
--- a/__tests__/jest-global-mock.js
+++ b/__tests__/jest-global-mock.js
@@ -14,11 +14,17 @@ jest.mock('crypto-js/enc-base64', () => ({
default: { stringify: (str) => `stringified_${str}` },
}));
+jest.mock('nanoid/non-secure', () => ({
+ nanoid: () => 'verifier',
+ customAlphabet: (data, length) => () => `abc`
+}));
+
/**
* mock ENV
*/
const isProduction = process.env.NODE_ENV === 'production';
const { version } = require('../package.json');
+const { nanoid } = require('nanoid/non-secure');
window.env = {
PRODUCTION: isProduction,
VERSION: JSON.stringify(version),
diff --git a/__tests__/widgets/oneTap/oneTap.tests.ts b/__tests__/widgets/oneTap/oneTap.tests.ts
index d77163c..9e7191a 100644
--- a/__tests__/widgets/oneTap/oneTap.tests.ts
+++ b/__tests__/widgets/oneTap/oneTap.tests.ts
@@ -197,7 +197,7 @@ describe('OneTap', () => {
}, 0);
});
const oneTapEl = document.querySelector('[data-test-id="oneTap"]');
- const oauthListEl = oneTapEl.querySelector('[data-test-id="oauthList"]');
+ const oauthListEl = oneTapEl?.querySelector('[data-test-id="oauthList"]');
expect(oauthListEl).toBeTruthy();
});
@@ -212,7 +212,7 @@ describe('OneTap', () => {
}, 0);
});
const oneTapEl = document.querySelector('[data-test-id="oneTap"]');
- const oauthListEl = oneTapEl.querySelector('[data-test-id="oauthList"]');
+ const oauthListEl = oneTapEl?.querySelector('[data-test-id="oauthList"]');
expect(oauthListEl).toBeFalsy();
});
@@ -226,7 +226,7 @@ describe('OneTap', () => {
}, 0);
});
const oneTapEl = document.querySelector('[data-test-id="oneTap"]');
- const oauthListEl = oneTapEl.querySelector('[data-test-id="oauthList"]');
+ const oauthListEl = oneTapEl?.querySelector('[data-test-id="oauthList"]');
expect(oauthListEl).toBeFalsy();
});
});
diff --git a/demo/index.html b/demo/index.html
index ab67146..59ad803 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -9,82 +9,9 @@
VK ID WEB SDK
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Basic Auth
-
-
-
-
-
-
-
-
OneTap Button
-
-
-
-
-
OAuth List
-
-
+