diff --git a/twocaptcha/README.md b/twocaptcha/README.md
index 9e4c079..f5d7c61 100644
--- a/twocaptcha/README.md
+++ b/twocaptcha/README.md
@@ -1,4 +1,5 @@
-![2Captcha logo](2captcha-logo.png){: width="50px"}
+
+
# 2captcha NodeJS captcha client - use 2captcha with ease
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://www.paypal.com/paypalme/maxshydev)
[![GitHub stars](https://img.shields.io/github/stars/blackravenx/captcha-libs.svg?style=social&label=Star)](https://github.com/blackravenx/captcha-libs)
diff --git a/twocaptcha/package-lock.json b/twocaptcha/package-lock.json
index da78f25..fec58ab 100644
--- a/twocaptcha/package-lock.json
+++ b/twocaptcha/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@captcha-libs/twocaptcha",
- "version": "1.0.1",
+ "version": "1.0.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@captcha-libs/twocaptcha",
- "version": "1.0.1",
+ "version": "1.0.2",
"license": "ISC",
"dependencies": {
"@captcha-libs/captcha-client": "latest",
diff --git a/twocaptcha/package.json b/twocaptcha/package.json
index 18b1ee4..2949900 100644
--- a/twocaptcha/package.json
+++ b/twocaptcha/package.json
@@ -1,34 +1,34 @@
{
"name": "@captcha-libs/twocaptcha",
- "version": "1.0.1",
+ "version": "1.0.2",
"keywords": [
- "TwoCaptcha",
- "Captcha recognition",
- "Captcha solving",
- "ReCaptcha captcha",
- "DataDome captcha",
- "HCaptcha captcha",
- "GeeTest captcha",
- "FriendlyCaptcha",
- "FunCaptcha",
- "KeyCaptcha",
- "CutCaptcha",
- "CapyCaptcha",
- "AntiCyberSiAra captcha",
- "MtCaptcha",
- "AWS WAF captcha",
- "Cloudflare captcha"
+ "TwoCaptcha",
+ "Captcha recognition",
+ "Captcha solving",
+ "ReCaptcha captcha",
+ "DataDome captcha",
+ "HCaptcha captcha",
+ "GeeTest captcha",
+ "FriendlyCaptcha",
+ "FunCaptcha",
+ "KeyCaptcha",
+ "CutCaptcha",
+ "CapyCaptcha",
+ "AntiCyberSiAra captcha",
+ "MtCaptcha",
+ "AWS WAF captcha",
+ "Cloudflare captcha"
],
"license": "ISC",
"author": "Max Shy",
"repository": {
- "type": "git",
- "url": "https://github.com/blackravenx/captcha-libs.git",
- "directory": "twocaptcha"
+ "type": "git",
+ "url": "https://github.com/blackravenx/captcha-libs.git",
+ "directory": "twocaptcha"
},
"dependencies": {
"@captcha-libs/captcha-client": "latest",
"ofetch": "^1.3.3"
-},
+ },
"description": "TwoCaptcha NodeJS client, captcha recognition service"
-}
\ No newline at end of file
+}
diff --git a/twocaptcha/src/lib/Requests/Recognition/AudioTask.ts b/twocaptcha/src/lib/Requests/Recognition/AudioTask.ts
index e6b0d7b..02653df 100644
--- a/twocaptcha/src/lib/Requests/Recognition/AudioTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/AudioTask.ts
@@ -30,7 +30,7 @@ export class AudioTask extends BaseTask implements _IsTaskType, AudioTaskParams
/**
* @type {boolean} _isAudioTask - Only used for correct method overloading intellisense
*/
- readonly _isAudioTask = true;
+ readonly _isAudioTask: _IsTaskType["_isAudioTask"] = true;
/**
* Create AudioTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/BoundingBoxTask.ts b/twocaptcha/src/lib/Requests/Recognition/BoundingBoxTask.ts
index 9575538..f166bbf 100644
--- a/twocaptcha/src/lib/Requests/Recognition/BoundingBoxTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/BoundingBoxTask.ts
@@ -40,7 +40,7 @@ export class BoundingBoxTask extends BaseTask implements _IsTaskType, BoundingBo
/**
* @type {boolean} _isBoundingBoxTask - Only used for correct method overloading intellisense
*/
- readonly _isBoundingBoxTask = true;
+ readonly _isBoundingBoxTask: _IsTaskType["_isBoundingBoxTask"] = true;
/**
* Create BoundingBoxTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/CoordinatesTask.ts b/twocaptcha/src/lib/Requests/Recognition/CoordinatesTask.ts
index 1aa2524..9032946 100644
--- a/twocaptcha/src/lib/Requests/Recognition/CoordinatesTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/CoordinatesTask.ts
@@ -32,7 +32,7 @@ export class CoordinatesTask extends BaseTask implements _IsTaskType, Coordinate
/**
* @type {boolean} _isCoordinatesTask - Only used for correct method overloading intellisense
*/
- readonly _isCoordinatesTask = true;
+ readonly _isCoordinatesTask: _IsTaskType["_isCoordinatesTask"] = true;
/**
* Create CoordinatesTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/DrawAroundTask.ts b/twocaptcha/src/lib/Requests/Recognition/DrawAroundTask.ts
index 51e6b36..bbcd38a 100644
--- a/twocaptcha/src/lib/Requests/Recognition/DrawAroundTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/DrawAroundTask.ts
@@ -40,7 +40,7 @@ export class DrawAroundTask extends BaseTask implements _IsTaskType, DrawAroundT
/**
* @type {boolean} _isDrawAroundTask - Only used for correct method overloading intellisense
*/
- readonly _isDrawAroundTask = true;
+ readonly _isDrawAroundTask: _IsTaskType["_isDrawAroundTask"] = true;
/**
* Create DrawAroundTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/GridTask.ts b/twocaptcha/src/lib/Requests/Recognition/GridTask.ts
index 5fe5bda..96f4309 100644
--- a/twocaptcha/src/lib/Requests/Recognition/GridTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/GridTask.ts
@@ -48,7 +48,7 @@ export class GridTask extends BaseTask implements _IsTaskType, GridTaskParams {
/**
* @type {boolean} _isGridTask - Only used for correct method overloading intellisense
*/
- readonly _isGridTask = true;
+ readonly _isGridTask: _IsTaskType["_isGridTask"] = true;
/**
* Create GridTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/ImageToTextTask.ts b/twocaptcha/src/lib/Requests/Recognition/ImageToTextTask.ts
index 8cffb4d..cf4e87c 100644
--- a/twocaptcha/src/lib/Requests/Recognition/ImageToTextTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/ImageToTextTask.ts
@@ -78,7 +78,7 @@ export class ImageToTextTask extends BaseTask implements _IsTaskType, ImageToTex
/**
* @type {boolean} _isImageToTextTask - Only used for correct method overloading intellisense
*/
- readonly _isImageToTextTask = true;
+ readonly _isImageToTextTask: _IsTaskType["_isImageToTextTask"] = true;
/**
* Create ImageToTextTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/RotateTask.ts b/twocaptcha/src/lib/Requests/Recognition/RotateTask.ts
index 1c78b0a..58bc681 100644
--- a/twocaptcha/src/lib/Requests/Recognition/RotateTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/RotateTask.ts
@@ -40,7 +40,7 @@ export class RotateTask extends BaseTask implements _IsTaskType, RotateTaskParam
/**
* @type {boolean} _isRotateTask - Only used for correct method overloading intellisense
*/
- readonly _isRotateTask = true;
+ readonly _isRotateTask: _IsTaskType["_isRotateTask"] = true;
/**
* Create RotateTask
diff --git a/twocaptcha/src/lib/Requests/Recognition/TextCaptchaTask.ts b/twocaptcha/src/lib/Requests/Recognition/TextCaptchaTask.ts
index b49e0ca..ed92a63 100644
--- a/twocaptcha/src/lib/Requests/Recognition/TextCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Recognition/TextCaptchaTask.ts
@@ -23,7 +23,7 @@ export class TextCaptchaTask extends BaseTask implements _IsTaskType, TextCaptch
/**
* @type {boolean} _isTextCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isTextCaptchaTask = true;
+ readonly _isTextCaptchaTask: _IsTaskType["_isTextCaptchaTask"] = true;
/**
* Create TextCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/AmazonTask.ts b/twocaptcha/src/lib/Requests/Token/AmazonTask.ts
index 42d627f..b1c7330 100644
--- a/twocaptcha/src/lib/Requests/Token/AmazonTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/AmazonTask.ts
@@ -16,7 +16,7 @@ export class AmazonTask extends AmazonTaskBase implements _IsTaskType {
/**
* @type {boolean} _isAmazonTask - Only used for correct method overloading intellisense
*/
- readonly _isAmazonTask = true;
+ readonly _isAmazonTask: _IsTaskType["_isAmazonTask"] = true;
/**
* Create AmazonTask
diff --git a/twocaptcha/src/lib/Requests/Token/AmazonTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/AmazonTaskProxyless.ts
index 3fc25d0..e465ec6 100644
--- a/twocaptcha/src/lib/Requests/Token/AmazonTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/AmazonTaskProxyless.ts
@@ -16,7 +16,7 @@ export class AmazonTaskProxyless extends AmazonTaskBase implements _IsTaskType {
/**
* @type {boolean} _isKeyCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isAmazonTaskProxyless = true;
+ readonly _isAmazonTaskProxyless: _IsTaskType["_isAmazonTaskProxyless"] = true;
/**
* Create AmazonTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTask.ts b/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTask.ts
index 667e275..54f5075 100644
--- a/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTask.ts
@@ -16,7 +16,7 @@ export class AntiCyberSiAraTask extends AntiCyberSiAraTaskBase implements _IsTas
/**
* @type {boolean} _isAntiCyberSiAraTask - Only used for correct method overloading intellisense
*/
- readonly _isAntiCyberSiAraTask = true;
+ readonly _isAntiCyberSiAraTask: _IsTaskType["_isAntiCyberSiAraTask"] = true;
/**
* Create AntiCyberSiAraTask
diff --git a/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTaskProxyless.ts
index 04b7ab3..a319508 100644
--- a/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/AntiCyberSiAraTaskProxyless.ts
@@ -16,7 +16,7 @@ export class AntiCyberSiAraTaskProxyless extends AntiCyberSiAraTaskBase implemen
/**
* @type {boolean} _isAntiCyberSiAraTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isAntiCyberSiAraTaskProxyless = true;
+ readonly _isAntiCyberSiAraTaskProxyless: _IsTaskType["_isAntiCyberSiAraTaskProxyless"] = true;
/**
* Create AntiCyberSiAraTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/AtbCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/AtbCaptchaTask.ts
new file mode 100644
index 0000000..361952d
--- /dev/null
+++ b/twocaptcha/src/lib/Requests/Token/AtbCaptchaTask.ts
@@ -0,0 +1,37 @@
+import type {
+ ProxyRequiredTaskParams, _IsTaskType
+} from "../_BaseTaskRequest";
+import type { AtbCaptchaTaskBaseParams } from "./Base/_AtbCaptchaTaskBase";
+import { AtbCaptchaTaskBase } from "./Base/_AtbCaptchaTaskBase";
+
+type AtbCaptchaTaskParams = ProxyRequiredTaskParams;
+
+/**
+ * Token-based method to bypass Tencent captcha.
+ * @extends {AtbCaptchaTaskBase}
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ */
+export class AtbCaptchaTask extends AtbCaptchaTaskBase implements _IsTaskType {
+
+ /**
+ * @type {boolean} _isAtbCaptchaTask - Only used for correct method overloading intellisense
+ */
+ readonly _isAtbCaptchaTask: _IsTaskType["_isAtbCaptchaTask"] = true;
+
+ /**
+ * Create AtbCaptchaTask
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ * @param {Object} params - AtbCaptchaTaskParams
+ * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ * @param {string} [params.appId] - The value of appId parameter in the website source code.
+ * @param {string} [params.apiServer] - The value of apiServer parameter in the website source code.
+ * @param {string} [params.proxyAddress] - Proxy IP address or hostname
+ * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy
+ * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy
+ * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5
+ * @param {string} [params.proxyPort] - Proxy port
+ */
+ constructor(params: AtbCaptchaTaskParams) {
+ super(params, "AtbCaptchaTask");
+ }
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/Token/AtbCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/AtbCaptchaTaskProxyless.ts
new file mode 100644
index 0000000..b5e0894
--- /dev/null
+++ b/twocaptcha/src/lib/Requests/Token/AtbCaptchaTaskProxyless.ts
@@ -0,0 +1,32 @@
+import type {
+ ProxylessTaskParams, _IsTaskType
+} from "../_BaseTaskRequest";
+import type { AtbCaptchaTaskBaseParams } from "./Base/_AtbCaptchaTaskBase";
+import { AtbCaptchaTaskBase } from "./Base/_AtbCaptchaTaskBase";
+
+type AtbCaptchaTaskProxylessParams = ProxylessTaskParams;
+
+/**
+ * Token-based method to bypass Tencent captcha.
+ * @extends {AtbCaptchaTaskProxylessBase}
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ */
+export class AtbCaptchaTaskProxyless extends AtbCaptchaTaskBase implements _IsTaskType {
+
+ /**
+ * @type {boolean} _isAtbCaptchaTaskProxyless - Only used for correct method overloading intellisense
+ */
+ readonly _isAtbCaptchaTaskProxyless: _IsTaskType["_isAtbCaptchaTaskProxyless"] = true;
+
+ /**
+ * Create AtbCaptchaTaskProxyless
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ * @param {Object} params - AtbCaptchaTaskProxylessParams
+ * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ * @param {string} [params.appId] - The value of appId parameter in the website source code.
+ * @param {string} [params.apiServer] - The value of apiServer parameter in the website source code.
+ */
+ constructor(params: AtbCaptchaTaskProxylessParams) {
+ super(params, "AtbCaptchaTaskProxyless");
+ }
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_AmazonTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_AmazonTaskBase.ts
index 42b15e4..c3a873a 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_AmazonTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_AmazonTaskBase.ts
@@ -56,7 +56,7 @@ export abstract class AmazonTaskBase extends BaseTask implements AmazonTaskBaseP
proxyType?: ProxyTypes;
/**
- * Create AmazonTaskBase
+ * AmazonTaskBase
* {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}
* @param {Object} params - AmazonTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_AntiCyberSiAraTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_AntiCyberSiAraTaskBase.ts
index 529bc87..19d8322 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_AntiCyberSiAraTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_AntiCyberSiAraTaskBase.ts
@@ -37,7 +37,7 @@ export abstract class AntiCyberSiAraTaskBase extends BaseTask implements AntiCyb
proxyType?: ProxyTypes;
/**
- * Create AntiCyberSiAraTaskBase
+ * AntiCyberSiAraTaskBase
* {@link https://2captcha.com/api-docs/anti-cyber-siara}
* @param {Object} params - CapyTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_AtbCaptchaTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_AtbCaptchaTaskBase.ts
new file mode 100644
index 0000000..b091289
--- /dev/null
+++ b/twocaptcha/src/lib/Requests/Token/Base/_AtbCaptchaTaskBase.ts
@@ -0,0 +1,67 @@
+import type {
+ ProxyCredentials, ProxyTypes, TaskTypes
+} from "../../_BaseTaskRequest";
+import { BaseTask } from "../../_BaseTaskRequest";
+
+export type AtbCaptchaTaskBaseParams = Partial & {
+ apiServer: string;
+ appId: string;
+ websiteURL: string;
+};
+
+/**
+ * Base class for AtbCaptchaTask
+ * @extends {BaseTask}
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ */
+export abstract class AtbCaptchaTaskBase extends BaseTask implements AtbCaptchaTaskBaseParams {
+
+ /**
+ * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ */
+ websiteURL: string;
+
+ /**
+ * @type {string} appId - The value of appId parameter in the website source code.
+ */
+ appId: string;
+
+ /**
+ * @type {string} apiServer - The value of apiServer parameter in the website source code.
+ */
+ apiServer: string;
+ proxyAddress?: string;
+ proxyLogin?: string;
+ proxyPassword?: string;
+ proxyPort?: number;
+ proxyType?: ProxyTypes;
+ proxy?: string;
+
+ /**
+ * AtbCaptchaTaskBase
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ * @param {Object} params - AtbCaptchaTaskParams
+ * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ * @param {string} [params.appId] - The value of appId parameter in the website source code.
+ * @param {string} [params.apiServer] - The value of apiServer parameter in the website source code.
+ * @param {string} [params.proxyAddress] - Proxy IP address or hostname
+ * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy
+ * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy
+ * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5
+ * @param {string} [params.proxyPort] - Proxy port
+ */
+ constructor({
+ appId, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, apiServer
+ }: AtbCaptchaTaskBaseParams, type: TaskTypes) {
+ super({ type });
+ this.appId = appId;
+ this.websiteURL = websiteURL;
+ this.proxyAddress = proxyAddress;
+ this.proxyLogin = proxyLogin;
+ this.proxyPassword = proxyPassword;
+ this.proxyPort = proxyPort;
+ this.proxyType = proxyType;
+ this.apiServer = apiServer;
+ }
+
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_CapyTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_CapyTaskBase.ts
index a9d72c3..427a750 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_CapyTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_CapyTaskBase.ts
@@ -37,7 +37,7 @@ export abstract class CapyTaskBase extends BaseTask implements CapyTaskBaseParam
proxyType?: ProxyTypes;
/**
- * Create CapyTaskBase
+ * CapyTaskBase
* {@link https://2captcha.com/api-docs/capy-puzzle-captcha}
* @param {Object} params - CapyTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_CutCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/Base/_CutCaptchaTask.ts
index 74339d7..bc62ba4 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_CutCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_CutCaptchaTask.ts
@@ -38,7 +38,7 @@ export abstract class CutCaptchaTaskBase extends BaseTask implements CutCaptchaT
proxyType?: ProxyTypes;
/**
- * Create CutCaptchaTaskBase
+ * CutCaptchaTaskBase
* {@link https://2captcha.com/api-docs/cutcaptcha}
* @param {Object} params - CutCaptchaTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_DataDomeSliderTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_DataDomeSliderTaskBase.ts
index ceceb36..aecffce 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_DataDomeSliderTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_DataDomeSliderTaskBase.ts
@@ -39,7 +39,7 @@ export abstract class DataDomeSliderTaskBase extends BaseTask implements DataDom
proxyType: ProxyTypes;
/**
- * Create DataDomeSliderTaskBase
+ * DataDomeSliderTaskBase
* {@link https://2captcha.com/api-docs/datadome-slider-captcha}
* @param {Object} params - DataDomeSliderTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_FriendlyCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/Base/_FriendlyCaptchaTask.ts
index 2e294b6..49af562 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_FriendlyCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_FriendlyCaptchaTask.ts
@@ -31,7 +31,7 @@ export abstract class FriendlyCaptchaTaskBase extends BaseTask implements Friend
proxyType?: ProxyTypes;
/**
- * Create FriendlyCaptchaTaskBase
+ * FriendlyCaptchaTaskBase
* {@link https://2captcha.com/api-docs/friendly-captcha}
* @param {Object} params - FriendlyCaptchaTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_FunCaptchaTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_FunCaptchaTaskBase.ts
index 19e195d..b06ab10 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_FunCaptchaTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_FunCaptchaTaskBase.ts
@@ -49,7 +49,7 @@ export abstract class FunCaptchaTaskBase extends BaseTask implements FunCaptchaT
proxyType?: ProxyTypes;
/**
- * Create FunCaptchaTaskBase
+ * FunCaptchaTaskBase
* {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}
* @param {Object} params - FunCaptchaTaskBaseParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_GeeTestTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_GeeTestTaskBase.ts
index 013c025..fdcbb1f 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_GeeTestTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_GeeTestTaskBase.ts
@@ -76,7 +76,7 @@ export abstract class GeeTestTaskBase extends BaseTask implements GeeTestTaskBas
proxyType?: ProxyTypes;
/**
- * Create GeeTestTaskBase
+ * GeeTestTaskBase
* {@link https://2captcha.com/api-docs/geetest}
* @param {Object} params - GeeTestTaskBaseParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV3TaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV3TaskBase.ts
index bbe251d..0818a19 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV3TaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV3TaskBase.ts
@@ -43,7 +43,7 @@ export abstract class GeeTestV3TaskBase extends BaseTask implements GeeTestV3Tas
proxyType?: ProxyTypes;
/**
- * Create GeeTestV3TaskBase
+ * GeeTestV3TaskBase
* {@link https://2captcha.com/api-docs/geetest}
* @param {Object} params - GeeTestV3TaskBaseParams
* @param {string} [params.gt] - GeeTest gt value
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV4TaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV4TaskBase.ts
index 9b700d2..2e61157 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV4TaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_GeeTestV4TaskBase.ts
@@ -33,7 +33,7 @@ export abstract class GeeTestV4TaskBase extends BaseTask implements GeeTestV4Tas
proxyType?: ProxyTypes;
/**
- * Create GeeTestV4TaskBase
+ * GeeTestV4TaskBase
* {@link https://2captcha.com/api-docs/geetest}
* @param {Object} params - GeeTestV4TaskParams
* @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_HCaptchaTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_HCaptchaTaskBase.ts
index 1a36aed..914937d 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_HCaptchaTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_HCaptchaTaskBase.ts
@@ -48,7 +48,7 @@ export abstract class HCaptchaTaskBase extends BaseTask implements HCaptchaTaskB
proxyType?: ProxyTypes;
/**
- * Create HCaptchaTaskBase
+ * HCaptchaTaskBase
* {@link https://2captcha.com/api-docs/hcaptcha}
* @param {Object} params - HCaptchaTaskBaseParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_KeyCaptchaTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_KeyCaptchaTaskBase.ts
index dfa4ec2..0892e48 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_KeyCaptchaTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_KeyCaptchaTaskBase.ts
@@ -50,7 +50,7 @@ export abstract class KeyCaptchaTaskBase extends BaseTask implements KeyCaptchaT
proxyType?: ProxyTypes;
/**
- * Create KeyCaptchaTaskBase
+ * KeyCaptchaTaskBase
* {@link https://2captcha.com/api-docs/keycaptcha}
* @param {Object} params - KeyCaptchaTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_LeminTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_LeminTaskBase.ts
index 2234777..5730370 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_LeminTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_LeminTaskBase.ts
@@ -49,7 +49,7 @@ export abstract class LeminTaskBase extends BaseTask implements LeminTaskBasePar
proxyType?: ProxyTypes;
/**
- * Create LeminTaskBase
+ * LeminTaskBase
* {@link https://2captcha.com/api-docs/lemin}
* @param {Object} params - LeminTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_MtCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/Base/_MtCaptchaTaskBase.ts
similarity index 98%
rename from twocaptcha/src/lib/Requests/Token/Base/_MtCaptchaTask.ts
rename to twocaptcha/src/lib/Requests/Token/Base/_MtCaptchaTaskBase.ts
index 40b81fb..63bc0e1 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_MtCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_MtCaptchaTaskBase.ts
@@ -32,7 +32,7 @@ export abstract class MtCaptchaTaskBase extends BaseTask implements MtCaptchaTas
proxy?: string;
/**
- * Create MtCaptchaTaskBase
+ * MtCaptchaTaskBase
* {@link https://2captcha.com/api-docs/mtcaptcha}
* @param {Object} params - MtCaptchaTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV2TaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV2TaskBase.ts
index bf84e69..becc5f7 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV2TaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV2TaskBase.ts
@@ -61,7 +61,7 @@ export abstract class RecaptchaV2TaskBase extends BaseTask implements RecaptchaV
proxyType?: ProxyTypes;
/**
- * Create RecaptchaV2TaskBase
+ * RecaptchaV2TaskBase
* {@link https://2captcha.com/api-docs/recaptcha-v2}
* @param {Object} params - RecaptchaV2TaskBaseParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV3TaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV3TaskBase.ts
index f032ee7..a754db0 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV3TaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_RecaptchaV3TaskBase.ts
@@ -50,7 +50,7 @@ export abstract class RecaptchaV3TaskBase extends BaseTask implements RecaptchaV
isEnterprise?: boolean;
/**
- * Create RecaptchaV3TaskBase
+ * RecaptchaV3TaskBase
* {@link https://2captcha.com/api-docs/recaptcha-v3}
* @param {Object} params - RecaptchaV3TaskBaseParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_TencentTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_TencentTaskBase.ts
new file mode 100644
index 0000000..e14b124
--- /dev/null
+++ b/twocaptcha/src/lib/Requests/Token/Base/_TencentTaskBase.ts
@@ -0,0 +1,58 @@
+import type {
+ ProxyCredentials, ProxyTypes, TaskTypes
+} from "../../_BaseTaskRequest";
+import { BaseTask } from "../../_BaseTaskRequest";
+
+export type TencentTaskBaseParams = Partial & {
+ appId: string;
+ websiteURL: string;
+};
+
+/**
+ * Base class for TencentTask
+ * @extends {BaseTask}
+ * {@link https://2captcha.com/api-docs/tencent}
+ */
+export abstract class TencentTaskBase extends BaseTask implements TencentTaskBaseParams {
+
+ /**
+ * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ */
+ websiteURL: string;
+
+ /**
+ * @type {string} appId - The TencentTask sitekey value found in the page code.
+ */
+ appId: string;
+ proxyAddress?: string;
+ proxyLogin?: string;
+ proxyPassword?: string;
+ proxyPort?: number;
+ proxyType?: ProxyTypes;
+ proxy?: string;
+
+ /**
+ * TencentTaskBase
+ * {@link https://2captcha.com/api-docs/tencent}
+ * @param {Object} params - TencentTaskParams
+ * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ * @param {string} [params.appId] - The TencentTask sitekey value found in the page code.
+ * @param {string} [params.proxyAddress] - Proxy IP address or hostname
+ * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy
+ * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy
+ * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5
+ * @param {string} [params.proxyPort] - Proxy port
+ */
+ constructor({
+ appId, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword
+ }: TencentTaskBaseParams, type: TaskTypes) {
+ super({ type });
+ this.appId = appId;
+ this.websiteURL = websiteURL;
+ this.proxyAddress = proxyAddress;
+ this.proxyLogin = proxyLogin;
+ this.proxyPassword = proxyPassword;
+ this.proxyPort = proxyPort;
+ this.proxyType = proxyType;
+ }
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/Token/Base/_TurnstileTaskBase.ts b/twocaptcha/src/lib/Requests/Token/Base/_TurnstileTaskBase.ts
index 8f7ac04..bf682db 100644
--- a/twocaptcha/src/lib/Requests/Token/Base/_TurnstileTaskBase.ts
+++ b/twocaptcha/src/lib/Requests/Token/Base/_TurnstileTaskBase.ts
@@ -55,7 +55,7 @@ export abstract class TurnstileTaskBase extends BaseTask implements TurnstileTas
proxyType?: ProxyTypes;
/**
- * Create TurnstileTaskBase
+ * TurnstileTaskBase
* {@link https://2captcha.com/api-docs/cloudflare-turnstile}
* @param {Object} params - TurnstileTaskParams
* @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
diff --git a/twocaptcha/src/lib/Requests/Token/CapyTask.ts b/twocaptcha/src/lib/Requests/Token/CapyTask.ts
index 09fc865..4e7d75c 100644
--- a/twocaptcha/src/lib/Requests/Token/CapyTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/CapyTask.ts
@@ -16,7 +16,7 @@ export class CapyTask extends CapyTaskBase implements _IsTaskType {
/**
* @type {boolean} _isCapyTask - Only used for correct method overloading intellisense
*/
- readonly _isCapyTask = true;
+ readonly _isCapyTask: _IsTaskType["_isCapyTask"] = true;
/**
* Create CapyTask
diff --git a/twocaptcha/src/lib/Requests/Token/CapyTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/CapyTaskProxyless.ts
index ea1e3e6..b6169a1 100644
--- a/twocaptcha/src/lib/Requests/Token/CapyTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/CapyTaskProxyless.ts
@@ -16,7 +16,7 @@ export class CapyTaskProxyless extends CapyTaskBase implements _IsTaskType {
/**
* @type {boolean} _isCapyTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isCapyTaskProxyless = true;
+ readonly _isCapyTaskProxyless: _IsTaskType["_isCapyTaskProxyless"] = true;
/**
* Create CapyTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/CutCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/CutCaptchaTask.ts
index b5c1a55..00513b8 100644
--- a/twocaptcha/src/lib/Requests/Token/CutCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/CutCaptchaTask.ts
@@ -16,7 +16,7 @@ export class CutCaptchaTask extends CutCaptchaTaskBase implements _IsTaskType {
/**
* @type {boolean} _isCutCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isCutCaptchaTask = true;
+ readonly _isCutCaptchaTask: _IsTaskType["_isCutCaptchaTask"] = true;
/**
* Create CutCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/CutCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/CutCaptchaTaskProxyless.ts
index c84e200..5fd3d68 100644
--- a/twocaptcha/src/lib/Requests/Token/CutCaptchaTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/CutCaptchaTaskProxyless.ts
@@ -16,7 +16,7 @@ export class CutCaptchaTaskProxyless extends CutCaptchaTaskBase implements _IsTa
/**
* @type {boolean} _isCutCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isCutCaptchaTaskProxyless = true;
+ readonly _isCutCaptchaTaskProxyless: _IsTaskType["_isCutCaptchaTaskProxyless"] = true;
/**
* Create CutCaptchaTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/DataDomeSliderTask.ts b/twocaptcha/src/lib/Requests/Token/DataDomeSliderTask.ts
index 9633688..b75f6ce 100644
--- a/twocaptcha/src/lib/Requests/Token/DataDomeSliderTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/DataDomeSliderTask.ts
@@ -16,7 +16,7 @@ export class DataDomeSliderTask extends DataDomeSliderTaskBase implements _IsTas
/**
* @type {boolean} _isDataDomeSliderTask - Only used for correct method overloading intellisense
*/
- readonly _isDataDomeSliderTask = true;
+ readonly _isDataDomeSliderTask: _IsTaskType["_isDataDomeSliderTask"] = true;
/**
* Create DataDomeSliderTask
diff --git a/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTask.ts
index bf10737..7a0e84d 100644
--- a/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTask.ts
@@ -16,7 +16,7 @@ export class FriendlyCaptchaTask extends FriendlyCaptchaTaskBase implements _IsT
/**
* @type {boolean} _isFriendlyCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isFriendlyCaptchaTask = true;
+ readonly _isFriendlyCaptchaTask: _IsTaskType["_isFriendlyCaptchaTask"] = true;
/**
* Create FriendlyCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTaskProxyless.ts
index bdb4ea5..ac0b601 100644
--- a/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/FriendlyCaptchaTaskProxyless.ts
@@ -16,7 +16,7 @@ export class FriendlyCaptchaTaskProxyless extends FriendlyCaptchaTaskBase implem
/**
* @type {boolean} _isFriendlyCaptchaTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isFriendlyCaptchaTaskProxyless = true;
+ readonly _isFriendlyCaptchaTaskProxyless: _IsTaskType["_isFriendlyCaptchaTaskProxyless"] = true;
/**
* Create FriendlyCaptchaTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/FunCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/FunCaptchaTask.ts
index 865cf5d..e7ca9bb 100644
--- a/twocaptcha/src/lib/Requests/Token/FunCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/FunCaptchaTask.ts
@@ -16,7 +16,7 @@ export class FunCaptchaTask extends FunCaptchaTaskBase implements _IsTaskType {
/**
* @type {boolean} _isFunCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isFunCaptchaTask = true;
+ readonly _isFunCaptchaTask: _IsTaskType["_isFunCaptchaTask"] = true;
/**
* Create FunCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/FunCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/FunCaptchaTaskProxyless.ts
index 63fc496..e6ea063 100644
--- a/twocaptcha/src/lib/Requests/Token/FunCaptchaTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/FunCaptchaTaskProxyless.ts
@@ -16,7 +16,7 @@ export class FunCaptchaTaskProxyless extends FunCaptchaTaskBase implements _IsTa
/**
* @type {boolean} _isFunCaptchaTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isFunCaptchaTaskProxyless = true;
+ readonly _isFunCaptchaTaskProxyless: _IsTaskType["_isFunCaptchaTaskProxyless"] = true;
/**
* Create FunCaptchaTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/GeeTestTask.ts b/twocaptcha/src/lib/Requests/Token/GeeTestTask.ts
index fd0fd05..7afe39f 100644
--- a/twocaptcha/src/lib/Requests/Token/GeeTestTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/GeeTestTask.ts
@@ -18,7 +18,7 @@ export class GeeTestTask extends GeeTestTaskBase implements _IsTaskType {
/**
* @type {boolean} _isGeeTestTask - Only used for correct method overloading intellisense
*/
- readonly _isGeeTestTask = true;
+ readonly _isGeeTestTask: _IsTaskType["_isGeeTestTask"] = true;
/**
* Create GeeTestTask
diff --git a/twocaptcha/src/lib/Requests/Token/GeeTestTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/GeeTestTaskProxyless.ts
index 0f6d1e1..d475ef0 100644
--- a/twocaptcha/src/lib/Requests/Token/GeeTestTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/GeeTestTaskProxyless.ts
@@ -19,7 +19,7 @@ export class GeeTestTaskProxyless extends GeeTestTaskBase implements _IsTaskType
/**
* @type {boolean} _isGeeTestTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isGeeTestTaskProxyless = true;
+ readonly _isGeeTestTaskProxyless: _IsTaskType["_isGeeTestTaskProxyless"] = true;
/**
* Create GeeTestTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/GeeTestV3Task.ts b/twocaptcha/src/lib/Requests/Token/GeeTestV3Task.ts
index e700f5b..6e0afe9 100644
--- a/twocaptcha/src/lib/Requests/Token/GeeTestV3Task.ts
+++ b/twocaptcha/src/lib/Requests/Token/GeeTestV3Task.ts
@@ -16,7 +16,7 @@ export class GeeTestV3Task extends GeeTestV3TaskBase implements _IsTaskType {
/**
* @type {boolean} _isGeeTestTask - Only used for correct method overloading intellisense
*/
- readonly _isGeeTestTask = true;
+ readonly _isGeeTestTask: _IsTaskType["_isGeeTestTask"] = true;
/**
* Create GeeTestV3Task
diff --git a/twocaptcha/src/lib/Requests/Token/GeeTestV3TaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/GeeTestV3TaskProxyless.ts
index ebb3c1f..3462d65 100644
--- a/twocaptcha/src/lib/Requests/Token/GeeTestV3TaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/GeeTestV3TaskProxyless.ts
@@ -16,7 +16,7 @@ export class GeeTestV3TaskProxyless extends GeeTestV3TaskBase implements _IsTask
/**
* @type {boolean} _isGeeTestTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isGeeTestTaskProxyless = true;
+ readonly _isGeeTestTaskProxyless: _IsTaskType["_isGeeTestTaskProxyless"] = true;
/**
* Create GeeTestV3TaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/GeeTestV4Task.ts b/twocaptcha/src/lib/Requests/Token/GeeTestV4Task.ts
index fdd4867..963fbd4 100644
--- a/twocaptcha/src/lib/Requests/Token/GeeTestV4Task.ts
+++ b/twocaptcha/src/lib/Requests/Token/GeeTestV4Task.ts
@@ -16,7 +16,7 @@ export class GeeTestV4Task extends GeeTestV4TaskBase implements _IsTaskType {
/**
* @type {boolean} _isGeeTestTask - Only used for correct method overloading intellisense
*/
- readonly _isGeeTestTask = true;
+ readonly _isGeeTestTask: _IsTaskType["_isGeeTestTask"] = true;
/**
* Create GeeTestV4Task
diff --git a/twocaptcha/src/lib/Requests/Token/GeeTestV4TaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/GeeTestV4TaskProxyless.ts
index ce9406d..1243b74 100644
--- a/twocaptcha/src/lib/Requests/Token/GeeTestV4TaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/GeeTestV4TaskProxyless.ts
@@ -16,7 +16,7 @@ export class GeeTestV4TaskProxyless extends GeeTestV4TaskBase implements _IsTask
/**
* @type {boolean} _isGeeTestTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isGeeTestTaskProxyless = true;
+ readonly _isGeeTestTaskProxyless: _IsTaskType["_isGeeTestTaskProxyless"] = true;
/**
* Create GeeTestV4TaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/HCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/HCaptchaTask.ts
index b8df2c4..be1dd14 100644
--- a/twocaptcha/src/lib/Requests/Token/HCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/HCaptchaTask.ts
@@ -16,7 +16,7 @@ export class HCaptchaTask extends HCaptchaTaskBase implements _IsTaskType {
/**
* @type {boolean} _isHCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isHCaptchaTask = true;
+ readonly _isHCaptchaTask: _IsTaskType["_isHCaptchaTask"] = true;
/**
* Create HCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/HCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/HCaptchaTaskProxyless.ts
index e522ca8..c2ef321 100644
--- a/twocaptcha/src/lib/Requests/Token/HCaptchaTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/HCaptchaTaskProxyless.ts
@@ -16,7 +16,7 @@ export class HCaptchaTaskProxyless extends HCaptchaTaskBase implements _IsTaskTy
/**
* @type {boolean} _isHCaptchaTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isHCaptchaTaskProxyless = true;
+ readonly _isHCaptchaTaskProxyless: _IsTaskType["_isHCaptchaTaskProxyless"] = true;
/**
* Create HCaptchaTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/KeyCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/KeyCaptchaTask.ts
index f273b60..91035c4 100644
--- a/twocaptcha/src/lib/Requests/Token/KeyCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/KeyCaptchaTask.ts
@@ -16,7 +16,7 @@ export class KeyCaptchaTask extends KeyCaptchaTaskBase implements _IsTaskType {
/**
* @type {boolean} _isKeyCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isKeyCaptchaTask = true;
+ readonly _isKeyCaptchaTask: _IsTaskType["_isKeyCaptchaTask"] = true;
/**
* Create KeyCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/KeyCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/KeyCaptchaTaskProxyless.ts
index 578a076..80f604e 100644
--- a/twocaptcha/src/lib/Requests/Token/KeyCaptchaTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/KeyCaptchaTaskProxyless.ts
@@ -16,7 +16,7 @@ export class KeyCaptchaTaskProxyless extends KeyCaptchaTaskBase implements _IsTa
/**
* @type {boolean} _isKeyCaptchaTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isKeyCaptchaTaskProxyless = true;
+ readonly _isKeyCaptchaTaskProxyless: _IsTaskType["_isKeyCaptchaTaskProxyless"] = true;
/**
* Create KeyCaptchaTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/LeminTask.ts b/twocaptcha/src/lib/Requests/Token/LeminTask.ts
index 7998ba4..7d86ddc 100644
--- a/twocaptcha/src/lib/Requests/Token/LeminTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/LeminTask.ts
@@ -16,7 +16,7 @@ export class LeminTask extends LeminTaskBase implements _IsTaskType {
/**
* @type {boolean} _isLeminTask - Only used for correct method overloading intellisense
*/
- readonly _isLeminTask = true;
+ readonly _isLeminTask: _IsTaskType["_isLeminTask"] = true;
/**
* Create LeminTask
diff --git a/twocaptcha/src/lib/Requests/Token/LeminTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/LeminTaskProxyless.ts
index 28de84d..3904d7b 100644
--- a/twocaptcha/src/lib/Requests/Token/LeminTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/LeminTaskProxyless.ts
@@ -16,7 +16,7 @@ export class LeminTaskProxyless extends LeminTaskBase implements _IsTaskType {
/**
* @type {boolean} _isLeminTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isLeminTaskProxyless = true;
+ readonly _isLeminTaskProxyless: _IsTaskType["_isLeminTaskProxyless"] = true;
/**
* Create LeminTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/MtCaptchaTask.ts b/twocaptcha/src/lib/Requests/Token/MtCaptchaTask.ts
index 3a3c5bf..ff63667 100644
--- a/twocaptcha/src/lib/Requests/Token/MtCaptchaTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/MtCaptchaTask.ts
@@ -1,13 +1,13 @@
import type {
ProxyRequiredTaskParams, _IsTaskType
} from "../_BaseTaskRequest";
-import type { MtCaptchaTaskBaseParams } from "./Base/_MtCaptchaTask";
-import { MtCaptchaTaskBase } from "./Base/_MtCaptchaTask";
+import type { MtCaptchaTaskBaseParams } from "./Base/_MtCaptchaTaskBase";
+import { MtCaptchaTaskBase } from "./Base/_MtCaptchaTaskBase";
type MtCaptchaTaskParams = ProxyRequiredTaskParams;
/**
- * Token-based method for automated solving of Capy Puzzle Captcha.
+ * Token-based method for automated solving of MTCaptcha.
* @extends {MtCaptchaTaskBase}
* {@link https://2captcha.com/api-docs/mtcaptcha}
*/
@@ -16,7 +16,7 @@ export class MtCaptchaTask extends MtCaptchaTaskBase implements _IsTaskType {
/**
* @type {boolean} _isMtCaptchaTask - Only used for correct method overloading intellisense
*/
- readonly _isMtCaptchaTask = true;
+ readonly _isMtCaptchaTask: _IsTaskType["_isMtCaptchaTask"] = true;
/**
* Create MtCaptchaTask
diff --git a/twocaptcha/src/lib/Requests/Token/MtCaptchaTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/MtCaptchaTaskProxyless.ts
index e005ef6..a092801 100644
--- a/twocaptcha/src/lib/Requests/Token/MtCaptchaTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/MtCaptchaTaskProxyless.ts
@@ -1,22 +1,22 @@
import type {
ProxylessTaskParams, _IsTaskType
} from "../_BaseTaskRequest";
-import type { CapyTaskBaseParams } from "./Base/_CapyTaskBase";
-import { CapyTaskBase } from "./Base/_CapyTaskBase";
+import type { MtCaptchaTaskBaseParams } from "./Base/_MtCaptchaTaskBase";
+import { MtCaptchaTaskBase } from "./Base/_MtCaptchaTaskBase";
-type MtCaptchaTaskProxylessParams = ProxylessTaskParams;
+type MtCaptchaTaskProxylessParams = ProxylessTaskParams;
/**
- * Token-based method for automated solving of Capy Puzzle Captcha.
- * @extends {CapyTaskBase}
+ * Token-based method for automated solving of MTCaptcha.
+ * @extends {MtCaptchaTaskBase}
* {@link https://2captcha.com/api-docs/mtcaptcha}
*/
-export class MtCaptchaTaskProxyless extends CapyTaskBase implements _IsTaskType {
+export class MtCaptchaTaskProxyless extends MtCaptchaTaskBase implements _IsTaskType {
/**
* @type {boolean} _isMtCaptchaTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isMtCaptchaTaskProxyless = true;
+ readonly _isMtCaptchaTaskProxyless: _IsTaskType["_isMtCaptchaTaskProxyless"] = true;
/**
* Create MtCaptchaTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTask.ts b/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTask.ts
index 7dd9d4a..d5d9d28 100644
--- a/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTask.ts
@@ -20,7 +20,7 @@ export class RecaptchaV2EnterpriseTask extends RecaptchaV2TaskBase implements _R
/**
* @type {boolean} _isRecaptchaV2EnterpriseTask - Only used for correct method overloading intellisense
*/
- readonly _isRecaptchaV2EnterpriseTask = true;
+ readonly _isRecaptchaV2EnterpriseTask: _IsTaskType["_isRecaptchaV2EnterpriseTask"] = true;
/**
* @type {string} enterprisePayload - Additional parameters passed to grecaptcha.enterprise.render call. For example, there can be an object containing s value
diff --git a/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTaskProxyless.ts
index e8b878e..d73aab7 100644
--- a/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/RecaptchaV2EnterpriseTaskProxyless.ts
@@ -17,7 +17,7 @@ export class RecaptchaV2EnterpriseTaskProxyless extends RecaptchaV2TaskBase impl
/**
* @type {boolean} _isRecaptchaV2EnterpriseTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isRecaptchaV2EnterpriseTaskProxyless = true;
+ readonly _isRecaptchaV2EnterpriseTaskProxyless: _IsTaskType["_isRecaptchaV2EnterpriseTaskProxyless"] = true;
enterprisePayload?: Record;
/**
diff --git a/twocaptcha/src/lib/Requests/Token/RecaptchaV2Task.ts b/twocaptcha/src/lib/Requests/Token/RecaptchaV2Task.ts
index 045a130..fcb5cbe 100644
--- a/twocaptcha/src/lib/Requests/Token/RecaptchaV2Task.ts
+++ b/twocaptcha/src/lib/Requests/Token/RecaptchaV2Task.ts
@@ -15,7 +15,7 @@ export class RecaptchaV2Task extends RecaptchaV2TaskBase implements _IsTaskType
/**
* @type {boolean} _isRecaptchaV2Task - Only used for correct method overloading intellisense
*/
- readonly _isRecaptchaV2Task = true;
+ readonly _isRecaptchaV2Task: _IsTaskType["_isRecaptchaV2Task"] = true;
/**
* Create RecaptchaV2Task
diff --git a/twocaptcha/src/lib/Requests/Token/RecaptchaV2TaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/RecaptchaV2TaskProxyless.ts
index e860f30..b9e0a80 100644
--- a/twocaptcha/src/lib/Requests/Token/RecaptchaV2TaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/RecaptchaV2TaskProxyless.ts
@@ -17,7 +17,7 @@ export class RecaptchaV2TaskProxyless extends RecaptchaV2TaskBase implements _Is
/**
* @type {boolean} _isRecaptchaV2TaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isRecaptchaV2TaskProxyless = true;
+ readonly _isRecaptchaV2TaskProxyless: _IsTaskType["_isRecaptchaV2TaskProxyless"] = true;
/**
* Create RecaptchaV2TaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/RecaptchaV3TaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/RecaptchaV3TaskProxyless.ts
index 67c1f42..2559c6d 100644
--- a/twocaptcha/src/lib/Requests/Token/RecaptchaV3TaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/RecaptchaV3TaskProxyless.ts
@@ -16,7 +16,7 @@ export class RecaptchaV3TaskProxyless extends RecaptchaV3TaskBase implements _Is
/**
* @type {boolean} _isRecaptchaV3TaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isRecaptchaV3TaskProxyless = true;
+ readonly _isRecaptchaV3TaskProxyless: _IsTaskType["_isRecaptchaV3TaskProxyless"] = true;
/**
* Create RecaptchaV3TaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/TencentTask.ts b/twocaptcha/src/lib/Requests/Token/TencentTask.ts
new file mode 100644
index 0000000..d2721ad
--- /dev/null
+++ b/twocaptcha/src/lib/Requests/Token/TencentTask.ts
@@ -0,0 +1,36 @@
+import type {
+ ProxyRequiredTaskParams, _IsTaskType
+} from "../_BaseTaskRequest";
+import type { TencentTaskBaseParams } from "./Base/_TencentTaskBase";
+import { TencentTaskBase } from "./Base/_TencentTaskBase";
+
+type TencentTaskParams = ProxyRequiredTaskParams;
+
+/**
+ * Token-based method to bypass Tencent captcha.
+ * @extends {TencentTaskBase}
+ * {@link https://2captcha.com/api-docs/tencent}
+ */
+export class TencentTask extends TencentTaskBase implements _IsTaskType {
+
+ /**
+ * @type {boolean} _isTencentTask - Only used for correct method overloading intellisense
+ */
+ readonly _isTencentTask: _IsTaskType["_isTencentTask"] = true;
+
+ /**
+ * Create TencentTask
+ * {@link https://2captcha.com/api-docs/tencent}
+ * @param {Object} params - TencentTaskParams
+ * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ * @param {string} [params.appId] - The TencentTask sitekey value found in the page code.
+ * @param {string} [params.proxyAddress] - Proxy IP address or hostname
+ * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy
+ * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy
+ * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5
+ * @param {string} [params.proxyPort] - Proxy port
+ */
+ constructor(params: TencentTaskParams) {
+ super(params, "TencentTask");
+ }
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/Token/TencentTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/TencentTaskProxyless.ts
new file mode 100644
index 0000000..50412ab
--- /dev/null
+++ b/twocaptcha/src/lib/Requests/Token/TencentTaskProxyless.ts
@@ -0,0 +1,31 @@
+import type {
+ ProxylessTaskParams, _IsTaskType
+} from "../_BaseTaskRequest";
+import type { TencentTaskBaseParams } from "./Base/_TencentTaskBase";
+import { TencentTaskBase } from "./Base/_TencentTaskBase";
+
+type TencentTaskProxylessParams = ProxylessTaskParams;
+
+/**
+ * Token-based method to bypass Tencent captcha.
+ * @extends {CapyTaskBase}
+ * {@link https://2captcha.com/api-docs/tencent}
+ */
+export class TencentTaskProxyless extends TencentTaskBase implements _IsTaskType {
+
+ /**
+ * @type {boolean} _isTencentTaskProxyless - Only used for correct method overloading intellisense
+ */
+ readonly _isTencentTaskProxyless: _IsTaskType["_isTencentTaskProxyless"] = true;
+
+ /**
+ * Create TencentTaskProxyless
+ * {@link https://2captcha.com/api-docs/tencent}
+ * @param {Object} params - TencentTaskProxylessParams
+ * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
+ * @param {string} [params.appId] - The TencentTask sitekey value found in the page code.
+ */
+ constructor(params: TencentTaskProxylessParams) {
+ super(params, "TencentTaskProxyless");
+ }
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/Token/TurnstileTask.ts b/twocaptcha/src/lib/Requests/Token/TurnstileTask.ts
index 3be8438..f76cf90 100644
--- a/twocaptcha/src/lib/Requests/Token/TurnstileTask.ts
+++ b/twocaptcha/src/lib/Requests/Token/TurnstileTask.ts
@@ -16,7 +16,7 @@ export class TurnstileTask extends TurnstileTaskBase implements _IsTaskType {
/**
* @type {boolean} _isTurnstileTask - Only used for correct method overloading intellisense
*/
- readonly _isTurnstileTask = true;
+ readonly _isTurnstileTask: _IsTaskType["_isTurnstileTask"] = true;
/**
* Create TurnstileTask
diff --git a/twocaptcha/src/lib/Requests/Token/TurnstileTaskProxyless.ts b/twocaptcha/src/lib/Requests/Token/TurnstileTaskProxyless.ts
index 7b36dd6..f4e9713 100644
--- a/twocaptcha/src/lib/Requests/Token/TurnstileTaskProxyless.ts
+++ b/twocaptcha/src/lib/Requests/Token/TurnstileTaskProxyless.ts
@@ -16,7 +16,7 @@ export class TurnstileTaskProxyless extends TurnstileTaskBase implements _IsTask
/**
* @type {boolean} _isTurnstileTaskProxyless - Only used for correct method overloading intellisense
*/
- readonly _isTurnstileTaskProxyless = true;
+ readonly _isTurnstileTaskProxyless: _IsTaskType["_isTurnstileTaskProxyless"] = true;
/**
* Create TurnstileTaskProxyless
diff --git a/twocaptcha/src/lib/Requests/Token/index.ts b/twocaptcha/src/lib/Requests/Token/index.ts
index 3f387dd..b2fd9e4 100644
--- a/twocaptcha/src/lib/Requests/Token/index.ts
+++ b/twocaptcha/src/lib/Requests/Token/index.ts
@@ -1,3 +1,7 @@
+import { TencentTaskProxyless } from "./TencentTaskProxyless";
+import { TencentTask } from "./TencentTask";
+import { AtbCaptchaTaskProxyless } from "./AtbCaptchaTaskProxyless";
+import { AtbCaptchaTask } from "./AtbCaptchaTask";
import { CutCaptchaTaskProxyless } from "./CutCaptchaTaskProxyless";
import { CutCaptchaTask } from "./CutCaptchaTask";
import { TurnstileTaskProxyless } from "./TurnstileTaskProxyless";
@@ -67,5 +71,9 @@ export {
RecaptchaV2EnterpriseTaskProxyless,
RecaptchaV3TaskProxyless,
TurnstileTask,
- TurnstileTaskProxyless
+ TurnstileTaskProxyless,
+ AtbCaptchaTask,
+ AtbCaptchaTaskProxyless,
+ TencentTask,
+ TencentTaskProxyless
};
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Requests/_BaseTaskRequest.ts b/twocaptcha/src/lib/Requests/_BaseTaskRequest.ts
index d5d9956..7f35247 100644
--- a/twocaptcha/src/lib/Requests/_BaseTaskRequest.ts
+++ b/twocaptcha/src/lib/Requests/_BaseTaskRequest.ts
@@ -36,7 +36,11 @@ const _TaskTypes = [
"CutCaptchaTaskProxyless",
"DataDomeSliderTask",
"FriendlyCaptchaTask",
- "FriendlyCaptchaTaskProxyless"
+ "FriendlyCaptchaTaskProxyless",
+ "TencentTask",
+ "TencentTaskProxyless",
+ "AtbCaptchaTask",
+ "AtbCaptchaTaskProxyless"
] as const;
export type TaskTypes = typeof _TaskTypes[number];
diff --git a/twocaptcha/src/lib/Requests/index.ts b/twocaptcha/src/lib/Requests/index.ts
index cad99ed..4f7f8cd 100644
--- a/twocaptcha/src/lib/Requests/index.ts
+++ b/twocaptcha/src/lib/Requests/index.ts
@@ -2,10 +2,11 @@ import type {
AudioTask, BoundingBoxTask, CoordinatesTask, DrawAroundTask, GridTask, ImageToTextTask, RotateTask, TextCaptchaTask
} from "./Recognition";
import type {
- AmazonTask, AmazonTaskProxyless, AntiCyberSiAraTask, AntiCyberSiAraTaskProxyless, CapyTask, CapyTaskProxyless, CutCaptchaTask, CutCaptchaTaskProxyless, DataDomeSliderTask, FriendlyCaptchaTask, FriendlyCaptchaTaskProxyless, FunCaptchaTask, FunCaptchaTaskProxyless, GeeTestTask, GeeTestTaskProxyless, GeeTestV3Task, GeeTestV3TaskProxyless, GeeTestV4Task, GeeTestV4TaskProxyless, HCaptchaTask, HCaptchaTaskProxyless, KeyCaptchaTask, KeyCaptchaTaskProxyless, LeminTask, LeminTaskProxyless, MtCaptchaTask, MtCaptchaTaskProxyless, RecaptchaV2EnterpriseTask, RecaptchaV2EnterpriseTaskProxyless, RecaptchaV2Task, RecaptchaV2TaskProxyless, RecaptchaV3TaskProxyless, TurnstileTask, TurnstileTaskProxyless
+ AmazonTask, AmazonTaskProxyless, AntiCyberSiAraTask, AntiCyberSiAraTaskProxyless, CapyTask, CapyTaskProxyless, CutCaptchaTask, CutCaptchaTaskProxyless, DataDomeSliderTask, FriendlyCaptchaTask, FriendlyCaptchaTaskProxyless, FunCaptchaTask, FunCaptchaTaskProxyless, GeeTestTask, GeeTestTaskProxyless, GeeTestV3Task, GeeTestV3TaskProxyless, GeeTestV4Task, GeeTestV4TaskProxyless, HCaptchaTask, HCaptchaTaskProxyless, KeyCaptchaTask, KeyCaptchaTaskProxyless, LeminTask, LeminTaskProxyless, MtCaptchaTask, MtCaptchaTaskProxyless, RecaptchaV2EnterpriseTask, RecaptchaV2EnterpriseTaskProxyless, RecaptchaV2Task, RecaptchaV2TaskProxyless, RecaptchaV3TaskProxyless, TurnstileTask, TurnstileTaskProxyless,
+ TencentTask, TencentTaskProxyless, AtbCaptchaTask, AtbCaptchaTaskProxyless
} from "./Token";
-export type Requests = AmazonTask | AmazonTaskProxyless | AntiCyberSiAraTask | AntiCyberSiAraTaskProxyless | AudioTask | BoundingBoxTask | CapyTask | CapyTaskProxyless | CoordinatesTask | CutCaptchaTask | CutCaptchaTaskProxyless | DataDomeSliderTask | DrawAroundTask | FriendlyCaptchaTask | FriendlyCaptchaTaskProxyless | FunCaptchaTask | FunCaptchaTaskProxyless | GeeTestTask | GeeTestTaskProxyless | GeeTestV3Task | GeeTestV3TaskProxyless | GeeTestV4Task | GeeTestV4TaskProxyless | GridTask | HCaptchaTask | HCaptchaTaskProxyless | ImageToTextTask | KeyCaptchaTask | KeyCaptchaTaskProxyless | LeminTask | LeminTaskProxyless | MtCaptchaTask | MtCaptchaTaskProxyless | RecaptchaV2EnterpriseTask | RecaptchaV2EnterpriseTaskProxyless | RecaptchaV2Task | RecaptchaV2TaskProxyless | RecaptchaV3TaskProxyless | RotateTask | TextCaptchaTask | TurnstileTask | TurnstileTaskProxyless;
+export type Requests = AmazonTask | AmazonTaskProxyless | AntiCyberSiAraTask | AntiCyberSiAraTaskProxyless | AtbCaptchaTask | AtbCaptchaTaskProxyless | AudioTask | BoundingBoxTask | CapyTask | CapyTaskProxyless | CoordinatesTask | CutCaptchaTask | CutCaptchaTaskProxyless | DataDomeSliderTask | DrawAroundTask | FriendlyCaptchaTask | FriendlyCaptchaTaskProxyless | FunCaptchaTask | FunCaptchaTaskProxyless | GeeTestTask | GeeTestTaskProxyless | GeeTestV3Task | GeeTestV3TaskProxyless | GeeTestV4Task | GeeTestV4TaskProxyless | GridTask | HCaptchaTask | HCaptchaTaskProxyless | ImageToTextTask | KeyCaptchaTask | KeyCaptchaTaskProxyless | LeminTask | LeminTaskProxyless | MtCaptchaTask | MtCaptchaTaskProxyless | RecaptchaV2EnterpriseTask | RecaptchaV2EnterpriseTaskProxyless | RecaptchaV2Task | RecaptchaV2TaskProxyless | RecaptchaV3TaskProxyless | RotateTask | TencentTask | TencentTaskProxyless | TextCaptchaTask | TurnstileTask | TurnstileTaskProxyless;
export * from "./Token";
export * from "./Recognition";
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/AudioTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/AudioTaskSolution.ts
index 1112cb6..d47c52f 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/AudioTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/AudioTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/audio}
+ */
export interface AudioTaskSolution {
text: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/BoundingBoxTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/BoundingBoxTaskSolution.ts
index 7387bb6..ab5be9a 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/BoundingBoxTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/BoundingBoxTaskSolution.ts
@@ -1,10 +1,13 @@
-export interface BoundingBoxTaskSolution {
- bounding_boxes: BoundingBox[];
-}
-
interface BoundingBox {
xMax: number;
xMin: number;
yMax: number;
yMin: number;
+}
+
+/**
+ * {@link https://2captcha.com/api-docs/bounding-box}
+ */
+export interface BoundingBoxTaskSolution {
+ bounding_boxes: BoundingBox[];
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/CoordinatesTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/CoordinatesTaskSolution.ts
index ad757b7..89f3d1f 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/CoordinatesTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/CoordinatesTaskSolution.ts
@@ -1,8 +1,11 @@
-export interface CoordinatesTaskSolution {
- coordinates: Coordinate[];
-}
-
interface Coordinate {
x: number;
y: number;
+}
+
+/**
+ * {@link https://2captcha.com/api-docs/coordinates}
+ */
+export interface CoordinatesTaskSolution {
+ coordinates: Coordinate[];
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/DrawAroundTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/DrawAroundTaskSolution.ts
index b780b4d..69345e6 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/DrawAroundTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/DrawAroundTaskSolution.ts
@@ -1,8 +1,11 @@
-export interface DrawAroundTaskSolution {
- canvas: Coordinate[][];
-}
-
interface Coordinate {
x: number;
y: number;
+}
+
+/**
+ * {@link https://2captcha.com/api-docs/draw-around}
+ */
+export interface DrawAroundTaskSolution {
+ canvas: Coordinate[][];
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/GridTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/GridTaskSolution.ts
index d3f90c3..140137e 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/GridTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/GridTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/grid}
+ */
export interface GridTaskSolution {
click: number[];
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/ImageToTextTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/ImageToTextTaskSolution.ts
index e9acfe1..642cac7 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/ImageToTextTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/ImageToTextTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/normal-captcha}
+ */
export interface ImageToTextTaskSolution {
text: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/RotateTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/RotateTaskSolution.ts
index a6d4f2a..ada2e3b 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/RotateTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/RotateTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/rotate}
+ */
export interface RotateTaskSolution {
rotate: number;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Recognition/TextCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Recognition/TextCaptchaTaskSolution.ts
index a2d59ad..0f4040c 100644
--- a/twocaptcha/src/lib/Solutions/Recognition/TextCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Recognition/TextCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/text}
+ */
export interface TextCaptchaTaskSolution {
text: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/AmazonTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/AmazonTaskSolution.ts
index c212b29..30f9200 100644
--- a/twocaptcha/src/lib/Solutions/Token/AmazonTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/AmazonTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}
+ */
export interface AmazonTaskSolution {
captcha_voucher: string;
existing_token: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/AntiCyberSiAraTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/AntiCyberSiAraTaskSolution.ts
index 729be0a..aa4c7b1 100644
--- a/twocaptcha/src/lib/Solutions/Token/AntiCyberSiAraTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/AntiCyberSiAraTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/anti-cyber-siara}
+ */
export interface AntiCyberSiAraTaskSolution {
token: string;
}
diff --git a/twocaptcha/src/lib/Solutions/Token/AtbCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/AtbCaptchaTaskSolution.ts
new file mode 100644
index 0000000..29c0f90
--- /dev/null
+++ b/twocaptcha/src/lib/Solutions/Token/AtbCaptchaTaskSolution.ts
@@ -0,0 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ */
+export interface AtbCaptchaTaskSolution {
+ token: string;
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/CapyTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/CapyTaskSolution.ts
index aa7fbed..0129fa4 100644
--- a/twocaptcha/src/lib/Solutions/Token/CapyTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/CapyTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/capy-puzzle-captcha}
+ */
export interface CapyTaskSolution {
answer: string;
captchakey: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/CutCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/CutCaptchaTaskSolution.ts
index 7811dd9..5da5339 100644
--- a/twocaptcha/src/lib/Solutions/Token/CutCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/CutCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/cutcaptcha}
+ */
export interface CutCaptchaTaskSolution {
token: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/DataDomeSliderTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/DataDomeSliderTaskSolution.ts
index 8aa091c..2177377 100644
--- a/twocaptcha/src/lib/Solutions/Token/DataDomeSliderTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/DataDomeSliderTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/datadome-slider-captcha}
+ */
export interface DataDomeSliderTaskSolution {
cookie: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/FriendlyCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/FriendlyCaptchaTaskSolution.ts
index 32b2824..16bf236 100644
--- a/twocaptcha/src/lib/Solutions/Token/FriendlyCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/FriendlyCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/friendly-captcha}
+ */
export interface FriendlyCaptchaTaskSolution {
token: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/FunCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/FunCaptchaTaskSolution.ts
index bb045ec..bf9b600 100644
--- a/twocaptcha/src/lib/Solutions/Token/FunCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/FunCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}
+ */
export interface FunCaptchaTaskSolution {
token: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/GeeTestTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/GeeTestTaskSolution.ts
index 43a3314..2303b33 100644
--- a/twocaptcha/src/lib/Solutions/Token/GeeTestTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/GeeTestTaskSolution.ts
@@ -1,4 +1,7 @@
import type { GeeTestV4TaskSolution } from "./GeeTestV4TaskSolution";
import type { GeeTestV3TaskSolution } from "./GeeTestV3TaskSolution";
+/**
+ * {@link https://2captcha.com/api-docs/geetest}
+ */
export type GeeTestTaskSolution = GeeTestV3TaskSolution & GeeTestV4TaskSolution;
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/GeeTestV3TaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/GeeTestV3TaskSolution.ts
index b4c53e1..2db46da 100644
--- a/twocaptcha/src/lib/Solutions/Token/GeeTestV3TaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/GeeTestV3TaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/geetest}
+ */
export interface GeeTestV3TaskSolution {
challenge: string;
seccode: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/GeeTestV4TaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/GeeTestV4TaskSolution.ts
index bfd5f94..c5f85f4 100644
--- a/twocaptcha/src/lib/Solutions/Token/GeeTestV4TaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/GeeTestV4TaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/geetest}
+ */
export interface GeeTestV4TaskSolution {
captcha_id: string;
captcha_output: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/HCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/HCaptchaTaskSolution.ts
index d9f118d..57a798f 100644
--- a/twocaptcha/src/lib/Solutions/Token/HCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/HCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/hcaptcha}
+ */
export interface HCaptchaTaskSolution {
gRecaptchaResponse: string;
respKey: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/KeyCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/KeyCaptchaTaskSolution.ts
index 88443a4..053ed00 100644
--- a/twocaptcha/src/lib/Solutions/Token/KeyCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/KeyCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/keycaptcha}
+ */
export interface KeyCaptchaTaskSolution {
token: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/LeminTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/LeminTaskSolution.ts
index 6c073de..2e41982 100644
--- a/twocaptcha/src/lib/Solutions/Token/LeminTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/LeminTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/lemin}
+ */
export interface LeminTaskSolution {
answer: string;
challenge_id: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/MtCaptchaTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/MtCaptchaTaskSolution.ts
index 4ea1e6c..276990a 100644
--- a/twocaptcha/src/lib/Solutions/Token/MtCaptchaTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/MtCaptchaTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/mtcaptcha}
+ */
export interface MtCaptchaTaskSolution {
token: string;
}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/RecaptchaV2TaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/RecaptchaV2TaskSolution.ts
index 31ba9e7..9139f79 100644
--- a/twocaptcha/src/lib/Solutions/Token/RecaptchaV2TaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/RecaptchaV2TaskSolution.ts
@@ -1,3 +1,7 @@
+/**
+ * - {@link https://2captcha.com/api-docs/recaptcha-v2}
+ * - {@link https://2captcha.com/api-docs/recaptcha-v2-enterprise}
+ */
export interface RecaptchaV2TaskSolution {
gRecaptchaResponse: string;
token: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/RecaptchaV3TaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/RecaptchaV3TaskSolution.ts
index 53f6936..461fc42 100644
--- a/twocaptcha/src/lib/Solutions/Token/RecaptchaV3TaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/RecaptchaV3TaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://3captcha.com/api-docs/recaptcha-v3}
+ */
export interface RecaptchaV3TaskSolution {
gRecaptchaResponse: string;
token: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/TencentTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/TencentTaskSolution.ts
new file mode 100644
index 0000000..ac731ac
--- /dev/null
+++ b/twocaptcha/src/lib/Solutions/Token/TencentTaskSolution.ts
@@ -0,0 +1,9 @@
+/**
+ * {@link https://2captcha.com/api-docs/tencent}
+ */
+export interface TencentTaskSolution {
+ appid: string;
+ randstr: string;
+ ret: number;
+ ticket: string;
+}
\ No newline at end of file
diff --git a/twocaptcha/src/lib/Solutions/Token/TurnstileTaskSolution.ts b/twocaptcha/src/lib/Solutions/Token/TurnstileTaskSolution.ts
index 189745e..ce1e17f 100644
--- a/twocaptcha/src/lib/Solutions/Token/TurnstileTaskSolution.ts
+++ b/twocaptcha/src/lib/Solutions/Token/TurnstileTaskSolution.ts
@@ -1,3 +1,6 @@
+/**
+ * {@link https://2captcha.com/api-docs/cloudflare-turnstile}
+ */
export interface TurnstileTaskSolution {
token: string;
userAgent: string;
diff --git a/twocaptcha/src/lib/Solutions/Token/index.ts b/twocaptcha/src/lib/Solutions/Token/index.ts
index a7cf4ea..3b02693 100644
--- a/twocaptcha/src/lib/Solutions/Token/index.ts
+++ b/twocaptcha/src/lib/Solutions/Token/index.ts
@@ -1,3 +1,5 @@
+import { TencentTaskSolution } from "./TencentTaskSolution";
+import { AtbCaptchaTaskSolution } from "./AtbCaptchaTaskSolution";
import { TurnstileTaskSolution } from "./TurnstileTaskSolution";
import { RecaptchaV3TaskSolution } from "./RecaptchaV3TaskSolution";
import { RecaptchaV2TaskSolution } from "./RecaptchaV2TaskSolution";
@@ -14,6 +16,7 @@ import { CapyTaskSolution } from "./CapyTaskSolution";
import { AntiCyberSiAraTaskSolution } from "./AntiCyberSiAraTaskSolution";
import { AmazonTaskSolution } from "./AmazonTaskSolution";
import { GeeTestV4TaskSolution } from "./GeeTestV4TaskSolution";
+import { CutCaptchaTaskSolution } from "./CutCaptchaTaskSolution";
export {
AmazonTaskSolution,
@@ -31,5 +34,8 @@ export {
MtCaptchaTaskSolution,
RecaptchaV2TaskSolution,
RecaptchaV3TaskSolution,
- TurnstileTaskSolution
+ CutCaptchaTaskSolution,
+ TurnstileTaskSolution,
+ TencentTaskSolution,
+ AtbCaptchaTaskSolution
};
\ No newline at end of file
diff --git a/twocaptcha/src/lib/twocaptcha.ts b/twocaptcha/src/lib/twocaptcha.ts
index 8303d36..fdf8b81 100644
--- a/twocaptcha/src/lib/twocaptcha.ts
+++ b/twocaptcha/src/lib/twocaptcha.ts
@@ -51,7 +51,11 @@ import type {
CoordinatesTask,
DrawAroundTask,
CutCaptchaTask,
- CutCaptchaTaskProxyless
+ CutCaptchaTaskProxyless,
+ TencentTask,
+ TencentTaskProxyless,
+ AtbCaptchaTaskProxyless,
+ AtbCaptchaTask
} from "./Requests";
import type {
TwoCaptchaSolution, TwoCaptchaSuccessSolution
@@ -80,9 +84,12 @@ import type {
RotateTaskSolution,
TextCaptchaTaskSolution,
TurnstileTaskSolution,
- ImageToTextTaskSolution
+ ImageToTextTaskSolution,
+ TencentTaskSolution,
+ AtbCaptchaTaskSolution,
+ CutCaptchaTaskSolution
} from "./Solutions";
-import type { CutCaptchaTaskSolution } from "./Solutions/Token/CutCaptchaTaskSolution";
+
process.removeAllListeners("warning");
/**
@@ -300,7 +307,7 @@ export class TwoCaptcha extends CaptchaClient>} - response of createTask
*/
public async solve(request: CutCaptchaTask | CutCaptchaTaskProxyless): Promise>;
@@ -397,6 +404,20 @@ export class TwoCaptcha extends CaptchaClient>;
+ /**
+ * @param {TencentTask | TencentTaskProxyless} request - task payload to create TencentTask or TencentTaskProxyless
+ * {@link https://2captcha.com/api-docs/tencent}
+ * @return {Promise>} - response of createTask
+ */
+ public async solve(request: TencentTask | TencentTaskProxyless): Promise>;
+
+ /**
+ * @param {AtbCaptchaTask | AtbCaptchaTaskProxyless} request - task payload to create AtbCaptchaTask or AtbCaptchaTaskProxyless
+ * {@link https://2captcha.com/api-docs/atb-captcha}
+ * @return {Promise>} - response of createTask
+ */
+ public async solve(request: AtbCaptchaTask | AtbCaptchaTaskProxyless): Promise>;
+
/**
* @param {Requests} request - task payload to create task or taskProxyless
* @return {Promise>} - response of createTask
@@ -450,6 +471,10 @@ export class TwoCaptcha extends CaptchaClient {
+ it("To be equal to object", () => {
+ const task = new AtbCaptchaTask({
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyLogin: "some-proxyLogin",
+ proxyPassword: "some-proxyPassword",
+ proxyPort: 1010,
+ proxyType: "http",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isAtbCaptchaTask: true,
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyLogin: "some-proxyLogin",
+ proxyPassword: "some-proxyPassword",
+ proxyPort: 1010,
+ proxyType: "http",
+ type: "AtbCaptchaTask",
+ websiteURL: "some-websiteURL"
+ });
+ });
+ it("To be equal to object without optional params", () => {
+ const task = new AtbCaptchaTask({
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyPort: 1010,
+ proxyType: "http",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isAtbCaptchaTask: true,
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyLogin: undefined,
+ proxyPassword: undefined,
+ proxyPort: 1010,
+ proxyType: "http",
+ type: "AtbCaptchaTask",
+ websiteURL: "some-websiteURL"
+ });
+ });
+});
diff --git a/twocaptcha/src/tests/Requests/Token/AtbCaptchaTaskProxyless.spec.ts b/twocaptcha/src/tests/Requests/Token/AtbCaptchaTaskProxyless.spec.ts
new file mode 100644
index 0000000..9ba78a3
--- /dev/null
+++ b/twocaptcha/src/tests/Requests/Token/AtbCaptchaTaskProxyless.spec.ts
@@ -0,0 +1,44 @@
+import { AtbCaptchaTaskProxyless } from "../../../lib/Requests/Token/AtbCaptchaTaskProxyless";
+
+describe("AtbCaptchaTaskProxyless", () => {
+ it("To be equal to object", () => {
+ const task = new AtbCaptchaTaskProxyless({
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isAtbCaptchaTaskProxyless: true,
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ proxyAddress: undefined,
+ proxyLogin: undefined,
+ proxyPassword: undefined,
+ proxyPort: undefined,
+ proxyType: undefined,
+ type: "AtbCaptchaTaskProxyless",
+ websiteURL: "some-websiteURL"
+ });
+ });
+ it("To be equal to object without optional params", () => {
+ const task = new AtbCaptchaTaskProxyless({
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isAtbCaptchaTaskProxyless: true,
+ apiServer: "some-apiServer",
+ appId: "some-appId",
+ proxyAddress: undefined,
+ proxyLogin: undefined,
+ proxyPassword: undefined,
+ proxyPort: undefined,
+ proxyType: undefined,
+ type: "AtbCaptchaTaskProxyless",
+ websiteURL: "some-websiteURL"
+ });
+ });
+});
diff --git a/twocaptcha/src/tests/Requests/Token/TencentTask.spec.ts b/twocaptcha/src/tests/Requests/Token/TencentTask.spec.ts
new file mode 100644
index 0000000..a6fe54f
--- /dev/null
+++ b/twocaptcha/src/tests/Requests/Token/TencentTask.spec.ts
@@ -0,0 +1,48 @@
+import { TencentTask } from "../../../lib/Requests/Token/TencentTask";
+
+describe("TencentTask", () => {
+ it("To be equal to object", () => {
+ const task = new TencentTask({
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyLogin: "some-proxyLogin",
+ proxyPassword: "some-proxyPassword",
+ proxyPort: 1010,
+ proxyType: "http",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isTencentTask: true,
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyLogin: "some-proxyLogin",
+ proxyPassword: "some-proxyPassword",
+ proxyPort: 1010,
+ proxyType: "http",
+ type: "TencentTask",
+ websiteURL: "some-websiteURL"
+ });
+ });
+ it("To be equal to object without optional params", () => {
+ const task = new TencentTask({
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyPort: 1010,
+ proxyType: "http",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isTencentTask: true,
+ appId: "some-appId",
+ proxyAddress: "some-proxyAddress",
+ proxyLogin: undefined,
+ proxyPassword: undefined,
+ proxyPort: 1010,
+ proxyType: "http",
+ type: "TencentTask",
+ websiteURL: "some-websiteURL"
+ });
+ });
+});
diff --git a/twocaptcha/src/tests/Requests/Token/TencentTaskProxyless.spec.ts b/twocaptcha/src/tests/Requests/Token/TencentTaskProxyless.spec.ts
new file mode 100644
index 0000000..c78f91a
--- /dev/null
+++ b/twocaptcha/src/tests/Requests/Token/TencentTaskProxyless.spec.ts
@@ -0,0 +1,40 @@
+import { TencentTaskProxyless } from "../../../lib/Requests/Token/TencentTaskProxyless";
+
+describe("TencentTaskProxyless", () => {
+ it("To be equal to object", () => {
+ const task = new TencentTaskProxyless({
+ appId: "some-appId",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isTencentTaskProxyless: true,
+ appId: "some-appId",
+ proxyAddress: undefined,
+ proxyLogin: undefined,
+ proxyPassword: undefined,
+ proxyPort: undefined,
+ proxyType: undefined,
+ type: "TencentTaskProxyless",
+ websiteURL: "some-websiteURL"
+ });
+ });
+ it("To be equal to object without optional params", () => {
+ const task = new TencentTaskProxyless({
+ appId: "some-appId",
+ websiteURL: "some-websiteURL"
+ });
+
+ expect(task).toEqual({
+ _isTencentTaskProxyless: true,
+ appId: "some-appId",
+ proxyAddress: undefined,
+ proxyLogin: undefined,
+ proxyPassword: undefined,
+ proxyPort: undefined,
+ proxyType: undefined,
+ type: "TencentTaskProxyless",
+ websiteURL: "some-websiteURL"
+ });
+ });
+});