@internetdata/internetdata 2.0.1 → 2.2.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 CHANGED
@@ -17,7 +17,7 @@ Requires Node.js 22 or newer. TypeScript types are included.
17
17
 
18
18
  ## Usage
19
19
 
20
- Every call needs an API key carrying the `db.download` scope. Databases are licensed by contract rather than bought self-serve, so a key arrives with the licence; see the [API documentation](https://docs.internetdata.io/api) or write to [dev@internetdata.io](mailto:dev@internetdata.io).
20
+ Every call needs an API key carrying the `db.download` scope. Databases are licensed by contract rather than bought self-serve, so a key arrives with the license; see the [API documentation](https://docs.internetdata.io/api) or write to [dev@internetdata.io](mailto:dev@internetdata.io).
21
21
 
22
22
  ```js
23
23
  import { InternetData } from '@internetdata/internetdata';
@@ -29,7 +29,7 @@ for (const db of await client.database.list()) {
29
29
  }
30
30
  ```
31
31
 
32
- `list()` returns one entry per database FAMILY, because a licence is held against the family while a download names a specific version. `standing` is `licensed` if the family is yours today, `expired` if the term has ended, and `unlicensed` if it is published but has never been bought. `versions` carries the ids you pass everywhere else, oldest first, and the formats each one is actually built in.
32
+ `list()` returns one entry per database FAMILY, because a license is held against the family while a download names a specific version. `standing` is `licensed` if the family is yours today, `expired` if the term has ended, and `unlicensed` if it is published but has never been bought. `versions` carries the ids you pass everywhere else, oldest first, and the formats each one is actually built in.
33
33
 
34
34
  ### What is inside a database
35
35
 
@@ -54,7 +54,7 @@ const written = await client.database.download('vpn_ip_v1', 'mmdb', './vpn_ip_v1
54
54
  console.log(`${written} bytes`);
55
55
  ```
56
56
 
57
- The bytes go to a neighbouring `.part` file and the name only appears once the transfer completes, so an interruption cannot leave a truncated file that reads as a whole database. You can pass a writable stream instead of a path, in which case it stays yours to close and gets no such treatment.
57
+ The bytes go to a neighboring `.part` file and the name only appears once the transfer completes, so an interruption cannot leave a truncated file that reads as a whole database. You can pass a writable stream instead of a path, in which case it stays yours to close and gets no such treatment.
58
58
 
59
59
  Or take the link and run the transfer yourself. The API answers a redirect to time-limited object storage, and that URL authorizes itself, so it can be handed to something holding no API key:
60
60
 
@@ -68,6 +68,16 @@ Or, for a small database, take the bytes directly:
68
68
  const bytes = await client.database.downloadBytes('bogon_ip_v1', 'csvgz');
69
69
  ```
70
70
 
71
+ The formats are `csvgz` and `mmdb`. They're exported as `DATABASE_FORMATS`, beside `STANDINGS` and `LICENSE_TYPES`, for code that takes one from a command line or a config file. Anything else is refused before a request goes out, as a `bad_request` naming the formats that exist:
72
+
73
+ ```js
74
+ import { DATABASE_FORMATS } from '@internetdata/internetdata';
75
+
76
+ if (!DATABASE_FORMATS.includes(format)) {
77
+ console.error(`--format must be one of ${DATABASE_FORMATS.join(', ')}`);
78
+ }
79
+ ```
80
+
71
81
  `downloadBytes` holds the whole file in memory and the catalog spans seven orders of magnitude, from a few hundred bytes to over 5 GiB, so use `download` for anything you have not checked with `metadata` first.
72
82
 
73
83
  ### Verifying what you got
@@ -109,6 +119,27 @@ Note that `rate_limited` and `quota_exceeded` both arrive as HTTP 429 and are no
109
119
 
110
120
  A failure part way through a transfer is rethrown as it arrived rather than wrapped: a reset socket and a full disk are different problems, and only one of them is ours.
111
121
 
122
+ ### Sign in with OAuth (device flow)
123
+
124
+ A program running on the person's own machine can let them sign in with a browser and pick one of their API keys, instead of asking them to paste it:
125
+
126
+ ```js
127
+ const client = new InternetData();
128
+
129
+ const device = await client.oauth.deviceAuthorization('your-client-id', {
130
+ scope: 'account.read apikeys.read apikeys.reveal',
131
+ });
132
+ console.log(`Open ${device.verification_uri} and enter ${device.user_code}`);
133
+
134
+ const token = await client.oauth.pollDeviceToken('your-client-id', device);
135
+ if (token.apikey === undefined) {
136
+ throw new Error("no API key came back: none was picked, or it can't be shown again");
137
+ }
138
+ const keyed = new InternetData({ apiKey: token.apikey });
139
+ ```
140
+
141
+ A denied sign-in rejects with `OauthAccessDeniedError` and a code that ran out with `OauthExpiredTokenError`. Client IDs are issued on request from support@internetdata.io, and `client.oauth.revoke('your-client-id', token.refresh_token)` signs the machine out again.
142
+
112
143
  ## Other Libraries
113
144
 
114
145
  There are official InternetData client libraries available for many languages including PHP, Python, Go, Java, Ruby, and many popular frameworks such as Django, Rails, and Laravel. See our GitHub at https://github.com/internetdata for more.
package/dist/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Writable } from 'node:stream';
2
2
  import type { Client } from './generated/client/index.js';
3
+ import { OauthApi } from './oauth.js';
3
4
  import type { Database, DatabaseFormat, DatabaseMetadata, DbChecksums, Download } from './types.js';
4
5
  /**
5
6
  * Where `download` puts the bytes: a path to write, or a stream you opened
@@ -10,6 +11,11 @@ export declare const DEFAULT_BASE_URL = "https://internetdata.io";
10
11
  export interface DownloadsOptions {
11
12
  /** How many attempts to return, newest first. The API clamps this to 200. */
12
13
  limit?: number;
14
+ /**
15
+ * How long one attempt may take before it is abandoned, in milliseconds, for
16
+ * THIS call only. Defaults to the client's `timeoutMs`.
17
+ */
18
+ timeoutMs?: number;
13
19
  }
14
20
  export interface Options {
15
21
  /**
@@ -40,13 +46,19 @@ export interface Options {
40
46
  * one organization and nothing it learns may be reused for another key.
41
47
  *
42
48
  * The key is optional, and an absent one sends no `Authorization` header rather
43
- * than an empty one. Every endpoint published today is licensed, so a keyless
44
- * client is answered `401` for now; it exists because what the API serves
45
- * without a license is a product decision, not the client's to refuse.
49
+ * than an empty one. `oauth` needs none. Every database published today is
50
+ * licensed, so a keyless `database` call is answered `401` for now; it exists
51
+ * because what the API serves without a license is a product decision, not the
52
+ * client's to refuse.
46
53
  */
47
54
  export declare class InternetData {
48
55
  /** The database catalog, downloads and their history. */
49
56
  readonly database: DatabaseApi;
57
+ /**
58
+ * Sign a person in with the OAuth device flow, so a program on their own
59
+ * machine can be handed one of their API keys. Needs no API key.
60
+ */
61
+ readonly oauth: OauthApi;
50
62
  constructor(options?: Options);
51
63
  }
52
64
  /** The licensed database downloads. Access is granted by contract, not self-serve. */
package/dist/client.js CHANGED
@@ -1,7 +1,9 @@
1
- import pRetry from 'p-retry';
2
1
  import { createClient, createConfig } from './generated/client/index.js';
3
2
  import { databaseChecksumV2, databaseMetadataV2, downloadDatabaseV2 as downloadRedirect, listDatabases, listDownloads, } from './generated/sdk.gen.js';
4
- import { errorFromResponse, InternetDataError, messageFromBody } from './errors.js';
3
+ import { errorFromResponse, InternetDataError } from './errors.js';
4
+ import { OauthApi } from './oauth.js';
5
+ import { deadline, unwrap, withRetry } from './transport.js';
6
+ import { DATABASE_FORMATS } from './types.js';
5
7
  export const DEFAULT_BASE_URL = 'https://internetdata.io';
6
8
  // Matches the other SDKs, whose HTTP clients default to 30s. Node's global
7
9
  // fetch has no whole-request limit of its own, so without this a hung API holds
@@ -15,13 +17,19 @@ const DEFAULT_TIMEOUT_MS = 30_000;
15
17
  * one organization and nothing it learns may be reused for another key.
16
18
  *
17
19
  * The key is optional, and an absent one sends no `Authorization` header rather
18
- * than an empty one. Every endpoint published today is licensed, so a keyless
19
- * client is answered `401` for now; it exists because what the API serves
20
- * without a license is a product decision, not the client's to refuse.
20
+ * than an empty one. `oauth` needs none. Every database published today is
21
+ * licensed, so a keyless `database` call is answered `401` for now; it exists
22
+ * because what the API serves without a license is a product decision, not the
23
+ * client's to refuse.
21
24
  */
22
25
  export class InternetData {
23
26
  /** The database catalog, downloads and their history. */
24
27
  database;
28
+ /**
29
+ * Sign a person in with the OAuth device flow, so a program on their own
30
+ * machine can be handed one of their API keys. Needs no API key.
31
+ */
32
+ oauth;
25
33
  constructor(options = {}) {
26
34
  // Resolved once, because the download path calls object storage
27
35
  // directly rather than through the generated client and has to reach
@@ -32,7 +40,10 @@ export class InternetData {
32
40
  ...(options.apiKey === undefined ? {} : { auth: bearerOnly(options.apiKey) }),
33
41
  fetch: fetchImpl,
34
42
  }));
35
- this.database = new DatabaseApi(client, options.retries ?? 2, options.timeoutMs ?? DEFAULT_TIMEOUT_MS, fetchImpl);
43
+ const retries = options.retries ?? 2;
44
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
45
+ this.database = new DatabaseApi(client, retries, timeoutMs, fetchImpl);
46
+ this.oauth = new OauthApi(client, retries, timeoutMs);
36
47
  }
37
48
  }
38
49
  /** The licensed database downloads. Access is granted by contract, not self-serve. */
@@ -87,6 +98,7 @@ export class DatabaseApi {
87
98
  * publishes is the API's choice, not ours.
88
99
  */
89
100
  async checksums(id, format) {
101
+ assertFormat(format);
90
102
  return withRetry(this.retries, async () => {
91
103
  const res = await deadline(this.timeoutMs, (signal) => databaseChecksumV2({
92
104
  client: this.client, query: { id: id, format: format }, signal: signal,
@@ -101,8 +113,9 @@ export class DatabaseApi {
101
113
  * and its absence answers nothing.
102
114
  */
103
115
  async downloads(options = {}) {
116
+ const timeoutMs = options.timeoutMs ?? this.timeoutMs;
104
117
  return withRetry(this.retries, async () => {
105
- const res = await deadline(this.timeoutMs, (signal) => listDownloads({
118
+ const res = await deadline(timeoutMs, (signal) => listDownloads({
106
119
  client: this.client,
107
120
  ...(options.limit === undefined ? {} : { query: { limit: options.limit } }),
108
121
  signal: signal,
@@ -120,6 +133,7 @@ export class DatabaseApi {
120
133
  * transfer, so one already running is not interrupted when it lapses.
121
134
  */
122
135
  async downloadUrl(id, format) {
136
+ assertFormat(format);
123
137
  return withRetry(this.retries, async () => {
124
138
  const res = await deadline(this.timeoutMs, (signal) => downloadRedirect({
125
139
  client: this.client,
@@ -236,70 +250,19 @@ export class DatabaseApi {
236
250
  function bearerOnly(apiKey) {
237
251
  return (auth) => (auth.scheme === 'bearer' ? apiKey : undefined);
238
252
  }
239
- function unwrap(res) {
240
- if (res.response === undefined) {
241
- throw new InternetDataError('network', 'no response from the API');
242
- }
243
- if (!res.response.ok) {
244
- throw errorFromResponse(res.response.status, res.response.headers, messageFromBody(res.error ?? res.data));
245
- }
246
- return res.data;
247
- }
248
- // p-retry owns the backoff schedule; the extra sleep here is what honors a
249
- // server-supplied Retry-After, which p-retry has no way to know about. A 429
250
- // carrying that header is the only 429 worth retrying, which is why the wait
251
- // and the retry decision both key off the same field.
252
253
  /**
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.
254
+ * Refuses a format the API does not publish, before the network sees it.
255
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.
256
+ * The generated union guards a TypeScript caller at compile time and nobody
257
+ * else: a format arriving from a CLI flag, a form field or a model is a plain
258
+ * string, and without this it costs a round trip and comes back as a 400 whose
259
+ * message names nothing the caller can act on. Every download method reaches the
260
+ * network through `downloadUrl`, so this covers all three of them.
259
261
  */
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
- }
276
- async function withRetry(retries, fn) {
277
- try {
278
- return await pRetry(fn, {
279
- retries: retries,
280
- shouldRetry: ({ error }) => !(error instanceof InternetDataError) || error.retryable,
281
- onFailedAttempt: async ({ error }) => {
282
- const seconds = error instanceof InternetDataError
283
- ? error.retryAfterSeconds
284
- : undefined;
285
- if (seconds !== undefined && seconds > 0) {
286
- await new Promise((r) => setTimeout(r, seconds * 1000));
287
- }
288
- },
289
- });
290
- }
291
- catch (err) {
292
- throw asError(err);
293
- }
294
- }
295
- function asError(err) {
296
- if (err instanceof InternetDataError) {
297
- return err;
298
- }
299
- const cause = err?.cause;
300
- if (cause instanceof InternetDataError) {
301
- return cause;
262
+ function assertFormat(format) {
263
+ if (DATABASE_FORMATS.includes(format)) {
264
+ return;
302
265
  }
303
- return new InternetDataError('network', err instanceof Error ? err.message : String(err));
266
+ throw new InternetDataError('bad_request', `invalid format ${JSON.stringify(format)}; must be one of ${DATABASE_FORMATS.join(', ')}`);
304
267
  }
305
268
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -16,6 +16,34 @@ export declare class InternetDataError extends Error {
16
16
  /** Whether retrying this exact request could succeed. */
17
17
  get retryable(): boolean;
18
18
  }
19
+ /**
20
+ * The authorization server refusing an OAuth request: a 4xx whose body names an
21
+ * OAuth error code. Never retryable as it stands.
22
+ *
23
+ * `kind` follows the status like any other failure's. A 401 here means the
24
+ * client ID is not registered, never the API key, which OAuth requests do not
25
+ * carry. The two codes a sign-in ends on have their own subclasses.
26
+ */
27
+ export declare class OauthError extends InternetDataError {
28
+ /** The server's code, such as `authorization_pending` or `invalid_grant`, kept as sent. */
29
+ readonly errorCode: string;
30
+ /** The server's explanation, when it sent one. */
31
+ readonly errorDescription?: string;
32
+ constructor(errorCode: string, errorDescription?: string, status?: number);
33
+ get retryable(): boolean;
34
+ }
35
+ /** The person refused the sign-in. Its device code is spent, so a new attempt starts over. */
36
+ export declare class OauthAccessDeniedError extends OauthError {
37
+ constructor(errorDescription?: string, status?: number);
38
+ }
39
+ /**
40
+ * The device code is no longer valid: it expired, or was already used or
41
+ * refused. A poll that outlives the code raises this itself, with no `status`.
42
+ */
43
+ export declare class OauthExpiredTokenError extends OauthError {
44
+ constructor(errorDescription?: string, status?: number);
45
+ }
46
+ export declare function oauthErrorFrom(errorCode: string, errorDescription: string | undefined, status: number): OauthError;
19
47
  export declare function errorFromResponse(status: number, headers: {
20
48
  get(name: string): string | null;
21
49
  }, message?: string): InternetDataError;
package/dist/errors.js CHANGED
@@ -14,6 +14,56 @@ export class InternetDataError extends Error {
14
14
  return this.kind === 'rate_limited' || this.kind === 'server_error' || this.kind === 'network';
15
15
  }
16
16
  }
17
+ /**
18
+ * The authorization server refusing an OAuth request: a 4xx whose body names an
19
+ * OAuth error code. Never retryable as it stands.
20
+ *
21
+ * `kind` follows the status like any other failure's. A 401 here means the
22
+ * client ID is not registered, never the API key, which OAuth requests do not
23
+ * carry. The two codes a sign-in ends on have their own subclasses.
24
+ */
25
+ export class OauthError extends InternetDataError {
26
+ /** The server's code, such as `authorization_pending` or `invalid_grant`, kept as sent. */
27
+ errorCode;
28
+ /** The server's explanation, when it sent one. */
29
+ errorDescription;
30
+ constructor(errorCode, errorDescription, status) {
31
+ super(status === undefined ? 'bad_request' : errorFromResponse(status, NO_HEADERS).kind, errorDescription === undefined ? errorCode : `${errorCode}: ${errorDescription}`, status);
32
+ this.name = 'OauthError';
33
+ this.errorCode = errorCode;
34
+ this.errorDescription = errorDescription;
35
+ }
36
+ get retryable() {
37
+ return false;
38
+ }
39
+ }
40
+ /** The person refused the sign-in. Its device code is spent, so a new attempt starts over. */
41
+ export class OauthAccessDeniedError extends OauthError {
42
+ constructor(errorDescription, status) {
43
+ super('access_denied', errorDescription, status);
44
+ this.name = 'OauthAccessDeniedError';
45
+ }
46
+ }
47
+ /**
48
+ * The device code is no longer valid: it expired, or was already used or
49
+ * refused. A poll that outlives the code raises this itself, with no `status`.
50
+ */
51
+ export class OauthExpiredTokenError extends OauthError {
52
+ constructor(errorDescription, status) {
53
+ super('expired_token', errorDescription, status);
54
+ this.name = 'OauthExpiredTokenError';
55
+ }
56
+ }
57
+ export function oauthErrorFrom(errorCode, errorDescription, status) {
58
+ if (errorCode === 'access_denied') {
59
+ return new OauthAccessDeniedError(errorDescription, status);
60
+ }
61
+ if (errorCode === 'expired_token') {
62
+ return new OauthExpiredTokenError(errorDescription, status);
63
+ }
64
+ return new OauthError(errorCode, errorDescription, status);
65
+ }
66
+ const NO_HEADERS = { get: () => null };
17
67
  export function errorFromResponse(status, headers, message) {
18
68
  const text = message ?? `request failed with status ${status}`;
19
69
  const retryAfter = parseRetryAfter(headers.get('retry-after'));
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { databaseChecksum, databaseChecksumV2, databaseDownload, databaseMetadata, databaseMetadataV2, downloadDatabaseV2, listDatabases, listDownloads, type Options } from './sdk.gen.js';
2
- export type { ClientOptions, Database, DatabaseChecksumData, DatabaseChecksumError, DatabaseChecksumErrors, DatabaseChecksumResponse, DatabaseChecksumResponses, DatabaseChecksumV2Data, DatabaseChecksumV2Error, DatabaseChecksumV2Errors, DatabaseChecksumV2Response, DatabaseChecksumV2Responses, DatabaseDownloadData, DatabaseDownloadError, DatabaseDownloadErrors, DatabaseDownloadResponse, DatabaseDownloadResponses, DatabaseFormat, DatabaseMetadata, DatabaseMetadataColumn, DatabaseMetadataData, DatabaseMetadataError, DatabaseMetadataErrors, DatabaseMetadataResponse, DatabaseMetadataResponses, DatabaseMetadataV2Data, DatabaseMetadataV2Error, DatabaseMetadataV2Errors, DatabaseMetadataV2Response, DatabaseMetadataV2Responses, DatabaseVersion, DbChecksums, DbChecksumSuccessResponse, DbFormat, DbId, DbInvalidApiKeyError, DbInvalidFormatError, DbInvalidIdError, DbMetadata, DbMetadataSuccessResponse, DbNotFoundError, DbUnauthorizedIdError, Download, DownloadDatabaseV2Data, DownloadDatabaseV2Error, DownloadDatabaseV2Errors, Error, ListDatabasesData, ListDatabasesError, ListDatabasesErrors, ListDatabasesResponse, ListDatabasesResponses, ListDownloadsData, ListDownloadsError, ListDownloadsErrors, ListDownloadsResponse, ListDownloadsResponses, Standing } from './types.gen.js';
1
+ export { accountCreateApikey, accountIdentity, accountListApikeys, accountOrg, accountOrgMembers, accountRevealApikey, accountRevokeApikey, accountRotateApikey, databaseChecksum, databaseChecksumV2, databaseDownload, databaseMetadata, databaseMetadataV2, downloadDatabaseV2, listDatabases, listDownloads, oauthAuthorize, oauthDeviceAuthorization, oauthMetadata, oauthRevoke, oauthToken, type Options } from './sdk.gen.js';
2
+ export type { AccountCreateApikeyData, AccountCreateApikeyError, AccountCreateApikeyErrors, AccountCreateApikeyRequest, AccountCreateApikeyResponse, AccountCreateApikeyResponses, AccountCreatedApikey, AccountIdentityData, AccountIdentityError, AccountIdentityErrors, AccountIdentityResponse, AccountIdentityResponses, AccountListApikeysData, AccountListApikeysError, AccountListApikeysErrors, AccountListApikeysResponse, AccountListApikeysResponses, AccountOrg, AccountOrgData, AccountOrgError, AccountOrgErrors, AccountOrgMembersData, AccountOrgMembersError, AccountOrgMembersErrors, AccountOrgMembersResponse, AccountOrgMembersResponses, AccountOrgRef, AccountOrgResponse, AccountOrgResponses, AccountOrgWrap, AccountRc, AccountRevealApikeyData, AccountRevealApikeyError, AccountRevealApikeyErrors, AccountRevealApikeyResponse, AccountRevealApikeyResponses, AccountRevealedApikey, AccountRevokeApikeyData, AccountRevokeApikeyError, AccountRevokeApikeyErrors, AccountRevokeApikeyResponse, AccountRevokeApikeyResponses, AccountRotateApikeyData, AccountRotateApikeyError, AccountRotateApikeyErrors, AccountRotateApikeyResponse, AccountRotateApikeyResponses, AccountUser, ApikeyDetail, ApikeyIdParam, ApikeyList, ClientOptions, Database, DatabaseChecksumData, DatabaseChecksumError, DatabaseChecksumErrors, DatabaseChecksumResponse, DatabaseChecksumResponses, DatabaseChecksumV2Data, DatabaseChecksumV2Error, DatabaseChecksumV2Errors, DatabaseChecksumV2Response, DatabaseChecksumV2Responses, DatabaseDownloadData, DatabaseDownloadError, DatabaseDownloadErrors, DatabaseDownloadResponse, DatabaseDownloadResponses, DatabaseFormat, DatabaseMetadata, DatabaseMetadataColumn, DatabaseMetadataData, DatabaseMetadataError, DatabaseMetadataErrors, DatabaseMetadataResponse, DatabaseMetadataResponses, DatabaseMetadataV2Data, DatabaseMetadataV2Error, DatabaseMetadataV2Errors, DatabaseMetadataV2Response, DatabaseMetadataV2Responses, DatabaseVersion, DbChecksums, DbChecksumSuccessResponse, DbFormat, DbId, DbInvalidApiKeyError, DbInvalidFormatError, DbInvalidIdError, DbMetadata, DbMetadataSuccessResponse, DbNotFoundError, DbUnauthorizedIdError, DeviceAuthorization, DeviceAuthorizationRequest, Download, DownloadDatabaseV2Data, DownloadDatabaseV2Error, DownloadDatabaseV2Errors, Error, Identity, ListDatabasesData, ListDatabasesError, ListDatabasesErrors, ListDatabasesResponse, ListDatabasesResponses, ListDownloadsData, ListDownloadsError, ListDownloadsErrors, ListDownloadsResponse, ListDownloadsResponses, OauthAuthorizeData, OauthAuthorizeErrors, OauthDeviceAuthorizationData, OauthDeviceAuthorizationError, OauthDeviceAuthorizationErrors, OauthDeviceAuthorizationResponse, OauthDeviceAuthorizationResponses, OauthError, OauthMetadata, OauthMetadataData, OauthMetadataResponse, OauthMetadataResponses, OauthRevokeData, OauthRevokeResponse, OauthRevokeResponses, OauthTokenData, OauthTokenError, OauthTokenErrors, OauthTokenResponse, OauthTokenResponses, RevokeRequest, Standing, TokenRequest, TokenResponse } from './types.gen.js';
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
- export { databaseChecksum, databaseChecksumV2, databaseDownload, databaseMetadata, databaseMetadataV2, downloadDatabaseV2, listDatabases, listDownloads } from './sdk.gen.js';
2
+ export { accountCreateApikey, accountIdentity, accountListApikeys, accountOrg, accountOrgMembers, accountRevealApikey, accountRevokeApikey, accountRotateApikey, databaseChecksum, databaseChecksumV2, databaseDownload, databaseMetadata, databaseMetadataV2, downloadDatabaseV2, listDatabases, listDownloads, oauthAuthorize, oauthDeviceAuthorization, oauthMetadata, oauthRevoke, oauthToken } from './sdk.gen.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,wBAAwB,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAgB,MAAM,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Client, ClientMeta, Options as Options2, RequestResult, TDataShape } from './client/index.js';
2
- import type { DatabaseChecksumData, DatabaseChecksumErrors, DatabaseChecksumResponses, DatabaseChecksumV2Data, DatabaseChecksumV2Errors, DatabaseChecksumV2Responses, DatabaseDownloadData, DatabaseDownloadErrors, DatabaseDownloadResponses, DatabaseMetadataData, DatabaseMetadataErrors, DatabaseMetadataResponses, DatabaseMetadataV2Data, DatabaseMetadataV2Errors, DatabaseMetadataV2Responses, DownloadDatabaseV2Data, DownloadDatabaseV2Errors, ListDatabasesData, ListDatabasesErrors, ListDatabasesResponses, ListDownloadsData, ListDownloadsErrors, ListDownloadsResponses } from './types.gen.js';
1
+ import { type Client, type ClientMeta, type Options as Options2, type RequestResult, type TDataShape } from './client/index.js';
2
+ import type { AccountCreateApikeyData, AccountCreateApikeyErrors, AccountCreateApikeyResponses, AccountIdentityData, AccountIdentityErrors, AccountIdentityResponses, AccountListApikeysData, AccountListApikeysErrors, AccountListApikeysResponses, AccountOrgData, AccountOrgErrors, AccountOrgMembersData, AccountOrgMembersErrors, AccountOrgMembersResponses, AccountOrgResponses, AccountRevealApikeyData, AccountRevealApikeyErrors, AccountRevealApikeyResponses, AccountRevokeApikeyData, AccountRevokeApikeyErrors, AccountRevokeApikeyResponses, AccountRotateApikeyData, AccountRotateApikeyErrors, AccountRotateApikeyResponses, DatabaseChecksumData, DatabaseChecksumErrors, DatabaseChecksumResponses, DatabaseChecksumV2Data, DatabaseChecksumV2Errors, DatabaseChecksumV2Responses, DatabaseDownloadData, DatabaseDownloadErrors, DatabaseDownloadResponses, DatabaseMetadataData, DatabaseMetadataErrors, DatabaseMetadataResponses, DatabaseMetadataV2Data, DatabaseMetadataV2Errors, DatabaseMetadataV2Responses, DownloadDatabaseV2Data, DownloadDatabaseV2Errors, ListDatabasesData, ListDatabasesErrors, ListDatabasesResponses, ListDownloadsData, ListDownloadsErrors, ListDownloadsResponses, OauthAuthorizeData, OauthAuthorizeErrors, OauthDeviceAuthorizationData, OauthDeviceAuthorizationErrors, OauthDeviceAuthorizationResponses, OauthMetadataData, OauthMetadataResponses, OauthRevokeData, OauthRevokeResponses, OauthTokenData, OauthTokenErrors, OauthTokenResponses } from './types.gen.js';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -16,7 +16,7 @@ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends
16
16
  /**
17
17
  * List
18
18
  *
19
- * The whole published catalog, with your organization's licence beside
19
+ * The whole published catalog, with your organization's license beside
20
20
  * each entry, so `standing` says whether a database is yours today
21
21
  * (`licensed`), was (`expired`), or has never been bought (`unlicensed`).
22
22
  *
@@ -82,3 +82,165 @@ export declare const databaseChecksum: <ThrowOnError extends boolean = false>(op
82
82
  *
83
83
  */
84
84
  export declare const databaseMetadata: <ThrowOnError extends boolean = false>(options: Options<DatabaseMetadataData, ThrowOnError>) => RequestResult<DatabaseMetadataResponses, DatabaseMetadataErrors, ThrowOnError>;
85
+ /**
86
+ * Identity
87
+ *
88
+ * The identity behind this credential: what it is, the organization it is
89
+ * scoped to, and the scopes it currently holds.
90
+ *
91
+ * `user` is present for an OAuth token and ABSENT for an API key, which
92
+ * has an organization but no person behind it. `credential.kind` says
93
+ * which you are holding, so a client can branch without guessing from a
94
+ * missing field.
95
+ *
96
+ * Narrower than what the console shows its own user on purpose: an
97
+ * integration needs a name to display and an organization to address, not
98
+ * a profile. The `scopes` array is what the credential may do RIGHT NOW,
99
+ * so a client can render its own capabilities rather than discovering
100
+ * them from a 403.
101
+ *
102
+ */
103
+ export declare const accountIdentity: <ThrowOnError extends boolean = false>(options?: Options<AccountIdentityData, ThrowOnError>) => RequestResult<AccountIdentityResponses, AccountIdentityErrors, ThrowOnError>;
104
+ /**
105
+ * Organization
106
+ *
107
+ * The organization this credential is scoped to.
108
+ *
109
+ * There is no way to name a different one. A credential describes exactly
110
+ * one organization, so an identifier in the path could only ever be your
111
+ * own or a refusal.
112
+ *
113
+ */
114
+ export declare const accountOrg: <ThrowOnError extends boolean = false>(options?: Options<AccountOrgData, ThrowOnError>) => RequestResult<AccountOrgResponses, AccountOrgErrors, ThrowOnError>;
115
+ /**
116
+ * Members
117
+ *
118
+ * Read-only. Adding or removing a member is an invitation flow with email
119
+ * in the middle rather than a POST, and modelling it as one here would
120
+ * promise something this API does not do.
121
+ *
122
+ */
123
+ export declare const accountOrgMembers: <ThrowOnError extends boolean = false>(options?: Options<AccountOrgMembersData, ThrowOnError>) => RequestResult<AccountOrgMembersResponses, AccountOrgMembersErrors, ThrowOnError>;
124
+ /**
125
+ * List
126
+ *
127
+ * Metadata only. A key's secret is never in a list - not here and not in
128
+ * the console - because a list is the response that ends up in logs,
129
+ * caches and support tickets.
130
+ *
131
+ * `retrievable` says whether the secret could still be read back at all.
132
+ * A key issued before this product stored secrets recoverably was never
133
+ * kept, so `reveal` will refuse it permanently; rotating produces one
134
+ * that can be read.
135
+ *
136
+ */
137
+ export declare const accountListApikeys: <ThrowOnError extends boolean = false>(options?: Options<AccountListApikeysData, ThrowOnError>) => RequestResult<AccountListApikeysResponses, AccountListApikeysErrors, ThrowOnError>;
138
+ /**
139
+ * Create
140
+ *
141
+ * Creates a key and returns its secret.
142
+ *
143
+ * This is the ONLY response that ever carries the secret, and only
144
+ * because this is the moment it comes into existence. Store it now.
145
+ *
146
+ */
147
+ export declare const accountCreateApikey: <ThrowOnError extends boolean = false>(options: Options<AccountCreateApikeyData, ThrowOnError>) => RequestResult<AccountCreateApikeyResponses, AccountCreateApikeyErrors, ThrowOnError>;
148
+ /**
149
+ * Rotate
150
+ *
151
+ * Replaces the secret behind a key, keeping its id, name and settings.
152
+ * The previous secret stops working immediately.
153
+ *
154
+ */
155
+ export declare const accountRotateApikey: <ThrowOnError extends boolean = false>(options: Options<AccountRotateApikeyData, ThrowOnError>) => RequestResult<AccountRotateApikeyResponses, AccountRotateApikeyErrors, ThrowOnError>;
156
+ /**
157
+ * Revoke
158
+ *
159
+ * Stops the key working. Revocation is soft: the key stays listed with a
160
+ * `revoked_at`, because the organization still owns whatever it did while
161
+ * it was alive.
162
+ *
163
+ */
164
+ export declare const accountRevokeApikey: <ThrowOnError extends boolean = false>(options: Options<AccountRevokeApikeyData, ThrowOnError>) => RequestResult<AccountRevokeApikeyResponses, AccountRevokeApikeyErrors, ThrowOnError>;
165
+ /**
166
+ * Reveal
167
+ *
168
+ * Returns an existing key's secret.
169
+ *
170
+ * Its own scope rather than part of `apikeys.manage`, because the two are
171
+ * different acts: rotating replaces a secret you never see, while this
172
+ * hands one over.
173
+ *
174
+ * Refused with `NOT_RETRIEVABLE` for a key issued before this product
175
+ * stored secrets recoverably - that secret was never kept, so no retry
176
+ * will ever produce it. Rotate the key instead.
177
+ *
178
+ */
179
+ export declare const accountRevealApikey: <ThrowOnError extends boolean = false>(options: Options<AccountRevealApikeyData, ThrowOnError>) => RequestResult<AccountRevealApikeyResponses, AccountRevealApikeyErrors, ThrowOnError>;
180
+ /**
181
+ * Discovery
182
+ *
183
+ * RFC 8414 authorization server metadata: the endpoints, the grant types
184
+ * and the scopes this server supports.
185
+ *
186
+ * Read this rather than hardcoding endpoints. It is also served at
187
+ * `/.well-known/openid-configuration`, identically, because several
188
+ * clients probe that path first.
189
+ *
190
+ */
191
+ export declare const oauthMetadata: <ThrowOnError extends boolean = false>(options?: Options<OauthMetadataData, ThrowOnError>) => RequestResult<OauthMetadataResponses, unknown, ThrowOnError>;
192
+ /**
193
+ * Device authorization
194
+ *
195
+ * Starts the device flow. Show the `user_code` to the person and send them
196
+ * to `verification_uri`; `verification_uri_complete` has the code already
197
+ * embedded, which is what to open if you can open a browser at all.
198
+ *
199
+ * Then poll `/oauth/token`, no faster than `interval` seconds.
200
+ *
201
+ */
202
+ export declare const oauthDeviceAuthorization: <ThrowOnError extends boolean = false>(options: Options<OauthDeviceAuthorizationData, ThrowOnError>) => RequestResult<OauthDeviceAuthorizationResponses, OauthDeviceAuthorizationErrors, ThrowOnError>;
203
+ /**
204
+ * Authorize
205
+ *
206
+ * The browser entry point for the authorization-code flow. This is a
207
+ * redirect target, not something to call from code.
208
+ *
209
+ * An unknown `client_id` or an unregistered `redirect_uri` is shown to the
210
+ * USER and never redirected, because sending an error to an address we
211
+ * have not verified belongs to you is how an open redirector works.
212
+ * Everything else comes back to your `redirect_uri` with `error`, your
213
+ * `state`, and `iss`.
214
+ *
215
+ */
216
+ export declare const oauthAuthorize: <ThrowOnError extends boolean = false>(options: Options<OauthAuthorizeData, ThrowOnError>) => RequestResult<unknown, OauthAuthorizeErrors, ThrowOnError>;
217
+ /**
218
+ * Token
219
+ *
220
+ * Three grant types.
221
+ *
222
+ * `urn:ietf:params:oauth:grant-type:device_code` polls a device
223
+ * authorization. Until the person approves it answers
224
+ * `authorization_pending`; poll faster than `interval` and it answers
225
+ * `slow_down`, which means widen your interval and keep it widened.
226
+ *
227
+ * `authorization_code` exchanges a code from `/oauth/authorize`, with the
228
+ * `code_verifier` matching the challenge you sent.
229
+ *
230
+ * `refresh_token` exchanges a refresh token. The presented token is
231
+ * consumed whatever happens next, so store the new one before using it.
232
+ *
233
+ */
234
+ export declare const oauthToken: <ThrowOnError extends boolean = false>(options: Options<OauthTokenData, ThrowOnError>) => RequestResult<OauthTokenResponses, OauthTokenErrors, ThrowOnError>;
235
+ /**
236
+ * Revoke
237
+ *
238
+ * RFC 7009. Always answers 200, including for a token that was never
239
+ * valid - an endpoint that distinguished the two would be a way to test
240
+ * whether a stolen string is a live credential.
241
+ *
242
+ * Revoking a REFRESH token ends the whole authorization and takes its
243
+ * access tokens with it. Revoking an access token affects only that token.
244
+ *
245
+ */
246
+ export declare const oauthRevoke: <ThrowOnError extends boolean = false>(options: Options<OauthRevokeData, ThrowOnError>) => RequestResult<OauthRevokeResponses, unknown, ThrowOnError>;