apify-client 3.0.0-beta.2 → 3.0.0-beta.20
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 +3 -1
- package/dist/apify_api_error.d.ts +60 -19
- package/dist/apify_api_error.js +88 -21
- package/dist/apify_client.d.ts +22 -3
- package/dist/apify_client.js +35 -29
- package/dist/base/api_client.d.ts +6 -6
- package/dist/base/api_client.js +24 -16
- package/dist/base/resource_client.d.ts +23 -9
- package/dist/base/resource_client.js +49 -25
- package/dist/base/resource_collection_client.d.ts +7 -4
- package/dist/base/resource_collection_client.js +21 -15
- package/dist/bundle.js +38 -48
- package/dist/bundle.js.map +1 -1
- package/dist/generated/api.d.ts +287 -214
- package/dist/generated/schemas.d.ts +6699 -0
- package/dist/generated/schemas.js +1521 -0
- package/dist/http_client.d.ts +18 -51
- package/dist/http_client.js +79 -42
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -1
- package/dist/interceptors.js +22 -4
- package/dist/lazy_schema.d.ts +8 -0
- package/dist/lazy_schema.js +11 -0
- package/dist/models.d.ts +32 -52
- package/dist/resource_clients/actor.d.ts +46 -31
- package/dist/resource_clients/actor.js +71 -53
- package/dist/resource_clients/actor_collection.d.ts +9 -5
- package/dist/resource_clients/actor_collection.js +12 -3
- package/dist/resource_clients/actor_env_var.d.ts +10 -3
- package/dist/resource_clients/actor_env_var.js +17 -6
- package/dist/resource_clients/actor_env_var_collection.d.ts +14 -18
- package/dist/resource_clients/actor_env_var_collection.js +18 -11
- package/dist/resource_clients/actor_version.d.ts +18 -3
- package/dist/resource_clients/actor_version.js +20 -9
- package/dist/resource_clients/actor_version_collection.d.ts +16 -17
- package/dist/resource_clients/actor_version_collection.js +20 -11
- package/dist/resource_clients/build.d.ts +18 -6
- package/dist/resource_clients/build.js +35 -17
- package/dist/resource_clients/build_collection.d.ts +3 -1
- package/dist/resource_clients/build_collection.js +5 -1
- package/dist/resource_clients/dataset.d.ts +23 -9
- package/dist/resource_clients/dataset.js +70 -48
- 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 +48 -15
- package/dist/resource_clients/key_value_store.js +69 -39
- 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 +9 -19
- package/dist/resource_clients/log.js +55 -44
- package/dist/resource_clients/request_queue.d.ts +56 -26
- package/dist/resource_clients/request_queue.js +178 -113
- package/dist/resource_clients/request_queue_collection.d.ts +6 -2
- package/dist/resource_clients/request_queue_collection.js +10 -3
- package/dist/resource_clients/run.d.ts +51 -17
- package/dist/resource_clients/run.js +83 -43
- package/dist/resource_clients/run_collection.d.ts +3 -1
- package/dist/resource_clients/run_collection.js +5 -1
- package/dist/resource_clients/schedule.d.ts +16 -7
- package/dist/resource_clients/schedule.js +31 -21
- package/dist/resource_clients/schedule_collection.d.ts +6 -2
- package/dist/resource_clients/schedule_collection.js +10 -3
- package/dist/resource_clients/store_collection.d.ts +3 -1
- package/dist/resource_clients/store_collection.js +5 -1
- package/dist/resource_clients/task.d.ts +28 -10
- package/dist/resource_clients/task.js +67 -44
- package/dist/resource_clients/task_collection.d.ts +6 -2
- package/dist/resource_clients/task_collection.js +10 -3
- package/dist/resource_clients/user.d.ts +17 -8
- package/dist/resource_clients/user.js +40 -39
- 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 +10 -3
- package/dist/resource_clients/webhook_dispatch.d.ts +4 -1
- package/dist/resource_clients/webhook_dispatch.js +8 -2
- package/dist/resource_clients/webhook_dispatch_collection.d.ts +3 -1
- package/dist/resource_clients/webhook_dispatch_collection.js +5 -1
- package/dist/response_validation_error.d.ts +26 -0
- package/dist/response_validation_error.js +37 -0
- package/dist/schemas.d.ts +15 -0
- package/dist/schemas.js +15 -0
- package/dist/statistics.d.ts +1 -6
- package/dist/statistics.js +2 -2
- package/dist/timeouts.d.ts +72 -0
- package/dist/timeouts.js +31 -0
- package/dist/utils.d.ts +57 -41
- package/dist/utils.js +155 -121
- package/package.json +36 -35
- package/dist/argument_validation_error.d.ts +0 -17
- package/dist/argument_validation_error.js +0 -153
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import c from 'ansi-colors';
|
|
2
|
+
import { z } from 'zod';
|
|
2
3
|
import log, { Logger, LogLevel } from '@apify/log';
|
|
3
4
|
import { ResourceClient } from '../base/resource_client.js';
|
|
4
|
-
import {
|
|
5
|
+
import { timeoutOptionsShape } from '../timeouts.js';
|
|
6
|
+
import { cast, catchNotFoundForResourceOrThrow, parseArgument } from '../utils.js';
|
|
7
|
+
const logOptionsSchema = z.strictObject({ raw: z.boolean().optional(), ...timeoutOptionsShape });
|
|
5
8
|
/**
|
|
6
9
|
* Client for accessing Actor run or build logs.
|
|
7
10
|
*
|
|
@@ -39,21 +42,25 @@ export class LogClient extends ResourceClient {
|
|
|
39
42
|
*
|
|
40
43
|
* @param options - Log retrieval options.
|
|
41
44
|
* @param options.raw - If `true`, returns raw log content without any processing. Default is `false`.
|
|
42
|
-
* @
|
|
45
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
|
|
46
|
+
* @returns The log content as a string, or `undefined` if it does not exist. A chained client such as
|
|
47
|
+
* `run.log()` throws an `ApifyApiError` on a 404, since the run itself may be what is missing.
|
|
43
48
|
* @see https://docs.apify.com/api/v2/log-get
|
|
44
49
|
*/
|
|
45
50
|
async get(options = {}) {
|
|
51
|
+
const { timeoutSecs = 'long', ...params } = parseArgument(options, logOptionsSchema, 'LogOptions');
|
|
46
52
|
const requestOpts = {
|
|
47
|
-
url: this.
|
|
53
|
+
url: this.buildUrl(),
|
|
48
54
|
method: 'GET',
|
|
49
|
-
params: this.
|
|
55
|
+
params: this.buildParams(params),
|
|
56
|
+
timeoutSecs,
|
|
50
57
|
};
|
|
51
58
|
try {
|
|
52
59
|
const response = await this.httpClient.call(requestOpts);
|
|
53
60
|
return cast(response.data);
|
|
54
61
|
}
|
|
55
62
|
catch (err) {
|
|
56
|
-
|
|
63
|
+
catchNotFoundForResourceOrThrow(err, this.id);
|
|
57
64
|
}
|
|
58
65
|
return undefined;
|
|
59
66
|
}
|
|
@@ -62,26 +69,30 @@ export class LogClient extends ResourceClient {
|
|
|
62
69
|
*
|
|
63
70
|
* @param options - Log retrieval options.
|
|
64
71
|
* @param options.raw - If `true`, returns raw log content without any processing. Default is `false`.
|
|
65
|
-
* @
|
|
72
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
|
|
73
|
+
* @returns The log content as a Readable stream, or `undefined` if it does not exist. A chained client such as
|
|
74
|
+
* `run.log()` throws an `ApifyApiError` on a 404, since the run itself may be what is missing.
|
|
66
75
|
* @see https://docs.apify.com/api/v2/log-get
|
|
67
76
|
*/
|
|
68
77
|
async stream(options = {}) {
|
|
78
|
+
const { timeoutSecs = 'long', raw } = parseArgument(options, logOptionsSchema, 'LogOptions');
|
|
69
79
|
const params = {
|
|
70
80
|
stream: true,
|
|
71
|
-
raw
|
|
81
|
+
raw,
|
|
72
82
|
};
|
|
73
83
|
const requestOpts = {
|
|
74
|
-
url: this.
|
|
84
|
+
url: this.buildUrl(),
|
|
75
85
|
method: 'GET',
|
|
76
|
-
params: this.
|
|
86
|
+
params: this.buildParams(params),
|
|
77
87
|
responseType: 'stream',
|
|
88
|
+
timeoutSecs,
|
|
78
89
|
};
|
|
79
90
|
try {
|
|
80
91
|
const response = await this.httpClient.call(requestOpts);
|
|
81
92
|
return cast(response.data);
|
|
82
93
|
}
|
|
83
94
|
catch (err) {
|
|
84
|
-
|
|
95
|
+
catchNotFoundForResourceOrThrow(err, this.id);
|
|
85
96
|
}
|
|
86
97
|
return undefined;
|
|
87
98
|
}
|
|
@@ -119,39 +130,39 @@ export class LoggerActorRedirect extends Logger {
|
|
|
119
130
|
* @since Added in 2.20.0
|
|
120
131
|
*/
|
|
121
132
|
export class StreamedLog {
|
|
122
|
-
destinationLog;
|
|
123
|
-
streamBuffer = [];
|
|
124
|
-
splitMarker = /(?:\n|^)(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)/g;
|
|
125
|
-
relevancyTimeLimit;
|
|
126
|
-
logClient;
|
|
127
|
-
streamingTask = null;
|
|
128
|
-
stopLogging = false;
|
|
133
|
+
#destinationLog;
|
|
134
|
+
#streamBuffer = [];
|
|
135
|
+
#splitMarker = /(?:\n|^)(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)/g;
|
|
136
|
+
#relevancyTimeLimit;
|
|
137
|
+
#logClient;
|
|
138
|
+
#streamingTask = null;
|
|
139
|
+
#stopLogging = false;
|
|
129
140
|
constructor(options) {
|
|
130
141
|
const { toLog, logClient, fromStart = true } = options;
|
|
131
|
-
this
|
|
132
|
-
this
|
|
133
|
-
this
|
|
142
|
+
this.#destinationLog = toLog;
|
|
143
|
+
this.#logClient = logClient;
|
|
144
|
+
this.#relevancyTimeLimit = fromStart ? null : new Date();
|
|
134
145
|
}
|
|
135
146
|
/**
|
|
136
147
|
* Start log redirection.
|
|
137
148
|
*/
|
|
138
149
|
start() {
|
|
139
|
-
if (this
|
|
150
|
+
if (this.#streamingTask) {
|
|
140
151
|
throw new Error('Streaming task already active');
|
|
141
152
|
}
|
|
142
|
-
this
|
|
143
|
-
this
|
|
153
|
+
this.#stopLogging = false;
|
|
154
|
+
this.#streamingTask = this.#streamLog();
|
|
144
155
|
}
|
|
145
156
|
/**
|
|
146
157
|
* Stop log redirection.
|
|
147
158
|
*/
|
|
148
159
|
async stop() {
|
|
149
|
-
if (!this
|
|
160
|
+
if (!this.#streamingTask) {
|
|
150
161
|
throw new Error('Streaming task is not active');
|
|
151
162
|
}
|
|
152
|
-
this
|
|
163
|
+
this.#stopLogging = true;
|
|
153
164
|
try {
|
|
154
|
-
await this
|
|
165
|
+
await this.#streamingTask;
|
|
155
166
|
}
|
|
156
167
|
catch (err) {
|
|
157
168
|
if (!(err instanceof Error && err.name === 'AbortError')) {
|
|
@@ -159,30 +170,30 @@ export class StreamedLog {
|
|
|
159
170
|
}
|
|
160
171
|
}
|
|
161
172
|
finally {
|
|
162
|
-
this
|
|
173
|
+
this.#streamingTask = null;
|
|
163
174
|
}
|
|
164
175
|
}
|
|
165
176
|
/**
|
|
166
177
|
* Get log stream from response and redirect it to another log.
|
|
167
178
|
*/
|
|
168
|
-
async streamLog() {
|
|
169
|
-
const logStream = await this.logClient.stream({ raw: true });
|
|
170
|
-
if (!logStream) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
179
|
+
async #streamLog() {
|
|
173
180
|
try {
|
|
174
|
-
const
|
|
181
|
+
const logStream = await this.#logClient.stream({ raw: true });
|
|
182
|
+
if (!logStream) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const lastChunkRemainder = await this.#logStreamChunks(logStream);
|
|
175
186
|
// Process whatever is left when exiting. Maybe it is incomplete, maybe it is last log without EOL.
|
|
176
187
|
const lastMessage = Buffer.from(lastChunkRemainder).toString().trim();
|
|
177
188
|
if (lastMessage.length) {
|
|
178
|
-
this
|
|
189
|
+
this.#destinationLog.info(lastMessage);
|
|
179
190
|
}
|
|
180
191
|
}
|
|
181
192
|
catch (err) {
|
|
182
193
|
log.warning(`Log redirection stopped due to error`, err);
|
|
183
194
|
}
|
|
184
195
|
}
|
|
185
|
-
async logStreamChunks(logStream) {
|
|
196
|
+
async #logStreamChunks(logStream) {
|
|
186
197
|
// Chunk may be incomplete. Keep remainder for next chunk.
|
|
187
198
|
let previousChunkRemainder = new Uint8Array();
|
|
188
199
|
for await (const chunk of logStream) {
|
|
@@ -194,10 +205,10 @@ export class StreamedLog {
|
|
|
194
205
|
const lastCompleteMessageIndex = chunkWithPreviousRemainder.lastIndexOf(0x0a);
|
|
195
206
|
previousChunkRemainder = chunkWithPreviousRemainder.slice(lastCompleteMessageIndex);
|
|
196
207
|
// Push complete part of the chunk to the buffer
|
|
197
|
-
this
|
|
198
|
-
this
|
|
208
|
+
this.#streamBuffer.push(Buffer.from(chunkWithPreviousRemainder.slice(0, lastCompleteMessageIndex)));
|
|
209
|
+
this.#logBufferContent();
|
|
199
210
|
// Keep processing the new data until stopped
|
|
200
|
-
if (this
|
|
211
|
+
if (this.#stopLogging) {
|
|
201
212
|
break;
|
|
202
213
|
}
|
|
203
214
|
}
|
|
@@ -206,26 +217,26 @@ export class StreamedLog {
|
|
|
206
217
|
/**
|
|
207
218
|
* Parse the buffer and log complete messages.
|
|
208
219
|
*/
|
|
209
|
-
logBufferContent() {
|
|
210
|
-
const allParts = Buffer.concat(this
|
|
220
|
+
#logBufferContent() {
|
|
221
|
+
const allParts = Buffer.concat(this.#streamBuffer).toString().split(this.#splitMarker).slice(1);
|
|
211
222
|
// Parse the buffer parts into complete messages
|
|
212
223
|
const messageMarkers = allParts.filter((_, i) => i % 2 === 0);
|
|
213
224
|
const messageContents = allParts.filter((_, i) => i % 2 !== 0);
|
|
214
|
-
this
|
|
225
|
+
this.#streamBuffer = [];
|
|
215
226
|
messageMarkers.forEach((marker, index) => {
|
|
216
227
|
const decodedMarker = marker;
|
|
217
228
|
const decodedContent = messageContents[index];
|
|
218
|
-
if (this
|
|
229
|
+
if (this.#relevancyTimeLimit) {
|
|
219
230
|
// Log only relevant messages. Ignore too old log messages.
|
|
220
231
|
const logTime = new Date(decodedMarker);
|
|
221
|
-
if (logTime < this
|
|
232
|
+
if (logTime < this.#relevancyTimeLimit) {
|
|
222
233
|
return;
|
|
223
234
|
}
|
|
224
235
|
}
|
|
225
236
|
const message = decodedMarker + decodedContent;
|
|
226
237
|
// Original log level information is not available. Log all on info level. Log level could be guessed for
|
|
227
238
|
// some logs, but for any multiline logs such guess would be probably correct only for the first line.
|
|
228
|
-
this
|
|
239
|
+
this.#destinationLog.info(message.trim());
|
|
229
240
|
});
|
|
230
241
|
}
|
|
231
242
|
}
|
|
@@ -2,6 +2,16 @@ import type { STORAGE_GENERAL_ACCESS } from '@apify/consts';
|
|
|
2
2
|
import type { ApiClientSubResourceOptions } from '../base/api_client.js';
|
|
3
3
|
import { ResourceClient } from '../base/resource_client.js';
|
|
4
4
|
import type { RequestQueue, RequestQueueClientAddRequestResult, RequestQueueClientBatchDeleteRequestsResult, RequestQueueClientBatchRequestsOperationResult, RequestQueueClientListAndLockHeadResult, RequestQueueClientListHeadResult, RequestQueueClientListRequestsResult, RequestQueueClientProlongRequestLockResult, RequestQueueClientRequestSchema, RequestQueueClientRequestToAdd, RequestQueueClientRequestToUpdate, RequestQueueClientUnlockRequestsResult } from '../models.js';
|
|
5
|
+
import type { TimeoutOptions } from '../timeouts.js';
|
|
6
|
+
/**
|
|
7
|
+
* A request to add, serialized once up front: `byteLength` decides which batch it goes into, `json` is what the body of
|
|
8
|
+
* that batch is assembled from, and `request` is what the result bookkeeping needs.
|
|
9
|
+
*/
|
|
10
|
+
interface SerializedRequestToAdd {
|
|
11
|
+
request: RequestQueueClientRequestToAdd;
|
|
12
|
+
json: string;
|
|
13
|
+
byteLength: number;
|
|
14
|
+
}
|
|
5
15
|
export type { AllowedHttpMethods, RequestQueue, RequestQueueClientAddRequestResult, RequestQueueClientBatchDeleteRequestsResult, RequestQueueClientBatchRequestsOperationResult, RequestQueueClientListAndLockHeadResult, RequestQueueClientListHeadResult, RequestQueueClientListItem, RequestQueueClientListRequestsResult, RequestQueueClientLockedListItem, RequestQueueClientProlongRequestLockResult, RequestQueueClientRequestSchema, RequestQueueClientRequestToAdd, RequestQueueClientRequestToUpdate, RequestQueueClientUnlockRequestsResult, RequestQueueStats, } from '../models.js';
|
|
6
16
|
/**
|
|
7
17
|
* Client for managing a specific Request queue.
|
|
@@ -34,8 +44,7 @@ export type { AllowedHttpMethods, RequestQueue, RequestQueueClientAddRequestResu
|
|
|
34
44
|
* @see https://docs.apify.com/platform/storage/request-queue
|
|
35
45
|
*/
|
|
36
46
|
export declare class RequestQueueClient extends ResourceClient {
|
|
37
|
-
private
|
|
38
|
-
private timeoutMillis?;
|
|
47
|
+
#private;
|
|
39
48
|
/**
|
|
40
49
|
* @hidden
|
|
41
50
|
*/
|
|
@@ -43,24 +52,30 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
43
52
|
/**
|
|
44
53
|
* Gets the Request queue object from the Apify API.
|
|
45
54
|
*
|
|
55
|
+
* @param options - Request options
|
|
56
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
46
57
|
* @returns The RequestQueue object, or `undefined` if it does not exist
|
|
47
58
|
* @see https://docs.apify.com/api/v2/request-queue-get
|
|
48
59
|
*/
|
|
49
|
-
get(): Promise<RequestQueue | undefined>;
|
|
60
|
+
get(options?: TimeoutOptions): Promise<RequestQueue | undefined>;
|
|
50
61
|
/**
|
|
51
62
|
* Updates the Request queue with specified fields.
|
|
52
63
|
*
|
|
53
64
|
* @param newFields - Fields to update in the Request queue
|
|
65
|
+
* @param options - Request options
|
|
66
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
54
67
|
* @returns The updated RequestQueue object
|
|
55
68
|
* @see https://docs.apify.com/api/v2/request-queue-put
|
|
56
69
|
*/
|
|
57
|
-
update(newFields: RequestQueueClientUpdateOptions): Promise<RequestQueue>;
|
|
70
|
+
update(newFields: RequestQueueClientUpdateOptions, options?: TimeoutOptions): Promise<RequestQueue>;
|
|
58
71
|
/**
|
|
59
72
|
* Deletes the Request queue.
|
|
60
73
|
*
|
|
74
|
+
* @param options - Request options
|
|
75
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
61
76
|
* @see https://docs.apify.com/api/v2/request-queue-delete
|
|
62
77
|
*/
|
|
63
|
-
delete(): Promise<void>;
|
|
78
|
+
delete(options?: TimeoutOptions): Promise<void>;
|
|
64
79
|
/**
|
|
65
80
|
* Lists requests from the beginning of the queue (head).
|
|
66
81
|
*
|
|
@@ -68,6 +83,8 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
68
83
|
* inspecting what requests are waiting to be processed.
|
|
69
84
|
*
|
|
70
85
|
* @param options - Options for listing (e.g., limit)
|
|
86
|
+
* @param options.limit - Maximum number of requests to return.
|
|
87
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
71
88
|
* @returns List of requests from the queue head
|
|
72
89
|
* @see https://docs.apify.com/api/v2/request-queue-head-get
|
|
73
90
|
*/
|
|
@@ -84,6 +101,7 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
84
101
|
* @param options - Lock configuration
|
|
85
102
|
* @param options.lockSecs - **Required.** Duration in seconds to lock the requests. After this time, the locks expire and requests can be retrieved by other clients.
|
|
86
103
|
* @param options.limit - Maximum number of requests to return. Default is 25.
|
|
104
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'medium'`.
|
|
87
105
|
* @returns Object containing `items` (locked requests), `queueModifiedAt`, `hadMultipleClients`, and lock information
|
|
88
106
|
* @see https://docs.apify.com/api/v2/request-queue-head-lock-post
|
|
89
107
|
*
|
|
@@ -122,6 +140,7 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
122
140
|
* @param request.payload - HTTP payload for POST/PUT requests (string).
|
|
123
141
|
* @param options - Additional options
|
|
124
142
|
* @param options.forefront - If `true`, adds the request to the beginning of the queue. Default is `false` (adds to the end).
|
|
143
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
125
144
|
* @returns Object with `requestId`, `wasAlreadyPresent`, and `wasAlreadyHandled` flags
|
|
126
145
|
* @see https://docs.apify.com/api/v2/request-queue-requests-post
|
|
127
146
|
*
|
|
@@ -150,8 +169,8 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
150
169
|
*
|
|
151
170
|
* @private
|
|
152
171
|
*/
|
|
153
|
-
protected
|
|
154
|
-
protected
|
|
172
|
+
protected addRequestBatch(requests: SerializedRequestToAdd[], options?: RequestQueueClientAddRequestOptions): Promise<RequestQueueClientBatchRequestsOperationResult>;
|
|
173
|
+
protected addRequestBatchWithRetries(requests: SerializedRequestToAdd[], options?: RequestQueueClientBatchAddRequestWithRetriesOptions): Promise<RequestQueueClientBatchRequestsOperationResult>;
|
|
155
174
|
/**
|
|
156
175
|
* Adds multiple requests to the queue in a single operation.
|
|
157
176
|
*
|
|
@@ -167,6 +186,7 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
167
186
|
* @param options.maxUnprocessedRequestsRetries - Maximum number of retry attempts for rate-limited requests. Default is 3.
|
|
168
187
|
* @param options.maxParallel - Maximum number of parallel batch API calls. Default is 5.
|
|
169
188
|
* @param options.minDelayBetweenUnprocessedRequestsRetriesMillis - Minimum delay before retrying rate-limited requests. Default is 500ms.
|
|
189
|
+
* @param options.timeoutSecs - Timeout for each batch API request. Default is `'medium'`.
|
|
170
190
|
* @returns Object with `processedRequests` (successfully added) and `unprocessedRequests` (failed after all retries)
|
|
171
191
|
* @see https://docs.apify.com/api/v2/request-queue-requests-batch-post
|
|
172
192
|
*
|
|
@@ -197,24 +217,30 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
197
217
|
* Requests can be identified by either their ID or unique key.
|
|
198
218
|
*
|
|
199
219
|
* @param requests - Array of requests to delete (by id or uniqueKey)
|
|
220
|
+
* @param options - Request options
|
|
221
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
200
222
|
* @returns Result containing processed and unprocessed requests
|
|
201
223
|
* @see https://docs.apify.com/api/v2/request-queue-requests-batch-delete
|
|
202
224
|
* @since Added in 2.3.0
|
|
203
225
|
*/
|
|
204
|
-
batchDeleteRequests(requests: RequestQueueClientRequestToDelete[]): Promise<RequestQueueClientBatchDeleteRequestsResult>;
|
|
226
|
+
batchDeleteRequests(requests: RequestQueueClientRequestToDelete[], options?: TimeoutOptions): Promise<RequestQueueClientBatchDeleteRequestsResult>;
|
|
205
227
|
/**
|
|
206
228
|
* Gets a specific request from the queue by its ID.
|
|
207
229
|
*
|
|
208
230
|
* @param id - Request ID
|
|
231
|
+
* @param options - Request options
|
|
232
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
209
233
|
* @returns The request object, or `undefined` if not found
|
|
210
234
|
* @see https://docs.apify.com/api/v2/request-queue-request-get
|
|
211
235
|
*/
|
|
212
|
-
getRequest(id: string): Promise<RequestQueueClientGetRequestResult | undefined>;
|
|
236
|
+
getRequest(id: string, options?: TimeoutOptions): Promise<RequestQueueClientGetRequestResult | undefined>;
|
|
213
237
|
/**
|
|
214
238
|
* Updates a request in the queue.
|
|
215
239
|
*
|
|
216
240
|
* @param request - The updated request object (must include id)
|
|
217
241
|
* @param options - Update options such as whether to move to front
|
|
242
|
+
* @param options.forefront - If `true`, moves the request to the beginning of the queue. Default is `false`.
|
|
243
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'medium'`.
|
|
218
244
|
* @returns Information about the updated request
|
|
219
245
|
* @see https://docs.apify.com/api/v2/request-queue-request-put
|
|
220
246
|
*/
|
|
@@ -223,8 +249,10 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
223
249
|
* Deletes a specific request from the queue.
|
|
224
250
|
*
|
|
225
251
|
* @param id - Request ID
|
|
252
|
+
* @param options - Request options
|
|
253
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
226
254
|
*/
|
|
227
|
-
deleteRequest(id: string): Promise<void>;
|
|
255
|
+
deleteRequest(id: string, options?: TimeoutOptions): Promise<void>;
|
|
228
256
|
/**
|
|
229
257
|
* Prolongs the lock on a request to prevent it from being returned to other clients.
|
|
230
258
|
*
|
|
@@ -236,6 +264,7 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
236
264
|
* @param options - Lock extension options
|
|
237
265
|
* @param options.lockSecs - **Required.** New lock duration in seconds from now.
|
|
238
266
|
* @param options.forefront - If `true`, moves the request to the beginning of the queue when the lock expires. Default is `false`.
|
|
267
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'medium'`.
|
|
239
268
|
* @returns Object with new `lockExpiresAt` timestamp
|
|
240
269
|
* @see https://docs.apify.com/api/v2/request-queue-request-lock-put
|
|
241
270
|
*
|
|
@@ -259,6 +288,8 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
259
288
|
*
|
|
260
289
|
* @param id - Request ID
|
|
261
290
|
* @param options - Options such as whether to move to front
|
|
291
|
+
* @param options.forefront - If `true`, moves the request to the beginning of the queue. Default is `false`.
|
|
292
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
|
|
262
293
|
* @see https://docs.apify.com/api/v2/request-queue-request-lock-delete
|
|
263
294
|
* @since Added in 2.4.1
|
|
264
295
|
*/
|
|
@@ -270,6 +301,7 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
270
301
|
* queue contents.
|
|
271
302
|
*
|
|
272
303
|
* @param options - Pagination options
|
|
304
|
+
* @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
|
|
273
305
|
* @returns List of requests with pagination information
|
|
274
306
|
* @see https://docs.apify.com/api/v2/request-queue-requests-get
|
|
275
307
|
* @since Added in 2.5.1
|
|
@@ -281,11 +313,13 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
281
313
|
* This is useful for releasing all locks at once, for example when shutting down
|
|
282
314
|
* a crawler gracefully.
|
|
283
315
|
*
|
|
316
|
+
* @param options - Request options
|
|
317
|
+
* @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
|
|
284
318
|
* @returns Number of requests that were unlocked
|
|
285
319
|
* @see https://docs.apify.com/api/v2/request-queue-requests-unlock-post
|
|
286
320
|
* @since Added in 2.12.5
|
|
287
321
|
*/
|
|
288
|
-
unlockRequests(): Promise<RequestQueueClientUnlockRequestsResult>;
|
|
322
|
+
unlockRequests(options?: TimeoutOptions): Promise<RequestQueueClientUnlockRequestsResult>;
|
|
289
323
|
/**
|
|
290
324
|
* Returns an async iterable for paginating through all requests in the queue.
|
|
291
325
|
*
|
|
@@ -293,6 +327,7 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
293
327
|
* automatically handling pagination behind the scenes.
|
|
294
328
|
*
|
|
295
329
|
* @param options - Pagination options
|
|
330
|
+
* @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
|
|
296
331
|
* @returns An async iterable of request pages
|
|
297
332
|
* @see https://docs.apify.com/api/v2/request-queue-requests-get
|
|
298
333
|
*
|
|
@@ -312,6 +347,8 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
312
347
|
export interface RequestQueueUserOptions {
|
|
313
348
|
clientKey?: string;
|
|
314
349
|
/**
|
|
350
|
+
* Cap, in seconds, on the default timeout tier of every request this client sends. An explicit per-call
|
|
351
|
+
* `timeoutSecs` is not capped.
|
|
315
352
|
* @since Added in 2.2.0
|
|
316
353
|
*/
|
|
317
354
|
timeoutSecs?: number;
|
|
@@ -333,7 +370,7 @@ export interface RequestQueueClientUpdateOptions {
|
|
|
333
370
|
/**
|
|
334
371
|
* Options for listing requests from the queue head.
|
|
335
372
|
*/
|
|
336
|
-
export interface RequestQueueClientListHeadOptions {
|
|
373
|
+
export interface RequestQueueClientListHeadOptions extends TimeoutOptions {
|
|
337
374
|
limit?: number;
|
|
338
375
|
}
|
|
339
376
|
/**
|
|
@@ -344,13 +381,8 @@ export type RequestQueueListRequestsFilter = 'locked' | 'pending';
|
|
|
344
381
|
* Options for listing all requests in the queue.
|
|
345
382
|
* @since Added in 2.5.1
|
|
346
383
|
*/
|
|
347
|
-
export interface RequestQueueClientListRequestsOptions {
|
|
384
|
+
export interface RequestQueueClientListRequestsOptions extends TimeoutOptions {
|
|
348
385
|
limit?: number;
|
|
349
|
-
/**
|
|
350
|
-
* Using id of request that does not exist in request queue leads to unpredictable results.
|
|
351
|
-
* @deprecated Use `cursor` for pagination instead.
|
|
352
|
-
*/
|
|
353
|
-
exclusiveStartId?: string;
|
|
354
386
|
/**
|
|
355
387
|
* @since Added in 2.23.2
|
|
356
388
|
*/
|
|
@@ -364,11 +396,9 @@ export interface RequestQueueClientListRequestsOptions {
|
|
|
364
396
|
* Options for paginating through requests in the queue.
|
|
365
397
|
* @since Added in 2.5.1
|
|
366
398
|
*/
|
|
367
|
-
export interface RequestQueueClientPaginateRequestsOptions {
|
|
399
|
+
export interface RequestQueueClientPaginateRequestsOptions extends TimeoutOptions {
|
|
368
400
|
limit?: number;
|
|
369
401
|
maxPageLimit?: number;
|
|
370
|
-
/** @deprecated Use `cursor` for pagination instead. */
|
|
371
|
-
exclusiveStartId?: string;
|
|
372
402
|
/**
|
|
373
403
|
* @since Added in 2.23.2
|
|
374
404
|
*/
|
|
@@ -382,30 +412,30 @@ export interface RequestQueueClientPaginateRequestsOptions {
|
|
|
382
412
|
* Options for listing and locking requests from the queue head.
|
|
383
413
|
* @since Added in 2.4.1
|
|
384
414
|
*/
|
|
385
|
-
export interface RequestQueueClientListAndLockHeadOptions {
|
|
415
|
+
export interface RequestQueueClientListAndLockHeadOptions extends TimeoutOptions {
|
|
386
416
|
lockSecs: number;
|
|
387
417
|
limit?: number;
|
|
388
418
|
}
|
|
389
|
-
export interface RequestQueueClientAddRequestOptions {
|
|
419
|
+
export interface RequestQueueClientAddRequestOptions extends TimeoutOptions {
|
|
390
420
|
forefront?: boolean;
|
|
391
421
|
}
|
|
392
422
|
/**
|
|
393
423
|
* @since Added in 2.4.1
|
|
394
424
|
*/
|
|
395
|
-
export interface RequestQueueClientProlongRequestLockOptions {
|
|
425
|
+
export interface RequestQueueClientProlongRequestLockOptions extends TimeoutOptions {
|
|
396
426
|
forefront?: boolean;
|
|
397
427
|
lockSecs: number;
|
|
398
428
|
}
|
|
399
429
|
/**
|
|
400
430
|
* @since Added in 2.4.1
|
|
401
431
|
*/
|
|
402
|
-
export interface RequestQueueClientDeleteRequestLockOptions {
|
|
432
|
+
export interface RequestQueueClientDeleteRequestLockOptions extends TimeoutOptions {
|
|
403
433
|
forefront?: boolean;
|
|
404
434
|
}
|
|
405
435
|
/**
|
|
406
436
|
* @since Added in 2.3.0
|
|
407
437
|
*/
|
|
408
|
-
export interface RequestQueueClientBatchAddRequestWithRetriesOptions {
|
|
438
|
+
export interface RequestQueueClientBatchAddRequestWithRetriesOptions extends TimeoutOptions {
|
|
409
439
|
forefront?: boolean;
|
|
410
440
|
maxUnprocessedRequestsRetries?: number;
|
|
411
441
|
maxParallel?: number;
|