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.
Files changed (135) hide show
  1. package/README.md +43 -14
  2. package/_shims/ReadableStream.d.ts +38 -0
  3. package/_shims/ReadableStream.js +5 -0
  4. package/_shims/ReadableStream.mjs +7 -0
  5. package/_shims/ReadableStream.node.d.ts +6 -0
  6. package/_shims/ReadableStream.node.d.ts.map +1 -0
  7. package/_shims/ReadableStream.node.js +14 -0
  8. package/_shims/ReadableStream.node.js.map +1 -0
  9. package/_shims/ReadableStream.node.mjs +3 -0
  10. package/_shims/ReadableStream.node.mjs.map +1 -0
  11. package/_shims/fetch.d.ts +8 -1
  12. package/_shims/fetch.node.d.ts +11 -1
  13. package/bin/cli +21 -0
  14. package/core.d.ts +77 -28
  15. package/core.d.ts.map +1 -1
  16. package/core.js +181 -62
  17. package/core.js.map +1 -1
  18. package/core.mjs +175 -62
  19. package/core.mjs.map +1 -1
  20. package/index.d.mts +9 -0
  21. package/index.d.ts +9 -0
  22. package/index.d.ts.map +1 -1
  23. package/index.js +5 -0
  24. package/index.js.map +1 -1
  25. package/index.mjs +5 -0
  26. package/index.mjs.map +1 -1
  27. package/package.json +3 -2
  28. package/pagination.d.ts +2 -2
  29. package/pagination.d.ts.map +1 -1
  30. package/pagination.js +4 -4
  31. package/pagination.js.map +1 -1
  32. package/pagination.mjs +4 -4
  33. package/pagination.mjs.map +1 -1
  34. package/resources/audio/audio.d.ts.map +1 -1
  35. package/resources/audio/audio.js.map +1 -1
  36. package/resources/audio/transcriptions.d.ts +1 -4
  37. package/resources/audio/transcriptions.d.ts.map +1 -1
  38. package/resources/audio/transcriptions.js +2 -5
  39. package/resources/audio/transcriptions.js.map +1 -1
  40. package/resources/audio/transcriptions.mjs +2 -2
  41. package/resources/audio/transcriptions.mjs.map +1 -1
  42. package/resources/audio/translations.d.ts +1 -4
  43. package/resources/audio/translations.d.ts.map +1 -1
  44. package/resources/audio/translations.js +2 -5
  45. package/resources/audio/translations.js.map +1 -1
  46. package/resources/audio/translations.mjs +2 -2
  47. package/resources/audio/translations.mjs.map +1 -1
  48. package/resources/chat/chat.d.ts +3 -0
  49. package/resources/chat/chat.d.ts.map +1 -1
  50. package/resources/chat/chat.js.map +1 -1
  51. package/resources/chat/chat.mjs.map +1 -1
  52. package/resources/chat/completions.d.ts +195 -325
  53. package/resources/chat/completions.d.ts.map +1 -1
  54. package/resources/chat/completions.js.map +1 -1
  55. package/resources/chat/completions.mjs.map +1 -1
  56. package/resources/chat/index.d.ts +3 -0
  57. package/resources/chat/index.d.ts.map +1 -1
  58. package/resources/chat/index.js.map +1 -1
  59. package/resources/chat/index.mjs.map +1 -1
  60. package/resources/completions.d.ts +169 -287
  61. package/resources/completions.d.ts.map +1 -1
  62. package/resources/completions.js.map +1 -1
  63. package/resources/completions.mjs.map +1 -1
  64. package/resources/edits.d.ts +1 -1
  65. package/resources/edits.d.ts.map +1 -1
  66. package/resources/embeddings.d.ts +1 -1
  67. package/resources/embeddings.d.ts.map +1 -1
  68. package/resources/files.d.ts +5 -5
  69. package/resources/files.d.ts.map +1 -1
  70. package/resources/files.js +2 -2
  71. package/resources/files.js.map +1 -1
  72. package/resources/files.mjs +2 -2
  73. package/resources/files.mjs.map +1 -1
  74. package/resources/fine-tunes.d.ts +49 -35
  75. package/resources/fine-tunes.d.ts.map +1 -1
  76. package/resources/fine-tunes.js.map +1 -1
  77. package/resources/fine-tunes.mjs.map +1 -1
  78. package/resources/images.d.ts +3 -6
  79. package/resources/images.d.ts.map +1 -1
  80. package/resources/images.js +4 -7
  81. package/resources/images.js.map +1 -1
  82. package/resources/images.mjs +4 -4
  83. package/resources/images.mjs.map +1 -1
  84. package/resources/index.d.ts +10 -1
  85. package/resources/index.d.ts.map +1 -1
  86. package/resources/index.js.map +1 -1
  87. package/resources/index.mjs.map +1 -1
  88. package/resources/models.d.ts +3 -3
  89. package/resources/models.d.ts.map +1 -1
  90. package/resources/moderations.d.ts +1 -1
  91. package/resources/moderations.d.ts.map +1 -1
  92. package/src/_shims/ReadableStream.d.ts +38 -0
  93. package/src/_shims/ReadableStream.js +5 -0
  94. package/src/_shims/ReadableStream.mjs +7 -0
  95. package/src/_shims/ReadableStream.node.ts +6 -0
  96. package/src/_shims/fetch.d.ts +8 -1
  97. package/src/_shims/fetch.deno.ts +23 -0
  98. package/src/_shims/fetch.node.d.ts +11 -1
  99. package/src/_shims/formdata.deno.ts +16 -0
  100. package/src/core.ts +247 -85
  101. package/src/index.ts +16 -0
  102. package/src/pagination.ts +5 -5
  103. package/src/resources/audio/audio.ts +1 -1
  104. package/src/resources/audio/transcriptions.ts +3 -6
  105. package/src/resources/audio/translations.ts +3 -6
  106. package/src/resources/chat/chat.ts +4 -1
  107. package/src/resources/chat/completions.ts +206 -350
  108. package/src/resources/chat/index.ts +3 -0
  109. package/src/resources/completions.ts +190 -320
  110. package/src/resources/edits.ts +2 -2
  111. package/src/resources/embeddings.ts +2 -2
  112. package/src/resources/files.ts +7 -7
  113. package/src/resources/fine-tunes.ts +53 -38
  114. package/src/resources/images.ts +7 -13
  115. package/src/resources/index.ts +10 -1
  116. package/src/resources/models.ts +4 -4
  117. package/src/resources/moderations.ts +2 -2
  118. package/src/streaming.ts +35 -13
  119. package/src/uploads.ts +7 -6
  120. package/src/version.ts +1 -1
  121. package/streaming.d.ts +5 -7
  122. package/streaming.d.ts.map +1 -1
  123. package/streaming.js +30 -2
  124. package/streaming.js.map +1 -1
  125. package/streaming.mjs +30 -2
  126. package/streaming.mjs.map +1 -1
  127. package/uploads.d.ts +5 -4
  128. package/uploads.d.ts.map +1 -1
  129. package/uploads.js +2 -2
  130. package/uploads.js.map +1 -1
  131. package/uploads.mjs +2 -2
  132. package/uploads.mjs.map +1 -1
  133. package/version.d.ts +1 -1
  134. package/version.js +1 -1
  135. package/version.mjs +1 -1
package/README.md CHANGED
@@ -2,12 +2,9 @@
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/openai.svg)](https://npmjs.org/package/openai)
4
4
 
5
- The OpenAI Node library provides convenient access to the OpenAI REST API from applications written in server-side JavaScript.
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
- > ⚠️ **Important note: this library is meant for server-side usage only, as using it in client-side browser code will expose your secret API key. [See here](https://platform.openai.com/docs/api-reference/authentication) for more details.**
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
- ### Usage with TypeScript
69
+ ### Request & Response types
70
70
 
71
- Importing, instantiating, and interacting with the library are the same as above.
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
- ## Status
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
- This package is in beta. Its internals and interfaces are not stable
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 (experimental).
247
- Use `import OpenAI from "npm:openai"`.
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,5 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+
5
+ exports.ReadableStream = ReadableStream;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+
5
+ const _ReadableStream = ReadableStream;
6
+
7
+ export { _ReadableStream as ReadableStream };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import { ReadableStream } from 'web-streams-polyfill';
5
+ export { ReadableStream };
6
+ //# sourceMappingURL=ReadableStream.node.d.ts.map
@@ -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,3 @@
1
+ import { ReadableStream } from 'web-streams-polyfill';
2
+ export { ReadableStream };
3
+ //# sourceMappingURL=ReadableStream.node.mjs.map
@@ -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 { _RequestInit as RequestInit, _RequestInfo as RequestInfo, _BodyInit as BodyInit };
54
+ export type {
55
+ _RequestInit as RequestInit,
56
+ _RequestInfo as RequestInfo,
57
+ _ResponseType as ResponseType,
58
+ _BodyInit as BodyInit,
59
+ };
@@ -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 { _RequestInit as RequestInit, _RequestInfo as RequestInfo, _BodyInit as BodyInit };
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>): Promise<Rsp>;
49
- post<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
50
- patch<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
51
- put<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
52
- delete<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
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
- retriesRemaining?: number,
89
- ): Promise<APIResponse<Rsp>>;
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
- constructor(client: APIClient, response: APIResponse<unknown>, options: FinalRequestOptions);
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 Promise<PageClass>
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
- requestPromise: Promise<APIResponse<unknown>>,
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 an empty string if the environment variable doesn't exist or cannot be accessed.
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":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":"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"}