apify 3.4.1-beta.6 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{dist/actor.d.ts → actor.d.ts} +85 -85
- package/{dist/actor.js → actor.js} +77 -77
- package/package.json +10 -10
- package/{dist/platform_event_manager.d.ts → platform_event_manager.d.ts} +3 -3
- package/{dist/platform_event_manager.js → platform_event_manager.js} +3 -3
- package/{dist/proxy_configuration.d.ts → proxy_configuration.d.ts} +10 -10
- package/{dist/proxy_configuration.d.ts.map → proxy_configuration.d.ts.map} +1 -1
- package/{dist/proxy_configuration.js → proxy_configuration.js} +36 -41
- package/proxy_configuration.js.map +1 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/{dist/utils.d.ts.map → utils.d.ts.map} +1 -1
- package/{dist/utils.js → utils.js} +2 -1
- package/utils.js.map +1 -0
- package/.turbo/turbo-build.log +0 -20
- package/.turbo/turbo-copy.log +0 -4
- package/dist/LICENSE.md +0 -201
- package/dist/README.md +0 -98
- package/dist/package.json +0 -80
- package/dist/proxy_configuration.js.map +0 -1
- package/dist/utils.js.map +0 -1
- /package/{dist/actor.d.ts.map → actor.d.ts.map} +0 -0
- /package/{dist/actor.js.map → actor.js.map} +0 -0
- /package/{dist/charging.d.ts → charging.d.ts} +0 -0
- /package/{dist/charging.d.ts.map → charging.d.ts.map} +0 -0
- /package/{dist/charging.js → charging.js} +0 -0
- /package/{dist/charging.js.map → charging.js.map} +0 -0
- /package/{dist/configuration.d.ts → configuration.d.ts} +0 -0
- /package/{dist/configuration.d.ts.map → configuration.d.ts.map} +0 -0
- /package/{dist/configuration.js → configuration.js} +0 -0
- /package/{dist/configuration.js.map → configuration.js.map} +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
- /package/{dist/index.d.ts.map → index.d.ts.map} +0 -0
- /package/{dist/index.js → index.js} +0 -0
- /package/{dist/index.js.map → index.js.map} +0 -0
- /package/{dist/index.mjs → index.mjs} +0 -0
- /package/{dist/key_value_store.d.ts → key_value_store.d.ts} +0 -0
- /package/{dist/key_value_store.d.ts.map → key_value_store.d.ts.map} +0 -0
- /package/{dist/key_value_store.js → key_value_store.js} +0 -0
- /package/{dist/key_value_store.js.map → key_value_store.js.map} +0 -0
- /package/{dist/platform_event_manager.d.ts.map → platform_event_manager.d.ts.map} +0 -0
- /package/{dist/platform_event_manager.js.map → platform_event_manager.js.map} +0 -0
- /package/{dist/utils.d.ts → utils.d.ts} +0 -0
|
@@ -43,7 +43,7 @@ export interface ProxyConfigurationOptions extends CoreProxyConfigurationOptions
|
|
|
43
43
|
/**
|
|
44
44
|
* The main purpose of the ProxyInfo object is to provide information
|
|
45
45
|
* about the current proxy connection used by the crawler for the request.
|
|
46
|
-
* Outside of crawlers, you can get this object by calling {@
|
|
46
|
+
* Outside of crawlers, you can get this object by calling {@link ProxyConfiguration.newProxyInfo}.
|
|
47
47
|
*
|
|
48
48
|
* **Example usage:**
|
|
49
49
|
*
|
|
@@ -100,13 +100,13 @@ export interface ProxyInfo extends CoreProxyInfo {
|
|
|
100
100
|
* Configures connection to a proxy server with the provided options. Proxy servers are used to prevent target websites from blocking
|
|
101
101
|
* your crawlers based on IP address rate limits or blacklists. Setting proxy configuration in your crawlers automatically configures
|
|
102
102
|
* them to use the selected proxies for all connections. You can get information about the currently used proxy by inspecting
|
|
103
|
-
* the {@
|
|
103
|
+
* the {@link ProxyInfo} property in your crawler's page function. There, you can inspect the proxy's URL and other attributes.
|
|
104
104
|
*
|
|
105
105
|
* The proxy servers are managed by [Apify Proxy](https://docs.apify.com/proxy). To be able to use Apify Proxy,
|
|
106
106
|
* you need an Apify account and access to the selected proxies. If you provide no configuration option,
|
|
107
107
|
* the proxies will be managed automatically using a smart algorithm.
|
|
108
108
|
*
|
|
109
|
-
* If you want to use your own proxies, use the {@
|
|
109
|
+
* If you want to use your own proxies, use the {@link ProxyConfigurationOptions.proxyUrls} option. Your list of proxy URLs will
|
|
110
110
|
* be rotated by the configuration if this option is provided.
|
|
111
111
|
*
|
|
112
112
|
* **Example usage:**
|
|
@@ -146,21 +146,21 @@ export declare class ProxyConfiguration extends CoreProxyConfiguration {
|
|
|
146
146
|
* if Apify Proxy configuration is used.
|
|
147
147
|
* Also checks if country has access to Apify Proxy groups if the country code is provided.
|
|
148
148
|
*
|
|
149
|
-
* You should use the {@
|
|
149
|
+
* You should use the {@link createProxyConfiguration} function to create a pre-initialized
|
|
150
150
|
* `ProxyConfiguration` instance instead of calling this manually.
|
|
151
151
|
*/
|
|
152
152
|
initialize(): Promise<boolean>;
|
|
153
153
|
/**
|
|
154
|
-
* This function creates a new {@
|
|
154
|
+
* This function creates a new {@link ProxyInfo} info object.
|
|
155
155
|
* It is used by CheerioCrawler and PuppeteerCrawler to generate proxy URLs and also to allow the user to inspect
|
|
156
156
|
* the currently used proxy via the requestHandler parameter `proxyInfo`.
|
|
157
157
|
* Use it if you want to work with a rich representation of a proxy URL.
|
|
158
|
-
* If you need the URL string only, use {@
|
|
158
|
+
* If you need the URL string only, use {@link ProxyConfiguration.newUrl}.
|
|
159
159
|
* @param [sessionId]
|
|
160
|
-
* Represents the identifier of user {@
|
|
160
|
+
* Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
|
|
161
161
|
* you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
|
|
162
162
|
* When the provided sessionId is a number, it's converted to a string. Property sessionId of
|
|
163
|
-
* {@
|
|
163
|
+
* {@link ProxyInfo} is always returned as a type string.
|
|
164
164
|
*
|
|
165
165
|
* All the HTTP requests going through the proxy with the same session identifier
|
|
166
166
|
* will use the same target proxy server (i.e. the same IP address).
|
|
@@ -171,7 +171,7 @@ export declare class ProxyConfiguration extends CoreProxyConfiguration {
|
|
|
171
171
|
/**
|
|
172
172
|
* Returns a new proxy URL based on provided configuration options and the `sessionId` parameter.
|
|
173
173
|
* @param [sessionId]
|
|
174
|
-
* Represents the identifier of user {@
|
|
174
|
+
* Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
|
|
175
175
|
* you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
|
|
176
176
|
* When the provided sessionId is a number, it's converted to a string.
|
|
177
177
|
*
|
|
@@ -189,7 +189,7 @@ export declare class ProxyConfiguration extends CoreProxyConfiguration {
|
|
|
189
189
|
protected _getUsername(sessionId?: string): string;
|
|
190
190
|
protected composeDefaultUrl(sessionId?: string): string;
|
|
191
191
|
/**
|
|
192
|
-
*
|
|
192
|
+
* Fetch & set the proxy password from Apify API if an Apify token is provided.
|
|
193
193
|
*/
|
|
194
194
|
protected _setPasswordIfToken(): Promise<void>;
|
|
195
195
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy_configuration.d.ts","sourceRoot":"","sources":["../src/proxy_configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,yBAAyB,IAAI,6BAA6B,EAC1D,SAAS,IAAI,aAAa,EAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy_configuration.d.ts","sourceRoot":"","sources":["../src/proxy_configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,13 +18,13 @@ const COUNTRY_CODE_REGEX = /^[A-Z]{2}$/;
|
|
|
18
18
|
* Configures connection to a proxy server with the provided options. Proxy servers are used to prevent target websites from blocking
|
|
19
19
|
* your crawlers based on IP address rate limits or blacklists. Setting proxy configuration in your crawlers automatically configures
|
|
20
20
|
* them to use the selected proxies for all connections. You can get information about the currently used proxy by inspecting
|
|
21
|
-
* the {@
|
|
21
|
+
* the {@link ProxyInfo} property in your crawler's page function. There, you can inspect the proxy's URL and other attributes.
|
|
22
22
|
*
|
|
23
23
|
* The proxy servers are managed by [Apify Proxy](https://docs.apify.com/proxy). To be able to use Apify Proxy,
|
|
24
24
|
* you need an Apify account and access to the selected proxies. If you provide no configuration option,
|
|
25
25
|
* the proxies will be managed automatically using a smart algorithm.
|
|
26
26
|
*
|
|
27
|
-
* If you want to use your own proxies, use the {@
|
|
27
|
+
* If you want to use your own proxies, use the {@link ProxyConfigurationOptions.proxyUrls} option. Your list of proxy URLs will
|
|
28
28
|
* be rotated by the configuration if this option is provided.
|
|
29
29
|
*
|
|
30
30
|
* **Example usage:**
|
|
@@ -141,27 +141,42 @@ class ProxyConfiguration extends core_1.ProxyConfiguration {
|
|
|
141
141
|
* if Apify Proxy configuration is used.
|
|
142
142
|
* Also checks if country has access to Apify Proxy groups if the country code is provided.
|
|
143
143
|
*
|
|
144
|
-
* You should use the {@
|
|
144
|
+
* You should use the {@link createProxyConfiguration} function to create a pre-initialized
|
|
145
145
|
* `ProxyConfiguration` instance instead of calling this manually.
|
|
146
146
|
*/
|
|
147
147
|
async initialize() {
|
|
148
148
|
if (this.usesApifyProxy) {
|
|
149
|
-
|
|
149
|
+
if (!this.password) {
|
|
150
|
+
await this._setPasswordIfToken();
|
|
151
|
+
}
|
|
152
|
+
if (!this.password) {
|
|
153
|
+
if (actor_js_1.Actor.isAtHome()) {
|
|
154
|
+
throw new Error(`Apify Proxy password must be provided using options.password or the "${consts_1.APIFY_ENV_VARS.PROXY_PASSWORD}" environment variable. ` +
|
|
155
|
+
`You can also provide your Apify token via the "${consts_1.APIFY_ENV_VARS.TOKEN}" environment variable, ` +
|
|
156
|
+
`so that the SDK can fetch the proxy password from Apify API, when ${consts_1.APIFY_ENV_VARS.PROXY_PASSWORD} is not defined`);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.log.warning(`No proxy password or token detected, running without proxy. To use Apify Proxy locally, ` +
|
|
160
|
+
`provide options.password or "${consts_1.APIFY_ENV_VARS.PROXY_PASSWORD}" environment variable. ` +
|
|
161
|
+
`You can also provide your Apify token via the "${consts_1.APIFY_ENV_VARS.TOKEN}" environment variable, ` +
|
|
162
|
+
`so that the SDK can fetch the proxy password from Apify API, when ${consts_1.APIFY_ENV_VARS.PROXY_PASSWORD} is not defined`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
150
165
|
return this._checkAccess();
|
|
151
166
|
}
|
|
152
167
|
return true;
|
|
153
168
|
}
|
|
154
169
|
/**
|
|
155
|
-
* This function creates a new {@
|
|
170
|
+
* This function creates a new {@link ProxyInfo} info object.
|
|
156
171
|
* It is used by CheerioCrawler and PuppeteerCrawler to generate proxy URLs and also to allow the user to inspect
|
|
157
172
|
* the currently used proxy via the requestHandler parameter `proxyInfo`.
|
|
158
173
|
* Use it if you want to work with a rich representation of a proxy URL.
|
|
159
|
-
* If you need the URL string only, use {@
|
|
174
|
+
* If you need the URL string only, use {@link ProxyConfiguration.newUrl}.
|
|
160
175
|
* @param [sessionId]
|
|
161
|
-
* Represents the identifier of user {@
|
|
176
|
+
* Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
|
|
162
177
|
* you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
|
|
163
178
|
* When the provided sessionId is a number, it's converted to a string. Property sessionId of
|
|
164
|
-
* {@
|
|
179
|
+
* {@link ProxyInfo} is always returned as a type string.
|
|
165
180
|
*
|
|
166
181
|
* All the HTTP requests going through the proxy with the same session identifier
|
|
167
182
|
* will use the same target proxy server (i.e. the same IP address).
|
|
@@ -194,7 +209,7 @@ class ProxyConfiguration extends core_1.ProxyConfiguration {
|
|
|
194
209
|
/**
|
|
195
210
|
* Returns a new proxy URL based on provided configuration options and the `sessionId` parameter.
|
|
196
211
|
* @param [sessionId]
|
|
197
|
-
* Represents the identifier of user {@
|
|
212
|
+
* Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
|
|
198
213
|
* you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
|
|
199
214
|
* When the provided sessionId is a number, it's converted to a string.
|
|
200
215
|
*
|
|
@@ -262,45 +277,25 @@ class ProxyConfiguration extends core_1.ProxyConfiguration {
|
|
|
262
277
|
return urlString.substring(0, urlString.length - 1);
|
|
263
278
|
}
|
|
264
279
|
/**
|
|
265
|
-
*
|
|
280
|
+
* Fetch & set the proxy password from Apify API if an Apify token is provided.
|
|
266
281
|
*/
|
|
282
|
+
// TODO: Make this private
|
|
267
283
|
async _setPasswordIfToken() {
|
|
268
284
|
const token = this.config.get('token');
|
|
269
|
-
if (token)
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
if (actor_js_1.Actor.isAtHome()) {
|
|
277
|
-
throw error;
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
this.log.warning(`Failed to fetch user data based on token, disabling proxy.`, { error });
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
const { password } = proxy;
|
|
285
|
-
if (this.password) {
|
|
286
|
-
if (this.password !== password) {
|
|
287
|
-
this.log.warning('The Apify Proxy password you provided belongs to' +
|
|
288
|
-
' a different user than the Apify token you are using. Are you sure this is correct?');
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
this.password = password;
|
|
293
|
-
}
|
|
285
|
+
if (!token)
|
|
286
|
+
return;
|
|
287
|
+
try {
|
|
288
|
+
const user = await actor_js_1.Actor.apifyClient.user().get();
|
|
289
|
+
this.password = user.proxy?.password;
|
|
294
290
|
}
|
|
295
|
-
|
|
291
|
+
catch (error) {
|
|
296
292
|
if (actor_js_1.Actor.isAtHome()) {
|
|
297
|
-
throw
|
|
298
|
-
`If you add the "${consts_1.APIFY_ENV_VARS.TOKEN}" environment variable, the password will be automatically inferred.`);
|
|
293
|
+
throw error;
|
|
299
294
|
}
|
|
300
295
|
else {
|
|
301
|
-
this.log.warning(`
|
|
302
|
-
|
|
303
|
-
|
|
296
|
+
this.log.warning(`Failed to fetch user data using token`, {
|
|
297
|
+
error,
|
|
298
|
+
});
|
|
304
299
|
}
|
|
305
300
|
}
|
|
306
301
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy_configuration.js","sourceRoot":"","sources":["../src/proxy_configuration.ts"],"names":[],"mappings":"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"}
|