@paragraphcms/client 1.5.0 → 1.6.0
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 +127 -55
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +135 -49
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @paragraphcms/client
|
|
2
2
|
|
|
3
3
|
Official TypeScript client for the Paragraph CMS v1 API.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`@paragraphcms/client` is a small, typed SDK built on top of the standard Fetch API. It runs in modern Node.js and server-side runtimes that expose `fetch`, `Headers`, `FormData`, `Blob`, and `AbortController`, including Cloudflare Workers, Next.js route handlers and server actions, AWS Lambda, and similar environments.
|
|
6
6
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
- Full coverage for the current Paragraph CMS v1 API surface.
|
|
10
|
-
- `new Client({ apiKey })` entrypoint with a small, typed SDK.
|
|
11
|
-
- Built-in request queue that rate-limits each client instance to `5 req/s` by default.
|
|
12
|
-
- Runtime-agnostic implementation with no runtime dependencies.
|
|
13
|
-
- First-class TypeScript types for request payloads, responses, list metadata, and API errors.
|
|
14
|
-
- Request cancellation with `AbortSignal`.
|
|
7
|
+
## Quick Start
|
|
15
8
|
|
|
16
|
-
|
|
9
|
+
Install the client with a package manager:
|
|
17
10
|
|
|
18
11
|
```bash
|
|
19
12
|
npm install @paragraphcms/client
|
|
13
|
+
|
|
14
|
+
# Alternative package managers
|
|
15
|
+
pnpm add @paragraphcms/client
|
|
16
|
+
yarn add @paragraphcms/client
|
|
20
17
|
```
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
Create a client instance and call the API:
|
|
23
20
|
|
|
24
21
|
```ts
|
|
25
22
|
import { Client } from "@paragraphcms/client";
|
|
@@ -35,32 +32,71 @@ console.log(pages.meta.total_items);
|
|
|
35
32
|
console.log(page.id);
|
|
36
33
|
```
|
|
37
34
|
|
|
38
|
-
##
|
|
35
|
+
## Table of Contents
|
|
36
|
+
|
|
37
|
+
- [Requirements](#requirements)
|
|
38
|
+
- [Features](#features)
|
|
39
|
+
- [Creating a Client Instance](#creating-a-client-instance)
|
|
40
|
+
- [Configuration](#configuration)
|
|
41
|
+
- [Per-request Options](#per-request-options)
|
|
42
|
+
- [Error Handling](#error-handling)
|
|
43
|
+
- [Rate Limiting](#rate-limiting)
|
|
44
|
+
- [Return Shapes](#return-shapes)
|
|
45
|
+
- [API](#api)
|
|
46
|
+
- [End-to-end Examples](#end-to-end-examples)
|
|
47
|
+
- [Exported Types](#exported-types)
|
|
48
|
+
- [Testing](#testing)
|
|
49
|
+
- [License](#license)
|
|
39
50
|
|
|
40
|
-
|
|
41
|
-
- If you pass `baseUrl: "https://api.paragraphcms.com"`, the client automatically normalizes it to `https://api.paragraphcms.com/v1`.
|
|
42
|
-
- The client uses `x-api-key` authentication by default.
|
|
43
|
-
- Field names in request and response payloads intentionally mirror the HTTP API. That means body/query keys stay in `snake_case`.
|
|
51
|
+
## Requirements
|
|
44
52
|
|
|
45
|
-
|
|
53
|
+
- Node.js `18+` for direct Node.js usage.
|
|
54
|
+
- A runtime with standard Fetch API primitives for edge and serverless usage.
|
|
55
|
+
- ESM support. The package is published as an ES module.
|
|
46
56
|
|
|
47
|
-
|
|
57
|
+
## Features
|
|
48
58
|
|
|
49
|
-
|
|
59
|
+
- Full coverage for the current Paragraph CMS v1 API surface.
|
|
60
|
+
- `new Client({ apiKey })` entrypoint with a compact, typed SDK.
|
|
61
|
+
- Built-in request queue that rate-limits each client instance to `5 req/s` by default.
|
|
62
|
+
- Automatic retries for `429 Too Many Requests` responses using `Retry-After` when available.
|
|
63
|
+
- Runtime-agnostic implementation with no runtime dependencies.
|
|
64
|
+
- First-class TypeScript types for payloads, list metadata, domain models, and API errors.
|
|
65
|
+
- Request cancellation with `AbortSignal`.
|
|
66
|
+
|
|
67
|
+
## Creating a Client Instance
|
|
68
|
+
|
|
69
|
+
`const client = new Client(options)`
|
|
70
|
+
|
|
71
|
+
Initialize the client with your Paragraph API key and optional runtime settings:
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
import { Client, type ClientOptions } from "@paragraphcms/client";
|
|
50
75
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
76
|
+
const config: ClientOptions = {
|
|
77
|
+
apiKey: process.env.PARAGRAPH_API_KEY!,
|
|
78
|
+
timeoutMs: 10_000,
|
|
79
|
+
};
|
|
54
80
|
|
|
55
|
-
|
|
81
|
+
export const client = new Client(config);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
To target a local or staging API, pass `baseUrl` explicitly:
|
|
56
85
|
|
|
57
86
|
```ts
|
|
58
87
|
const client = new Client({
|
|
59
88
|
apiKey: process.env.PARAGRAPH_API_KEY!,
|
|
60
|
-
|
|
89
|
+
baseUrl: "http://localhost:3001",
|
|
61
90
|
});
|
|
62
91
|
```
|
|
63
92
|
|
|
93
|
+
Important runtime notes:
|
|
94
|
+
|
|
95
|
+
- The default API base URL is `https://api.paragraphcms.com/v1`.
|
|
96
|
+
- If you pass `baseUrl: "https://api.paragraphcms.com"` or another origin without `/v1`, the client normalizes it to the `/v1` API root automatically.
|
|
97
|
+
- The client authenticates requests with the `x-api-key` header.
|
|
98
|
+
- Request and response field names intentionally mirror the HTTP API, so payload keys remain in `snake_case`.
|
|
99
|
+
|
|
64
100
|
## Configuration
|
|
65
101
|
|
|
66
102
|
```ts
|
|
@@ -82,7 +118,7 @@ Required. Paragraph CMS organization API key.
|
|
|
82
118
|
|
|
83
119
|
Optional. Defaults to `https://api.paragraphcms.com/v1`.
|
|
84
120
|
|
|
85
|
-
|
|
121
|
+
Accepted examples:
|
|
86
122
|
|
|
87
123
|
- `https://api.paragraphcms.com/v1`
|
|
88
124
|
- `https://api.paragraphcms.com`
|
|
@@ -94,29 +130,34 @@ Optional custom fetch implementation. Useful in tests or custom runtimes.
|
|
|
94
130
|
|
|
95
131
|
### `headers`
|
|
96
132
|
|
|
97
|
-
Optional default headers
|
|
133
|
+
Optional default headers merged into every request.
|
|
98
134
|
|
|
99
135
|
### `timeoutMs`
|
|
100
136
|
|
|
101
|
-
Optional default request timeout in milliseconds. Per-
|
|
137
|
+
Optional default request timeout in milliseconds. Per-request options can override it.
|
|
102
138
|
|
|
103
139
|
### `maxRequestsPerSecond`
|
|
104
140
|
|
|
105
141
|
Optional per-client limiter ceiling. Defaults to `5`.
|
|
106
142
|
|
|
107
|
-
|
|
143
|
+
### `maxRateLimitRetries`
|
|
144
|
+
|
|
145
|
+
Optional maximum number of automatic retries after a `429 Too Many Requests` response. Defaults to `2`. Set to `0` to disable retries.
|
|
108
146
|
|
|
109
|
-
|
|
147
|
+
## Per-request Options
|
|
148
|
+
|
|
149
|
+
Every SDK method accepts an optional final `RequestOptions` argument:
|
|
110
150
|
|
|
111
151
|
```ts
|
|
112
152
|
type RequestOptions = {
|
|
113
153
|
signal?: AbortSignal;
|
|
114
154
|
headers?: HeadersInit;
|
|
115
155
|
timeoutMs?: number;
|
|
156
|
+
maxRateLimitRetries?: number;
|
|
116
157
|
};
|
|
117
158
|
```
|
|
118
159
|
|
|
119
|
-
|
|
160
|
+
For methods that also accept a body or query object, pass request options as the last argument:
|
|
120
161
|
|
|
121
162
|
```ts
|
|
122
163
|
const controller = new AbortController();
|
|
@@ -129,10 +170,14 @@ const page = await client.pages.get("page-id", undefined, {
|
|
|
129
170
|
|
|
130
171
|
## Error Handling
|
|
131
172
|
|
|
132
|
-
The client throws `ParagraphApiError` for non-2xx API responses and `ParagraphClientError` for local runtime
|
|
173
|
+
The client throws `ParagraphApiError` for non-2xx API responses and `ParagraphClientError` for local runtime, timeout, or configuration problems.
|
|
133
174
|
|
|
134
175
|
```ts
|
|
135
|
-
import {
|
|
176
|
+
import {
|
|
177
|
+
Client,
|
|
178
|
+
ParagraphApiError,
|
|
179
|
+
ParagraphClientError,
|
|
180
|
+
} from "@paragraphcms/client";
|
|
136
181
|
|
|
137
182
|
const client = new Client({
|
|
138
183
|
apiKey: process.env.PARAGRAPH_API_KEY!,
|
|
@@ -147,21 +192,48 @@ try {
|
|
|
147
192
|
console.error(error.message);
|
|
148
193
|
console.error(error.details);
|
|
149
194
|
}
|
|
195
|
+
|
|
196
|
+
if (error instanceof ParagraphClientError) {
|
|
197
|
+
console.error(error.message);
|
|
198
|
+
}
|
|
150
199
|
}
|
|
151
200
|
```
|
|
152
201
|
|
|
202
|
+
## Rate Limiting
|
|
203
|
+
|
|
204
|
+
Paragraph CMS v1 is rate-limited to `5 req/s`. Each `Client` instance includes an internal queue that spaces request starts so the instance stays within that budget by default.
|
|
205
|
+
|
|
206
|
+
Important details:
|
|
207
|
+
|
|
208
|
+
- The limiter is per client instance, not global across containers, lambdas, or workers.
|
|
209
|
+
- If your application creates many `Client` instances, each instance keeps its own queue.
|
|
210
|
+
- The safest production pattern is to reuse one shared `Client` instance per process or isolate when possible.
|
|
211
|
+
- If the API still returns `429 Too Many Requests`, the client retries automatically up to `maxRateLimitRetries` times and honors the `Retry-After` header when it is present.
|
|
212
|
+
- Request timeouts include retry wait time and all retry attempts, not just the first fetch.
|
|
213
|
+
|
|
214
|
+
You can lower the per-instance ceiling if needed:
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
const client = new Client({
|
|
218
|
+
apiKey: process.env.PARAGRAPH_API_KEY!,
|
|
219
|
+
maxRequestsPerSecond: 3,
|
|
220
|
+
});
|
|
221
|
+
```
|
|
222
|
+
|
|
153
223
|
## Return Shapes
|
|
154
224
|
|
|
155
225
|
- Single-resource endpoints return the unwrapped `data` payload.
|
|
156
226
|
- Paginated endpoints return `{ data, meta }`.
|
|
157
|
-
- `locales.list()` returns a plain `Locale[]` because the API endpoint
|
|
227
|
+
- `locales.list()` returns a plain `Locale[]` because the underlying API endpoint is not paginated.
|
|
158
228
|
|
|
159
|
-
## API
|
|
229
|
+
## API
|
|
230
|
+
|
|
231
|
+
The SDK closely mirrors the Paragraph CMS HTTP API. Resource names stay familiar and request/response bodies are intentionally left in `snake_case` to match the wire format.
|
|
160
232
|
|
|
161
233
|
### Root
|
|
162
234
|
|
|
163
235
|
```ts
|
|
164
|
-
client.getInfo()
|
|
236
|
+
client.getInfo(options?)
|
|
165
237
|
```
|
|
166
238
|
|
|
167
239
|
Returns the public `/v1` info payload:
|
|
@@ -175,12 +247,14 @@ Returns the public `/v1` info payload:
|
|
|
175
247
|
supported_headers: ["x-api-key", "authorization"],
|
|
176
248
|
authorization_format: "Bearer <api-key>",
|
|
177
249
|
},
|
|
178
|
-
resources: [...]
|
|
250
|
+
resources: [...],
|
|
179
251
|
}
|
|
180
252
|
```
|
|
181
253
|
|
|
182
254
|
### Pages
|
|
183
255
|
|
|
256
|
+
Page listing, detail, mutation, duplication, restore, and translation helpers:
|
|
257
|
+
|
|
184
258
|
```ts
|
|
185
259
|
client.pages.list(query?, options?)
|
|
186
260
|
client.pages.create(body?, options?)
|
|
@@ -192,6 +266,7 @@ client.pages.restore(pageId, options?)
|
|
|
192
266
|
client.pages.permanentlyDelete(pageId, options?)
|
|
193
267
|
client.pages.duplicate(pageId, options?)
|
|
194
268
|
client.pages.createTranslation(pageId, body, options?)
|
|
269
|
+
client.page.get(pageId, query?, options?)
|
|
195
270
|
client.page.getBySlug(slug, options?)
|
|
196
271
|
```
|
|
197
272
|
|
|
@@ -206,10 +281,12 @@ Supported `sort` fields for `pages.list()`:
|
|
|
206
281
|
Notes:
|
|
207
282
|
|
|
208
283
|
- If you omit both `limit` and `page`, `pages.list()` returns the full matching result set.
|
|
284
|
+
- `collection` is a convenience alias for `collection_id` in `pages.list()` queries.
|
|
209
285
|
- `label_id` is passed as `string[]` in the SDK and serialized to the API CSV format automatically.
|
|
210
|
-
- `pages.list()` sends `include_content: false` by default. Set `include_content: true` to include `content` in list
|
|
286
|
+
- `pages.list()` sends `include_content: false` by default. Set `include_content: true` to include `content` in list responses.
|
|
211
287
|
- Page responses should be treated as Tiptap JSON arrays. `content_format` is no longer required in the response shape.
|
|
212
|
-
- `
|
|
288
|
+
- `page.get()` is a short alias for `pages.get()`.
|
|
289
|
+
- `pages.getBySlug()` is an SDK convenience lookup built on top of `pages.list({ slug })`, then fetches the full page details by ID.
|
|
213
290
|
- `page.getBySlug()` is a short alias for the same lookup.
|
|
214
291
|
|
|
215
292
|
### Collections
|
|
@@ -250,7 +327,7 @@ Supported `sort` fields for `media.list()`:
|
|
|
250
327
|
- `File`
|
|
251
328
|
- `Blob`
|
|
252
329
|
- `ArrayBuffer`
|
|
253
|
-
- Typed arrays
|
|
330
|
+
- Typed arrays such as `Uint8Array`
|
|
254
331
|
- Node.js `Buffer`
|
|
255
332
|
|
|
256
333
|
Example:
|
|
@@ -297,8 +374,8 @@ Supported `sort` fields:
|
|
|
297
374
|
|
|
298
375
|
Notes:
|
|
299
376
|
|
|
300
|
-
- `members.get()`, `authors.get()`, and `reviewers.get()` are SDK convenience lookups built on top of
|
|
301
|
-
- `authors` and `reviewers` are aliases of
|
|
377
|
+
- `members.get()`, `authors.get()`, and `reviewers.get()` are SDK convenience lookups built on top of paginated list endpoints because the HTTP API does not expose `/members/{id}`, `/authors/{id}`, or `/reviewers/{id}` detail endpoints.
|
|
378
|
+
- `authors` and `reviewers` are aliases of member listing endpoints exposed by the API.
|
|
302
379
|
|
|
303
380
|
### Statuses
|
|
304
381
|
|
|
@@ -370,9 +447,9 @@ client.ai.generateMetaDescription(body, options?)
|
|
|
370
447
|
client.ai.generateContent(body, options?)
|
|
371
448
|
```
|
|
372
449
|
|
|
373
|
-
## End-to-
|
|
450
|
+
## End-to-end Examples
|
|
374
451
|
|
|
375
|
-
### Create a
|
|
452
|
+
### Create a Page and Upload Its Hero Image
|
|
376
453
|
|
|
377
454
|
```ts
|
|
378
455
|
const pageResult = await client.pages.create({
|
|
@@ -395,7 +472,7 @@ await client.media.upload({
|
|
|
395
472
|
});
|
|
396
473
|
```
|
|
397
474
|
|
|
398
|
-
### Create a
|
|
475
|
+
### Create a Translated Page Variant
|
|
399
476
|
|
|
400
477
|
```ts
|
|
401
478
|
await client.pages.createTranslation("page-id", {
|
|
@@ -405,7 +482,7 @@ await client.pages.createTranslation("page-id", {
|
|
|
405
482
|
});
|
|
406
483
|
```
|
|
407
484
|
|
|
408
|
-
### Generate SEO
|
|
485
|
+
### Generate SEO Fields with AI
|
|
409
486
|
|
|
410
487
|
```ts
|
|
411
488
|
const generatedMeta = await client.ai.generateMetaDescription({
|
|
@@ -419,7 +496,7 @@ console.log(generatedMeta.meta_description);
|
|
|
419
496
|
|
|
420
497
|
## Exported Types
|
|
421
498
|
|
|
422
|
-
The package exports
|
|
499
|
+
The package exports `Client`, `ParagraphApiError`, `ParagraphClientError`, and the main request, response, and domain types used by the SDK, including:
|
|
423
500
|
|
|
424
501
|
- `ClientOptions`
|
|
425
502
|
- `RequestOptions`
|
|
@@ -457,17 +534,12 @@ npm run test:integration
|
|
|
457
534
|
|
|
458
535
|
Environment variables for integration tests:
|
|
459
536
|
|
|
460
|
-
- `PARAGRAPH_API_KEY` required to run live API tests.
|
|
461
|
-
- `PARAGRAPH_API_BASE_URL`
|
|
462
|
-
- `PARAGRAPH_AI_MODEL`
|
|
537
|
+
- `PARAGRAPH_API_KEY` is required to run live API tests.
|
|
538
|
+
- `PARAGRAPH_API_BASE_URL` optionally overrides the API target for local or staging environments.
|
|
539
|
+
- `PARAGRAPH_AI_MODEL` optionally sets the model used by AI endpoint tests. If omitted, AI integration tests are skipped.
|
|
463
540
|
|
|
464
541
|
The integration suite is self-contained and generates its own resources, so it does not rely on any existing content in the target organization.
|
|
465
542
|
|
|
466
|
-
## Requirements
|
|
467
|
-
|
|
468
|
-
- Node.js `18+` for direct Node usage.
|
|
469
|
-
- A runtime with standard Fetch API primitives for edge/serverless usage.
|
|
470
|
-
|
|
471
543
|
## License
|
|
472
544
|
|
|
473
545
|
ISC
|
package/dist/client.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class Client {
|
|
|
5
5
|
private readonly fetchImpl;
|
|
6
6
|
private readonly defaultHeaders;
|
|
7
7
|
private readonly timeoutMs?;
|
|
8
|
+
private readonly maxRateLimitRetries;
|
|
8
9
|
private readonly limiter;
|
|
9
10
|
readonly pages: {
|
|
10
11
|
list: (query?: PageListQuery, options?: RequestOptions) => Promise<ListResponse<PageSummary>>;
|
|
@@ -19,6 +20,7 @@ export declare class Client {
|
|
|
19
20
|
createTranslation: (pageId: string, body: CreatePageTranslationRequest, options?: RequestOptions) => Promise<PageMutationResult>;
|
|
20
21
|
};
|
|
21
22
|
readonly page: {
|
|
23
|
+
get: (pageId: string, query?: GetPageQuery, options?: RequestOptions) => Promise<Page>;
|
|
22
24
|
getBySlug: (slug: string, options?: RequestOptions) => Promise<Page>;
|
|
23
25
|
};
|
|
24
26
|
readonly collections: {
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAEhB,OAAO,EACP,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,eAAe,EACf,IAAI,EACJ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EAEtB,cAAc,EACd,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -2,6 +2,8 @@ import { ParagraphApiError, ParagraphClientError, } from "./errors.js";
|
|
|
2
2
|
import { RequestRateLimiter } from "./rate-limiter.js";
|
|
3
3
|
const DEFAULT_BASE_URL = "https://api.paragraphcms.com/v1";
|
|
4
4
|
const DEFAULT_REQUESTS_PER_SECOND = 5;
|
|
5
|
+
const DEFAULT_RATE_LIMIT_RETRIES = 2;
|
|
6
|
+
const DEFAULT_RATE_LIMIT_RETRY_DELAY_MS = 1000;
|
|
5
7
|
const LOOKUP_PAGE_SIZE = 100;
|
|
6
8
|
function resolveFetchImplementation(customFetch) {
|
|
7
9
|
const fetchImpl = customFetch ?? globalThis.fetch;
|
|
@@ -123,9 +125,67 @@ function createRequestSignal(signal, timeoutMs) {
|
|
|
123
125
|
didTimeout: () => timedOut,
|
|
124
126
|
};
|
|
125
127
|
}
|
|
128
|
+
function waitForDelay(delayMs, signal) {
|
|
129
|
+
if (delayMs <= 0) {
|
|
130
|
+
return Promise.resolve();
|
|
131
|
+
}
|
|
132
|
+
return new Promise((resolve, reject) => {
|
|
133
|
+
let timeoutId;
|
|
134
|
+
const cleanup = () => {
|
|
135
|
+
if (timeoutId !== undefined) {
|
|
136
|
+
clearTimeout(timeoutId);
|
|
137
|
+
}
|
|
138
|
+
if (signal) {
|
|
139
|
+
signal.removeEventListener("abort", onAbort);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const onAbort = () => {
|
|
143
|
+
cleanup();
|
|
144
|
+
reject(signal?.reason ??
|
|
145
|
+
new DOMException("The operation was aborted.", "AbortError"));
|
|
146
|
+
};
|
|
147
|
+
if (signal) {
|
|
148
|
+
if (signal.aborted) {
|
|
149
|
+
onAbort();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
153
|
+
}
|
|
154
|
+
timeoutId = setTimeout(() => {
|
|
155
|
+
cleanup();
|
|
156
|
+
resolve();
|
|
157
|
+
}, delayMs);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
126
160
|
function isAbortError(error) {
|
|
127
161
|
return (error instanceof DOMException && error.name === "AbortError");
|
|
128
162
|
}
|
|
163
|
+
function resolveMaxRateLimitRetries(value, fallback = DEFAULT_RATE_LIMIT_RETRIES) {
|
|
164
|
+
const resolved = value ?? fallback;
|
|
165
|
+
if (!Number.isInteger(resolved) ||
|
|
166
|
+
resolved < 0) {
|
|
167
|
+
throw new ParagraphClientError("`maxRateLimitRetries` must be a non-negative integer.");
|
|
168
|
+
}
|
|
169
|
+
return resolved;
|
|
170
|
+
}
|
|
171
|
+
function parseRetryAfterMs(headerValue) {
|
|
172
|
+
if (!headerValue) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
const seconds = Number(headerValue);
|
|
176
|
+
if (Number.isFinite(seconds) && seconds >= 0) {
|
|
177
|
+
return Math.ceil(seconds * 1000);
|
|
178
|
+
}
|
|
179
|
+
const retryAt = Date.parse(headerValue);
|
|
180
|
+
if (Number.isNaN(retryAt)) {
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
return Math.max(0, retryAt - Date.now());
|
|
184
|
+
}
|
|
185
|
+
function resolveRateLimitRetryDelayMs(headers, retryCount) {
|
|
186
|
+
return (parseRetryAfterMs(headers.get("retry-after")) ??
|
|
187
|
+
DEFAULT_RATE_LIMIT_RETRY_DELAY_MS * 2 ** retryCount);
|
|
188
|
+
}
|
|
129
189
|
function toBlobPart(file) {
|
|
130
190
|
if (typeof File !== "undefined" && file instanceof File) {
|
|
131
191
|
return {
|
|
@@ -217,6 +277,7 @@ export class Client {
|
|
|
217
277
|
fetchImpl;
|
|
218
278
|
defaultHeaders;
|
|
219
279
|
timeoutMs;
|
|
280
|
+
maxRateLimitRetries;
|
|
220
281
|
limiter;
|
|
221
282
|
pages = {
|
|
222
283
|
list: (query, options) => this.listPages(query, options),
|
|
@@ -251,6 +312,7 @@ export class Client {
|
|
|
251
312
|
}),
|
|
252
313
|
};
|
|
253
314
|
page = {
|
|
315
|
+
get: (pageId, query, options) => this.pages.get(pageId, query, options),
|
|
254
316
|
getBySlug: (slug, options) => this.pages.getBySlug(slug, options),
|
|
255
317
|
};
|
|
256
318
|
collections = {
|
|
@@ -434,6 +496,7 @@ export class Client {
|
|
|
434
496
|
this.fetchImpl = resolveFetchImplementation(options.fetch);
|
|
435
497
|
this.defaultHeaders = new Headers(options.headers);
|
|
436
498
|
this.timeoutMs = options.timeoutMs;
|
|
499
|
+
this.maxRateLimitRetries = resolveMaxRateLimitRetries(options.maxRateLimitRetries);
|
|
437
500
|
this.limiter = new RequestRateLimiter(options.maxRequestsPerSecond ?? DEFAULT_REQUESTS_PER_SECOND);
|
|
438
501
|
}
|
|
439
502
|
getInfo(options) {
|
|
@@ -479,8 +542,16 @@ export class Client {
|
|
|
479
542
|
};
|
|
480
543
|
}
|
|
481
544
|
createPageListQuery(query) {
|
|
545
|
+
const collection = query?.collection_id ?? query?.collection;
|
|
546
|
+
if (query?.collection !== undefined &&
|
|
547
|
+
query?.collection_id !== undefined &&
|
|
548
|
+
query.collection !== query.collection_id) {
|
|
549
|
+
throw new ParagraphClientError("`collection` and `collection_id` must match when both are provided.");
|
|
550
|
+
}
|
|
482
551
|
return {
|
|
483
552
|
...(query ?? {}),
|
|
553
|
+
collection: undefined,
|
|
554
|
+
collection_id: collection,
|
|
484
555
|
include_content: query?.include_content ?? false,
|
|
485
556
|
};
|
|
486
557
|
}
|
|
@@ -556,65 +627,79 @@ export class Client {
|
|
|
556
627
|
requestJson(method, path, config) {
|
|
557
628
|
const url = buildUrl(this.baseUrl, path, config?.query);
|
|
558
629
|
const request = createRequestDescriptor(method, url);
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
}
|
|
576
|
-
body = JSON.stringify(config.body);
|
|
577
|
-
}
|
|
578
|
-
const optionHeaders = new Headers(config?.options?.headers);
|
|
579
|
-
for (const [key, value] of optionHeaders.entries()) {
|
|
580
|
-
headers.set(key, value);
|
|
581
|
-
}
|
|
582
|
-
if (config?.formData) {
|
|
583
|
-
headers.delete("content-type");
|
|
630
|
+
const headers = new Headers(this.defaultHeaders);
|
|
631
|
+
const timeoutMs = config?.options?.timeoutMs ?? this.timeoutMs;
|
|
632
|
+
const maxRateLimitRetries = resolveMaxRateLimitRetries(config?.options?.maxRateLimitRetries, this.maxRateLimitRetries);
|
|
633
|
+
headers.set("accept", "application/json");
|
|
634
|
+
if (!headers.has("x-api-key") &&
|
|
635
|
+
!headers.has("authorization")) {
|
|
636
|
+
headers.set("x-api-key", this.apiKey);
|
|
637
|
+
}
|
|
638
|
+
let body;
|
|
639
|
+
if (config?.formData) {
|
|
640
|
+
headers.delete("content-type");
|
|
641
|
+
body = config.formData;
|
|
642
|
+
}
|
|
643
|
+
else if (config?.body !== undefined) {
|
|
644
|
+
if (!headers.has("content-type")) {
|
|
645
|
+
headers.set("content-type", "application/json");
|
|
584
646
|
}
|
|
585
|
-
|
|
647
|
+
body = JSON.stringify(config.body);
|
|
648
|
+
}
|
|
649
|
+
const optionHeaders = new Headers(config?.options?.headers);
|
|
650
|
+
for (const [key, value] of optionHeaders.entries()) {
|
|
651
|
+
headers.set(key, value);
|
|
652
|
+
}
|
|
653
|
+
if (config?.formData) {
|
|
654
|
+
headers.delete("content-type");
|
|
655
|
+
}
|
|
656
|
+
const requestSignal = createRequestSignal(config?.options?.signal, timeoutMs);
|
|
657
|
+
return (async () => {
|
|
658
|
+
let retryCount = 0;
|
|
586
659
|
try {
|
|
587
660
|
const fetchImpl = this.fetchImpl;
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
if (
|
|
597
|
-
|
|
661
|
+
while (true) {
|
|
662
|
+
const response = await this.limiter.schedule(() => fetchImpl(url, {
|
|
663
|
+
method,
|
|
664
|
+
headers,
|
|
665
|
+
body,
|
|
666
|
+
signal: requestSignal.signal,
|
|
667
|
+
}));
|
|
668
|
+
const payload = await parseResponse(response);
|
|
669
|
+
if (response.ok) {
|
|
670
|
+
return payload;
|
|
671
|
+
}
|
|
672
|
+
const responseHeaders = new Headers(response.headers);
|
|
673
|
+
const apiError = isApiErrorPayload(payload)
|
|
674
|
+
? new ParagraphApiError({
|
|
598
675
|
status: response.status,
|
|
599
676
|
code: payload.error.code,
|
|
600
677
|
message: payload.error.message,
|
|
601
678
|
details: payload.error.details,
|
|
602
|
-
headers:
|
|
679
|
+
headers: responseHeaders,
|
|
603
680
|
request,
|
|
604
681
|
body: payload,
|
|
682
|
+
})
|
|
683
|
+
: new ParagraphApiError({
|
|
684
|
+
status: response.status,
|
|
685
|
+
code: response.status === 401
|
|
686
|
+
? "unauthorized"
|
|
687
|
+
: "request_failed",
|
|
688
|
+
message: typeof payload === "string" && payload.length > 0
|
|
689
|
+
? payload
|
|
690
|
+
: response.statusText || "Request failed.",
|
|
691
|
+
headers: responseHeaders,
|
|
692
|
+
request,
|
|
605
693
|
});
|
|
694
|
+
if (response.status === 429 &&
|
|
695
|
+
retryCount < maxRateLimitRetries) {
|
|
696
|
+
const retryDelayMs = resolveRateLimitRetryDelayMs(responseHeaders, retryCount);
|
|
697
|
+
retryCount += 1;
|
|
698
|
+
await waitForDelay(retryDelayMs, requestSignal.signal);
|
|
699
|
+
continue;
|
|
606
700
|
}
|
|
607
|
-
throw
|
|
608
|
-
status: response.status,
|
|
609
|
-
code: response.status === 401 ? "unauthorized" : "request_failed",
|
|
610
|
-
message: typeof payload === "string" && payload.length > 0
|
|
611
|
-
? payload
|
|
612
|
-
: response.statusText || "Request failed.",
|
|
613
|
-
headers: new Headers(response.headers),
|
|
614
|
-
request,
|
|
615
|
-
});
|
|
701
|
+
throw apiError;
|
|
616
702
|
}
|
|
617
|
-
return payload;
|
|
618
703
|
}
|
|
619
704
|
catch (error) {
|
|
620
705
|
if (error instanceof ParagraphApiError ||
|
|
@@ -627,7 +712,8 @@ export class Client {
|
|
|
627
712
|
cause: error,
|
|
628
713
|
});
|
|
629
714
|
}
|
|
630
|
-
if (isAbortError(error)
|
|
715
|
+
if (isAbortError(error) ||
|
|
716
|
+
config?.options?.signal?.aborted) {
|
|
631
717
|
throw error;
|
|
632
718
|
}
|
|
633
719
|
throw new ParagraphClientError("Request failed.", {
|
|
@@ -638,6 +724,6 @@ export class Client {
|
|
|
638
724
|
finally {
|
|
639
725
|
requestSignal.cleanup();
|
|
640
726
|
}
|
|
641
|
-
});
|
|
727
|
+
})();
|
|
642
728
|
}
|
|
643
729
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export interface RequestOptions {
|
|
|
45
45
|
signal?: AbortSignal;
|
|
46
46
|
headers?: HeadersInit;
|
|
47
47
|
timeoutMs?: number;
|
|
48
|
+
maxRateLimitRetries?: number;
|
|
48
49
|
}
|
|
49
50
|
export interface ClientOptions {
|
|
50
51
|
apiKey: string;
|
|
@@ -53,6 +54,7 @@ export interface ClientOptions {
|
|
|
53
54
|
headers?: HeadersInit;
|
|
54
55
|
timeoutMs?: number;
|
|
55
56
|
maxRequestsPerSecond?: number;
|
|
57
|
+
maxRateLimitRetries?: number;
|
|
56
58
|
}
|
|
57
59
|
export interface ListQuery {
|
|
58
60
|
limit?: number;
|
|
@@ -276,6 +278,7 @@ export interface ReorderResult {
|
|
|
276
278
|
}
|
|
277
279
|
export interface PageListQuery extends ListQuery {
|
|
278
280
|
include_content?: boolean;
|
|
281
|
+
collection?: string;
|
|
279
282
|
deleted?: DeletedFilter;
|
|
280
283
|
collection_id?: string;
|
|
281
284
|
without_collection?: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|