zenrows 2.0.1 → 2.0.2
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/.github/workflows/ci.yml +20 -0
- package/.github/workflows/release.yml +38 -0
- package/dist/index.cjs +17 -22
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +14 -19
- package/package.json +11 -9
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
check:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: pnpm/action-setup@v4
|
|
14
|
+
- uses: actions/setup-node@v4
|
|
15
|
+
with:
|
|
16
|
+
node-version: 20
|
|
17
|
+
cache: pnpm
|
|
18
|
+
- run: pnpm install --frozen-lockfile
|
|
19
|
+
- run: pnpm check
|
|
20
|
+
- run: pnpm test -- --run
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
id-token: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: pnpm/action-setup@v4
|
|
18
|
+
- uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: 24
|
|
21
|
+
registry-url: https://registry.npmjs.org
|
|
22
|
+
cache: pnpm
|
|
23
|
+
- run: pnpm install --frozen-lockfile
|
|
24
|
+
- name: Verify tag matches package.json version
|
|
25
|
+
if: github.event_name == 'release'
|
|
26
|
+
run: |
|
|
27
|
+
TAG="${GITHUB_REF_NAME#v}"
|
|
28
|
+
PKG=$(node -p "require('./package.json').version")
|
|
29
|
+
if [ "$TAG" != "$PKG" ]; then
|
|
30
|
+
echo "tag $GITHUB_REF_NAME ($TAG) does not match package.json version $PKG"
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
- run: pnpm check
|
|
34
|
+
- run: pnpm test -- --run
|
|
35
|
+
- run: pnpm build
|
|
36
|
+
- run: npm publish --provenance --access public
|
|
37
|
+
env:
|
|
38
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/dist/index.cjs
CHANGED
|
@@ -28,18 +28,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
30
|
// src/index.ts
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
33
|
ZenRows: () => ZenRows
|
|
34
34
|
});
|
|
35
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(index_exports);
|
|
36
36
|
var import_fastq = __toESM(require("fastq"), 1);
|
|
37
37
|
var import_fetch_retry = __toESM(require("fetch-retry"), 1);
|
|
38
38
|
|
|
39
39
|
// package.json
|
|
40
40
|
var package_default = {
|
|
41
41
|
name: "zenrows",
|
|
42
|
-
version: "2.0.
|
|
42
|
+
version: "2.0.2",
|
|
43
43
|
description: "ZenRows Node SDK",
|
|
44
44
|
main: "./dist/index.cjs",
|
|
45
45
|
module: "./dist/index.js",
|
|
@@ -57,7 +57,9 @@ var package_default = {
|
|
|
57
57
|
},
|
|
58
58
|
scripts: {
|
|
59
59
|
build: "tsup src/index.ts --dts --format cjs,esm --clean",
|
|
60
|
-
test: "vitest"
|
|
60
|
+
test: "vitest",
|
|
61
|
+
format: "biome format --write .",
|
|
62
|
+
check: "biome check ."
|
|
61
63
|
},
|
|
62
64
|
keywords: ["sdk", "zenrows", "scraping"],
|
|
63
65
|
author: "ZenRows",
|
|
@@ -71,15 +73,15 @@ var package_default = {
|
|
|
71
73
|
license: "MIT",
|
|
72
74
|
devDependencies: {
|
|
73
75
|
"@biomejs/biome": "1.8.1",
|
|
74
|
-
"@types/async-retry": "^1.4.
|
|
75
|
-
"@types/node": "^20.
|
|
76
|
-
msw: "^2.
|
|
77
|
-
tsup: "^8.1
|
|
78
|
-
typescript: "^5.
|
|
79
|
-
vitest: "^1.6.
|
|
76
|
+
"@types/async-retry": "^1.4.9",
|
|
77
|
+
"@types/node": "^20.19.39",
|
|
78
|
+
msw: "^2.13.4",
|
|
79
|
+
tsup: "^8.5.1",
|
|
80
|
+
typescript: "^5.9.3",
|
|
81
|
+
vitest: "^1.6.1"
|
|
80
82
|
},
|
|
81
83
|
dependencies: {
|
|
82
|
-
fastq: "^1.
|
|
84
|
+
fastq: "^1.20.1",
|
|
83
85
|
"fetch-retry": "^6.0.0"
|
|
84
86
|
}
|
|
85
87
|
};
|
|
@@ -95,16 +97,12 @@ var ZenRows = class {
|
|
|
95
97
|
this.apiKey = apiKey;
|
|
96
98
|
this.clientConfig = clientConfig;
|
|
97
99
|
const retries = this.clientConfig.retries ?? 0;
|
|
98
|
-
this.queue = import_fastq.default.promise(
|
|
99
|
-
this,
|
|
100
|
-
this.worker,
|
|
101
|
-
this.clientConfig.concurrency ?? 5
|
|
102
|
-
);
|
|
100
|
+
this.queue = import_fastq.default.promise(this, this.worker, this.clientConfig.concurrency ?? 5);
|
|
103
101
|
this.fetchWithRetry = (0, import_fetch_retry.default)(fetch, {
|
|
104
102
|
retryDelay: (attempt) => 2 ** attempt * 1e3,
|
|
105
103
|
// retryOn: [422, 503, 504],
|
|
106
104
|
retryOn: (attempt, error, response) => {
|
|
107
|
-
if (attempt
|
|
105
|
+
if (attempt >= retries) {
|
|
108
106
|
return false;
|
|
109
107
|
}
|
|
110
108
|
if (error !== null || response?.status === 422 || response?.status === 503 || response?.status === 504) {
|
|
@@ -181,10 +179,7 @@ var ZenRows = class {
|
|
|
181
179
|
fetchOptions.body = String(data);
|
|
182
180
|
}
|
|
183
181
|
}
|
|
184
|
-
const response = await this.fetchWithRetry(
|
|
185
|
-
`${API_URL}?${params.toString()}`,
|
|
186
|
-
fetchOptions
|
|
187
|
-
);
|
|
182
|
+
const response = await this.fetchWithRetry(`${API_URL}?${params.toString()}`, fetchOptions);
|
|
188
183
|
return response;
|
|
189
184
|
}
|
|
190
185
|
};
|
package/dist/index.d.cts
CHANGED
|
@@ -30,8 +30,8 @@ declare class ZenRows {
|
|
|
30
30
|
readonly clientConfig: ClientConfig;
|
|
31
31
|
readonly queue: fastq.queueAsPromised<{
|
|
32
32
|
url: string;
|
|
33
|
-
method?: HttpMethods
|
|
34
|
-
config?: ZenRowsConfig
|
|
33
|
+
method?: HttpMethods;
|
|
34
|
+
config?: ZenRowsConfig;
|
|
35
35
|
headers: Headers;
|
|
36
36
|
data?: unknown;
|
|
37
37
|
}, Response>;
|
package/dist/index.d.ts
CHANGED
|
@@ -30,8 +30,8 @@ declare class ZenRows {
|
|
|
30
30
|
readonly clientConfig: ClientConfig;
|
|
31
31
|
readonly queue: fastq.queueAsPromised<{
|
|
32
32
|
url: string;
|
|
33
|
-
method?: HttpMethods
|
|
34
|
-
config?: ZenRowsConfig
|
|
33
|
+
method?: HttpMethods;
|
|
34
|
+
config?: ZenRowsConfig;
|
|
35
35
|
headers: Headers;
|
|
36
36
|
data?: unknown;
|
|
37
37
|
}, Response>;
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import fetchRetry from "fetch-retry";
|
|
|
5
5
|
// package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "zenrows",
|
|
8
|
-
version: "2.0.
|
|
8
|
+
version: "2.0.2",
|
|
9
9
|
description: "ZenRows Node SDK",
|
|
10
10
|
main: "./dist/index.cjs",
|
|
11
11
|
module: "./dist/index.js",
|
|
@@ -23,7 +23,9 @@ var package_default = {
|
|
|
23
23
|
},
|
|
24
24
|
scripts: {
|
|
25
25
|
build: "tsup src/index.ts --dts --format cjs,esm --clean",
|
|
26
|
-
test: "vitest"
|
|
26
|
+
test: "vitest",
|
|
27
|
+
format: "biome format --write .",
|
|
28
|
+
check: "biome check ."
|
|
27
29
|
},
|
|
28
30
|
keywords: ["sdk", "zenrows", "scraping"],
|
|
29
31
|
author: "ZenRows",
|
|
@@ -37,15 +39,15 @@ var package_default = {
|
|
|
37
39
|
license: "MIT",
|
|
38
40
|
devDependencies: {
|
|
39
41
|
"@biomejs/biome": "1.8.1",
|
|
40
|
-
"@types/async-retry": "^1.4.
|
|
41
|
-
"@types/node": "^20.
|
|
42
|
-
msw: "^2.
|
|
43
|
-
tsup: "^8.1
|
|
44
|
-
typescript: "^5.
|
|
45
|
-
vitest: "^1.6.
|
|
42
|
+
"@types/async-retry": "^1.4.9",
|
|
43
|
+
"@types/node": "^20.19.39",
|
|
44
|
+
msw: "^2.13.4",
|
|
45
|
+
tsup: "^8.5.1",
|
|
46
|
+
typescript: "^5.9.3",
|
|
47
|
+
vitest: "^1.6.1"
|
|
46
48
|
},
|
|
47
49
|
dependencies: {
|
|
48
|
-
fastq: "^1.
|
|
50
|
+
fastq: "^1.20.1",
|
|
49
51
|
"fetch-retry": "^6.0.0"
|
|
50
52
|
}
|
|
51
53
|
};
|
|
@@ -61,16 +63,12 @@ var ZenRows = class {
|
|
|
61
63
|
this.apiKey = apiKey;
|
|
62
64
|
this.clientConfig = clientConfig;
|
|
63
65
|
const retries = this.clientConfig.retries ?? 0;
|
|
64
|
-
this.queue = fastq.promise(
|
|
65
|
-
this,
|
|
66
|
-
this.worker,
|
|
67
|
-
this.clientConfig.concurrency ?? 5
|
|
68
|
-
);
|
|
66
|
+
this.queue = fastq.promise(this, this.worker, this.clientConfig.concurrency ?? 5);
|
|
69
67
|
this.fetchWithRetry = fetchRetry(fetch, {
|
|
70
68
|
retryDelay: (attempt) => 2 ** attempt * 1e3,
|
|
71
69
|
// retryOn: [422, 503, 504],
|
|
72
70
|
retryOn: (attempt, error, response) => {
|
|
73
|
-
if (attempt
|
|
71
|
+
if (attempt >= retries) {
|
|
74
72
|
return false;
|
|
75
73
|
}
|
|
76
74
|
if (error !== null || response?.status === 422 || response?.status === 503 || response?.status === 504) {
|
|
@@ -147,10 +145,7 @@ var ZenRows = class {
|
|
|
147
145
|
fetchOptions.body = String(data);
|
|
148
146
|
}
|
|
149
147
|
}
|
|
150
|
-
const response = await this.fetchWithRetry(
|
|
151
|
-
`${API_URL}?${params.toString()}`,
|
|
152
|
-
fetchOptions
|
|
153
|
-
);
|
|
148
|
+
const response = await this.fetchWithRetry(`${API_URL}?${params.toString()}`, fetchOptions);
|
|
154
149
|
return response;
|
|
155
150
|
}
|
|
156
151
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zenrows",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "ZenRows Node SDK",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build": "tsup src/index.ts --dts --format cjs,esm --clean",
|
|
21
|
-
"test": "vitest"
|
|
21
|
+
"test": "vitest",
|
|
22
|
+
"format": "biome format --write .",
|
|
23
|
+
"check": "biome check ."
|
|
22
24
|
},
|
|
23
25
|
"keywords": ["sdk", "zenrows", "scraping"],
|
|
24
26
|
"author": "ZenRows",
|
|
@@ -32,15 +34,15 @@
|
|
|
32
34
|
"license": "MIT",
|
|
33
35
|
"devDependencies": {
|
|
34
36
|
"@biomejs/biome": "1.8.1",
|
|
35
|
-
"@types/async-retry": "^1.4.
|
|
36
|
-
"@types/node": "^20.
|
|
37
|
-
"msw": "^2.
|
|
38
|
-
"tsup": "^8.1
|
|
39
|
-
"typescript": "^5.
|
|
40
|
-
"vitest": "^1.6.
|
|
37
|
+
"@types/async-retry": "^1.4.9",
|
|
38
|
+
"@types/node": "^20.19.39",
|
|
39
|
+
"msw": "^2.13.4",
|
|
40
|
+
"tsup": "^8.5.1",
|
|
41
|
+
"typescript": "^5.9.3",
|
|
42
|
+
"vitest": "^1.6.1"
|
|
41
43
|
},
|
|
42
44
|
"dependencies": {
|
|
43
|
-
"fastq": "^1.
|
|
45
|
+
"fastq": "^1.20.1",
|
|
44
46
|
"fetch-retry": "^6.0.0"
|
|
45
47
|
}
|
|
46
48
|
}
|