@airtop/sdk 0.1.31-beta0 → 0.1.31-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wrapper/AirtopClient.d.ts +3 -0
- package/dist/wrapper/AirtopClient.js +5 -0
- package/dist/wrapper/AirtopRequests.d.ts +18 -0
- package/dist/wrapper/AirtopRequests.js +48 -0
- package/package.json +3 -2
- package/wrapper/AirtopClient.d.ts +3 -0
- package/wrapper/AirtopClient.js +5 -0
- package/wrapper/AirtopRequests.d.ts +18 -0
- package/wrapper/AirtopRequests.js +48 -0
@@ -2,6 +2,7 @@ import { AirtopClient as FernClient } from '../Client';
|
|
2
2
|
import { type BatchOperateConfig, type BatchOperationInput, type BatchOperationResponse, type BatchOperationUrl } from '../utils';
|
3
3
|
import { AirtopSessions } from './AirtopSessions';
|
4
4
|
import { AirtopWindows } from './AirtopWindows';
|
5
|
+
import { AirtopRequests } from './AirtopRequests';
|
5
6
|
declare type AugmentedOptions = FernClient.Options & {
|
6
7
|
debug?: boolean;
|
7
8
|
};
|
@@ -11,11 +12,13 @@ export declare class AirtopClient {
|
|
11
12
|
private _client;
|
12
13
|
private _windows;
|
13
14
|
private _sessions;
|
15
|
+
private _requests;
|
14
16
|
constructor(_options: AugmentedOptions);
|
15
17
|
setApiKey(apiKey: string): void;
|
16
18
|
setEnvironment(environment: string): void;
|
17
19
|
get sessions(): AirtopSessions;
|
18
20
|
get windows(): AirtopWindows;
|
21
|
+
get requests(): AirtopRequests;
|
19
22
|
get profiles(): import("../api/resources/profiles/client/Client").Profiles;
|
20
23
|
get extensionConfigurations(): import("../api/resources/extensionConfigurations/client/Client").ExtensionConfigurations;
|
21
24
|
log(message: string): void;
|
@@ -38,6 +38,7 @@ const core = __importStar(require("../core"));
|
|
38
38
|
const utils_1 = require("../utils");
|
39
39
|
const AirtopSessions_1 = require("./AirtopSessions");
|
40
40
|
const AirtopWindows_1 = require("./AirtopWindows");
|
41
|
+
const AirtopRequests_1 = require("./AirtopRequests");
|
41
42
|
class AirtopClient {
|
42
43
|
constructor(_options) {
|
43
44
|
this._options = _options;
|
@@ -67,6 +68,10 @@ class AirtopClient {
|
|
67
68
|
var _a;
|
68
69
|
return ((_a = this._windows) !== null && _a !== void 0 ? _a : (this._windows = new AirtopWindows_1.AirtopWindows(this._options, this._options.apiKey)));
|
69
70
|
}
|
71
|
+
get requests() {
|
72
|
+
var _a;
|
73
|
+
return ((_a = this._requests) !== null && _a !== void 0 ? _a : (this._requests = new AirtopRequests_1.AirtopRequests(this._options)));
|
74
|
+
}
|
70
75
|
get profiles() {
|
71
76
|
return this._client.profiles;
|
72
77
|
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type * as Airtop from '../api';
|
2
|
+
import { Requests as RequestsClass, type Requests as RequestsNamespace } from '../api/resources/requests/client/Client';
|
3
|
+
export declare class AirtopRequests extends RequestsClass {
|
4
|
+
readonly _options: RequestsNamespace.Options;
|
5
|
+
constructor(_options: RequestsNamespace.Options);
|
6
|
+
/**
|
7
|
+
* Waits until a request is complete or times out
|
8
|
+
*
|
9
|
+
* @param requestId - The ID of the request to poll.
|
10
|
+
* @param timeoutSeconds - Maximum time to wait in seconds.
|
11
|
+
* @param intervalSeconds - Polling interval in seconds.
|
12
|
+
* @param requestOptions - Request-specific configuration.
|
13
|
+
*
|
14
|
+
* @example
|
15
|
+
* const result = await client.requests.pollRequestUntilComplete("123e4567-e89b-12d3-a456-426614174000", 300, 2)
|
16
|
+
*/
|
17
|
+
waitForRequestCompletion(requestId: string, timeoutSeconds?: number, intervalSeconds?: number, requestOptions?: RequestsNamespace.RequestOptions): Promise<Airtop.RequestStatusResponse>;
|
18
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.AirtopRequests = void 0;
|
13
|
+
const Client_1 = require("../api/resources/requests/client/Client");
|
14
|
+
class AirtopRequests extends Client_1.Requests {
|
15
|
+
constructor(_options) {
|
16
|
+
super(_options);
|
17
|
+
this._options = _options;
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Waits until a request is complete or times out
|
21
|
+
*
|
22
|
+
* @param requestId - The ID of the request to poll.
|
23
|
+
* @param timeoutSeconds - Maximum time to wait in seconds.
|
24
|
+
* @param intervalSeconds - Polling interval in seconds.
|
25
|
+
* @param requestOptions - Request-specific configuration.
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* const result = await client.requests.pollRequestUntilComplete("123e4567-e89b-12d3-a456-426614174000", 300, 2)
|
29
|
+
*/
|
30
|
+
waitForRequestCompletion(requestId, timeoutSeconds = 300, intervalSeconds = 2, requestOptions) {
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
32
|
+
if (timeoutSeconds <= 0 || intervalSeconds <= 0) {
|
33
|
+
throw new Error('Timeout and interval must be positive values in seconds');
|
34
|
+
}
|
35
|
+
const startTime = Date.now();
|
36
|
+
const timeoutMs = timeoutSeconds * 1000;
|
37
|
+
while (Date.now() - startTime < timeoutMs) {
|
38
|
+
const response = yield this.getRequestStatus(requestId, requestOptions);
|
39
|
+
if (response.status === 'completed' || response.status === 'failed') {
|
40
|
+
return response;
|
41
|
+
}
|
42
|
+
yield new Promise((resolve) => setTimeout(resolve, intervalSeconds * 1000));
|
43
|
+
}
|
44
|
+
throw new Error(`Request ${requestId} polling timed out after ${timeoutSeconds} seconds`);
|
45
|
+
});
|
46
|
+
}
|
47
|
+
}
|
48
|
+
exports.AirtopRequests = AirtopRequests;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@airtop/sdk",
|
3
|
-
"version": "0.1.31-
|
3
|
+
"version": "0.1.31-beta1",
|
4
4
|
"private": false,
|
5
5
|
"repository": "https://github.com/airtop-ai/airtop-node-sdk",
|
6
6
|
"main": "./index.js",
|
@@ -67,5 +67,6 @@
|
|
67
67
|
"playwright": ">=1.47.2",
|
68
68
|
"puppeteer": ">=22.14.0",
|
69
69
|
"selenium-webdriver": ">=4.25.0"
|
70
|
-
}
|
70
|
+
},
|
71
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
71
72
|
}
|
@@ -2,6 +2,7 @@ import { AirtopClient as FernClient } from '../Client';
|
|
2
2
|
import { type BatchOperateConfig, type BatchOperationInput, type BatchOperationResponse, type BatchOperationUrl } from '../utils';
|
3
3
|
import { AirtopSessions } from './AirtopSessions';
|
4
4
|
import { AirtopWindows } from './AirtopWindows';
|
5
|
+
import { AirtopRequests } from './AirtopRequests';
|
5
6
|
declare type AugmentedOptions = FernClient.Options & {
|
6
7
|
debug?: boolean;
|
7
8
|
};
|
@@ -11,11 +12,13 @@ export declare class AirtopClient {
|
|
11
12
|
private _client;
|
12
13
|
private _windows;
|
13
14
|
private _sessions;
|
15
|
+
private _requests;
|
14
16
|
constructor(_options: AugmentedOptions);
|
15
17
|
setApiKey(apiKey: string): void;
|
16
18
|
setEnvironment(environment: string): void;
|
17
19
|
get sessions(): AirtopSessions;
|
18
20
|
get windows(): AirtopWindows;
|
21
|
+
get requests(): AirtopRequests;
|
19
22
|
get profiles(): import("../api/resources/profiles/client/Client").Profiles;
|
20
23
|
get extensionConfigurations(): import("../api/resources/extensionConfigurations/client/Client").ExtensionConfigurations;
|
21
24
|
log(message: string): void;
|
package/wrapper/AirtopClient.js
CHANGED
@@ -38,6 +38,7 @@ const core = __importStar(require("../core"));
|
|
38
38
|
const utils_1 = require("../utils");
|
39
39
|
const AirtopSessions_1 = require("./AirtopSessions");
|
40
40
|
const AirtopWindows_1 = require("./AirtopWindows");
|
41
|
+
const AirtopRequests_1 = require("./AirtopRequests");
|
41
42
|
class AirtopClient {
|
42
43
|
constructor(_options) {
|
43
44
|
this._options = _options;
|
@@ -67,6 +68,10 @@ class AirtopClient {
|
|
67
68
|
var _a;
|
68
69
|
return ((_a = this._windows) !== null && _a !== void 0 ? _a : (this._windows = new AirtopWindows_1.AirtopWindows(this._options, this._options.apiKey)));
|
69
70
|
}
|
71
|
+
get requests() {
|
72
|
+
var _a;
|
73
|
+
return ((_a = this._requests) !== null && _a !== void 0 ? _a : (this._requests = new AirtopRequests_1.AirtopRequests(this._options)));
|
74
|
+
}
|
70
75
|
get profiles() {
|
71
76
|
return this._client.profiles;
|
72
77
|
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type * as Airtop from '../api';
|
2
|
+
import { Requests as RequestsClass, type Requests as RequestsNamespace } from '../api/resources/requests/client/Client';
|
3
|
+
export declare class AirtopRequests extends RequestsClass {
|
4
|
+
readonly _options: RequestsNamespace.Options;
|
5
|
+
constructor(_options: RequestsNamespace.Options);
|
6
|
+
/**
|
7
|
+
* Waits until a request is complete or times out
|
8
|
+
*
|
9
|
+
* @param requestId - The ID of the request to poll.
|
10
|
+
* @param timeoutSeconds - Maximum time to wait in seconds.
|
11
|
+
* @param intervalSeconds - Polling interval in seconds.
|
12
|
+
* @param requestOptions - Request-specific configuration.
|
13
|
+
*
|
14
|
+
* @example
|
15
|
+
* const result = await client.requests.pollRequestUntilComplete("123e4567-e89b-12d3-a456-426614174000", 300, 2)
|
16
|
+
*/
|
17
|
+
waitForRequestCompletion(requestId: string, timeoutSeconds?: number, intervalSeconds?: number, requestOptions?: RequestsNamespace.RequestOptions): Promise<Airtop.RequestStatusResponse>;
|
18
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.AirtopRequests = void 0;
|
13
|
+
const Client_1 = require("../api/resources/requests/client/Client");
|
14
|
+
class AirtopRequests extends Client_1.Requests {
|
15
|
+
constructor(_options) {
|
16
|
+
super(_options);
|
17
|
+
this._options = _options;
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Waits until a request is complete or times out
|
21
|
+
*
|
22
|
+
* @param requestId - The ID of the request to poll.
|
23
|
+
* @param timeoutSeconds - Maximum time to wait in seconds.
|
24
|
+
* @param intervalSeconds - Polling interval in seconds.
|
25
|
+
* @param requestOptions - Request-specific configuration.
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* const result = await client.requests.pollRequestUntilComplete("123e4567-e89b-12d3-a456-426614174000", 300, 2)
|
29
|
+
*/
|
30
|
+
waitForRequestCompletion(requestId, timeoutSeconds = 300, intervalSeconds = 2, requestOptions) {
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
32
|
+
if (timeoutSeconds <= 0 || intervalSeconds <= 0) {
|
33
|
+
throw new Error('Timeout and interval must be positive values in seconds');
|
34
|
+
}
|
35
|
+
const startTime = Date.now();
|
36
|
+
const timeoutMs = timeoutSeconds * 1000;
|
37
|
+
while (Date.now() - startTime < timeoutMs) {
|
38
|
+
const response = yield this.getRequestStatus(requestId, requestOptions);
|
39
|
+
if (response.status === 'completed' || response.status === 'failed') {
|
40
|
+
return response;
|
41
|
+
}
|
42
|
+
yield new Promise((resolve) => setTimeout(resolve, intervalSeconds * 1000));
|
43
|
+
}
|
44
|
+
throw new Error(`Request ${requestId} polling timed out after ${timeoutSeconds} seconds`);
|
45
|
+
});
|
46
|
+
}
|
47
|
+
}
|
48
|
+
exports.AirtopRequests = AirtopRequests;
|