openai 4.0.0-beta.7 → 4.0.0-beta.9
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 +43 -14
- package/_shims/ReadableStream.d.ts +38 -0
- package/_shims/ReadableStream.js +5 -0
- package/_shims/ReadableStream.mjs +7 -0
- package/_shims/ReadableStream.node.d.ts +6 -0
- package/_shims/ReadableStream.node.d.ts.map +1 -0
- package/_shims/ReadableStream.node.js +14 -0
- package/_shims/ReadableStream.node.js.map +1 -0
- package/_shims/ReadableStream.node.mjs +3 -0
- package/_shims/ReadableStream.node.mjs.map +1 -0
- package/_shims/fetch.d.ts +8 -1
- package/_shims/fetch.node.d.ts +11 -1
- package/bin/cli +21 -0
- package/core.d.ts +77 -28
- package/core.d.ts.map +1 -1
- package/core.js +181 -62
- package/core.js.map +1 -1
- package/core.mjs +175 -62
- package/core.mjs.map +1 -1
- package/index.d.mts +9 -0
- package/index.d.ts +9 -0
- package/index.d.ts.map +1 -1
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/index.mjs +5 -0
- package/index.mjs.map +1 -1
- package/package.json +3 -2
- package/pagination.d.ts +2 -2
- package/pagination.d.ts.map +1 -1
- package/pagination.js +4 -4
- package/pagination.js.map +1 -1
- package/pagination.mjs +4 -4
- package/pagination.mjs.map +1 -1
- package/resources/audio/audio.d.ts.map +1 -1
- package/resources/audio/audio.js.map +1 -1
- package/resources/audio/transcriptions.d.ts +1 -4
- package/resources/audio/transcriptions.d.ts.map +1 -1
- package/resources/audio/transcriptions.js +2 -5
- package/resources/audio/transcriptions.js.map +1 -1
- package/resources/audio/transcriptions.mjs +2 -2
- package/resources/audio/transcriptions.mjs.map +1 -1
- package/resources/audio/translations.d.ts +1 -4
- package/resources/audio/translations.d.ts.map +1 -1
- package/resources/audio/translations.js +2 -5
- package/resources/audio/translations.js.map +1 -1
- package/resources/audio/translations.mjs +2 -2
- package/resources/audio/translations.mjs.map +1 -1
- package/resources/chat/chat.d.ts +3 -0
- package/resources/chat/chat.d.ts.map +1 -1
- package/resources/chat/chat.js.map +1 -1
- package/resources/chat/chat.mjs.map +1 -1
- package/resources/chat/completions.d.ts +195 -325
- package/resources/chat/completions.d.ts.map +1 -1
- package/resources/chat/completions.js.map +1 -1
- package/resources/chat/completions.mjs.map +1 -1
- package/resources/chat/index.d.ts +3 -0
- package/resources/chat/index.d.ts.map +1 -1
- package/resources/chat/index.js.map +1 -1
- package/resources/chat/index.mjs.map +1 -1
- package/resources/completions.d.ts +169 -287
- package/resources/completions.d.ts.map +1 -1
- package/resources/completions.js.map +1 -1
- package/resources/completions.mjs.map +1 -1
- package/resources/edits.d.ts +1 -1
- package/resources/edits.d.ts.map +1 -1
- package/resources/embeddings.d.ts +1 -1
- package/resources/embeddings.d.ts.map +1 -1
- package/resources/files.d.ts +5 -5
- package/resources/files.d.ts.map +1 -1
- package/resources/files.js +2 -2
- package/resources/files.js.map +1 -1
- package/resources/files.mjs +2 -2
- package/resources/files.mjs.map +1 -1
- package/resources/fine-tunes.d.ts +49 -35
- package/resources/fine-tunes.d.ts.map +1 -1
- package/resources/fine-tunes.js.map +1 -1
- package/resources/fine-tunes.mjs.map +1 -1
- package/resources/images.d.ts +3 -6
- package/resources/images.d.ts.map +1 -1
- package/resources/images.js +4 -7
- package/resources/images.js.map +1 -1
- package/resources/images.mjs +4 -4
- package/resources/images.mjs.map +1 -1
- package/resources/index.d.ts +10 -1
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs.map +1 -1
- package/resources/models.d.ts +3 -3
- package/resources/models.d.ts.map +1 -1
- package/resources/moderations.d.ts +1 -1
- package/resources/moderations.d.ts.map +1 -1
- package/src/_shims/ReadableStream.d.ts +38 -0
- package/src/_shims/ReadableStream.js +5 -0
- package/src/_shims/ReadableStream.mjs +7 -0
- package/src/_shims/ReadableStream.node.ts +6 -0
- package/src/_shims/fetch.d.ts +8 -1
- package/src/_shims/fetch.deno.ts +23 -0
- package/src/_shims/fetch.node.d.ts +11 -1
- package/src/_shims/formdata.deno.ts +16 -0
- package/src/core.ts +247 -85
- package/src/index.ts +16 -0
- package/src/pagination.ts +5 -5
- package/src/resources/audio/audio.ts +1 -1
- package/src/resources/audio/transcriptions.ts +3 -6
- package/src/resources/audio/translations.ts +3 -6
- package/src/resources/chat/chat.ts +4 -1
- package/src/resources/chat/completions.ts +206 -350
- package/src/resources/chat/index.ts +3 -0
- package/src/resources/completions.ts +190 -320
- package/src/resources/edits.ts +2 -2
- package/src/resources/embeddings.ts +2 -2
- package/src/resources/files.ts +7 -7
- package/src/resources/fine-tunes.ts +53 -38
- package/src/resources/images.ts +7 -13
- package/src/resources/index.ts +10 -1
- package/src/resources/models.ts +4 -4
- package/src/resources/moderations.ts +2 -2
- package/src/streaming.ts +35 -13
- package/src/uploads.ts +7 -6
- package/src/version.ts +1 -1
- package/streaming.d.ts +5 -7
- package/streaming.d.ts.map +1 -1
- package/streaming.js +30 -2
- package/streaming.js.map +1 -1
- package/streaming.mjs +30 -2
- package/streaming.mjs.map +1 -1
- package/uploads.d.ts +5 -4
- package/uploads.d.ts.map +1 -1
- package/uploads.js +2 -2
- package/uploads.js.map +1 -1
- package/uploads.mjs +2 -2
- package/uploads.mjs.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/README.md
CHANGED
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://npmjs.org/package/openai)
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
It includes TypeScript definitions for all request params and response fields.
|
|
5
|
+
This library provides convenient access to the OpenAI REST API from TypeScript or JavaScript.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Documentation
|
|
7
|
+
It is generated from our [OpenAPI specification](https://github.com/openai/openai-openapi) with [Stainless](https://stainlessapi.com/).
|
|
11
8
|
|
|
12
9
|
To learn how to use the OpenAI API, check out our [API Reference](https://platform.openai.com/docs/api-reference) and [Documentation](https://platform.openai.com/docs).
|
|
13
10
|
|
|
@@ -21,6 +18,9 @@ yarn add openai
|
|
|
21
18
|
|
|
22
19
|
## Usage
|
|
23
20
|
|
|
21
|
+
> [!IMPORTANT]
|
|
22
|
+
> Previous versions of this SDK used a `Configuration` class. See the [v3 to v4 migration guide](https://github.com/openai/openai-node/discussions/217).
|
|
23
|
+
|
|
24
24
|
```js
|
|
25
25
|
import OpenAI from 'openai';
|
|
26
26
|
|
|
@@ -66,10 +66,9 @@ main();
|
|
|
66
66
|
If you need to cancel a stream, you can `break` from the loop
|
|
67
67
|
or call `stream.controller.abort()`.
|
|
68
68
|
|
|
69
|
-
###
|
|
69
|
+
### Request & Response types
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
If you like, you may reference our types directly:
|
|
71
|
+
This library includes TypeScript definitions for all request params and response fields. You may import and use them like so:
|
|
73
72
|
|
|
74
73
|
```ts
|
|
75
74
|
import OpenAI from 'openai';
|
|
@@ -207,6 +206,30 @@ On timeout, an `APIConnectionTimeoutError` is thrown.
|
|
|
207
206
|
|
|
208
207
|
Note that requests which time out will be [retried twice by default](#retries).
|
|
209
208
|
|
|
209
|
+
## Advanced Usage
|
|
210
|
+
|
|
211
|
+
### Accessing raw Response data (e.g., headers)
|
|
212
|
+
|
|
213
|
+
The "raw" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.
|
|
214
|
+
|
|
215
|
+
You can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.
|
|
216
|
+
|
|
217
|
+
```ts
|
|
218
|
+
const openai = new OpenAI();
|
|
219
|
+
|
|
220
|
+
const response = await openai.chat.completions
|
|
221
|
+
.create({ messages: [{ role: 'user', content: 'Say this is a test' }], model: 'gpt-3.5-turbo' })
|
|
222
|
+
.asResponse();
|
|
223
|
+
console.log(response.headers.get('X-My-Header'));
|
|
224
|
+
console.log(response.statusText); // access the underlying Response object
|
|
225
|
+
|
|
226
|
+
const { data: completions, response: raw } = await openai.chat.completions
|
|
227
|
+
.create({ messages: [{ role: 'user', content: 'Say this is a test' }], model: 'gpt-3.5-turbo' })
|
|
228
|
+
.withResponse();
|
|
229
|
+
console.log(raw.headers.get('X-My-Header'));
|
|
230
|
+
console.log(completions.choices);
|
|
231
|
+
```
|
|
232
|
+
|
|
210
233
|
## Configuring an HTTP(S) Agent (e.g., for proxies)
|
|
211
234
|
|
|
212
235
|
By default, this library uses a stable agent for all http/https requests to reuse TCP connections, eliminating many TCP & TLS handshakes and shaving around 100ms off most requests.
|
|
@@ -230,11 +253,15 @@ await openai.models.list({
|
|
|
230
253
|
})
|
|
231
254
|
```
|
|
232
255
|
|
|
233
|
-
##
|
|
256
|
+
## Semantic Versioning
|
|
257
|
+
|
|
258
|
+
This package generally attempts to follow [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:
|
|
259
|
+
|
|
260
|
+
1. Changes that only affect static types, without breaking runtime behavior.
|
|
261
|
+
2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals)_.
|
|
262
|
+
3. Changes that we do not expect to impact the vast majority of users in practice.
|
|
234
263
|
|
|
235
|
-
|
|
236
|
-
and subject to change without a major semver bump;
|
|
237
|
-
please reach out if you rely on any undocumented behavior.
|
|
264
|
+
We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.
|
|
238
265
|
|
|
239
266
|
We are keen for your feedback; please open an [issue](https://www.github.com/openai/openai-node/issues) with questions, bugs, or suggestions.
|
|
240
267
|
|
|
@@ -243,7 +270,9 @@ We are keen for your feedback; please open an [issue](https://www.github.com/ope
|
|
|
243
270
|
The following runtimes are supported:
|
|
244
271
|
|
|
245
272
|
- Node.js 16 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.
|
|
246
|
-
- Deno v1.28.0 or higher
|
|
247
|
-
|
|
273
|
+
- Deno v1.28.0 or higher, using `import OpenAI from "npm:openai"`.
|
|
274
|
+
Deno Deploy is not yet supported.
|
|
275
|
+
- Cloudflare Workers.
|
|
276
|
+
- Vercel Edge Runtime.
|
|
248
277
|
|
|
249
278
|
If you are interested in other runtime environments, please open or upvote an issue on GitHub.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disclaimer: modules in _shims aren't intended to be imported by SDK users.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* >>> Confused? <<<
|
|
7
|
+
*
|
|
8
|
+
* If you're getting errors from these types, try adding "lib": ["DOM"]
|
|
9
|
+
* to your tsconfig.json, or otherwise configure the appropriate builtin
|
|
10
|
+
* `ReadableStream` type for your environment.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
type _ReadableStream<R = any> = unknown extends ReadableStream ? never : ReadableStream<R>;
|
|
15
|
+
declare const _ReadableStream: {
|
|
16
|
+
prototype: _ReadableStream;
|
|
17
|
+
new (
|
|
18
|
+
underlyingSource: _UnderlyingByteSource,
|
|
19
|
+
strategy?: { highWaterMark?: number },
|
|
20
|
+
): _ReadableStream<Uint8Array>;
|
|
21
|
+
new <R = any>(
|
|
22
|
+
underlyingSource: _UnderlyingDefaultSource<R>,
|
|
23
|
+
strategy?: _QueuingStrategy<R>,
|
|
24
|
+
): _ReadableStream<R>;
|
|
25
|
+
new <R = any>(underlyingSource?: _UnderlyingSource<R>, strategy?: _QueuingStrategy<R>): _ReadableStream<R>;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
type _UnderlyingSource<R = any> = unknown extends UnderlyingSource ? never : UnderlyingSource<R>;
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
type _UnderlyingByteSource = unknown extends UnderlyingByteSource ? never : UnderlyingByteSource;
|
|
32
|
+
type _UnderlyingDefaultSource<R = any> =
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
unknown extends UnderlyingDefaultSource ? never : UnderlyingDefaultSource<R>;
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
type _QueuingStrategy<R = any> = unknown extends QueuingStrategy ? never : QueuingStrategy<R>;
|
|
37
|
+
|
|
38
|
+
export { _ReadableStream as ReadableStream };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadableStream.node.d.ts","sourceRoot":"","sources":["../src/_shims/ReadableStream.node.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
|
+
exports.ReadableStream = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Disclaimer: modules in _shims aren't intended to be imported by SDK users.
|
|
6
|
+
*/
|
|
7
|
+
const web_streams_polyfill_1 = require('web-streams-polyfill');
|
|
8
|
+
Object.defineProperty(exports, 'ReadableStream', {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () {
|
|
11
|
+
return web_streams_polyfill_1.ReadableStream;
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=ReadableStream.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadableStream.node.js","sourceRoot":"","sources":["../src/_shims/ReadableStream.node.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,+DAAsD;AAE7C,+FAFA,qCAAc,OAEA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadableStream.node.mjs","sourceRoot":"","sources":["../src/_shims/ReadableStream.node.ts"],"names":[],"mappings":"OAGO,EAAE,cAAc,EAAE,MAAM,sBAAsB;AAErD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/_shims/fetch.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ type _Response = unknown extends Response ? never : Response;
|
|
|
26
26
|
// @ts-ignore
|
|
27
27
|
type _ResponseInit = unknown extends ResponseInit ? never : ResponseInit;
|
|
28
28
|
// @ts-ignore
|
|
29
|
+
type _ResponseType = unknown extends ResponseType ? never : ResponseType;
|
|
30
|
+
// @ts-ignore
|
|
29
31
|
type _BodyInit = unknown extends BodyInit ? never : BodyInit;
|
|
30
32
|
// @ts-ignore
|
|
31
33
|
type _Headers = unknown extends Headers ? never : Headers;
|
|
@@ -49,4 +51,9 @@ declare const _Headers: {
|
|
|
49
51
|
export const isPolyfilled = false;
|
|
50
52
|
|
|
51
53
|
export { _fetch as fetch, _Request as Request, _Response as Response, _Headers as Headers };
|
|
52
|
-
export type {
|
|
54
|
+
export type {
|
|
55
|
+
_RequestInit as RequestInit,
|
|
56
|
+
_RequestInfo as RequestInfo,
|
|
57
|
+
_ResponseType as ResponseType,
|
|
58
|
+
_BodyInit as BodyInit,
|
|
59
|
+
};
|
package/_shims/fetch.node.d.ts
CHANGED
|
@@ -26,6 +26,11 @@ type _RequestInit = unknown extends RequestInit ? nf.RequestInit : RequestInit;
|
|
|
26
26
|
type _Response = unknown extends Response ? nf.Response : Response;
|
|
27
27
|
// @ts-ignore
|
|
28
28
|
type _ResponseInit = unknown extends ResponseInit ? nf.ResponseInit : ResponseInit;
|
|
29
|
+
type _ResponseType =
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
unknown extends ResponseType ? 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect'
|
|
32
|
+
: // @ts-ignore
|
|
33
|
+
ResponseType;
|
|
29
34
|
// @ts-ignore
|
|
30
35
|
type _BodyInit = unknown extends BodyInit ? nf.BodyInit : BodyInit;
|
|
31
36
|
// @ts-ignore
|
|
@@ -50,4 +55,9 @@ declare const _Headers: {
|
|
|
50
55
|
export const isPolyfilled = false;
|
|
51
56
|
|
|
52
57
|
export { _fetch as fetch, _Request as Request, _Response as Response, _Headers as Headers };
|
|
53
|
-
export type {
|
|
58
|
+
export type {
|
|
59
|
+
_RequestInit as RequestInit,
|
|
60
|
+
_RequestInfo as RequestInfo,
|
|
61
|
+
_ResponseType as ResponseType,
|
|
62
|
+
_BodyInit as BodyInit,
|
|
63
|
+
};
|
package/bin/cli
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -eou pipefail
|
|
3
|
+
|
|
4
|
+
if [ $# -eq 0 ]; then
|
|
5
|
+
echo "Usage: $0 <subcommand>"
|
|
6
|
+
echo
|
|
7
|
+
echo "Subcommands:"
|
|
8
|
+
echo " migrate Run migrations to update from openai v3 to v4"
|
|
9
|
+
echo
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
if [ "$1" = "migrate" ]; then
|
|
14
|
+
echo "This automatic code migration is provided by grit.io"
|
|
15
|
+
echo "Visit https://app.grit.io/studio?preset=openai_v4 for more details."
|
|
16
|
+
shift
|
|
17
|
+
npx -y @getgrit/launcher apply openai_v4 "$@"
|
|
18
|
+
else
|
|
19
|
+
echo "Unknown subcommand $1; Expected 'migrate'" >&2
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
package/core.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { APIError } from './error.js';
|
|
|
2
2
|
import type { Readable } from 'openai/_shims/node-readable';
|
|
3
3
|
import { type Agent } from 'openai/_shims/agent';
|
|
4
4
|
import { type RequestInfo, type RequestInit, type Response } from 'openai/_shims/fetch';
|
|
5
|
+
export { type Response };
|
|
5
6
|
export {
|
|
6
7
|
maybeMultipartFormRequestOptions,
|
|
7
8
|
multipartFormRequestOptions,
|
|
@@ -9,6 +10,53 @@ export {
|
|
|
9
10
|
type Uploadable,
|
|
10
11
|
} from './uploads.js';
|
|
11
12
|
export type Fetch = (url: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
13
|
+
type PromiseOrValue<T> = T | Promise<T>;
|
|
14
|
+
type APIResponseProps = {
|
|
15
|
+
response: Response;
|
|
16
|
+
options: FinalRequestOptions;
|
|
17
|
+
controller: AbortController;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* A subclass of `Promise` providing additional helper methods
|
|
21
|
+
* for interacting with the SDK.
|
|
22
|
+
*/
|
|
23
|
+
export declare class APIPromise<T> extends Promise<T> {
|
|
24
|
+
private responsePromise;
|
|
25
|
+
private parseResponse;
|
|
26
|
+
private parsedPromise;
|
|
27
|
+
constructor(
|
|
28
|
+
responsePromise: Promise<APIResponseProps>,
|
|
29
|
+
parseResponse?: (props: APIResponseProps) => PromiseOrValue<T>,
|
|
30
|
+
);
|
|
31
|
+
_thenUnwrap<U>(transform: (data: T) => U): APIPromise<U>;
|
|
32
|
+
/**
|
|
33
|
+
* Gets the raw `Response` instance instead of parsing the response
|
|
34
|
+
* data.
|
|
35
|
+
*
|
|
36
|
+
* If you want to parse the response body but still get the `Response`
|
|
37
|
+
* instance, you can use {@link withResponse()}.
|
|
38
|
+
*/
|
|
39
|
+
asResponse(): Promise<Response>;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the parsed response data and the raw `Response` instance.
|
|
42
|
+
*
|
|
43
|
+
* If you just want to get the raw `Response` instance without parsing it,
|
|
44
|
+
* you can use {@link asResponse()}.
|
|
45
|
+
*/
|
|
46
|
+
withResponse(): Promise<{
|
|
47
|
+
data: T;
|
|
48
|
+
response: Response;
|
|
49
|
+
}>;
|
|
50
|
+
private parse;
|
|
51
|
+
then<TResult1 = T, TResult2 = never>(
|
|
52
|
+
onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,
|
|
53
|
+
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null,
|
|
54
|
+
): Promise<TResult1 | TResult2>;
|
|
55
|
+
catch<TResult = never>(
|
|
56
|
+
onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null,
|
|
57
|
+
): Promise<T | TResult>;
|
|
58
|
+
finally(onfinally?: (() => void) | undefined | null): Promise<T>;
|
|
59
|
+
}
|
|
12
60
|
export declare abstract class APIClient {
|
|
13
61
|
baseURL: string;
|
|
14
62
|
maxRetries: number;
|
|
@@ -45,16 +93,17 @@ export declare abstract class APIClient {
|
|
|
45
93
|
*/
|
|
46
94
|
protected validateHeaders(headers: Headers, customHeaders: Headers): void;
|
|
47
95
|
protected defaultIdempotencyKey(): string;
|
|
48
|
-
get<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req
|
|
49
|
-
post<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req
|
|
50
|
-
patch<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req
|
|
51
|
-
put<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req
|
|
52
|
-
delete<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req
|
|
96
|
+
get<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
|
|
97
|
+
post<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
|
|
98
|
+
patch<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
|
|
99
|
+
put<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
|
|
100
|
+
delete<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
|
|
101
|
+
private methodRequest;
|
|
53
102
|
getAPIList<Item, PageClass extends AbstractPage<Item> = AbstractPage<Item>>(
|
|
54
103
|
path: string,
|
|
55
104
|
Page: new (...args: any[]) => PageClass,
|
|
56
105
|
opts?: RequestOptions<any>,
|
|
57
|
-
): PagePromise<PageClass>;
|
|
106
|
+
): PagePromise<PageClass, Item>;
|
|
58
107
|
private calculateContentLength;
|
|
59
108
|
buildRequest<Req extends {}>(
|
|
60
109
|
options: FinalRequestOptions<Req>,
|
|
@@ -84,13 +133,14 @@ export declare abstract class APIClient {
|
|
|
84
133
|
headers: Headers | undefined,
|
|
85
134
|
): APIError;
|
|
86
135
|
request<Req extends {}, Rsp>(
|
|
87
|
-
options: FinalRequestOptions<Req
|
|
88
|
-
|
|
89
|
-
):
|
|
136
|
+
options: PromiseOrValue<FinalRequestOptions<Req>>,
|
|
137
|
+
remainingRetries?: number | null,
|
|
138
|
+
): APIPromise<Rsp>;
|
|
139
|
+
private makeRequest;
|
|
90
140
|
requestAPIList<Item = unknown, PageClass extends AbstractPage<Item> = AbstractPage<Item>>(
|
|
91
141
|
Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,
|
|
92
142
|
options: FinalRequestOptions,
|
|
93
|
-
): PagePromise<PageClass>;
|
|
143
|
+
): PagePromise<PageClass, Item>;
|
|
94
144
|
buildURL<Req>(path: string, query: Req | undefined): string;
|
|
95
145
|
protected stringifyQuery(query: Record<string, unknown>): string;
|
|
96
146
|
fetchWithTimeout(
|
|
@@ -104,7 +154,6 @@ export declare abstract class APIClient {
|
|
|
104
154
|
private retryRequest;
|
|
105
155
|
private calculateRetryTimeoutSeconds;
|
|
106
156
|
private getUserAgent;
|
|
107
|
-
private debug;
|
|
108
157
|
}
|
|
109
158
|
export declare class APIResource {
|
|
110
159
|
protected client: APIClient;
|
|
@@ -126,7 +175,9 @@ export type PageInfo =
|
|
|
126
175
|
export declare abstract class AbstractPage<Item> implements AsyncIterable<Item> {
|
|
127
176
|
#private;
|
|
128
177
|
protected options: FinalRequestOptions;
|
|
129
|
-
|
|
178
|
+
protected response: Response;
|
|
179
|
+
protected body: unknown;
|
|
180
|
+
constructor(client: APIClient, response: Response, body: unknown, options: FinalRequestOptions);
|
|
130
181
|
/**
|
|
131
182
|
* @deprecated Use nextPageInfo instead
|
|
132
183
|
*/
|
|
@@ -138,27 +189,27 @@ export declare abstract class AbstractPage<Item> implements AsyncIterable<Item>
|
|
|
138
189
|
iterPages(): AsyncGenerator<AbstractPage<Item>, void, unknown>;
|
|
139
190
|
[Symbol.asyncIterator](): AsyncGenerator<Awaited<Item>, void, unknown>;
|
|
140
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* This subclass of Promise will resolve to an instantiated Page once the request completes.
|
|
194
|
+
*
|
|
195
|
+
* It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
|
|
196
|
+
*
|
|
197
|
+
* for await (const item of client.items.list()) {
|
|
198
|
+
* console.log(item)
|
|
199
|
+
* }
|
|
200
|
+
*/
|
|
141
201
|
export declare class PagePromise<
|
|
142
202
|
PageClass extends AbstractPage<Item>,
|
|
143
203
|
Item = ReturnType<PageClass['getPaginatedItems']>[number],
|
|
144
204
|
>
|
|
145
|
-
extends
|
|
205
|
+
extends APIPromise<PageClass>
|
|
146
206
|
implements AsyncIterable<Item>
|
|
147
207
|
{
|
|
148
|
-
/**
|
|
149
|
-
* This subclass of Promise will resolve to an instantiated Page once the request completes.
|
|
150
|
-
*/
|
|
151
208
|
constructor(
|
|
152
209
|
client: APIClient,
|
|
153
|
-
|
|
154
|
-
options: FinalRequestOptions,
|
|
210
|
+
request: Promise<APIResponseProps>,
|
|
155
211
|
Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,
|
|
156
212
|
);
|
|
157
|
-
/**
|
|
158
|
-
* Enable subclassing Promise.
|
|
159
|
-
* Ref: https://stackoverflow.com/a/60328122
|
|
160
|
-
*/
|
|
161
|
-
static get [Symbol.species](): PromiseConstructor;
|
|
162
213
|
/**
|
|
163
214
|
* Allow auto-paginating iteration on an unawaited list call, eg:
|
|
164
215
|
*
|
|
@@ -200,17 +251,13 @@ export type FinalRequestOptions<Req extends {} = Record<string, unknown> | Reada
|
|
|
200
251
|
method: HTTPMethod;
|
|
201
252
|
path: string;
|
|
202
253
|
};
|
|
203
|
-
export type APIResponse<T> = T & {
|
|
204
|
-
/** @deprecated - we plan to add a different way to access raw response information shortly. */
|
|
205
|
-
responseHeaders: Headers;
|
|
206
|
-
};
|
|
207
254
|
export declare const safeJSON: (text: string) => any;
|
|
208
255
|
export declare const castToError: (err: any) => Error;
|
|
209
256
|
export declare const ensurePresent: <T>(value: T | null | undefined) => T;
|
|
210
257
|
/**
|
|
211
258
|
* Read an environment variable.
|
|
212
259
|
*
|
|
213
|
-
* Will return
|
|
260
|
+
* Will return undefined if the environment variable doesn't exist or cannot be accessed.
|
|
214
261
|
*/
|
|
215
262
|
export declare const readEnv: (env: string) => string | undefined;
|
|
216
263
|
export declare const coerceInteger: (value: unknown) => number;
|
|
@@ -221,6 +268,8 @@ export declare const maybeCoerceFloat: (value: unknown) => number | undefined;
|
|
|
221
268
|
export declare const maybeCoerceBoolean: (value: unknown) => boolean | undefined;
|
|
222
269
|
export declare function isEmptyObj(obj: Object | null | undefined): boolean;
|
|
223
270
|
export declare function hasOwn(obj: Object, key: string): boolean;
|
|
271
|
+
export declare function debug(action: string, ...args: any[]): void;
|
|
272
|
+
export declare const isRunningInBrowser: () => boolean;
|
|
224
273
|
export interface HeadersProtocol {
|
|
225
274
|
get: (header: string) => string | null | undefined;
|
|
226
275
|
}
|
package/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,QAAQ,EAAoE,MAAM,SAAS,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAmB,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":"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"}
|