apify-client 3.0.0-beta.5 → 3.0.0-beta.50
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/README.md +13 -3
- package/dist/apify_api_error.d.ts +62 -21
- package/dist/apify_api_error.js +96 -23
- package/dist/apify_client.d.ts +125 -10
- package/dist/apify_client.js +133 -48
- package/dist/base/api_client.d.ts +7 -7
- package/dist/base/api_client.js +36 -24
- package/dist/base/resource_client.d.ts +21 -8
- package/dist/base/resource_client.js +54 -26
- package/dist/base/resource_collection_client.d.ts +12 -4
- package/dist/base/resource_collection_client.js +34 -11
- package/dist/body_parser.d.ts +3 -4
- package/dist/body_parser.js +19 -26
- package/dist/bundle.js +27 -22
- package/dist/bundle.js.map +1 -1
- package/dist/generated/api.d.ts +610 -112
- package/dist/generated/schemas.d.ts +726 -703
- package/dist/generated/schemas.js +92 -85
- package/dist/http_clients/axios.d.ts +60 -0
- package/dist/http_clients/axios.js +117 -0
- package/dist/http_clients/base.d.ts +333 -0
- package/dist/http_clients/base.js +563 -0
- package/dist/http_clients/index.d.ts +4 -0
- package/dist/http_clients/index.js +2 -0
- package/dist/http_compressors/base.d.ts +40 -0
- package/dist/http_compressors/base.js +9 -0
- package/dist/http_compressors/brotli.d.ts +33 -0
- package/dist/http_compressors/brotli.js +39 -0
- package/dist/http_compressors/gzip.d.ts +33 -0
- package/dist/http_compressors/gzip.js +39 -0
- package/dist/http_compressors/index.d.ts +6 -0
- package/dist/http_compressors/index.js +2 -0
- package/dist/http_compressors/resolve.d.ts +23 -0
- package/dist/http_compressors/resolve.js +27 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- package/dist/invalid_response_body_error.d.ts +13 -0
- package/dist/invalid_response_body_error.js +17 -0
- package/dist/models.d.ts +19 -22
- package/dist/resource_clients/actor.d.ts +72 -32
- package/dist/resource_clients/actor.js +87 -56
- package/dist/resource_clients/actor_collection.d.ts +9 -5
- package/dist/resource_clients/actor_collection.js +11 -3
- package/dist/resource_clients/actor_env_var.d.ts +10 -3
- package/dist/resource_clients/actor_env_var.js +16 -6
- package/dist/resource_clients/actor_env_var_collection.d.ts +14 -18
- package/dist/resource_clients/actor_env_var_collection.js +17 -11
- package/dist/resource_clients/actor_version.d.ts +18 -3
- package/dist/resource_clients/actor_version.js +19 -9
- package/dist/resource_clients/actor_version_collection.d.ts +16 -17
- package/dist/resource_clients/actor_version_collection.js +19 -11
- package/dist/resource_clients/build.d.ts +18 -6
- package/dist/resource_clients/build.js +34 -15
- package/dist/resource_clients/build_collection.d.ts +3 -1
- package/dist/resource_clients/build_collection.js +4 -1
- package/dist/resource_clients/dataset.d.ts +51 -33
- package/dist/resource_clients/dataset.js +105 -80
- package/dist/resource_clients/dataset_collection.d.ts +6 -2
- package/dist/resource_clients/dataset_collection.js +13 -2
- package/dist/resource_clients/key_value_store.d.ts +58 -16
- package/dist/resource_clients/key_value_store.js +78 -40
- package/dist/resource_clients/key_value_store_collection.d.ts +6 -2
- package/dist/resource_clients/key_value_store_collection.js +13 -2
- package/dist/resource_clients/log.d.ts +11 -19
- package/dist/resource_clients/log.js +64 -46
- package/dist/resource_clients/request_queue.d.ts +56 -26
- package/dist/resource_clients/request_queue.js +176 -103
- package/dist/resource_clients/request_queue_collection.d.ts +6 -2
- package/dist/resource_clients/request_queue_collection.js +9 -3
- package/dist/resource_clients/run.d.ts +108 -18
- package/dist/resource_clients/run.js +183 -43
- package/dist/resource_clients/run_collection.d.ts +3 -1
- package/dist/resource_clients/run_collection.js +4 -1
- package/dist/resource_clients/schedule.d.ts +14 -5
- package/dist/resource_clients/schedule.js +29 -21
- package/dist/resource_clients/schedule_collection.d.ts +6 -2
- package/dist/resource_clients/schedule_collection.js +9 -3
- package/dist/resource_clients/store_collection.d.ts +3 -1
- package/dist/resource_clients/store_collection.js +4 -1
- package/dist/resource_clients/task.d.ts +33 -10
- package/dist/resource_clients/task.js +79 -46
- package/dist/resource_clients/task_collection.d.ts +6 -2
- package/dist/resource_clients/task_collection.js +9 -3
- package/dist/resource_clients/user.d.ts +17 -8
- package/dist/resource_clients/user.js +42 -38
- package/dist/resource_clients/webhook.d.ts +14 -5
- package/dist/resource_clients/webhook.js +30 -22
- package/dist/resource_clients/webhook_collection.d.ts +6 -2
- package/dist/resource_clients/webhook_collection.js +9 -3
- package/dist/resource_clients/webhook_dispatch.d.ts +4 -1
- package/dist/resource_clients/webhook_dispatch.js +7 -2
- package/dist/resource_clients/webhook_dispatch_collection.d.ts +3 -1
- package/dist/resource_clients/webhook_dispatch_collection.js +4 -1
- package/dist/runtime/node.d.ts +6 -0
- package/dist/runtime/node.js +49 -0
- package/dist/runtime/types.d.ts +52 -0
- package/dist/runtime/types.js +1 -0
- package/dist/runtime/web.d.ts +5 -0
- package/dist/runtime/web.js +18 -0
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.js +1 -1
- package/dist/statistics.d.ts +1 -6
- package/dist/statistics.js +2 -2
- package/dist/timeouts.d.ts +84 -0
- package/dist/timeouts.js +37 -0
- package/dist/timezones.d.ts +1 -1
- package/dist/utils.d.ts +81 -52
- package/dist/utils.js +201 -170
- package/dist/wait_for_resources.d.ts +8 -0
- package/dist/wait_for_resources.js +39 -0
- package/package.json +32 -29
- package/dist/http_client.d.ts +0 -88
- package/dist/http_client.js +0 -255
- package/dist/interceptors.d.ts +0 -19
- package/dist/interceptors.js +0 -105
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ResourceClient } from '../base/resource_client.js';
|
|
3
3
|
import * as schemas from '../schemas.js';
|
|
4
|
-
import {
|
|
4
|
+
import { timeoutOptionsSchema } from '../timeouts.js';
|
|
5
|
+
import { anyObjectSchema, parseArgument, parseResponse } from '../utils.js';
|
|
5
6
|
export { ScheduleActions } from '../models.js';
|
|
6
7
|
const scheduleLogSchema = z.array(schemas.ScheduleInvoked());
|
|
7
8
|
/**
|
|
@@ -40,50 +41,57 @@ export class ScheduleClient extends ResourceClient {
|
|
|
40
41
|
/**
|
|
41
42
|
* Retrieves the schedule.
|
|
42
43
|
*
|
|
44
|
+
* @param options - Request options
|
|
45
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
43
46
|
* @returns The schedule object, or `undefined` if it does not exist.
|
|
44
47
|
* @see https://docs.apify.com/api/v2/schedule-get
|
|
45
48
|
*/
|
|
46
|
-
async get() {
|
|
47
|
-
|
|
49
|
+
async get(options = {}) {
|
|
50
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
51
|
+
return this.getResource(schemas.Schedule(), {}, timeoutSecs, signal);
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
54
|
* Updates the schedule with the specified fields.
|
|
51
55
|
*
|
|
52
56
|
* @param newFields - Fields to update.
|
|
57
|
+
* @param options - Request options
|
|
58
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
53
59
|
* @returns The updated schedule object.
|
|
54
60
|
* @see https://docs.apify.com/api/v2/schedule-put
|
|
55
61
|
*/
|
|
56
|
-
async update(newFields) {
|
|
62
|
+
async update(newFields, options = {}) {
|
|
57
63
|
parseArgument(newFields, anyObjectSchema);
|
|
58
|
-
|
|
64
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
65
|
+
return this.updateResource(schemas.Schedule(), newFields, timeoutSecs, signal);
|
|
59
66
|
}
|
|
60
67
|
/**
|
|
61
68
|
* Deletes the schedule.
|
|
62
69
|
*
|
|
70
|
+
* @param options - Request options
|
|
71
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
63
72
|
* @see https://docs.apify.com/api/v2/schedule-delete
|
|
64
73
|
*/
|
|
65
|
-
async delete() {
|
|
66
|
-
|
|
74
|
+
async delete(options = {}) {
|
|
75
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
76
|
+
return this.deleteResource(timeoutSecs, signal);
|
|
67
77
|
}
|
|
68
78
|
/**
|
|
69
79
|
* Retrieves the schedule's log.
|
|
70
80
|
*
|
|
71
|
-
* @
|
|
81
|
+
* @param options - Request options
|
|
82
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'medium'`.
|
|
83
|
+
* @returns The schedule log, one entry per invocation.
|
|
72
84
|
* @see https://docs.apify.com/api/v2/schedule-log-get
|
|
73
85
|
*/
|
|
74
|
-
async getLog() {
|
|
75
|
-
const
|
|
76
|
-
|
|
86
|
+
async getLog(options = {}) {
|
|
87
|
+
const { timeoutSecs = 'medium', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
88
|
+
const response = await this.httpClient.call({
|
|
89
|
+
url: this.buildUrl('log'),
|
|
77
90
|
method: 'GET',
|
|
78
|
-
params: this.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
catch (err) {
|
|
85
|
-
catchNotFoundOrThrow(err);
|
|
86
|
-
}
|
|
87
|
-
return undefined;
|
|
91
|
+
params: this.buildParams(),
|
|
92
|
+
timeoutSecs,
|
|
93
|
+
signal,
|
|
94
|
+
});
|
|
95
|
+
return parseResponse(response, scheduleLogSchema);
|
|
88
96
|
}
|
|
89
97
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ApiClientSubResourceOptions } from '../base/api_client.js';
|
|
2
2
|
import { ResourceCollectionClient } from '../base/resource_collection_client.js';
|
|
3
|
+
import type { TimeoutOptions } from '../timeouts.js';
|
|
3
4
|
import type { PaginatedIterator, PaginationOptions } from '../utils.js';
|
|
4
5
|
import type { Schedule, ScheduleCreateOrUpdateData } from './schedule.js';
|
|
5
6
|
/**
|
|
@@ -48,6 +49,7 @@ export declare class ScheduleCollectionClient extends ResourceCollectionClient {
|
|
|
48
49
|
* ```
|
|
49
50
|
*
|
|
50
51
|
* @param options - Pagination and sorting options.
|
|
52
|
+
* @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
|
|
51
53
|
* @returns A paginated iterator of schedules.
|
|
52
54
|
* @see https://docs.apify.com/api/v2/schedules-get
|
|
53
55
|
*/
|
|
@@ -56,11 +58,13 @@ export declare class ScheduleCollectionClient extends ResourceCollectionClient {
|
|
|
56
58
|
* Creates a new schedule.
|
|
57
59
|
*
|
|
58
60
|
* @param schedule - The schedule data.
|
|
61
|
+
* @param options - Request options
|
|
62
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
59
63
|
* @returns The created schedule object.
|
|
60
64
|
* @see https://docs.apify.com/api/v2/schedules-post
|
|
61
65
|
*/
|
|
62
|
-
create(schedule?: ScheduleCreateOrUpdateData): Promise<Schedule>;
|
|
66
|
+
create(schedule?: ScheduleCreateOrUpdateData, options?: TimeoutOptions): Promise<Schedule>;
|
|
63
67
|
}
|
|
64
|
-
export interface ScheduleCollectionListOptions extends PaginationOptions {
|
|
68
|
+
export interface ScheduleCollectionListOptions extends PaginationOptions, TimeoutOptions {
|
|
65
69
|
desc?: boolean;
|
|
66
70
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ResourceCollectionClient } from '../base/resource_collection_client.js';
|
|
3
3
|
import * as schemas from '../schemas.js';
|
|
4
|
+
import { timeoutOptionsSchema, timeoutOptionsShape } from '../timeouts.js';
|
|
4
5
|
import { anyObjectSchema, paginationOptionsShape, parseArgument } from '../utils.js';
|
|
5
6
|
const listOptionsSchema = z.strictObject({
|
|
6
7
|
...paginationOptionsShape,
|
|
7
8
|
desc: z.boolean().optional(),
|
|
9
|
+
...timeoutOptionsShape,
|
|
8
10
|
});
|
|
9
11
|
const scheduleCreateSchema = anyObjectSchema.optional();
|
|
10
12
|
/**
|
|
@@ -58,22 +60,26 @@ export class ScheduleCollectionClient extends ResourceCollectionClient {
|
|
|
58
60
|
* ```
|
|
59
61
|
*
|
|
60
62
|
* @param options - Pagination and sorting options.
|
|
63
|
+
* @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
|
|
61
64
|
* @returns A paginated iterator of schedules.
|
|
62
65
|
* @see https://docs.apify.com/api/v2/schedules-get
|
|
63
66
|
*/
|
|
64
67
|
list(options = {}) {
|
|
65
68
|
const parsed = parseArgument(options, listOptionsSchema, 'ScheduleCollectionListOptions');
|
|
66
|
-
return this.
|
|
69
|
+
return this.listResourcesPaginated(schemas.ListOfSchedules(), parsed, 'medium');
|
|
67
70
|
}
|
|
68
71
|
/**
|
|
69
72
|
* Creates a new schedule.
|
|
70
73
|
*
|
|
71
74
|
* @param schedule - The schedule data.
|
|
75
|
+
* @param options - Request options
|
|
76
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
72
77
|
* @returns The created schedule object.
|
|
73
78
|
* @see https://docs.apify.com/api/v2/schedules-post
|
|
74
79
|
*/
|
|
75
|
-
async create(schedule) {
|
|
80
|
+
async create(schedule, options = {}) {
|
|
76
81
|
parseArgument(schedule, scheduleCreateSchema);
|
|
77
|
-
|
|
82
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
83
|
+
return this.createResource(schemas.Schedule(), schedule, timeoutSecs, signal);
|
|
78
84
|
}
|
|
79
85
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ApiClientSubResourceOptions } from '../base/api_client.js';
|
|
2
2
|
import { ResourceCollectionClient } from '../base/resource_collection_client.js';
|
|
3
3
|
import type { ActorStoreList } from '../models.js';
|
|
4
|
+
import type { TimeoutOptions } from '../timeouts.js';
|
|
4
5
|
import type { PaginatedIterator, PaginationOptions } from '../utils.js';
|
|
5
6
|
export type { ActorStoreList, PricingInfo } from '../models.js';
|
|
6
7
|
/**
|
|
@@ -46,6 +47,7 @@ export declare class StoreCollectionClient extends ResourceCollectionClient {
|
|
|
46
47
|
* ```
|
|
47
48
|
*
|
|
48
49
|
* @param options - Search and pagination options.
|
|
50
|
+
* @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
|
|
49
51
|
* @returns A paginated iterator of store Actors.
|
|
50
52
|
* @see https://docs.apify.com/api/v2/store-get
|
|
51
53
|
*/
|
|
@@ -54,7 +56,7 @@ export declare class StoreCollectionClient extends ResourceCollectionClient {
|
|
|
54
56
|
/**
|
|
55
57
|
* @since Added in 2.7.2
|
|
56
58
|
*/
|
|
57
|
-
export interface StoreCollectionListOptions extends PaginationOptions {
|
|
59
|
+
export interface StoreCollectionListOptions extends PaginationOptions, TimeoutOptions {
|
|
58
60
|
search?: string;
|
|
59
61
|
sortBy?: string;
|
|
60
62
|
category?: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ResourceCollectionClient } from '../base/resource_collection_client.js';
|
|
3
3
|
import * as schemas from '../schemas.js';
|
|
4
|
+
import { timeoutOptionsShape } from '../timeouts.js';
|
|
4
5
|
import { paginationOptionsShape, parseArgument } from '../utils.js';
|
|
5
6
|
const listOptionsSchema = z.strictObject({
|
|
6
7
|
...paginationOptionsShape,
|
|
@@ -10,6 +11,7 @@ const listOptionsSchema = z.strictObject({
|
|
|
10
11
|
username: z.string().optional(),
|
|
11
12
|
pricingModel: z.string().optional(),
|
|
12
13
|
includeUnrunnableActors: z.boolean().optional(),
|
|
14
|
+
...timeoutOptionsShape,
|
|
13
15
|
});
|
|
14
16
|
/**
|
|
15
17
|
* Client for browsing Actors in the Apify Store.
|
|
@@ -59,11 +61,12 @@ export class StoreCollectionClient extends ResourceCollectionClient {
|
|
|
59
61
|
* ```
|
|
60
62
|
*
|
|
61
63
|
* @param options - Search and pagination options.
|
|
64
|
+
* @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
|
|
62
65
|
* @returns A paginated iterator of store Actors.
|
|
63
66
|
* @see https://docs.apify.com/api/v2/store-get
|
|
64
67
|
*/
|
|
65
68
|
list(options = {}) {
|
|
66
69
|
const parsed = parseArgument(options, listOptionsSchema, 'StoreCollectionListOptions');
|
|
67
|
-
return this.
|
|
70
|
+
return this.listResourcesPaginated(schemas.ListOfStoreActors(), parsed, 'medium');
|
|
68
71
|
}
|
|
69
72
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ApiClientSubResourceOptions } from '../base/api_client.js';
|
|
2
2
|
import { ResourceClient } from '../base/resource_client.js';
|
|
3
3
|
import type { Task, TaskPublicConfig } from '../models.js';
|
|
4
|
+
import type { TimeoutOptions } from '../timeouts.js';
|
|
4
5
|
import type { Dictionary } from '../utils.js';
|
|
5
6
|
import type { ActorLastRunOptions, ActorRun, ActorStartOptions } from './actor.js';
|
|
6
7
|
import { RunClient } from './run.js';
|
|
@@ -35,18 +36,22 @@ export declare class TaskClient extends ResourceClient {
|
|
|
35
36
|
/**
|
|
36
37
|
* Retrieves the Actor task.
|
|
37
38
|
*
|
|
39
|
+
* @param options - Request options
|
|
40
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
38
41
|
* @returns The task object, or `undefined` if it does not exist.
|
|
39
42
|
* @see https://docs.apify.com/api/v2/actor-task-get
|
|
40
43
|
*/
|
|
41
|
-
get(): Promise<Task | undefined>;
|
|
44
|
+
get(options?: TimeoutOptions): Promise<Task | undefined>;
|
|
42
45
|
/**
|
|
43
46
|
* Updates the task with the specified fields.
|
|
44
47
|
*
|
|
45
48
|
* @param newFields - Fields to update.
|
|
49
|
+
* @param options - Request options
|
|
50
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
46
51
|
* @returns The updated task object.
|
|
47
52
|
* @see https://docs.apify.com/api/v2/actor-task-put
|
|
48
53
|
*/
|
|
49
|
-
update(newFields: TaskUpdateData): Promise<Task>;
|
|
54
|
+
update(newFields: TaskUpdateData, options?: TimeoutOptions): Promise<Task>;
|
|
50
55
|
/**
|
|
51
56
|
* Publishes the task on its public landing page, by setting `isPublic` through
|
|
52
57
|
* {@apilink TaskClient.update}.
|
|
@@ -55,11 +60,13 @@ export declare class TaskClient extends ResourceClient {
|
|
|
55
60
|
* (`publicConfig`) set up first. Requires write permission to both the task and its Actor.
|
|
56
61
|
* Publishing an already published task does nothing.
|
|
57
62
|
*
|
|
63
|
+
* @param options - Request options
|
|
64
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
58
65
|
* @returns The task object.
|
|
59
66
|
* @see https://docs.apify.com/api/v2/actor-task-put
|
|
60
67
|
* @since Added in 2.25.0
|
|
61
68
|
*/
|
|
62
|
-
publish(): Promise<Task>;
|
|
69
|
+
publish(options?: TimeoutOptions): Promise<Task>;
|
|
63
70
|
/**
|
|
64
71
|
* Unpublishes the task from its public landing page, by setting `isPublic` through
|
|
65
72
|
* {@apilink TaskClient.update}.
|
|
@@ -68,17 +75,21 @@ export declare class TaskClient extends ResourceClient {
|
|
|
68
75
|
* published again without re-entering it. Requires write permission to both the task and its
|
|
69
76
|
* Actor. Unpublishing a task that is not published does nothing.
|
|
70
77
|
*
|
|
78
|
+
* @param options - Request options
|
|
79
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
71
80
|
* @returns The task object.
|
|
72
81
|
* @see https://docs.apify.com/api/v2/actor-task-put
|
|
73
82
|
* @since Added in 2.25.0
|
|
74
83
|
*/
|
|
75
|
-
unpublish(): Promise<Task>;
|
|
84
|
+
unpublish(options?: TimeoutOptions): Promise<Task>;
|
|
76
85
|
/**
|
|
77
86
|
* Deletes the Task.
|
|
78
87
|
*
|
|
88
|
+
* @param options - Request options
|
|
89
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
79
90
|
* @see https://docs.apify.com/api/v2/actor-task-delete
|
|
80
91
|
*/
|
|
81
|
-
delete(): Promise<void>;
|
|
92
|
+
delete(options?: TimeoutOptions): Promise<void>;
|
|
82
93
|
/**
|
|
83
94
|
* Starts an Actor task and immediately returns the Run object.
|
|
84
95
|
*
|
|
@@ -86,12 +97,16 @@ export declare class TaskClient extends ResourceClient {
|
|
|
86
97
|
* @param options - Run options.
|
|
87
98
|
* @param options.build - Tag or number of the Actor build to run (e.g., `'beta'` or `'1.2.345'`).
|
|
88
99
|
* @param options.memory - Memory in megabytes allocated for the run.
|
|
89
|
-
* @param options.
|
|
100
|
+
* @param options.runTimeoutSecs - Timeout for the run in seconds. Zero means no timeout.
|
|
90
101
|
* @param options.waitForFinish - Maximum time to wait (in seconds, max 60s) for the run to finish before returning.
|
|
91
102
|
* @param options.webhooks - Webhooks to trigger for specific Actor run events.
|
|
92
103
|
* @param options.maxItems - Maximum number of dataset items (for pay-per-result Actors).
|
|
93
104
|
* @param options.maxTotalChargeUsd - Maximum cost in USD (for pay-per-event Actors).
|
|
94
105
|
* @param options.restartOnError - Whether to restart the run on error.
|
|
106
|
+
* @param options.waitForResources - Retry the start while the account lacks the memory or a concurrent-run slot for
|
|
107
|
+
* the run. `true` retries until the run starts, a number stops retrying after that many seconds.
|
|
108
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'medium'`, extended to cover `waitForFinish`
|
|
109
|
+
* when the API is asked to hold the response.
|
|
95
110
|
* @returns The Actor Run object.
|
|
96
111
|
* @see https://docs.apify.com/api/v2/actor-task-runs-post
|
|
97
112
|
*/
|
|
@@ -104,12 +119,16 @@ export declare class TaskClient extends ResourceClient {
|
|
|
104
119
|
* @param options - Run and wait options.
|
|
105
120
|
* @param options.build - Tag or number of the Actor build to run.
|
|
106
121
|
* @param options.memory - Memory in megabytes allocated for the run.
|
|
107
|
-
* @param options.
|
|
122
|
+
* @param options.runTimeoutSecs - Timeout for the run in seconds.
|
|
108
123
|
* @param options.waitSecs - Maximum time to wait for the run to finish, in seconds. If omitted, waits indefinitely.
|
|
109
124
|
* @param options.webhooks - Webhooks to trigger for specific Actor run events.
|
|
110
125
|
* @param options.maxItems - Maximum number of dataset items (for pay-per-result Actors).
|
|
111
126
|
* @param options.maxTotalChargeUsd - Maximum cost in USD (for pay-per-event Actors).
|
|
112
127
|
* @param options.restartOnError - Whether to restart the run on error.
|
|
128
|
+
* @param options.waitForResources - Retry the start while the account lacks the memory or a concurrent-run slot for
|
|
129
|
+
* the run. `true` retries until the run starts, a number stops retrying after that many seconds. The time spent
|
|
130
|
+
* retrying doesn't count toward `waitSecs`.
|
|
131
|
+
* @param options.timeoutSecs - Timeout for each API request, the start and every poll alike. Default is `'noTimeout'`.
|
|
113
132
|
* @returns The Actor run object.
|
|
114
133
|
* @see https://docs.apify.com/api/v2/actor-task-runs-post
|
|
115
134
|
*/
|
|
@@ -117,18 +136,22 @@ export declare class TaskClient extends ResourceClient {
|
|
|
117
136
|
/**
|
|
118
137
|
* Retrieves the Actor task's input object.
|
|
119
138
|
*
|
|
120
|
-
* @
|
|
139
|
+
* @param options - Request options
|
|
140
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
141
|
+
* @returns The Task's input.
|
|
121
142
|
* @see https://docs.apify.com/api/v2/actor-task-input-get
|
|
122
143
|
*/
|
|
123
|
-
getInput(): Promise<Dictionary | Dictionary[]
|
|
144
|
+
getInput(options?: TimeoutOptions): Promise<Dictionary | Dictionary[]>;
|
|
124
145
|
/**
|
|
125
146
|
* Updates the Actor task's input object.
|
|
126
147
|
*
|
|
127
148
|
* @param newFields - New input data for the task.
|
|
149
|
+
* @param options - Request options
|
|
150
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
128
151
|
* @returns The updated task input.
|
|
129
152
|
* @see https://docs.apify.com/api/v2/actor-task-input-put
|
|
130
153
|
*/
|
|
131
|
-
updateInput(newFields: Dictionary | Dictionary[]): Promise<Dictionary | Dictionary[]>;
|
|
154
|
+
updateInput(newFields: Dictionary | Dictionary[], options?: TimeoutOptions): Promise<Dictionary | Dictionary[]>;
|
|
132
155
|
/**
|
|
133
156
|
* Returns a client for the last run of this task.
|
|
134
157
|
*
|
|
@@ -2,7 +2,9 @@ import { z } from 'zod';
|
|
|
2
2
|
import { ACT_JOB_STATUSES, META_ORIGINS } from '@apify/consts';
|
|
3
3
|
import { ResourceClient } from '../base/resource_client.js';
|
|
4
4
|
import * as schemas from '../schemas.js';
|
|
5
|
-
import {
|
|
5
|
+
import { timeoutOptionsSchema, timeoutOptionsShape } from '../timeouts.js';
|
|
6
|
+
import { anyObjectSchema, cast, isStream, parseArgument, parseResponse, stringifyWebhooksToBase64 } from '../utils.js';
|
|
7
|
+
import { startWaitingForResources } from '../wait_for_resources.js';
|
|
6
8
|
import { RunClient } from './run.js';
|
|
7
9
|
import { RunCollectionClient } from './run_collection.js';
|
|
8
10
|
import { WebhookCollectionClient } from './webhook_collection.js';
|
|
@@ -10,22 +12,26 @@ const inputSchema = anyObjectSchema.optional();
|
|
|
10
12
|
const startOptionsSchema = z.strictObject({
|
|
11
13
|
build: z.string().optional(),
|
|
12
14
|
memory: z.number().optional(),
|
|
13
|
-
|
|
15
|
+
runTimeoutSecs: z.number().min(0).optional(),
|
|
14
16
|
waitForFinish: z.number().optional(),
|
|
15
17
|
webhooks: z.array(anyObjectSchema).optional(),
|
|
16
18
|
maxItems: z.number().min(0).optional(),
|
|
17
19
|
maxTotalChargeUsd: z.number().min(0).optional(),
|
|
18
20
|
restartOnError: z.boolean().optional(),
|
|
21
|
+
waitForResources: z.union([z.boolean(), z.number().min(0)]).optional(),
|
|
22
|
+
...timeoutOptionsShape,
|
|
19
23
|
});
|
|
20
24
|
const callOptionsSchema = z.strictObject({
|
|
21
25
|
build: z.string().optional(),
|
|
22
26
|
memory: z.number().optional(),
|
|
23
|
-
|
|
27
|
+
runTimeoutSecs: z.number().min(0).optional(),
|
|
24
28
|
waitSecs: z.number().min(0).optional(),
|
|
25
29
|
webhooks: z.array(anyObjectSchema).optional(),
|
|
26
30
|
maxItems: z.number().min(0).optional(),
|
|
27
31
|
maxTotalChargeUsd: z.number().min(0).optional(),
|
|
28
32
|
restartOnError: z.boolean().optional(),
|
|
33
|
+
waitForResources: z.union([z.boolean(), z.number().min(0)]).optional(),
|
|
34
|
+
...timeoutOptionsShape,
|
|
29
35
|
});
|
|
30
36
|
const lastRunOptionsSchema = z.strictObject({
|
|
31
37
|
status: z.enum(ACT_JOB_STATUSES).optional(),
|
|
@@ -64,22 +70,28 @@ export class TaskClient extends ResourceClient {
|
|
|
64
70
|
/**
|
|
65
71
|
* Retrieves the Actor task.
|
|
66
72
|
*
|
|
73
|
+
* @param options - Request options
|
|
74
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
67
75
|
* @returns The task object, or `undefined` if it does not exist.
|
|
68
76
|
* @see https://docs.apify.com/api/v2/actor-task-get
|
|
69
77
|
*/
|
|
70
|
-
async get() {
|
|
71
|
-
|
|
78
|
+
async get(options = {}) {
|
|
79
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
80
|
+
return this.getResource(schemas.Task(), {}, timeoutSecs, signal);
|
|
72
81
|
}
|
|
73
82
|
/**
|
|
74
83
|
* Updates the task with the specified fields.
|
|
75
84
|
*
|
|
76
85
|
* @param newFields - Fields to update.
|
|
86
|
+
* @param options - Request options
|
|
87
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
77
88
|
* @returns The updated task object.
|
|
78
89
|
* @see https://docs.apify.com/api/v2/actor-task-put
|
|
79
90
|
*/
|
|
80
|
-
async update(newFields) {
|
|
91
|
+
async update(newFields, options = {}) {
|
|
81
92
|
parseArgument(newFields, anyObjectSchema);
|
|
82
|
-
|
|
93
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
94
|
+
return this.updateResource(schemas.Task(), newFields, timeoutSecs, signal);
|
|
83
95
|
}
|
|
84
96
|
/**
|
|
85
97
|
* Publishes the task on its public landing page, by setting `isPublic` through
|
|
@@ -89,12 +101,14 @@ export class TaskClient extends ResourceClient {
|
|
|
89
101
|
* (`publicConfig`) set up first. Requires write permission to both the task and its Actor.
|
|
90
102
|
* Publishing an already published task does nothing.
|
|
91
103
|
*
|
|
104
|
+
* @param options - Request options
|
|
105
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
92
106
|
* @returns The task object.
|
|
93
107
|
* @see https://docs.apify.com/api/v2/actor-task-put
|
|
94
108
|
* @since Added in 2.25.0
|
|
95
109
|
*/
|
|
96
|
-
async publish() {
|
|
97
|
-
return this.update({ isPublic: true });
|
|
110
|
+
async publish(options = {}) {
|
|
111
|
+
return this.update({ isPublic: true }, options);
|
|
98
112
|
}
|
|
99
113
|
/**
|
|
100
114
|
* Unpublishes the task from its public landing page, by setting `isPublic` through
|
|
@@ -104,20 +118,25 @@ export class TaskClient extends ResourceClient {
|
|
|
104
118
|
* published again without re-entering it. Requires write permission to both the task and its
|
|
105
119
|
* Actor. Unpublishing a task that is not published does nothing.
|
|
106
120
|
*
|
|
121
|
+
* @param options - Request options
|
|
122
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
107
123
|
* @returns The task object.
|
|
108
124
|
* @see https://docs.apify.com/api/v2/actor-task-put
|
|
109
125
|
* @since Added in 2.25.0
|
|
110
126
|
*/
|
|
111
|
-
async unpublish() {
|
|
112
|
-
return this.update({ isPublic: false });
|
|
127
|
+
async unpublish(options = {}) {
|
|
128
|
+
return this.update({ isPublic: false }, options);
|
|
113
129
|
}
|
|
114
130
|
/**
|
|
115
131
|
* Deletes the Task.
|
|
116
132
|
*
|
|
133
|
+
* @param options - Request options
|
|
134
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
117
135
|
* @see https://docs.apify.com/api/v2/actor-task-delete
|
|
118
136
|
*/
|
|
119
|
-
async delete() {
|
|
120
|
-
|
|
137
|
+
async delete(options = {}) {
|
|
138
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
139
|
+
return this.deleteResource(timeoutSecs, signal);
|
|
121
140
|
}
|
|
122
141
|
/**
|
|
123
142
|
* Starts an Actor task and immediately returns the Run object.
|
|
@@ -126,22 +145,27 @@ export class TaskClient extends ResourceClient {
|
|
|
126
145
|
* @param options - Run options.
|
|
127
146
|
* @param options.build - Tag or number of the Actor build to run (e.g., `'beta'` or `'1.2.345'`).
|
|
128
147
|
* @param options.memory - Memory in megabytes allocated for the run.
|
|
129
|
-
* @param options.
|
|
148
|
+
* @param options.runTimeoutSecs - Timeout for the run in seconds. Zero means no timeout.
|
|
130
149
|
* @param options.waitForFinish - Maximum time to wait (in seconds, max 60s) for the run to finish before returning.
|
|
131
150
|
* @param options.webhooks - Webhooks to trigger for specific Actor run events.
|
|
132
151
|
* @param options.maxItems - Maximum number of dataset items (for pay-per-result Actors).
|
|
133
152
|
* @param options.maxTotalChargeUsd - Maximum cost in USD (for pay-per-event Actors).
|
|
134
153
|
* @param options.restartOnError - Whether to restart the run on error.
|
|
154
|
+
* @param options.waitForResources - Retry the start while the account lacks the memory or a concurrent-run slot for
|
|
155
|
+
* the run. `true` retries until the run starts, a number stops retrying after that many seconds.
|
|
156
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'medium'`, extended to cover `waitForFinish`
|
|
157
|
+
* when the API is asked to hold the response.
|
|
135
158
|
* @returns The Actor Run object.
|
|
136
159
|
* @see https://docs.apify.com/api/v2/actor-task-runs-post
|
|
137
160
|
*/
|
|
138
161
|
async start(input, options = {}) {
|
|
139
162
|
parseArgument(input, inputSchema);
|
|
140
163
|
const parsed = parseArgument(options, startOptionsSchema, 'TaskStartOptions');
|
|
141
|
-
const { waitForFinish,
|
|
164
|
+
const { waitForFinish, runTimeoutSecs, memory, build, maxItems, maxTotalChargeUsd, restartOnError, waitForResources, timeoutSecs, signal, } = parsed;
|
|
165
|
+
// The API's `timeout` parameter bounds the run, not the request.
|
|
142
166
|
const params = {
|
|
143
167
|
waitForFinish,
|
|
144
|
-
timeout,
|
|
168
|
+
timeout: runTimeoutSecs,
|
|
145
169
|
memory,
|
|
146
170
|
build,
|
|
147
171
|
webhooks: stringifyWebhooksToBase64(parsed.webhooks),
|
|
@@ -150,18 +174,20 @@ export class TaskClient extends ResourceClient {
|
|
|
150
174
|
restartOnError,
|
|
151
175
|
};
|
|
152
176
|
const request = {
|
|
153
|
-
url: this.
|
|
177
|
+
url: this.buildUrl('runs'),
|
|
154
178
|
method: 'POST',
|
|
155
179
|
data: input,
|
|
156
|
-
params: this.
|
|
157
|
-
//
|
|
158
|
-
// to stringify functions to JSON, instead of omitting them.
|
|
180
|
+
params: this.buildParams(params),
|
|
181
|
+
// Actor input may carry page functions, which plain JSON serialization would drop.
|
|
159
182
|
stringifyFunctions: true,
|
|
160
183
|
headers: {
|
|
161
184
|
'Content-Type': 'application/json',
|
|
162
185
|
},
|
|
186
|
+
timeoutSecs: this.timeoutForWaitForFinish(timeoutSecs, 'medium', waitForFinish),
|
|
187
|
+
signal,
|
|
163
188
|
};
|
|
164
|
-
|
|
189
|
+
// A `Readable` input is consumed by the first attempt, so a retry would start the run with an empty input.
|
|
190
|
+
const response = await startWaitingForResources(async () => this.httpClient.call(request), isStream(input) ? false : waitForResources, this.httpClient.logger, signal);
|
|
165
191
|
return parseResponse(response, schemas.Run());
|
|
166
192
|
}
|
|
167
193
|
/**
|
|
@@ -172,59 +198,66 @@ export class TaskClient extends ResourceClient {
|
|
|
172
198
|
* @param options - Run and wait options.
|
|
173
199
|
* @param options.build - Tag or number of the Actor build to run.
|
|
174
200
|
* @param options.memory - Memory in megabytes allocated for the run.
|
|
175
|
-
* @param options.
|
|
201
|
+
* @param options.runTimeoutSecs - Timeout for the run in seconds.
|
|
176
202
|
* @param options.waitSecs - Maximum time to wait for the run to finish, in seconds. If omitted, waits indefinitely.
|
|
177
203
|
* @param options.webhooks - Webhooks to trigger for specific Actor run events.
|
|
178
204
|
* @param options.maxItems - Maximum number of dataset items (for pay-per-result Actors).
|
|
179
205
|
* @param options.maxTotalChargeUsd - Maximum cost in USD (for pay-per-event Actors).
|
|
180
206
|
* @param options.restartOnError - Whether to restart the run on error.
|
|
207
|
+
* @param options.waitForResources - Retry the start while the account lacks the memory or a concurrent-run slot for
|
|
208
|
+
* the run. `true` retries until the run starts, a number stops retrying after that many seconds. The time spent
|
|
209
|
+
* retrying doesn't count toward `waitSecs`.
|
|
210
|
+
* @param options.timeoutSecs - Timeout for each API request, the start and every poll alike. Default is `'noTimeout'`.
|
|
181
211
|
* @returns The Actor run object.
|
|
182
212
|
* @see https://docs.apify.com/api/v2/actor-task-runs-post
|
|
183
213
|
*/
|
|
184
214
|
async call(input, options = {}) {
|
|
185
215
|
parseArgument(input, inputSchema);
|
|
186
216
|
const parsed = parseArgument(options, callOptionsSchema, 'TaskCallOptions');
|
|
187
|
-
const { waitSecs, ...startOptions } = parsed;
|
|
188
|
-
const { id } = await this.start(input, startOptions);
|
|
217
|
+
const { waitSecs, timeoutSecs = 'noTimeout', signal, ...startOptions } = parsed;
|
|
218
|
+
const { id } = await this.start(input, { ...startOptions, timeoutSecs, signal });
|
|
189
219
|
// Calling root client because we need access to top level API.
|
|
190
220
|
// Creating a new instance of RunClient here would only allow
|
|
191
221
|
// setting it up as a nested route under task API.
|
|
192
|
-
return this.apifyClient.run(id).waitForFinish({ waitSecs });
|
|
222
|
+
return this.apifyClient.run(id).waitForFinish({ waitSecs, timeoutSecs, signal });
|
|
193
223
|
}
|
|
194
224
|
/**
|
|
195
225
|
* Retrieves the Actor task's input object.
|
|
196
226
|
*
|
|
197
|
-
* @
|
|
227
|
+
* @param options - Request options
|
|
228
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
229
|
+
* @returns The Task's input.
|
|
198
230
|
* @see https://docs.apify.com/api/v2/actor-task-input-get
|
|
199
231
|
*/
|
|
200
|
-
async getInput() {
|
|
201
|
-
const
|
|
202
|
-
|
|
232
|
+
async getInput(options = {}) {
|
|
233
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
234
|
+
const response = await this.httpClient.call({
|
|
235
|
+
url: this.buildUrl('input'),
|
|
203
236
|
method: 'GET',
|
|
204
|
-
params: this.
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
catch (err) {
|
|
211
|
-
catchNotFoundOrThrow(err);
|
|
212
|
-
}
|
|
213
|
-
return undefined;
|
|
237
|
+
params: this.buildParams(),
|
|
238
|
+
timeoutSecs,
|
|
239
|
+
signal,
|
|
240
|
+
});
|
|
241
|
+
return cast(response.data);
|
|
214
242
|
}
|
|
215
243
|
/**
|
|
216
244
|
* Updates the Actor task's input object.
|
|
217
245
|
*
|
|
218
246
|
* @param newFields - New input data for the task.
|
|
247
|
+
* @param options - Request options
|
|
248
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
219
249
|
* @returns The updated task input.
|
|
220
250
|
* @see https://docs.apify.com/api/v2/actor-task-input-put
|
|
221
251
|
*/
|
|
222
|
-
async updateInput(newFields) {
|
|
252
|
+
async updateInput(newFields, options = {}) {
|
|
253
|
+
const { timeoutSecs = 'short', signal } = parseArgument(options, timeoutOptionsSchema, 'TimeoutOptions');
|
|
223
254
|
const response = await this.httpClient.call({
|
|
224
|
-
url: this.
|
|
255
|
+
url: this.buildUrl('input'),
|
|
225
256
|
method: 'PUT',
|
|
226
|
-
params: this.
|
|
257
|
+
params: this.buildParams(),
|
|
227
258
|
data: newFields,
|
|
259
|
+
timeoutSecs,
|
|
260
|
+
signal,
|
|
228
261
|
});
|
|
229
262
|
return cast(response.data);
|
|
230
263
|
}
|
|
@@ -239,9 +272,9 @@ export class TaskClient extends ResourceClient {
|
|
|
239
272
|
*/
|
|
240
273
|
lastRun(options = {}) {
|
|
241
274
|
const parsed = parseArgument(options, lastRunOptionsSchema, 'TaskLastRunOptions');
|
|
242
|
-
return new RunClient(this.
|
|
275
|
+
return new RunClient(this.subResourceOptions({
|
|
243
276
|
id: 'last',
|
|
244
|
-
params: this.
|
|
277
|
+
params: this.buildParams(parsed),
|
|
245
278
|
resourcePath: 'runs',
|
|
246
279
|
}));
|
|
247
280
|
}
|
|
@@ -252,7 +285,7 @@ export class TaskClient extends ResourceClient {
|
|
|
252
285
|
* @see https://docs.apify.com/api/v2/actor-task-runs-get
|
|
253
286
|
*/
|
|
254
287
|
runs() {
|
|
255
|
-
return new RunCollectionClient(this.
|
|
288
|
+
return new RunCollectionClient(this.subResourceOptions({
|
|
256
289
|
resourcePath: 'runs',
|
|
257
290
|
}));
|
|
258
291
|
}
|
|
@@ -263,6 +296,6 @@ export class TaskClient extends ResourceClient {
|
|
|
263
296
|
* @see https://docs.apify.com/api/v2/actor-task-webhooks-get
|
|
264
297
|
*/
|
|
265
298
|
webhooks() {
|
|
266
|
-
return new WebhookCollectionClient(this.
|
|
299
|
+
return new WebhookCollectionClient(this.subResourceOptions());
|
|
267
300
|
}
|
|
268
301
|
}
|