@scrapa/sdk 0.1.3 → 0.1.4
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 +26 -0
- package/dist/client.d.ts +30 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +33 -1
- package/dist/client.js.map +1 -1
- package/dist/generated/contract.d.ts +2 -1
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +5 -0
- package/dist/generated/contract.js.map +1 -1
- package/dist/generated/operations.d.ts +1 -1
- package/dist/generated/operations.d.ts.map +1 -1
- package/dist/generated/operations.js +43 -8
- package/dist/generated/operations.js.map +1 -1
- package/dist/generated/params.d.ts +54 -0
- package/dist/generated/params.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +58 -2
- package/src/generated/contract.ts +5 -0
- package/src/generated/operations.ts +59 -8
- package/src/generated/params.ts +54 -0
- package/src/index.ts +1 -1
package/README.md
CHANGED
|
@@ -47,6 +47,32 @@ const shot = await scrapa.scrape({ url: "https://stripe.com", formats: ["screens
|
|
|
47
47
|
await writeFile("stripe.png", Buffer.from(shot.screenshot!, "base64"));
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Where calls come from
|
|
51
|
+
|
|
52
|
+
Every call leaves through a residential address in the United States unless it says
|
|
53
|
+
otherwise. Name a country, and inside it a state or a city, on any call:
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
await scrapa.scrape({
|
|
57
|
+
url: "https://www.mercadolivre.com.br",
|
|
58
|
+
proxy: { country: "br", state: "paraná", city: "curitiba" },
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Or say it once for the whole client. A call's own `proxy` still wins, field by field:
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
const scrapa = new Scrapa({
|
|
66
|
+
apiKey: process.env.SCRAPA_API_KEY!,
|
|
67
|
+
defaults: { proxy: { country: "br" } },
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Write places out in full: `são paulo`, not `sp`. A city is not exact: most calls leave from it,
|
|
72
|
+
a few from elsewhere in its state. A small one can have nobody free right now. That answers
|
|
73
|
+
`PROXY_REFUSED` at no charge, and asking for the state or the country alone gets through. `search()` reads a whole country's results, so it
|
|
74
|
+
takes the default country and leaves a default city out.
|
|
75
|
+
|
|
50
76
|
## Searching the web
|
|
51
77
|
|
|
52
78
|
`search()` runs a real search and hands back results we read ourselves. That is not a
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type UsageMeta } from "./generated/contract.js";
|
|
1
|
+
import { type ProxyPool, type UsageMeta } from "./generated/contract.js";
|
|
2
2
|
import { GeneratedOperations } from "./generated/operations.js";
|
|
3
3
|
export interface ScrapaOptions {
|
|
4
4
|
/** An `sc_` key from the console. */
|
|
@@ -12,6 +12,22 @@ export interface ScrapaOptions {
|
|
|
12
12
|
maxRetries?: number;
|
|
13
13
|
/** Swap the fetch implementation (tests, a proxy, a custom agent). */
|
|
14
14
|
fetch?: typeof globalThis.fetch;
|
|
15
|
+
/** What every call uses when it does not say. */
|
|
16
|
+
defaults?: {
|
|
17
|
+
/** Where calls leave from unless they name their own: `{ country: "br" }` makes every
|
|
18
|
+
* scrape, batch, session and search Brazilian. A call's own `proxy` wins field by
|
|
19
|
+
* field. Each call takes only the fields it accepts, so search reads the country and
|
|
20
|
+
* leaves a default city out. */
|
|
21
|
+
proxy?: ProxyDefaults;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** The proxy fields a client can default. */
|
|
25
|
+
export interface ProxyDefaults {
|
|
26
|
+
pool?: ProxyPool;
|
|
27
|
+
server?: string;
|
|
28
|
+
country?: string;
|
|
29
|
+
state?: string;
|
|
30
|
+
city?: string;
|
|
15
31
|
}
|
|
16
32
|
/** What a generated method hands the transport. */
|
|
17
33
|
export interface RequestSpec {
|
|
@@ -20,6 +36,9 @@ export interface RequestSpec {
|
|
|
20
36
|
path: string;
|
|
21
37
|
/** Safe to repeat: a refunded failure can be retried without charging twice. */
|
|
22
38
|
idempotent: boolean;
|
|
39
|
+
/** The fields of this call's `proxy` block — where `defaults.proxy` may go. Absent on a
|
|
40
|
+
* call that leaves from nowhere. */
|
|
41
|
+
proxy?: readonly string[];
|
|
23
42
|
}
|
|
24
43
|
/** Per-call overrides. */
|
|
25
44
|
export interface RequestOptions {
|
|
@@ -32,12 +51,22 @@ export interface RequestOptions {
|
|
|
32
51
|
* rather than a mutable `lastUsage` that two concurrent scrapes would fight over. */
|
|
33
52
|
onUsage?: (usage: UsageMeta) => void;
|
|
34
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* The call's own `proxy` over the client's defaults, keeping only the fields this call takes.
|
|
56
|
+
*
|
|
57
|
+
* Two pairs move together, because half of one from each side is a request nobody made. A
|
|
58
|
+
* call that names `pool` or `server` keeps neither default: the managed pool asked for
|
|
59
|
+
* explicitly must not pick up a default proxy URL. A call that names its own `country`
|
|
60
|
+
* keeps no default `state` or `city`: a default Curitiba is not in the United States.
|
|
61
|
+
*/
|
|
62
|
+
export declare function withProxyDefaults(params: object, defaults: ProxyDefaults | undefined, accepts: readonly string[] | undefined): object;
|
|
35
63
|
export declare class Scrapa extends GeneratedOperations {
|
|
36
64
|
private readonly apiKey;
|
|
37
65
|
private readonly baseUrl;
|
|
38
66
|
private readonly timeout;
|
|
39
67
|
private readonly maxRetries;
|
|
40
68
|
private readonly fetchImpl;
|
|
69
|
+
private readonly proxyDefaults;
|
|
41
70
|
constructor(options: ScrapaOptions | string);
|
|
42
71
|
protected request<T>(spec: RequestSpec, params?: object, opts?: RequestOptions): Promise<T>;
|
|
43
72
|
/** How long to wait before repeating a call, or undefined to give up now. */
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,EAAoB,mBAAmB,EAAe,MAAM,2BAA2B,CAAC;AAE/F,MAAM,WAAW,aAAa;IAC1B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;wEACoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,EAAE;QACP;;;yCAGiC;QACjC,KAAK,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;CACL;AAED,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mDAAmD;AACnD,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB;yCACqC;IACrC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACxC;AAkCD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACvC,MAAM,CAmBR;AAED,qBAAa,MAAO,SAAQ,mBAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;gBAE9C,OAAO,EAAE,aAAa,GAAG,MAAM;cAsB3B,OAAO,CAAC,CAAC,EACrB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,MAAW,EACnB,IAAI,GAAE,cAAmB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAeb,6EAA6E;IAC7E,OAAO,CAAC,UAAU;YAcJ,OAAO;CAqFxB"}
|
package/dist/client.js
CHANGED
|
@@ -41,12 +41,42 @@ function numberHeader(response, name) {
|
|
|
41
41
|
return Number.isFinite(value) ? value : undefined;
|
|
42
42
|
}
|
|
43
43
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
44
|
+
/**
|
|
45
|
+
* The call's own `proxy` over the client's defaults, keeping only the fields this call takes.
|
|
46
|
+
*
|
|
47
|
+
* Two pairs move together, because half of one from each side is a request nobody made. A
|
|
48
|
+
* call that names `pool` or `server` keeps neither default: the managed pool asked for
|
|
49
|
+
* explicitly must not pick up a default proxy URL. A call that names its own `country`
|
|
50
|
+
* keeps no default `state` or `city`: a default Curitiba is not in the United States.
|
|
51
|
+
*/
|
|
52
|
+
export function withProxyDefaults(params, defaults, accepts) {
|
|
53
|
+
if (!defaults || !accepts)
|
|
54
|
+
return params;
|
|
55
|
+
const own = "proxy" in params && typeof params.proxy === "object" && params.proxy !== null
|
|
56
|
+
? { ...params.proxy }
|
|
57
|
+
: {};
|
|
58
|
+
const merged = {};
|
|
59
|
+
for (const [key, value] of Object.entries(defaults))
|
|
60
|
+
if (value !== undefined && accepts.includes(key))
|
|
61
|
+
merged[key] = value;
|
|
62
|
+
if (own.pool !== undefined || own.server !== undefined) {
|
|
63
|
+
delete merged.pool;
|
|
64
|
+
delete merged.server;
|
|
65
|
+
}
|
|
66
|
+
if (own.country !== undefined) {
|
|
67
|
+
delete merged.state;
|
|
68
|
+
delete merged.city;
|
|
69
|
+
}
|
|
70
|
+
const proxy = { ...merged, ...own };
|
|
71
|
+
return Object.keys(proxy).length ? { ...params, proxy } : params;
|
|
72
|
+
}
|
|
44
73
|
export class Scrapa extends GeneratedOperations {
|
|
45
74
|
apiKey;
|
|
46
75
|
baseUrl;
|
|
47
76
|
timeout;
|
|
48
77
|
maxRetries;
|
|
49
78
|
fetchImpl;
|
|
79
|
+
proxyDefaults;
|
|
50
80
|
constructor(options) {
|
|
51
81
|
super();
|
|
52
82
|
const opts = typeof options === "string" ? { apiKey: options } : options;
|
|
@@ -62,12 +92,14 @@ export class Scrapa extends GeneratedOperations {
|
|
|
62
92
|
throw new TypeError("scrapa: no global fetch — use Node 20+, or pass `fetch` in the options.");
|
|
63
93
|
// Bound: an unbound global fetch throws "Illegal invocation" in browsers.
|
|
64
94
|
this.fetchImpl = opts.fetch ?? impl.bind(globalThis);
|
|
95
|
+
this.proxyDefaults = opts.defaults?.proxy;
|
|
65
96
|
}
|
|
66
97
|
async request(spec, params = {}, opts = {}) {
|
|
67
98
|
const retries = spec.idempotent ? this.maxRetries : 0;
|
|
99
|
+
const withDefaults = withProxyDefaults(params, this.proxyDefaults, spec.proxy);
|
|
68
100
|
for (let attempt = 0;; attempt++) {
|
|
69
101
|
try {
|
|
70
|
-
return await this.attempt(spec,
|
|
102
|
+
return await this.attempt(spec, withDefaults, opts);
|
|
71
103
|
}
|
|
72
104
|
catch (error) {
|
|
73
105
|
if (!(error instanceof ScrapaError) || attempt >= retries)
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,YAAY;AACZ,EAAE;AACF,0FAA0F;AAC1F,uFAAuF;AACvF,4FAA4F;AAC5F,yFAAyF;AACzF,2FAA2F;AAC3F,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* `AUP_DENIED` are "our policy said no" (retrying cannot help, change the URL); a 5xx is
|
|
10
10
|
* "we broke it" (retry as-is, already refunded).
|
|
11
11
|
*/
|
|
12
|
-
export declare const ERROR_CODES: readonly ["VALIDATION_ERROR", "INVALID_URL", "SSRF_DENIED", "UNAUTHORIZED", "INVALID_TOKEN", "PLAN_GATE", "FORBIDDEN", "AUP_DENIED", "NOT_FOUND", "SESSION_NOT_FOUND", "CONFLICT", "PAYLOAD_TOO_LARGE", "UPSTREAM_BLOCKED", "NAV_TIMEOUT", "RATE_LIMIT_EXCEEDED", "QUOTA_EXCEEDED", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BILLING_UNAVAILABLE"];
|
|
12
|
+
export declare const ERROR_CODES: readonly ["VALIDATION_ERROR", "INVALID_URL", "SSRF_DENIED", "UNAUTHORIZED", "INVALID_TOKEN", "PLAN_GATE", "FORBIDDEN", "AUP_DENIED", "NOT_FOUND", "SESSION_NOT_FOUND", "CONFLICT", "PAYLOAD_TOO_LARGE", "UPSTREAM_BLOCKED", "NAV_TIMEOUT", "PROXY_REFUSED", "RATE_LIMIT_EXCEEDED", "QUOTA_EXCEEDED", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BILLING_UNAVAILABLE"];
|
|
13
13
|
export type ErrorCode = (typeof ERROR_CODES)[number];
|
|
14
14
|
/** The status each code answers with. The server's error factory, the SDK's fallback and
|
|
15
15
|
* the docs' errors table all read this one map — three copies could drift, one cannot. */
|
|
@@ -28,6 +28,7 @@ export declare const ERROR_STATUS: {
|
|
|
28
28
|
readonly PAYLOAD_TOO_LARGE: 413;
|
|
29
29
|
readonly UPSTREAM_BLOCKED: 422;
|
|
30
30
|
readonly NAV_TIMEOUT: 422;
|
|
31
|
+
readonly PROXY_REFUSED: 422;
|
|
31
32
|
readonly RATE_LIMIT_EXCEEDED: 429;
|
|
32
33
|
readonly QUOTA_EXCEEDED: 429;
|
|
33
34
|
readonly INTERNAL_ERROR: 500;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/generated/contract.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/generated/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,10 @@ export const ERROR_CODES = [
|
|
|
38
38
|
// identical refusal, so the fix is a different engine/pool/country, not a retry.
|
|
39
39
|
"UPSTREAM_BLOCKED", // 422 — an anti-bot wall, a captcha, a hard 403 from the target
|
|
40
40
|
"NAV_TIMEOUT", // 422 — the page never reached a usable state inside the budget
|
|
41
|
+
// The exit proxy would not place the call, so the site never saw it: YOUR proxy refused
|
|
42
|
+
// or did not answer, or the managed pool has no exit in the place you asked for. Free,
|
|
43
|
+
// and no colour — the fix is in the request (the proxy, the credentials, a wider place).
|
|
44
|
+
"PROXY_REFUSED", // 422 — details {reason: "no_exit" | "refused" | "unreachable", place?, status?}
|
|
41
45
|
"RATE_LIMIT_EXCEEDED", // 429 — the per-minute burst bucket; Retry-After + details {limit}
|
|
42
46
|
"QUOTA_EXCEEDED", // 429 — a durable bound that WAITING clears; details {scope, limit, resetAt}
|
|
43
47
|
"INTERNAL_ERROR", // 500 — we broke it; the body is always generic, the cause stays server-side
|
|
@@ -61,6 +65,7 @@ export const ERROR_STATUS = {
|
|
|
61
65
|
PAYLOAD_TOO_LARGE: 413,
|
|
62
66
|
UPSTREAM_BLOCKED: 422,
|
|
63
67
|
NAV_TIMEOUT: 422,
|
|
68
|
+
PROXY_REFUSED: 422,
|
|
64
69
|
RATE_LIMIT_EXCEEDED: 429,
|
|
65
70
|
QUOTA_EXCEEDED: 429,
|
|
66
71
|
INTERNAL_ERROR: 500,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/generated/contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/generated/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { RequestOptions, RequestSpec } from "../client.js";
|
|
|
2
2
|
import type { BatchDto, BatchQuoteDto, CreatedBatchDto, LiveSessionDto, ScrapeQuoteDto, ScrapeResultDto, SearchResultDto, SessionDto, SessionQuoteDto, UsageDto } from "./contract.js";
|
|
3
3
|
import type { CancelBatchParams, CloseSessionParams, CreateBatchParams, CreateSessionParams, GetBatchParams, GetSessionParams, ListBatchesParams, ListSessionsParams, QuoteBatchParams, QuoteScrapeParams, QuoteSessionParams, ScrapeParams, SearchParams } from "./params.js";
|
|
4
4
|
/** The version this client reports in `x-scrapa-client`. */
|
|
5
|
-
export declare const SDK_VERSION = "0.1.
|
|
5
|
+
export declare const SDK_VERSION = "0.1.4";
|
|
6
6
|
/** The hosted API. */
|
|
7
7
|
export declare const DEFAULT_BASE_URL = "https://api.scrapa.app/v1";
|
|
8
8
|
export declare abstract class GeneratedOperations {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/generated/operations.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EACR,QAAQ,EACR,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,eAAe,EACf,QAAQ,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACf,MAAM,aAAa,CAAC;AAErB,4DAA4D;AAC5D,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,sBAAsB;AACtB,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D,8BAAsB,mBAAmB;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EACxB,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,CAAC,CAAC;IAEb;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/generated/operations.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EACR,QAAQ,EACR,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,eAAe,EACf,QAAQ,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACf,MAAM,aAAa,CAAC;AAErB,4DAA4D;AAC5D,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,sBAAsB;AACtB,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D,8BAAsB,mBAAmB;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EACxB,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,CAAC,CAAC;IAEb;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAa7E;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAahF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAa7E,QAAQ,CAAC,OAAO;QACZ;;;;;;;;;;;;;;;WAeG;yBACc,iBAAiB,SAAS,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;QAWpF;;;;;;;;;;;WAWG;wBACa,gBAAgB,SAAS,cAAc,KAAG,OAAO,CAAC,aAAa,CAAC;QAWhF;;;;;;;;;WASG;wBACa,iBAAiB,SAAS,cAAc,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE9E;;;;;;;;;;;;;;WAcG;sBACW,cAAc,SAAS,cAAc,KAAG,OAAO,CAAC,QAAQ,CAAC;QAEvE;;;;;;;;;;;WAWG;yBACc,iBAAiB,SAAS,cAAc,KAAG,OAAO,CAAC,QAAQ,CAAC;MAM/E;IAEF,QAAQ,CAAC,QAAQ;QACb;;;;;;;;;;;;;;;;WAgBG;0BACe,mBAAmB,SAAS,cAAc,KAAG,OAAO,CAAC,cAAc,CAAC;QAWtF;;;;;;;;;;WAUG;yBACc,kBAAkB,SAAS,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;QAWrF;;;;;;;;;WASG;wBACa,kBAAkB,SAAS,cAAc,KAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAEjF;;;;;;;;;;WAUG;sBACW,gBAAgB,SAAS,cAAc,KAAG,OAAO,CAAC,UAAU,CAAC;QAE3E;;;;;;;;;;;WAWG;wBACa,kBAAkB,SAAS,cAAc,KAAG,OAAO,CAAC,UAAU,CAAC;MAMjF;IAEF,QAAQ,CAAC,KAAK;QACV;;;;;;;;;;WAUG;qBACU,cAAc,KAAG,OAAO,CAAC,QAAQ,CAAC;MAEjD;CACL"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// One method per capability, grouped the way the docs group them, returning the
|
|
5
5
|
// DTO the operation declares. `Scrapa` in ../client.ts supplies request().
|
|
6
6
|
/** The version this client reports in `x-scrapa-client`. */
|
|
7
|
-
export const SDK_VERSION = "0.1.
|
|
7
|
+
export const SDK_VERSION = "0.1.4";
|
|
8
8
|
/** The hosted API. */
|
|
9
9
|
export const DEFAULT_BASE_URL = "https://api.scrapa.app/v1";
|
|
10
10
|
export class GeneratedOperations {
|
|
@@ -25,7 +25,12 @@ export class GeneratedOperations {
|
|
|
25
25
|
* `POST /v1/scrape`
|
|
26
26
|
*/
|
|
27
27
|
scrape(params, opts) {
|
|
28
|
-
return this.request({
|
|
28
|
+
return this.request({
|
|
29
|
+
method: "POST",
|
|
30
|
+
path: "/scrape",
|
|
31
|
+
idempotent: true,
|
|
32
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
33
|
+
}, params, opts);
|
|
29
34
|
}
|
|
30
35
|
/**
|
|
31
36
|
* Price a scrape
|
|
@@ -40,7 +45,12 @@ export class GeneratedOperations {
|
|
|
40
45
|
* `POST /v1/scrape/quote`
|
|
41
46
|
*/
|
|
42
47
|
quote(params, opts) {
|
|
43
|
-
return this.request({
|
|
48
|
+
return this.request({
|
|
49
|
+
method: "POST",
|
|
50
|
+
path: "/scrape/quote",
|
|
51
|
+
idempotent: true,
|
|
52
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
53
|
+
}, params, opts);
|
|
44
54
|
}
|
|
45
55
|
/**
|
|
46
56
|
* Search the web
|
|
@@ -60,7 +70,12 @@ export class GeneratedOperations {
|
|
|
60
70
|
* `POST /v1/search`
|
|
61
71
|
*/
|
|
62
72
|
search(params, opts) {
|
|
63
|
-
return this.request({
|
|
73
|
+
return this.request({
|
|
74
|
+
method: "POST",
|
|
75
|
+
path: "/search",
|
|
76
|
+
idempotent: true,
|
|
77
|
+
proxy: ["pool", "server", "country"],
|
|
78
|
+
}, params, opts);
|
|
64
79
|
}
|
|
65
80
|
batches = {
|
|
66
81
|
/**
|
|
@@ -79,7 +94,12 @@ export class GeneratedOperations {
|
|
|
79
94
|
*
|
|
80
95
|
* `POST /v1/batches`
|
|
81
96
|
*/
|
|
82
|
-
create: (params, opts) => this.request({
|
|
97
|
+
create: (params, opts) => this.request({
|
|
98
|
+
method: "POST",
|
|
99
|
+
path: "/batches",
|
|
100
|
+
idempotent: false,
|
|
101
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
102
|
+
}, params, opts),
|
|
83
103
|
/**
|
|
84
104
|
* Price a batch
|
|
85
105
|
*
|
|
@@ -92,7 +112,12 @@ export class GeneratedOperations {
|
|
|
92
112
|
*
|
|
93
113
|
* `POST /v1/batches/quote`
|
|
94
114
|
*/
|
|
95
|
-
quote: (params, opts) => this.request({
|
|
115
|
+
quote: (params, opts) => this.request({
|
|
116
|
+
method: "POST",
|
|
117
|
+
path: "/batches/quote",
|
|
118
|
+
idempotent: true,
|
|
119
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
120
|
+
}, params, opts),
|
|
96
121
|
/**
|
|
97
122
|
* List your batches
|
|
98
123
|
*
|
|
@@ -152,7 +177,12 @@ export class GeneratedOperations {
|
|
|
152
177
|
*
|
|
153
178
|
* `POST /v1/sessions`
|
|
154
179
|
*/
|
|
155
|
-
create: (params, opts) => this.request({
|
|
180
|
+
create: (params, opts) => this.request({
|
|
181
|
+
method: "POST",
|
|
182
|
+
path: "/sessions",
|
|
183
|
+
idempotent: false,
|
|
184
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
185
|
+
}, params, opts),
|
|
156
186
|
/**
|
|
157
187
|
* Price a session
|
|
158
188
|
*
|
|
@@ -164,7 +194,12 @@ export class GeneratedOperations {
|
|
|
164
194
|
*
|
|
165
195
|
* `POST /v1/sessions/quote`
|
|
166
196
|
*/
|
|
167
|
-
quote: (params, opts) => this.request({
|
|
197
|
+
quote: (params, opts) => this.request({
|
|
198
|
+
method: "POST",
|
|
199
|
+
path: "/sessions/quote",
|
|
200
|
+
idempotent: true,
|
|
201
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
202
|
+
}, params, opts),
|
|
168
203
|
/**
|
|
169
204
|
* List your sessions
|
|
170
205
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/generated/operations.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,0DAA0D;AAC1D,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AA+B3E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,sBAAsB;AACtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D,MAAM,OAAgB,mBAAmB;IAOrC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAoB,EAAE,IAAqB;QAC9C,OAAO,IAAI,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/generated/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,15 @@ export interface ScrapeParams {
|
|
|
35
35
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
36
36
|
* languages follow it on every pool. */
|
|
37
37
|
country?: string;
|
|
38
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
39
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
40
|
+
* Brazil the browser's clock follows the state. */
|
|
41
|
+
state?: string;
|
|
42
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
43
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
44
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
45
|
+
* charge; ask for the state or the country alone. */
|
|
46
|
+
city?: string;
|
|
38
47
|
};
|
|
39
48
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
40
49
|
* turns out to need one. */
|
|
@@ -105,6 +114,15 @@ export interface QuoteScrapeParams {
|
|
|
105
114
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
106
115
|
* languages follow it on every pool. */
|
|
107
116
|
country?: string;
|
|
117
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
118
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
119
|
+
* Brazil the browser's clock follows the state. */
|
|
120
|
+
state?: string;
|
|
121
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
122
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
123
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
124
|
+
* charge; ask for the state or the country alone. */
|
|
125
|
+
city?: string;
|
|
108
126
|
};
|
|
109
127
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
110
128
|
* turns out to need one. */
|
|
@@ -208,6 +226,15 @@ export interface CreateBatchParams {
|
|
|
208
226
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
209
227
|
* languages follow it on every pool. */
|
|
210
228
|
country?: string;
|
|
229
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
230
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
231
|
+
* Brazil the browser's clock follows the state. */
|
|
232
|
+
state?: string;
|
|
233
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
234
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
235
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
236
|
+
* charge; ask for the state or the country alone. */
|
|
237
|
+
city?: string;
|
|
211
238
|
};
|
|
212
239
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
213
240
|
* turns out to need one. */
|
|
@@ -291,6 +318,15 @@ export interface QuoteBatchParams {
|
|
|
291
318
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
292
319
|
* languages follow it on every pool. */
|
|
293
320
|
country?: string;
|
|
321
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
322
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
323
|
+
* Brazil the browser's clock follows the state. */
|
|
324
|
+
state?: string;
|
|
325
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
326
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
327
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
328
|
+
* charge; ask for the state or the country alone. */
|
|
329
|
+
city?: string;
|
|
294
330
|
};
|
|
295
331
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
296
332
|
* turns out to need one. */
|
|
@@ -379,6 +415,15 @@ export interface CreateSessionParams {
|
|
|
379
415
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
380
416
|
* languages follow it on every pool. */
|
|
381
417
|
country?: string;
|
|
418
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
419
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
420
|
+
* Brazil the browser's clock follows the state. */
|
|
421
|
+
state?: string;
|
|
422
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
423
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
424
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
425
|
+
* charge; ask for the state or the country alone. */
|
|
426
|
+
city?: string;
|
|
382
427
|
};
|
|
383
428
|
}
|
|
384
429
|
/** Arguments for `sessions.quote()`. */
|
|
@@ -400,6 +445,15 @@ export interface QuoteSessionParams {
|
|
|
400
445
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
401
446
|
* languages follow it on every pool. */
|
|
402
447
|
country?: string;
|
|
448
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
449
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
450
|
+
* Brazil the browser's clock follows the state. */
|
|
451
|
+
state?: string;
|
|
452
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
453
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
454
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
455
|
+
* charge; ask for the state or the country alone. */
|
|
456
|
+
city?: string;
|
|
403
457
|
};
|
|
404
458
|
}
|
|
405
459
|
/** Arguments for `sessions.list()`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/generated/params.ts"],"names":[],"mappings":"AAMA,gCAAgC;AAChC,MAAM,WAAW,YAAY;IACzB,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ;;+DAE2D;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC;;sGAEkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;sCAGkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;kDAC8C;IAC9C,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC;IAC5E;;;qGAGiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,CAAC,EAAE;QACJ;mFAC2E;QAC3E,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;QAChC;mCAC2B;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;iDAEyC;QACzC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/generated/params.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Scrapa } from "./client.js";
|
|
2
|
-
export type { RequestOptions, RequestSpec, ScrapaOptions } from "./client.js";
|
|
2
|
+
export type { ProxyDefaults, RequestOptions, RequestSpec, ScrapaOptions } from "./client.js";
|
|
3
3
|
export { ScrapaError } from "./errors.js";
|
|
4
4
|
export type { ClientErrorCode, ScrapaErrorInit } from "./errors.js";
|
|
5
5
|
export { DEFAULT_BASE_URL, SDK_VERSION } from "./generated/operations.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE1E,cAAc,yBAAyB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrapa/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Official TypeScript client for scrapa.app — scrape any web page as markdown, HTML, text, links, a screenshot or a PDF, search the web, and drive a real browser over CDP.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://scrapa.app",
|
package/src/client.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// code and lets you decide. The default timeout sits above the API's own ceiling, which is
|
|
9
9
|
// what makes a client-side timeout genuinely exceptional rather than routine.
|
|
10
10
|
import { ScrapaError, type ClientErrorCode } from "./errors.ts";
|
|
11
|
-
import { HEADERS, type ErrorCode, type UsageMeta } from "./generated/contract.ts";
|
|
11
|
+
import { HEADERS, type ErrorCode, type ProxyPool, type UsageMeta } from "./generated/contract.ts";
|
|
12
12
|
import { DEFAULT_BASE_URL, GeneratedOperations, SDK_VERSION } from "./generated/operations.ts";
|
|
13
13
|
|
|
14
14
|
export interface ScrapaOptions {
|
|
@@ -23,6 +23,23 @@ export interface ScrapaOptions {
|
|
|
23
23
|
maxRetries?: number;
|
|
24
24
|
/** Swap the fetch implementation (tests, a proxy, a custom agent). */
|
|
25
25
|
fetch?: typeof globalThis.fetch;
|
|
26
|
+
/** What every call uses when it does not say. */
|
|
27
|
+
defaults?: {
|
|
28
|
+
/** Where calls leave from unless they name their own: `{ country: "br" }` makes every
|
|
29
|
+
* scrape, batch, session and search Brazilian. A call's own `proxy` wins field by
|
|
30
|
+
* field. Each call takes only the fields it accepts, so search reads the country and
|
|
31
|
+
* leaves a default city out. */
|
|
32
|
+
proxy?: ProxyDefaults;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** The proxy fields a client can default. */
|
|
37
|
+
export interface ProxyDefaults {
|
|
38
|
+
pool?: ProxyPool;
|
|
39
|
+
server?: string;
|
|
40
|
+
country?: string;
|
|
41
|
+
state?: string;
|
|
42
|
+
city?: string;
|
|
26
43
|
}
|
|
27
44
|
|
|
28
45
|
/** What a generated method hands the transport. */
|
|
@@ -32,6 +49,9 @@ export interface RequestSpec {
|
|
|
32
49
|
path: string;
|
|
33
50
|
/** Safe to repeat: a refunded failure can be retried without charging twice. */
|
|
34
51
|
idempotent: boolean;
|
|
52
|
+
/** The fields of this call's `proxy` block — where `defaults.proxy` may go. Absent on a
|
|
53
|
+
* call that leaves from nowhere. */
|
|
54
|
+
proxy?: readonly string[];
|
|
35
55
|
}
|
|
36
56
|
|
|
37
57
|
/** Per-call overrides. */
|
|
@@ -78,12 +98,46 @@ function numberHeader(response: Response, name: string): number | undefined {
|
|
|
78
98
|
|
|
79
99
|
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
80
100
|
|
|
101
|
+
/**
|
|
102
|
+
* The call's own `proxy` over the client's defaults, keeping only the fields this call takes.
|
|
103
|
+
*
|
|
104
|
+
* Two pairs move together, because half of one from each side is a request nobody made. A
|
|
105
|
+
* call that names `pool` or `server` keeps neither default: the managed pool asked for
|
|
106
|
+
* explicitly must not pick up a default proxy URL. A call that names its own `country`
|
|
107
|
+
* keeps no default `state` or `city`: a default Curitiba is not in the United States.
|
|
108
|
+
*/
|
|
109
|
+
export function withProxyDefaults(
|
|
110
|
+
params: object,
|
|
111
|
+
defaults: ProxyDefaults | undefined,
|
|
112
|
+
accepts: readonly string[] | undefined,
|
|
113
|
+
): object {
|
|
114
|
+
if (!defaults || !accepts) return params;
|
|
115
|
+
const own: Record<string, unknown> =
|
|
116
|
+
"proxy" in params && typeof params.proxy === "object" && params.proxy !== null
|
|
117
|
+
? { ...params.proxy }
|
|
118
|
+
: {};
|
|
119
|
+
const merged: Record<string, unknown> = {};
|
|
120
|
+
for (const [key, value] of Object.entries(defaults))
|
|
121
|
+
if (value !== undefined && accepts.includes(key)) merged[key] = value;
|
|
122
|
+
if (own.pool !== undefined || own.server !== undefined) {
|
|
123
|
+
delete merged.pool;
|
|
124
|
+
delete merged.server;
|
|
125
|
+
}
|
|
126
|
+
if (own.country !== undefined) {
|
|
127
|
+
delete merged.state;
|
|
128
|
+
delete merged.city;
|
|
129
|
+
}
|
|
130
|
+
const proxy = { ...merged, ...own };
|
|
131
|
+
return Object.keys(proxy).length ? { ...params, proxy } : params;
|
|
132
|
+
}
|
|
133
|
+
|
|
81
134
|
export class Scrapa extends GeneratedOperations {
|
|
82
135
|
private readonly apiKey: string;
|
|
83
136
|
private readonly baseUrl: string;
|
|
84
137
|
private readonly timeout: number;
|
|
85
138
|
private readonly maxRetries: number;
|
|
86
139
|
private readonly fetchImpl: typeof globalThis.fetch;
|
|
140
|
+
private readonly proxyDefaults: ProxyDefaults | undefined;
|
|
87
141
|
|
|
88
142
|
constructor(options: ScrapaOptions | string) {
|
|
89
143
|
super();
|
|
@@ -104,6 +158,7 @@ export class Scrapa extends GeneratedOperations {
|
|
|
104
158
|
);
|
|
105
159
|
// Bound: an unbound global fetch throws "Illegal invocation" in browsers.
|
|
106
160
|
this.fetchImpl = opts.fetch ?? impl.bind(globalThis);
|
|
161
|
+
this.proxyDefaults = opts.defaults?.proxy;
|
|
107
162
|
}
|
|
108
163
|
|
|
109
164
|
protected async request<T>(
|
|
@@ -112,9 +167,10 @@ export class Scrapa extends GeneratedOperations {
|
|
|
112
167
|
opts: RequestOptions = {},
|
|
113
168
|
): Promise<T> {
|
|
114
169
|
const retries = spec.idempotent ? this.maxRetries : 0;
|
|
170
|
+
const withDefaults = withProxyDefaults(params, this.proxyDefaults, spec.proxy);
|
|
115
171
|
for (let attempt = 0; ; attempt++) {
|
|
116
172
|
try {
|
|
117
|
-
return await this.attempt<T>(spec,
|
|
173
|
+
return await this.attempt<T>(spec, withDefaults, opts);
|
|
118
174
|
} catch (error) {
|
|
119
175
|
if (!(error instanceof ScrapaError) || attempt >= retries) throw error;
|
|
120
176
|
const delay = this.retryDelay(error, attempt);
|
|
@@ -40,6 +40,10 @@ export const ERROR_CODES = [
|
|
|
40
40
|
// identical refusal, so the fix is a different engine/pool/country, not a retry.
|
|
41
41
|
"UPSTREAM_BLOCKED", // 422 — an anti-bot wall, a captcha, a hard 403 from the target
|
|
42
42
|
"NAV_TIMEOUT", // 422 — the page never reached a usable state inside the budget
|
|
43
|
+
// The exit proxy would not place the call, so the site never saw it: YOUR proxy refused
|
|
44
|
+
// or did not answer, or the managed pool has no exit in the place you asked for. Free,
|
|
45
|
+
// and no colour — the fix is in the request (the proxy, the credentials, a wider place).
|
|
46
|
+
"PROXY_REFUSED", // 422 — details {reason: "no_exit" | "refused" | "unreachable", place?, status?}
|
|
43
47
|
"RATE_LIMIT_EXCEEDED", // 429 — the per-minute burst bucket; Retry-After + details {limit}
|
|
44
48
|
"QUOTA_EXCEEDED", // 429 — a durable bound that WAITING clears; details {scope, limit, resetAt}
|
|
45
49
|
"INTERNAL_ERROR", // 500 — we broke it; the body is always generic, the cause stays server-side
|
|
@@ -66,6 +70,7 @@ export const ERROR_STATUS = {
|
|
|
66
70
|
PAYLOAD_TOO_LARGE: 413,
|
|
67
71
|
UPSTREAM_BLOCKED: 422,
|
|
68
72
|
NAV_TIMEOUT: 422,
|
|
73
|
+
PROXY_REFUSED: 422,
|
|
69
74
|
RATE_LIMIT_EXCEEDED: 429,
|
|
70
75
|
QUOTA_EXCEEDED: 429,
|
|
71
76
|
INTERNAL_ERROR: 500,
|
|
@@ -34,7 +34,7 @@ import type {
|
|
|
34
34
|
} from "./params.ts";
|
|
35
35
|
|
|
36
36
|
/** The version this client reports in `x-scrapa-client`. */
|
|
37
|
-
export const SDK_VERSION = "0.1.
|
|
37
|
+
export const SDK_VERSION = "0.1.4";
|
|
38
38
|
|
|
39
39
|
/** The hosted API. */
|
|
40
40
|
export const DEFAULT_BASE_URL = "https://api.scrapa.app/v1";
|
|
@@ -63,7 +63,16 @@ export abstract class GeneratedOperations {
|
|
|
63
63
|
* `POST /v1/scrape`
|
|
64
64
|
*/
|
|
65
65
|
scrape(params: ScrapeParams, opts?: RequestOptions): Promise<ScrapeResultDto> {
|
|
66
|
-
return this.request(
|
|
66
|
+
return this.request(
|
|
67
|
+
{
|
|
68
|
+
method: "POST",
|
|
69
|
+
path: "/scrape",
|
|
70
|
+
idempotent: true,
|
|
71
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
72
|
+
},
|
|
73
|
+
params,
|
|
74
|
+
opts,
|
|
75
|
+
);
|
|
67
76
|
}
|
|
68
77
|
|
|
69
78
|
/**
|
|
@@ -80,7 +89,12 @@ export abstract class GeneratedOperations {
|
|
|
80
89
|
*/
|
|
81
90
|
quote(params: QuoteScrapeParams, opts?: RequestOptions): Promise<ScrapeQuoteDto> {
|
|
82
91
|
return this.request(
|
|
83
|
-
{
|
|
92
|
+
{
|
|
93
|
+
method: "POST",
|
|
94
|
+
path: "/scrape/quote",
|
|
95
|
+
idempotent: true,
|
|
96
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
97
|
+
},
|
|
84
98
|
params,
|
|
85
99
|
opts,
|
|
86
100
|
);
|
|
@@ -104,7 +118,16 @@ export abstract class GeneratedOperations {
|
|
|
104
118
|
* `POST /v1/search`
|
|
105
119
|
*/
|
|
106
120
|
search(params: SearchParams, opts?: RequestOptions): Promise<SearchResultDto> {
|
|
107
|
-
return this.request(
|
|
121
|
+
return this.request(
|
|
122
|
+
{
|
|
123
|
+
method: "POST",
|
|
124
|
+
path: "/search",
|
|
125
|
+
idempotent: true,
|
|
126
|
+
proxy: ["pool", "server", "country"],
|
|
127
|
+
},
|
|
128
|
+
params,
|
|
129
|
+
opts,
|
|
130
|
+
);
|
|
108
131
|
}
|
|
109
132
|
|
|
110
133
|
readonly batches = {
|
|
@@ -125,7 +148,16 @@ export abstract class GeneratedOperations {
|
|
|
125
148
|
* `POST /v1/batches`
|
|
126
149
|
*/
|
|
127
150
|
create: (params: CreateBatchParams, opts?: RequestOptions): Promise<CreatedBatchDto> =>
|
|
128
|
-
this.request(
|
|
151
|
+
this.request(
|
|
152
|
+
{
|
|
153
|
+
method: "POST",
|
|
154
|
+
path: "/batches",
|
|
155
|
+
idempotent: false,
|
|
156
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
157
|
+
},
|
|
158
|
+
params,
|
|
159
|
+
opts,
|
|
160
|
+
),
|
|
129
161
|
/**
|
|
130
162
|
* Price a batch
|
|
131
163
|
*
|
|
@@ -140,7 +172,12 @@ export abstract class GeneratedOperations {
|
|
|
140
172
|
*/
|
|
141
173
|
quote: (params: QuoteBatchParams, opts?: RequestOptions): Promise<BatchQuoteDto> =>
|
|
142
174
|
this.request(
|
|
143
|
-
{
|
|
175
|
+
{
|
|
176
|
+
method: "POST",
|
|
177
|
+
path: "/batches/quote",
|
|
178
|
+
idempotent: true,
|
|
179
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
180
|
+
},
|
|
144
181
|
params,
|
|
145
182
|
opts,
|
|
146
183
|
),
|
|
@@ -212,7 +249,16 @@ export abstract class GeneratedOperations {
|
|
|
212
249
|
* `POST /v1/sessions`
|
|
213
250
|
*/
|
|
214
251
|
create: (params?: CreateSessionParams, opts?: RequestOptions): Promise<LiveSessionDto> =>
|
|
215
|
-
this.request(
|
|
252
|
+
this.request(
|
|
253
|
+
{
|
|
254
|
+
method: "POST",
|
|
255
|
+
path: "/sessions",
|
|
256
|
+
idempotent: false,
|
|
257
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
258
|
+
},
|
|
259
|
+
params,
|
|
260
|
+
opts,
|
|
261
|
+
),
|
|
216
262
|
/**
|
|
217
263
|
* Price a session
|
|
218
264
|
*
|
|
@@ -226,7 +272,12 @@ export abstract class GeneratedOperations {
|
|
|
226
272
|
*/
|
|
227
273
|
quote: (params?: QuoteSessionParams, opts?: RequestOptions): Promise<SessionQuoteDto> =>
|
|
228
274
|
this.request(
|
|
229
|
-
{
|
|
275
|
+
{
|
|
276
|
+
method: "POST",
|
|
277
|
+
path: "/sessions/quote",
|
|
278
|
+
idempotent: true,
|
|
279
|
+
proxy: ["pool", "server", "country", "state", "city"],
|
|
280
|
+
},
|
|
230
281
|
params,
|
|
231
282
|
opts,
|
|
232
283
|
),
|
package/src/generated/params.ts
CHANGED
|
@@ -41,6 +41,15 @@ export interface ScrapeParams {
|
|
|
41
41
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
42
42
|
* languages follow it on every pool. */
|
|
43
43
|
country?: string;
|
|
44
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
45
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
46
|
+
* Brazil the browser's clock follows the state. */
|
|
47
|
+
state?: string;
|
|
48
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
49
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
50
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
51
|
+
* charge; ask for the state or the country alone. */
|
|
52
|
+
city?: string;
|
|
44
53
|
};
|
|
45
54
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
46
55
|
* turns out to need one. */
|
|
@@ -112,6 +121,15 @@ export interface QuoteScrapeParams {
|
|
|
112
121
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
113
122
|
* languages follow it on every pool. */
|
|
114
123
|
country?: string;
|
|
124
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
125
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
126
|
+
* Brazil the browser's clock follows the state. */
|
|
127
|
+
state?: string;
|
|
128
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
129
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
130
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
131
|
+
* charge; ask for the state or the country alone. */
|
|
132
|
+
city?: string;
|
|
115
133
|
};
|
|
116
134
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
117
135
|
* turns out to need one. */
|
|
@@ -217,6 +235,15 @@ export interface CreateBatchParams {
|
|
|
217
235
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
218
236
|
* languages follow it on every pool. */
|
|
219
237
|
country?: string;
|
|
238
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
239
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
240
|
+
* Brazil the browser's clock follows the state. */
|
|
241
|
+
state?: string;
|
|
242
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
243
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
244
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
245
|
+
* charge; ask for the state or the country alone. */
|
|
246
|
+
city?: string;
|
|
220
247
|
};
|
|
221
248
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
222
249
|
* turns out to need one. */
|
|
@@ -301,6 +328,15 @@ export interface QuoteBatchParams {
|
|
|
301
328
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
302
329
|
* languages follow it on every pool. */
|
|
303
330
|
country?: string;
|
|
331
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
332
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
333
|
+
* Brazil the browser's clock follows the state. */
|
|
334
|
+
state?: string;
|
|
335
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
336
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
337
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
338
|
+
* charge; ask for the state or the country alone. */
|
|
339
|
+
city?: string;
|
|
304
340
|
};
|
|
305
341
|
/** How to render it. Only the browser engine reads these — with `auto` they apply if the page
|
|
306
342
|
* turns out to need one. */
|
|
@@ -393,6 +429,15 @@ export interface CreateSessionParams {
|
|
|
393
429
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
394
430
|
* languages follow it on every pool. */
|
|
395
431
|
country?: string;
|
|
432
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
433
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
434
|
+
* Brazil the browser's clock follows the state. */
|
|
435
|
+
state?: string;
|
|
436
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
437
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
438
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
439
|
+
* charge; ask for the state or the country alone. */
|
|
440
|
+
city?: string;
|
|
396
441
|
};
|
|
397
442
|
}
|
|
398
443
|
|
|
@@ -415,6 +460,15 @@ export interface QuoteSessionParams {
|
|
|
415
460
|
* unless you say. On the managed pool it also picks the exit; the browser's clock and
|
|
416
461
|
* languages follow it on every pool. */
|
|
417
462
|
country?: string;
|
|
463
|
+
/** A state or region inside `country`, by name: `california`, `são paulo`. Managed pool
|
|
464
|
+
* only. Spell the name out, since an abbreviation like `sp` finds nobody. In the US and
|
|
465
|
+
* Brazil the browser's clock follows the state. */
|
|
466
|
+
state?: string;
|
|
467
|
+
/** A city inside `country`, by name: `curitiba`, `new york`. Managed pool only. Most calls
|
|
468
|
+
* leave from that city and a few from elsewhere in its state, as the pool's own location
|
|
469
|
+
* data places them. A place with nobody in it right now answers `PROXY_REFUSED` at no
|
|
470
|
+
* charge; ask for the state or the country alone. */
|
|
471
|
+
city?: string;
|
|
418
472
|
};
|
|
419
473
|
}
|
|
420
474
|
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// The published surface of `@scrapa/sdk`.
|
|
2
2
|
export { Scrapa } from "./client.ts";
|
|
3
|
-
export type { RequestOptions, RequestSpec, ScrapaOptions } from "./client.ts";
|
|
3
|
+
export type { ProxyDefaults, RequestOptions, RequestSpec, ScrapaOptions } from "./client.ts";
|
|
4
4
|
export { ScrapaError } from "./errors.ts";
|
|
5
5
|
export type { ClientErrorCode, ScrapaErrorInit } from "./errors.ts";
|
|
6
6
|
export { DEFAULT_BASE_URL, SDK_VERSION } from "./generated/operations.ts";
|