@internetdata/internetdata 1.2.1 → 1.4.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/dist/client.d.ts +10 -1
- package/dist/client.js +64 -12
- package/dist/client.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -21,6 +21,14 @@ export interface Options {
|
|
|
21
21
|
baseUrl?: string;
|
|
22
22
|
/** Retry attempts for a transient failure. Default 2. */
|
|
23
23
|
retries?: number;
|
|
24
|
+
/**
|
|
25
|
+
* How long one API call may take before it is abandoned, in milliseconds.
|
|
26
|
+
* Default 30000, per attempt, so a retried call may take longer in total.
|
|
27
|
+
*
|
|
28
|
+
* **A dataset transfer is deliberately exempt.** It is a sane bound on a
|
|
29
|
+
* metadata call and the wrong one on a body that reaches gigabytes.
|
|
30
|
+
*/
|
|
31
|
+
timeoutMs?: number;
|
|
24
32
|
/** Override the HTTP implementation, mostly for tests. */
|
|
25
33
|
fetch?: typeof globalThis.fetch;
|
|
26
34
|
}
|
|
@@ -45,8 +53,9 @@ export declare class InternetData {
|
|
|
45
53
|
export declare class DatabaseApi {
|
|
46
54
|
private readonly client;
|
|
47
55
|
private readonly retries;
|
|
56
|
+
private readonly timeoutMs;
|
|
48
57
|
private readonly fetchImpl;
|
|
49
|
-
constructor(client: Client, retries: number, fetchImpl: typeof globalThis.fetch);
|
|
58
|
+
constructor(client: Client, retries: number, timeoutMs: number, fetchImpl: typeof globalThis.fetch);
|
|
50
59
|
/**
|
|
51
60
|
* The published catalog as your organization may see it, one entry per
|
|
52
61
|
* database FAMILY, with `standing` saying where your licence stands.
|
package/dist/client.js
CHANGED
|
@@ -3,6 +3,10 @@ import { createClient, createConfig } from './generated/client/index.js';
|
|
|
3
3
|
import { databaseChecksumV2, databaseMetadataV2, downloadDatabaseV2 as downloadRedirect, listDatabases, listDownloads, } from './generated/sdk.gen.js';
|
|
4
4
|
import { errorFromResponse, InternetDataError, messageFromBody } from './errors.js';
|
|
5
5
|
export const DEFAULT_BASE_URL = 'https://internetdata.io';
|
|
6
|
+
// Matches the other SDKs, whose HTTP clients default to 30s. Node's global
|
|
7
|
+
// fetch has no whole-request limit of its own, so without this a hung API holds
|
|
8
|
+
// a caller until undici's 300s headers timeout.
|
|
9
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
6
10
|
/**
|
|
7
11
|
* A client for the InternetData API.
|
|
8
12
|
*
|
|
@@ -25,20 +29,22 @@ export class InternetData {
|
|
|
25
29
|
const fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
26
30
|
const client = createClient(createConfig({
|
|
27
31
|
baseUrl: options.baseUrl ?? DEFAULT_BASE_URL,
|
|
28
|
-
...(options.apiKey === undefined ? {} : { auth: (
|
|
32
|
+
...(options.apiKey === undefined ? {} : { auth: bearerOnly(options.apiKey) }),
|
|
29
33
|
fetch: fetchImpl,
|
|
30
34
|
}));
|
|
31
|
-
this.database = new DatabaseApi(client, options.retries ?? 2, fetchImpl);
|
|
35
|
+
this.database = new DatabaseApi(client, options.retries ?? 2, options.timeoutMs ?? DEFAULT_TIMEOUT_MS, fetchImpl);
|
|
32
36
|
}
|
|
33
37
|
}
|
|
34
38
|
/** The licensed database downloads. Access is granted by contract, not self-serve. */
|
|
35
39
|
export class DatabaseApi {
|
|
36
40
|
client;
|
|
37
41
|
retries;
|
|
42
|
+
timeoutMs;
|
|
38
43
|
fetchImpl;
|
|
39
|
-
constructor(client, retries, fetchImpl) {
|
|
44
|
+
constructor(client, retries, timeoutMs, fetchImpl) {
|
|
40
45
|
this.client = client;
|
|
41
46
|
this.retries = retries;
|
|
47
|
+
this.timeoutMs = timeoutMs;
|
|
42
48
|
this.fetchImpl = fetchImpl;
|
|
43
49
|
}
|
|
44
50
|
/**
|
|
@@ -53,7 +59,9 @@ export class DatabaseApi {
|
|
|
53
59
|
*/
|
|
54
60
|
async list() {
|
|
55
61
|
return withRetry(this.retries, async () => {
|
|
56
|
-
const res = await
|
|
62
|
+
const res = await deadline(this.timeoutMs, (signal) => listDatabases({
|
|
63
|
+
client: this.client, signal: signal,
|
|
64
|
+
}));
|
|
57
65
|
return unwrap(res).databases;
|
|
58
66
|
});
|
|
59
67
|
}
|
|
@@ -66,7 +74,9 @@ export class DatabaseApi {
|
|
|
66
74
|
*/
|
|
67
75
|
async metadata(id) {
|
|
68
76
|
return withRetry(this.retries, async () => {
|
|
69
|
-
const res = await
|
|
77
|
+
const res = await deadline(this.timeoutMs, (signal) => databaseMetadataV2({
|
|
78
|
+
client: this.client, query: { id: id }, signal: signal,
|
|
79
|
+
}));
|
|
70
80
|
return unwrap(res);
|
|
71
81
|
});
|
|
72
82
|
}
|
|
@@ -78,9 +88,9 @@ export class DatabaseApi {
|
|
|
78
88
|
*/
|
|
79
89
|
async checksums(id, format) {
|
|
80
90
|
return withRetry(this.retries, async () => {
|
|
81
|
-
const res = await databaseChecksumV2({
|
|
82
|
-
client: this.client, query: { id: id, format: format },
|
|
83
|
-
});
|
|
91
|
+
const res = await deadline(this.timeoutMs, (signal) => databaseChecksumV2({
|
|
92
|
+
client: this.client, query: { id: id, format: format }, signal: signal,
|
|
93
|
+
}));
|
|
84
94
|
return unwrap(res).checksums;
|
|
85
95
|
});
|
|
86
96
|
}
|
|
@@ -92,10 +102,11 @@ export class DatabaseApi {
|
|
|
92
102
|
*/
|
|
93
103
|
async downloads(options = {}) {
|
|
94
104
|
return withRetry(this.retries, async () => {
|
|
95
|
-
const res = await listDownloads({
|
|
105
|
+
const res = await deadline(this.timeoutMs, (signal) => listDownloads({
|
|
96
106
|
client: this.client,
|
|
97
107
|
...(options.limit === undefined ? {} : { query: { limit: options.limit } }),
|
|
98
|
-
|
|
108
|
+
signal: signal,
|
|
109
|
+
}));
|
|
99
110
|
return unwrap(res).downloads;
|
|
100
111
|
});
|
|
101
112
|
}
|
|
@@ -110,11 +121,12 @@ export class DatabaseApi {
|
|
|
110
121
|
*/
|
|
111
122
|
async downloadUrl(id, format) {
|
|
112
123
|
return withRetry(this.retries, async () => {
|
|
113
|
-
const res = await downloadRedirect({
|
|
124
|
+
const res = await deadline(this.timeoutMs, (signal) => downloadRedirect({
|
|
114
125
|
client: this.client,
|
|
115
126
|
query: { id: id, format: format },
|
|
116
127
|
redirect: 'manual',
|
|
117
|
-
|
|
128
|
+
signal: signal,
|
|
129
|
+
}));
|
|
118
130
|
if (res.response === undefined) {
|
|
119
131
|
throw new InternetDataError('network', 'no response from the API');
|
|
120
132
|
}
|
|
@@ -208,6 +220,22 @@ export class DatabaseApi {
|
|
|
208
220
|
});
|
|
209
221
|
}
|
|
210
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Sends the key in the `Authorization` header and nowhere else.
|
|
225
|
+
*
|
|
226
|
+
* The API accepts three credential forms and the spec documents all three, so
|
|
227
|
+
* the generator applies EVERY one of them - putting the key in the query string
|
|
228
|
+
* of every request alongside the headers. A query string is the one place a
|
|
229
|
+
* secret should never be: it lands in access logs, proxy logs and browser
|
|
230
|
+
* history, none of which we control. `?apikey=` exists for a human with curl or
|
|
231
|
+
* a browser bar, not for a client that can set a header.
|
|
232
|
+
*
|
|
233
|
+
* Returning undefined for the other schemes is what suppresses them; the
|
|
234
|
+
* generated `getAuthToken` drops a scheme whose callback yields nothing.
|
|
235
|
+
*/
|
|
236
|
+
function bearerOnly(apiKey) {
|
|
237
|
+
return (auth) => (auth.scheme === 'bearer' ? apiKey : undefined);
|
|
238
|
+
}
|
|
211
239
|
function unwrap(res) {
|
|
212
240
|
if (res.response === undefined) {
|
|
213
241
|
throw new InternetDataError('network', 'no response from the API');
|
|
@@ -221,6 +249,30 @@ function unwrap(res) {
|
|
|
221
249
|
// server-supplied Retry-After, which p-retry has no way to know about. A 429
|
|
222
250
|
// carrying that header is the only 429 worth retrying, which is why the wait
|
|
223
251
|
// and the retry decision both key off the same field.
|
|
252
|
+
/**
|
|
253
|
+
* Bound one attempt, and report an expiry as our own error rather than the
|
|
254
|
+
* runtime's `TimeoutError`, whose message says nothing about which call gave up.
|
|
255
|
+
*
|
|
256
|
+
* Raced, not left to the signal alone: aborting releases the socket, but only
|
|
257
|
+
* a transport that HONORS the signal then settles, and a substituted `fetch`
|
|
258
|
+
* need not. Clearing the timer stops the losing side rejecting into nothing.
|
|
259
|
+
*/
|
|
260
|
+
async function deadline(timeoutMs, fn) {
|
|
261
|
+
const controller = new AbortController();
|
|
262
|
+
let timer;
|
|
263
|
+
const expiry = new Promise((_, reject) => {
|
|
264
|
+
timer = setTimeout(() => {
|
|
265
|
+
controller.abort();
|
|
266
|
+
reject(new InternetDataError('network', `request timed out after ${timeoutMs}ms`));
|
|
267
|
+
}, timeoutMs);
|
|
268
|
+
});
|
|
269
|
+
try {
|
|
270
|
+
return await Promise.race([fn(controller.signal), expiry]);
|
|
271
|
+
}
|
|
272
|
+
finally {
|
|
273
|
+
clearTimeout(timer);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
224
276
|
async function withRetry(retries, fn) {
|
|
225
277
|
try {
|
|
226
278
|
return await pRetry(fn, {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAK7B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EACH,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,gBAAgB,EAC9E,aAAa,EAAE,aAAa,GAC/B,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED