apify-client 3.0.0-beta.9 → 3.0.0-beta.90

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.
Files changed (122) hide show
  1. package/README.md +16 -2
  2. package/dist/apify_api_error.d.ts +13 -27
  3. package/dist/apify_api_error.js +33 -23
  4. package/dist/apify_client.d.ts +125 -10
  5. package/dist/apify_client.js +133 -48
  6. package/dist/apify_client_error.d.ts +10 -0
  7. package/dist/apify_client_error.js +10 -0
  8. package/dist/base/api_client.d.ts +7 -7
  9. package/dist/base/api_client.js +36 -36
  10. package/dist/base/resource_client.d.ts +21 -8
  11. package/dist/base/resource_client.js +70 -36
  12. package/dist/base/resource_collection_client.d.ts +12 -4
  13. package/dist/base/resource_collection_client.js +34 -11
  14. package/dist/body_parser.d.ts +3 -4
  15. package/dist/body_parser.js +19 -26
  16. package/dist/bundle.js +27 -22
  17. package/dist/bundle.js.map +1 -1
  18. package/dist/generated/api.d.ts +3040 -971
  19. package/dist/generated/schemas.d.ts +2369 -934
  20. package/dist/generated/schemas.js +570 -229
  21. package/dist/http_clients/axios.d.ts +61 -0
  22. package/dist/http_clients/axios.js +119 -0
  23. package/dist/http_clients/base.d.ts +386 -0
  24. package/dist/http_clients/base.js +650 -0
  25. package/dist/http_clients/index.d.ts +4 -0
  26. package/dist/http_clients/index.js +2 -0
  27. package/dist/http_compressors/base.d.ts +40 -0
  28. package/dist/http_compressors/base.js +9 -0
  29. package/dist/http_compressors/brotli.d.ts +33 -0
  30. package/dist/http_compressors/brotli.js +39 -0
  31. package/dist/http_compressors/gzip.d.ts +33 -0
  32. package/dist/http_compressors/gzip.js +39 -0
  33. package/dist/http_compressors/index.d.ts +6 -0
  34. package/dist/http_compressors/index.js +2 -0
  35. package/dist/http_compressors/resolve.d.ts +23 -0
  36. package/dist/http_compressors/resolve.js +27 -0
  37. package/dist/index.d.ts +6 -1
  38. package/dist/index.js +5 -1
  39. package/dist/invalid_response_body_error.d.ts +14 -0
  40. package/dist/invalid_response_body_error.js +18 -0
  41. package/dist/models.d.ts +166 -243
  42. package/dist/models.js +6 -4
  43. package/dist/resource_clients/actor.d.ts +104 -34
  44. package/dist/resource_clients/actor.js +130 -56
  45. package/dist/resource_clients/actor_collection.d.ts +18 -12
  46. package/dist/resource_clients/actor_collection.js +11 -3
  47. package/dist/resource_clients/actor_env_var.d.ts +11 -4
  48. package/dist/resource_clients/actor_env_var.js +16 -6
  49. package/dist/resource_clients/actor_env_var_collection.d.ts +9 -4
  50. package/dist/resource_clients/actor_env_var_collection.js +11 -4
  51. package/dist/resource_clients/actor_server.d.ts +141 -0
  52. package/dist/resource_clients/actor_server.js +195 -0
  53. package/dist/resource_clients/actor_version.d.ts +20 -5
  54. package/dist/resource_clients/actor_version.js +19 -9
  55. package/dist/resource_clients/actor_version_collection.d.ts +11 -4
  56. package/dist/resource_clients/actor_version_collection.js +13 -4
  57. package/dist/resource_clients/build.d.ts +20 -7
  58. package/dist/resource_clients/build.js +35 -15
  59. package/dist/resource_clients/build_collection.d.ts +7 -5
  60. package/dist/resource_clients/build_collection.js +4 -1
  61. package/dist/resource_clients/dataset.d.ts +83 -37
  62. package/dist/resource_clients/dataset.js +107 -121
  63. package/dist/resource_clients/dataset_collection.d.ts +10 -6
  64. package/dist/resource_clients/dataset_collection.js +13 -2
  65. package/dist/resource_clients/key_value_store.d.ts +108 -26
  66. package/dist/resource_clients/key_value_store.js +134 -52
  67. package/dist/resource_clients/key_value_store_collection.d.ts +10 -6
  68. package/dist/resource_clients/key_value_store_collection.js +13 -2
  69. package/dist/resource_clients/log.d.ts +40 -21
  70. package/dist/resource_clients/log.js +144 -66
  71. package/dist/resource_clients/request_queue.d.ts +76 -31
  72. package/dist/resource_clients/request_queue.js +178 -93
  73. package/dist/resource_clients/request_queue_collection.d.ts +9 -5
  74. package/dist/resource_clients/request_queue_collection.js +9 -3
  75. package/dist/resource_clients/run.d.ts +126 -28
  76. package/dist/resource_clients/run.js +193 -49
  77. package/dist/resource_clients/run_collection.d.ts +5 -3
  78. package/dist/resource_clients/run_collection.js +4 -1
  79. package/dist/resource_clients/schedule.d.ts +16 -7
  80. package/dist/resource_clients/schedule.js +30 -22
  81. package/dist/resource_clients/schedule_collection.d.ts +6 -2
  82. package/dist/resource_clients/schedule_collection.js +9 -3
  83. package/dist/resource_clients/store_collection.d.ts +6 -4
  84. package/dist/resource_clients/store_collection.js +4 -1
  85. package/dist/resource_clients/task.d.ts +36 -13
  86. package/dist/resource_clients/task.js +79 -46
  87. package/dist/resource_clients/task_collection.d.ts +9 -5
  88. package/dist/resource_clients/task_collection.js +9 -3
  89. package/dist/resource_clients/user.d.ts +19 -10
  90. package/dist/resource_clients/user.js +42 -38
  91. package/dist/resource_clients/webhook.d.ts +17 -8
  92. package/dist/resource_clients/webhook.js +30 -22
  93. package/dist/resource_clients/webhook_collection.d.ts +8 -4
  94. package/dist/resource_clients/webhook_collection.js +9 -3
  95. package/dist/resource_clients/webhook_dispatch.d.ts +4 -1
  96. package/dist/resource_clients/webhook_dispatch.js +7 -2
  97. package/dist/resource_clients/webhook_dispatch_collection.d.ts +3 -1
  98. package/dist/resource_clients/webhook_dispatch_collection.js +4 -1
  99. package/dist/response_validation_error.d.ts +2 -1
  100. package/dist/response_validation_error.js +2 -1
  101. package/dist/runtime/node.d.ts +6 -0
  102. package/dist/runtime/node.js +80 -0
  103. package/dist/runtime/types.d.ts +60 -0
  104. package/dist/runtime/types.js +1 -0
  105. package/dist/runtime/web.d.ts +5 -0
  106. package/dist/runtime/web.js +21 -0
  107. package/dist/schemas.d.ts +368 -4
  108. package/dist/schemas.js +26 -4
  109. package/dist/statistics.d.ts +1 -6
  110. package/dist/statistics.js +2 -2
  111. package/dist/timeouts.d.ts +84 -0
  112. package/dist/timeouts.js +37 -0
  113. package/dist/timezones.d.ts +1 -1
  114. package/dist/utils.d.ts +89 -59
  115. package/dist/utils.js +216 -158
  116. package/dist/wait_for_resources.d.ts +8 -0
  117. package/dist/wait_for_resources.js +39 -0
  118. package/package.json +37 -34
  119. package/dist/http_client.d.ts +0 -88
  120. package/dist/http_client.js +0 -255
  121. package/dist/interceptors.d.ts +0 -19
  122. package/dist/interceptors.js +0 -105
@@ -1,10 +1,11 @@
1
1
  import type { Readable } from 'node:stream';
2
- import type { JsonValue } from 'type-fest';
2
+ import type { JsonValue, TypedArray } from 'type-fest';
3
3
  import type { STORAGE_GENERAL_ACCESS } from '@apify/consts';
4
4
  import type { ApiClientSubResourceOptions } from '../base/api_client.js';
5
5
  import { ResourceClient } from '../base/resource_client.js';
6
- import type { KeyValueClientListKeysResult, KeyValueListItem, KeyValueStore } from '../models.js';
7
- export type { KeyValueClientListKeysResult, KeyValueListItem, KeyValueStore, KeyValueStoreStats } from '../models.js';
6
+ import type { KeyValueStoreResource, KeyValueStoreKey, ListOfKeys } from '../models.js';
7
+ import type { TimeoutOptions } from '../timeouts.js';
8
+ export type { KeyValueStoreResource, KeyValueStoreKey, KeyValueStoreStats, ListOfKeys } from '../models.js';
8
9
  /**
9
10
  * Client for managing a specific key-value store.
10
11
  *
@@ -41,10 +42,12 @@ export declare class KeyValueStoreClient extends ResourceClient {
41
42
  /**
42
43
  * Gets the key-value store object from the Apify API.
43
44
  *
45
+ * @param options - Request options
46
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
44
47
  * @returns The KeyValueStore object, or `undefined` if it does not exist
45
48
  * @see https://docs.apify.com/api/v2/key-value-store-get
46
49
  */
47
- get(): Promise<KeyValueStore | undefined>;
50
+ get(options?: TimeoutOptions): Promise<KeyValueStoreResource | undefined>;
48
51
  /**
49
52
  * Updates the key-value store with specified fields.
50
53
  *
@@ -52,16 +55,20 @@ export declare class KeyValueStoreClient extends ResourceClient {
52
55
  * @param newFields.name - New name for the store
53
56
  * @param newFields.title - New title for the store
54
57
  * @param newFields.generalAccess - General resource access level ('FOLLOW_USER_SETTING', 'ANYONE_WITH_ID_CAN_READ' or 'RESTRICTED')
58
+ * @param options - Request options
59
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
55
60
  * @returns The updated KeyValueStore object
56
61
  * @see https://docs.apify.com/api/v2/key-value-store-put
57
62
  */
58
- update(newFields: KeyValueClientUpdateOptions): Promise<KeyValueStore>;
63
+ update(newFields: KeyValueClientUpdateOptions, options?: TimeoutOptions): Promise<KeyValueStoreResource>;
59
64
  /**
60
65
  * Deletes the key-value store.
61
66
  *
67
+ * @param options - Request options
68
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
62
69
  * @see https://docs.apify.com/api/v2/key-value-store-delete
63
70
  */
64
- delete(): Promise<void>;
71
+ delete(options?: TimeoutOptions): Promise<void>;
65
72
  /**
66
73
  * Lists all keys in the key-value store.
67
74
  *
@@ -70,9 +77,12 @@ export declare class KeyValueStoreClient extends ResourceClient {
70
77
  *
71
78
  * @param options - Listing options
72
79
  * @param options.limit - Maximum number of keys to return. Default is 1000.
80
+ * @param options.chunkSize - Maximum number of keys requested per API call when iterating across pages. `limit`
81
+ * then caps the total across all pages.
73
82
  * @param options.exclusiveStartKey - Key to start listing from (for pagination). The listing starts with the next key after this one.
74
83
  * @param options.collection - Filter keys by collection name.
75
84
  * @param options.prefix - Filter keys that start with this prefix.
85
+ * @param options.timeoutSecs - Timeout for each API request. Default is `'medium'`.
76
86
  * @returns Object containing `items` array of key metadata, pagination info (`count`, `limit`, `isTruncated`, `nextExclusiveStartKey`)
77
87
  * @see https://docs.apify.com/api/v2/key-value-store-keys-get
78
88
  *
@@ -97,7 +107,7 @@ export declare class KeyValueStoreClient extends ResourceClient {
97
107
  * } while (result.isTruncated);
98
108
  * ```
99
109
  */
100
- listKeys(options?: KeyValueClientListKeysOptions): Promise<KeyValueClientListKeysResult> & AsyncIterable<KeyValueListItem>;
110
+ listKeys(options?: KeyValueClientListKeysOptions): Promise<ListOfKeys> & AsyncIterable<KeyValueStoreKey>;
101
111
  /**
102
112
  * Generates a public URL for accessing a specific record in the key-value store.
103
113
  *
@@ -106,6 +116,8 @@ export declare class KeyValueStoreClient extends ResourceClient {
106
116
  * requiring an API token.
107
117
  *
108
118
  * @param key - The record key
119
+ * @param options - Request options
120
+ * @param options.timeoutSecs - Timeout for the API request that fetches the store. Default is `'long'`.
109
121
  * @returns A public URL string for accessing the record
110
122
  *
111
123
  * @example
@@ -116,7 +128,7 @@ export declare class KeyValueStoreClient extends ResourceClient {
116
128
  * ```
117
129
  * @since Added in 2.14.0
118
130
  */
119
- getRecordPublicUrl(key: string): Promise<string>;
131
+ getRecordPublicUrl(key: string, options?: TimeoutOptions): Promise<string>;
120
132
  /**
121
133
  * Generates a public URL for accessing the list of keys in the key-value store.
122
134
  *
@@ -124,9 +136,11 @@ export declare class KeyValueStoreClient extends ResourceClient {
124
136
  * the URL will include a cryptographic signature which allows access without authentication.
125
137
  *
126
138
  * @param options - URL generation options (extends all options from {@link listKeys})
127
- * @param options.expiresInSecs - Number of seconds until the signed URL expires. If omitted, the URL never expires.
139
+ * @param options.expiresInSecs - Number of seconds until the signed URL expires. Must be positive. If omitted, the URL
140
+ * never expires.
128
141
  * @param options.limit - Maximum number of keys to return.
129
142
  * @param options.prefix - Filter keys by prefix.
143
+ * @param options.timeoutSecs - Timeout for the API request that fetches the store. Default is `'long'`.
130
144
  * @returns A public URL string for accessing the keys list
131
145
  *
132
146
  * @example
@@ -147,6 +161,8 @@ export declare class KeyValueStoreClient extends ResourceClient {
147
161
  * This is more efficient than {@link getRecord} when you only need to check for existence.
148
162
  *
149
163
  * @param key - The record key to check
164
+ * @param options - Request options
165
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
150
166
  * @returns `true` if the record exists, `false` if it does not
151
167
  * @see https://docs.apify.com/api/v2/key-value-store-record-get
152
168
  *
@@ -159,15 +175,27 @@ export declare class KeyValueStoreClient extends ResourceClient {
159
175
  * ```
160
176
  * @since Added in 2.9.0
161
177
  */
162
- recordExists(key: string): Promise<boolean>;
178
+ recordExists(key: string, options?: TimeoutOptions): Promise<boolean>;
163
179
  /**
180
+ * By default, the value is parsed by the record's content type: `application/json` is parsed into a value,
181
+ * `text/*` and `application/*xml` are decoded to a string, and anything else is returned as a Buffer (Node.js)
182
+ * or ArrayBuffer (browser). A record whose body does not parse as its content type claims, such as a non-JSON
183
+ * string stored under `application/json`, makes the call throw an {@link InvalidResponseBodyError}, which
184
+ * carries the raw body in `error.response`.
185
+ *
164
186
  * You can use the `buffer` option to get the value in a Buffer (Node.js)
165
- * or ArrayBuffer (browser) format. In Node.js (not in browser) you can also
187
+ * or ArrayBuffer (browser) format, which skips the parsing. In Node.js (not in browser) you can also
166
188
  * use the `stream` option to get a Readable stream.
167
189
  *
168
190
  * When the record does not exist, the function resolves to `undefined`. It does
169
- * NOT resolve to a `KeyValueStore` record with an `undefined` value.
191
+ * NOT resolve to a `KeyValueStoreRecord` with an `undefined` value.
170
192
  *
193
+ * @param key - The record key
194
+ * @param options - Retrieval options
195
+ * @param options.buffer - If `true`, the value is returned as a Buffer (Node.js) or ArrayBuffer (browser).
196
+ * @param options.stream - If `true`, the value is returned as a Readable stream. Node.js only.
197
+ * @param options.signature - Signature of a public URL, for reading a record without a token.
198
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
171
199
  * @see https://docs.apify.com/api/v2/key-value-store-record-get
172
200
  */
173
201
  getRecord(key: string): Promise<KeyValueStoreRecord<JsonValue> | undefined>;
@@ -179,19 +207,39 @@ export declare class KeyValueStoreClient extends ResourceClient {
179
207
  * The content type is automatically determined based on the value type, but can be
180
208
  * overridden using the `contentType` property.
181
209
  *
210
+ * A string is sent as it is, even under `application/json`, so a string stored under a JSON content type has
211
+ * to be valid JSON already, or {@link getRecord} fails to parse it back.
212
+ *
182
213
  * **Note about streams:** If the value is a stream object (has `.pipe` and `.on` methods),
183
- * the upload cannot be retried on failure or follow redirects. For reliable uploads,
184
- * buffer the entire stream into memory first.
214
+ * the upload cannot be retried on failure or follow redirects. For reliable uploads of a file,
215
+ * pass a `Blob` from `fs.openAsBlob()` instead: it is read again for every attempt and never held
216
+ * in memory whole.
185
217
  *
186
218
  * @param record - The record to store
187
219
  * @param record.key - Record key (unique identifier)
188
- * @param record.value - Record value (object, string, Buffer, or Stream)
220
+ * @param record.value - Record value (a JSON-serializable value, Buffer, ArrayBuffer, typed array, Blob, or
221
+ * Readable)
189
222
  * @param record.contentType - Optional MIME type. Auto-detected if not provided:
190
223
  * - Objects: `'application/json; charset=utf-8'`
191
224
  * - Strings: `'text/plain; charset=utf-8'`
192
- * - Buffers/Streams: `'application/octet-stream'`
225
+ * - Blobs: their `type`, or `'application/octet-stream'` when it is empty
226
+ * - Binary values and streams: `'application/octet-stream'`
227
+ *
228
+ * Worth setting for media and archives: the client skips compressing a body
229
+ * whose content type already carries its own compression. The
230
+ * `'application/octet-stream'` fallback is treated as compressible, because
231
+ * it could hold any binary data.
232
+ * @param record.contentEncoding - Optional encoding already applied to `value`, sent as the `Content-Encoding`
233
+ * header. Set it to upload a pre-compressed value: the client then sends the
234
+ * bytes as they are and does not compress them again. The API accepts `gzip`,
235
+ * `br`, `deflate`, and `identity`, and stores the record exactly as uploaded, so
236
+ * this is also the encoding the record is served with. Only binary values and
237
+ * streams can carry a compression, so any encoding other than `identity` throws
238
+ * a `TypeError` when `value` is a string, or a plain object, array, or other
239
+ * value that the client serializes to JSON. Node.js only, since browsers cannot
240
+ * send the header to the API.
193
241
  * @param options - Storage options
194
- * @param options.timeoutSecs - Timeout for the upload in seconds. Default varies by value size.
242
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'long'`.
195
243
  * @param options.doNotRetryTimeouts - If `true`, don't retry on timeout errors. Default is `false`.
196
244
  * @see https://docs.apify.com/api/v2/key-value-store-record-put
197
245
  *
@@ -217,13 +265,24 @@ export declare class KeyValueStoreClient extends ResourceClient {
217
265
  * value: imageBuffer,
218
266
  * contentType: 'image/png'
219
267
  * });
268
+ *
269
+ * // Store a gzipped file without compressing it again
270
+ * const gzippedReport = await readFile('report.json.gz');
271
+ * await client.keyValueStore('my-store').setRecord({
272
+ * key: 'report.json',
273
+ * value: gzippedReport,
274
+ * contentType: 'application/json',
275
+ * contentEncoding: 'gzip'
276
+ * });
220
277
  * ```
221
278
  */
222
- setRecord(record: KeyValueStoreRecord<JsonValue>, options?: KeyValueStoreRecordOptions): Promise<void>;
279
+ setRecord(record: KeyValueStoreRecordInput, options?: KeyValueStoreRecordOptions): Promise<void>;
223
280
  /**
224
281
  * Deletes a record from the key-value store.
225
282
  *
226
283
  * @param key - The record key to delete
284
+ * @param options - Request options
285
+ * @param options.timeoutSecs - Timeout for the API request. Default is `'short'`.
227
286
  * @see https://docs.apify.com/api/v2/key-value-store-record-delete
228
287
  *
229
288
  * @example
@@ -231,7 +290,7 @@ export declare class KeyValueStoreClient extends ResourceClient {
231
290
  * await client.keyValueStore('my-store').deleteRecord('temp-data');
232
291
  * ```
233
292
  */
234
- deleteRecord(key: string): Promise<void>;
293
+ deleteRecord(key: string, options?: TimeoutOptions): Promise<void>;
235
294
  }
236
295
  /**
237
296
  * Options for updating a Key-Value Store.
@@ -250,8 +309,14 @@ export interface KeyValueClientUpdateOptions {
250
309
  /**
251
310
  * Options for listing keys in a Key-Value Store.
252
311
  */
253
- export interface KeyValueClientListKeysOptions {
312
+ export interface KeyValueClientListKeysOptions extends TimeoutOptions {
254
313
  limit?: number;
314
+ /**
315
+ * Maximum number of keys returned in one API response. When the call is iterated with `for await`, the iterator
316
+ * fetches keys in chunks of this size and yields them one by one, until `limit` is reached or the store has no
317
+ * more keys. Awaiting the call returns only the first chunk.
318
+ */
319
+ chunkSize?: number;
255
320
  exclusiveStartKey?: string;
256
321
  collection?: string;
257
322
  /**
@@ -266,17 +331,17 @@ export interface KeyValueClientListKeysOptions {
266
331
  /**
267
332
  * Options for creating a public URL to list keys in a Key-Value Store.
268
333
  *
269
- * Extends {@link KeyValueClientListKeysOptions} with URL expiration control, minus `signature` (this
270
- * method produces one).
334
+ * Extends {@link KeyValueClientListKeysOptions} with URL expiration control, minus `chunkSize` (it only sizes a
335
+ * client-side iteration) and `signature` (this method produces one).
271
336
  * @since Added in 2.16.0
272
337
  */
273
- export interface KeyValueClientCreateKeysUrlOptions extends Omit<KeyValueClientListKeysOptions, 'signature'> {
338
+ export interface KeyValueClientCreateKeysUrlOptions extends Omit<KeyValueClientListKeysOptions, 'chunkSize' | 'signature'> {
274
339
  expiresInSecs?: number;
275
340
  }
276
341
  /**
277
342
  * Options for retrieving a record from a Key-Value Store.
278
343
  */
279
- export interface KeyValueClientGetRecordOptions {
344
+ export interface KeyValueClientGetRecordOptions extends TimeoutOptions {
280
345
  buffer?: boolean;
281
346
  stream?: boolean;
282
347
  /**
@@ -284,6 +349,14 @@ export interface KeyValueClientGetRecordOptions {
284
349
  */
285
350
  signature?: string;
286
351
  }
352
+ /**
353
+ * A value that `setRecord` accepts.
354
+ *
355
+ * Anything JSON-serializable, or binary content the client uploads as bytes instead of JSON-encoding
356
+ * it: a `Buffer`, an `ArrayBuffer`, a typed array, a `Blob`, or a readable stream. `Buffer` is a
357
+ * `Uint8Array`, so `TypedArray` covers it.
358
+ */
359
+ export type KeyValueStoreRecordValue = JsonValue | ArrayBuffer | TypedArray | Blob | Readable;
287
360
  /**
288
361
  * Represents a record (key-value pair) in a Key-Value Store.
289
362
  *
@@ -294,12 +367,21 @@ export interface KeyValueStoreRecord<T> {
294
367
  value: T;
295
368
  contentType?: string;
296
369
  }
370
+ /**
371
+ * A record to store with {@link KeyValueStoreClient.setRecord}.
372
+ */
373
+ export interface KeyValueStoreRecordInput extends KeyValueStoreRecord<KeyValueStoreRecordValue> {
374
+ /**
375
+ * Encoding already applied to `value`, sent as the `Content-Encoding` header. See
376
+ * {@link KeyValueStoreClient.setRecord}.
377
+ */
378
+ contentEncoding?: string;
379
+ }
297
380
  /**
298
381
  * Options for storing a record in a Key-Value Store.
299
382
  * @since Added in 2.12.4
300
383
  */
301
- export interface KeyValueStoreRecordOptions {
302
- timeoutSecs?: number;
384
+ export interface KeyValueStoreRecordOptions extends TimeoutOptions {
303
385
  doNotRetryTimeouts?: boolean;
304
386
  }
305
387
  /**