@roarkanalytics/sdk 0.1.0-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +201 -0
  3. package/README.md +344 -0
  4. package/api-promise.d.mts +47 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +47 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +84 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +80 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +186 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +186 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +449 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +422 -0
  19. package/client.mjs.map +1 -0
  20. package/error.d.mts +47 -0
  21. package/error.d.mts.map +1 -0
  22. package/error.d.ts +47 -0
  23. package/error.d.ts.map +1 -0
  24. package/error.js +113 -0
  25. package/error.js.map +1 -0
  26. package/error.mjs +97 -0
  27. package/error.mjs.map +1 -0
  28. package/index.d.mts +6 -0
  29. package/index.d.mts.map +1 -0
  30. package/index.d.ts +6 -0
  31. package/index.d.ts.map +1 -0
  32. package/index.js +30 -0
  33. package/index.js.map +1 -0
  34. package/index.mjs +7 -0
  35. package/index.mjs.map +1 -0
  36. package/internal/builtin-types.d.mts +65 -0
  37. package/internal/builtin-types.d.mts.map +1 -0
  38. package/internal/builtin-types.d.ts +65 -0
  39. package/internal/builtin-types.d.ts.map +1 -0
  40. package/internal/builtin-types.js +4 -0
  41. package/internal/builtin-types.js.map +1 -0
  42. package/internal/builtin-types.mjs +3 -0
  43. package/internal/builtin-types.mjs.map +1 -0
  44. package/internal/detect-platform.d.mts +15 -0
  45. package/internal/detect-platform.d.mts.map +1 -0
  46. package/internal/detect-platform.d.ts +15 -0
  47. package/internal/detect-platform.d.ts.map +1 -0
  48. package/internal/detect-platform.js +162 -0
  49. package/internal/detect-platform.js.map +1 -0
  50. package/internal/detect-platform.mjs +157 -0
  51. package/internal/detect-platform.mjs.map +1 -0
  52. package/internal/errors.d.mts +3 -0
  53. package/internal/errors.d.mts.map +1 -0
  54. package/internal/errors.d.ts +3 -0
  55. package/internal/errors.d.ts.map +1 -0
  56. package/internal/errors.js +26 -0
  57. package/internal/errors.js.map +1 -0
  58. package/internal/errors.mjs +21 -0
  59. package/internal/errors.mjs.map +1 -0
  60. package/internal/headers.d.mts +21 -0
  61. package/internal/headers.d.mts.map +1 -0
  62. package/internal/headers.d.ts +21 -0
  63. package/internal/headers.d.ts.map +1 -0
  64. package/internal/headers.js +77 -0
  65. package/internal/headers.js.map +1 -0
  66. package/internal/headers.mjs +72 -0
  67. package/internal/headers.mjs.map +1 -0
  68. package/internal/parse.d.mts +10 -0
  69. package/internal/parse.d.mts.map +1 -0
  70. package/internal/parse.d.ts +10 -0
  71. package/internal/parse.d.ts.map +1 -0
  72. package/internal/parse.js +28 -0
  73. package/internal/parse.js.map +1 -0
  74. package/internal/parse.mjs +24 -0
  75. package/internal/parse.mjs.map +1 -0
  76. package/internal/polyfill/crypto.node.d.ts +10 -0
  77. package/internal/polyfill/crypto.node.js +11 -0
  78. package/internal/polyfill/crypto.node.mjs +2 -0
  79. package/internal/polyfill/file.node.d.ts +9 -0
  80. package/internal/polyfill/file.node.js +17 -0
  81. package/internal/polyfill/file.node.mjs +9 -0
  82. package/internal/request-options.d.mts +34 -0
  83. package/internal/request-options.d.mts.map +1 -0
  84. package/internal/request-options.d.ts +34 -0
  85. package/internal/request-options.d.ts.map +1 -0
  86. package/internal/request-options.js +39 -0
  87. package/internal/request-options.js.map +1 -0
  88. package/internal/request-options.mjs +34 -0
  89. package/internal/request-options.mjs.map +1 -0
  90. package/internal/shim-types.d.mts +28 -0
  91. package/internal/shim-types.d.ts +28 -0
  92. package/internal/shims.d.mts +61 -0
  93. package/internal/shims.d.mts.map +1 -0
  94. package/internal/shims.d.ts +61 -0
  95. package/internal/shims.d.ts.map +1 -0
  96. package/internal/shims.js +101 -0
  97. package/internal/shims.js.map +1 -0
  98. package/internal/shims.mjs +92 -0
  99. package/internal/shims.mjs.map +1 -0
  100. package/internal/types.d.mts +68 -0
  101. package/internal/types.d.mts.map +1 -0
  102. package/internal/types.d.ts +68 -0
  103. package/internal/types.d.ts.map +1 -0
  104. package/internal/types.js +4 -0
  105. package/internal/types.js.map +1 -0
  106. package/internal/types.mjs +3 -0
  107. package/internal/types.mjs.map +1 -0
  108. package/internal/uploads.d.mts +73 -0
  109. package/internal/uploads.d.mts.map +1 -0
  110. package/internal/uploads.d.ts +73 -0
  111. package/internal/uploads.d.ts.map +1 -0
  112. package/internal/uploads.js +208 -0
  113. package/internal/uploads.js.map +1 -0
  114. package/internal/uploads.mjs +200 -0
  115. package/internal/uploads.mjs.map +1 -0
  116. package/internal/utils/base64.d.mts +3 -0
  117. package/internal/utils/base64.d.mts.map +1 -0
  118. package/internal/utils/base64.d.ts +3 -0
  119. package/internal/utils/base64.d.ts.map +1 -0
  120. package/internal/utils/base64.js +33 -0
  121. package/internal/utils/base64.js.map +1 -0
  122. package/internal/utils/base64.mjs +28 -0
  123. package/internal/utils/base64.mjs.map +1 -0
  124. package/internal/utils/env.d.mts +9 -0
  125. package/internal/utils/env.d.mts.map +1 -0
  126. package/internal/utils/env.d.ts +9 -0
  127. package/internal/utils/env.d.ts.map +1 -0
  128. package/internal/utils/env.js +22 -0
  129. package/internal/utils/env.js.map +1 -0
  130. package/internal/utils/env.mjs +18 -0
  131. package/internal/utils/env.mjs.map +1 -0
  132. package/internal/utils/log.d.mts +4 -0
  133. package/internal/utils/log.d.mts.map +1 -0
  134. package/internal/utils/log.d.ts +4 -0
  135. package/internal/utils/log.d.ts.map +1 -0
  136. package/internal/utils/log.js +47 -0
  137. package/internal/utils/log.js.map +1 -0
  138. package/internal/utils/log.mjs +43 -0
  139. package/internal/utils/log.mjs.map +1 -0
  140. package/internal/utils/sleep.d.mts +2 -0
  141. package/internal/utils/sleep.d.mts.map +1 -0
  142. package/internal/utils/sleep.d.ts +2 -0
  143. package/internal/utils/sleep.d.ts.map +1 -0
  144. package/internal/utils/sleep.js +7 -0
  145. package/internal/utils/sleep.js.map +1 -0
  146. package/internal/utils/sleep.mjs +3 -0
  147. package/internal/utils/sleep.mjs.map +1 -0
  148. package/internal/utils/uuid.d.mts +5 -0
  149. package/internal/utils/uuid.d.mts.map +1 -0
  150. package/internal/utils/uuid.d.ts +5 -0
  151. package/internal/utils/uuid.d.ts.map +1 -0
  152. package/internal/utils/uuid.js +15 -0
  153. package/internal/utils/uuid.js.map +1 -0
  154. package/internal/utils/uuid.mjs +11 -0
  155. package/internal/utils/uuid.mjs.map +1 -0
  156. package/internal/utils/values.d.mts +15 -0
  157. package/internal/utils/values.d.mts.map +1 -0
  158. package/internal/utils/values.d.ts +15 -0
  159. package/internal/utils/values.d.ts.map +1 -0
  160. package/internal/utils/values.js +100 -0
  161. package/internal/utils/values.js.map +1 -0
  162. package/internal/utils/values.mjs +84 -0
  163. package/internal/utils/values.mjs.map +1 -0
  164. package/internal/utils.d.mts +7 -0
  165. package/internal/utils.d.mts.map +1 -0
  166. package/internal/utils.d.ts +7 -0
  167. package/internal/utils.d.ts.map +1 -0
  168. package/internal/utils.js +24 -0
  169. package/internal/utils.js.map +1 -0
  170. package/internal/utils.mjs +8 -0
  171. package/internal/utils.mjs.map +1 -0
  172. package/package.json +119 -0
  173. package/resource.d.mts +6 -0
  174. package/resource.d.mts.map +1 -0
  175. package/resource.d.ts +6 -0
  176. package/resource.d.ts.map +1 -0
  177. package/resource.js +11 -0
  178. package/resource.js.map +1 -0
  179. package/resource.mjs +7 -0
  180. package/resource.mjs.map +1 -0
  181. package/resources/calls.d.mts +85 -0
  182. package/resources/calls.d.mts.map +1 -0
  183. package/resources/calls.d.ts +85 -0
  184. package/resources/calls.d.ts.map +1 -0
  185. package/resources/calls.js +15 -0
  186. package/resources/calls.js.map +1 -0
  187. package/resources/calls.mjs +11 -0
  188. package/resources/calls.mjs.map +1 -0
  189. package/resources/index.d.mts +2 -0
  190. package/resources/index.d.mts.map +1 -0
  191. package/resources/index.d.ts +2 -0
  192. package/resources/index.d.ts.map +1 -0
  193. package/resources/index.js +7 -0
  194. package/resources/index.js.map +1 -0
  195. package/resources/index.mjs +3 -0
  196. package/resources/index.mjs.map +1 -0
  197. package/src/api-promise.ts +92 -0
  198. package/src/client.ts +646 -0
  199. package/src/error.ts +130 -0
  200. package/src/index.ts +22 -0
  201. package/src/internal/builtin-types.ts +79 -0
  202. package/src/internal/detect-platform.ts +196 -0
  203. package/src/internal/errors.ts +22 -0
  204. package/src/internal/headers.ts +96 -0
  205. package/src/internal/parse.ts +41 -0
  206. package/src/internal/polyfill/crypto.node.d.ts +10 -0
  207. package/src/internal/polyfill/crypto.node.js +11 -0
  208. package/src/internal/polyfill/crypto.node.mjs +2 -0
  209. package/src/internal/polyfill/file.node.d.ts +9 -0
  210. package/src/internal/polyfill/file.node.js +17 -0
  211. package/src/internal/polyfill/file.node.mjs +9 -0
  212. package/src/internal/request-options.ts +67 -0
  213. package/src/internal/shim-types.d.ts +28 -0
  214. package/src/internal/shims.ts +145 -0
  215. package/src/internal/types.ts +98 -0
  216. package/src/internal/uploads.ts +307 -0
  217. package/src/internal/utils/base64.ts +37 -0
  218. package/src/internal/utils/env.ts +18 -0
  219. package/src/internal/utils/log.ts +49 -0
  220. package/src/internal/utils/sleep.ts +3 -0
  221. package/src/internal/utils/uuid.ts +13 -0
  222. package/src/internal/utils/values.ts +94 -0
  223. package/src/internal/utils.ts +8 -0
  224. package/src/lib/.keep +4 -0
  225. package/src/resource.ts +11 -0
  226. package/src/resources/calls.ts +118 -0
  227. package/src/resources/index.ts +3 -0
  228. package/src/tsconfig.json +11 -0
  229. package/src/uploads.ts +1 -0
  230. package/src/version.ts +1 -0
  231. package/uploads.d.mts +2 -0
  232. package/uploads.d.mts.map +1 -0
  233. package/uploads.d.ts +2 -0
  234. package/uploads.d.ts.map +1 -0
  235. package/uploads.js +6 -0
  236. package/uploads.js.map +1 -0
  237. package/uploads.mjs +2 -0
  238. package/uploads.mjs.map +1 -0
  239. package/version.d.mts +2 -0
  240. package/version.d.mts.map +1 -0
  241. package/version.d.ts +2 -0
  242. package/version.d.ts.map +1 -0
  243. package/version.js +5 -0
  244. package/version.js.map +1 -0
  245. package/version.mjs +2 -0
  246. package/version.mjs.map +1 -0
package/client.js ADDED
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
27
+ if (kind === "m") throw new TypeError("Private method is not writable");
28
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
29
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
30
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
31
+ };
32
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
33
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
34
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
35
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
36
+ };
37
+ var _a, _Petstore_encoder;
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Petstore = void 0;
40
+ const uuid_1 = require("./internal/utils/uuid.js");
41
+ const values_1 = require("./internal/utils/values.js");
42
+ const sleep_1 = require("./internal/utils/sleep.js");
43
+ const errors_1 = require("./internal/errors.js");
44
+ const detect_platform_1 = require("./internal/detect-platform.js");
45
+ const Shims = __importStar(require("./internal/shims.js"));
46
+ const Opts = __importStar(require("./internal/request-options.js"));
47
+ const version_1 = require("./version.js");
48
+ const Errors = __importStar(require("./error.js"));
49
+ const Uploads = __importStar(require("./uploads.js"));
50
+ const API = __importStar(require("./resources/index.js"));
51
+ const api_promise_1 = require("./api-promise.js");
52
+ const headers_1 = require("./internal/headers.js");
53
+ const calls_1 = require("./resources/calls.js");
54
+ const env_1 = require("./internal/utils/env.js");
55
+ const log_1 = require("./internal/utils/log.js");
56
+ const values_2 = require("./internal/utils/values.js");
57
+ const safeJSON = (text) => {
58
+ try {
59
+ return JSON.parse(text);
60
+ }
61
+ catch (err) {
62
+ return undefined;
63
+ }
64
+ };
65
+ const isLogLevel = (key) => {
66
+ const levels = {
67
+ off: true,
68
+ error: true,
69
+ warn: true,
70
+ info: true,
71
+ debug: true,
72
+ };
73
+ return key in levels;
74
+ };
75
+ /**
76
+ * API Client for interfacing with the Petstore API.
77
+ */
78
+ class Petstore {
79
+ /**
80
+ * API Client for interfacing with the Petstore API.
81
+ *
82
+ * @param {string | undefined} [opts.bearerToken=process.env['ROARK_API_BEARER_TOKEN'] ?? undefined]
83
+ * @param {string} [opts.baseURL=process.env['PETSTORE_BASE_URL'] ?? https://petstore3.swagger.io/api/v3] - Override the default base URL for the API.
84
+ * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
85
+ * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.
86
+ * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.
87
+ * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.
88
+ * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.
89
+ * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.
90
+ */
91
+ constructor({ baseURL = (0, env_1.readEnv)('PETSTORE_BASE_URL'), bearerToken = (0, env_1.readEnv)('ROARK_API_BEARER_TOKEN'), ...opts } = {}) {
92
+ _Petstore_encoder.set(this, void 0);
93
+ this.calls = new API.Calls(this);
94
+ if (bearerToken === undefined) {
95
+ throw new Errors.PetstoreError("The ROARK_API_BEARER_TOKEN environment variable is missing or empty; either provide it, or instantiate the Petstore client with an bearerToken option, like new Petstore({ bearerToken: 'My Bearer Token' }).");
96
+ }
97
+ const options = {
98
+ bearerToken,
99
+ ...opts,
100
+ baseURL: baseURL || `https://petstore3.swagger.io/api/v3`,
101
+ };
102
+ this.baseURL = options.baseURL;
103
+ this.timeout = options.timeout ?? Petstore.DEFAULT_TIMEOUT /* 1 minute */;
104
+ this.logger = options.logger ?? console;
105
+ if (options.logLevel != null) {
106
+ this.logLevel = options.logLevel;
107
+ }
108
+ else {
109
+ const envLevel = (0, env_1.readEnv)('PETSTORE_LOG');
110
+ if (isLogLevel(envLevel)) {
111
+ this.logLevel = envLevel;
112
+ }
113
+ }
114
+ this.fetchOptions = options.fetchOptions;
115
+ this.maxRetries = options.maxRetries ?? 2;
116
+ this.fetch = options.fetch ?? Shims.getDefaultFetch();
117
+ __classPrivateFieldSet(this, _Petstore_encoder, Opts.FallbackEncoder, "f");
118
+ this._options = options;
119
+ this.bearerToken = bearerToken;
120
+ }
121
+ defaultQuery() {
122
+ return this._options.defaultQuery;
123
+ }
124
+ validateHeaders({ values, nulls }) {
125
+ return;
126
+ }
127
+ authHeaders(opts) {
128
+ return new Headers({ Authorization: `Bearer ${this.bearerToken}` });
129
+ }
130
+ /**
131
+ * Basic re-implementation of `qs.stringify` for primitive types.
132
+ */
133
+ stringifyQuery(query) {
134
+ return Object.entries(query)
135
+ .filter(([_, value]) => typeof value !== 'undefined')
136
+ .map(([key, value]) => {
137
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
138
+ return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
139
+ }
140
+ if (value === null) {
141
+ return `${encodeURIComponent(key)}=`;
142
+ }
143
+ throw new Errors.PetstoreError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`);
144
+ })
145
+ .join('&');
146
+ }
147
+ getUserAgent() {
148
+ return `${this.constructor.name}/JS ${version_1.VERSION}`;
149
+ }
150
+ defaultIdempotencyKey() {
151
+ return `stainless-node-retry-${(0, uuid_1.uuid4)()}`;
152
+ }
153
+ makeStatusError(status, error, message, headers) {
154
+ return Errors.APIError.generate(status, error, message, headers);
155
+ }
156
+ buildURL(path, query) {
157
+ const url = (0, values_1.isAbsoluteURL)(path) ?
158
+ new URL(path)
159
+ : new URL(this.baseURL + (this.baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));
160
+ const defaultQuery = this.defaultQuery();
161
+ if (!(0, values_2.isEmptyObj)(defaultQuery)) {
162
+ query = { ...defaultQuery, ...query };
163
+ }
164
+ if (typeof query === 'object' && query && !Array.isArray(query)) {
165
+ url.search = this.stringifyQuery(query);
166
+ }
167
+ return url.toString();
168
+ }
169
+ calculateContentLength(body) {
170
+ if (typeof body === 'string') {
171
+ if (typeof globalThis.Buffer !== 'undefined') {
172
+ return globalThis.Buffer.byteLength(body, 'utf8').toString();
173
+ }
174
+ if (typeof globalThis.TextEncoder !== 'undefined') {
175
+ const encoder = new globalThis.TextEncoder();
176
+ const encoded = encoder.encode(body);
177
+ return encoded.length.toString();
178
+ }
179
+ }
180
+ else if (ArrayBuffer.isView(body)) {
181
+ return body.byteLength.toString();
182
+ }
183
+ return null;
184
+ }
185
+ /**
186
+ * Used as a callback for mutating the given `FinalRequestOptions` object.
187
+ */
188
+ async prepareOptions(options) { }
189
+ /**
190
+ * Used as a callback for mutating the given `RequestInit` object.
191
+ *
192
+ * This is useful for cases where you want to add certain headers based off of
193
+ * the request properties, e.g. `method` or `url`.
194
+ */
195
+ async prepareRequest(request, { url, options }) { }
196
+ get(path, opts) {
197
+ return this.methodRequest('get', path, opts);
198
+ }
199
+ post(path, opts) {
200
+ return this.methodRequest('post', path, opts);
201
+ }
202
+ patch(path, opts) {
203
+ return this.methodRequest('patch', path, opts);
204
+ }
205
+ put(path, opts) {
206
+ return this.methodRequest('put', path, opts);
207
+ }
208
+ delete(path, opts) {
209
+ return this.methodRequest('delete', path, opts);
210
+ }
211
+ methodRequest(method, path, opts) {
212
+ return this.request(Promise.resolve(opts).then((opts) => {
213
+ return { method, path, ...opts };
214
+ }));
215
+ }
216
+ request(options, remainingRetries = null) {
217
+ return new api_promise_1.APIPromise(this, this.makeRequest(options, remainingRetries));
218
+ }
219
+ async makeRequest(optionsInput, retriesRemaining) {
220
+ const options = await optionsInput;
221
+ const maxRetries = options.maxRetries ?? this.maxRetries;
222
+ if (retriesRemaining == null) {
223
+ retriesRemaining = maxRetries;
224
+ }
225
+ await this.prepareOptions(options);
226
+ const { req, url, timeout } = this.buildRequest(options, { retryCount: maxRetries - retriesRemaining });
227
+ await this.prepareRequest(req, { url, options });
228
+ (0, log_1.logger)(this).debug('request', url, options, req.headers);
229
+ if (options.signal?.aborted) {
230
+ throw new Errors.APIUserAbortError();
231
+ }
232
+ const controller = new AbortController();
233
+ const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(errors_1.castToError);
234
+ if (response instanceof Error) {
235
+ if (options.signal?.aborted) {
236
+ throw new Errors.APIUserAbortError();
237
+ }
238
+ if (retriesRemaining) {
239
+ return this.retryRequest(options, retriesRemaining);
240
+ }
241
+ if ((0, errors_1.isAbortError)(response)) {
242
+ throw new Errors.APIConnectionTimeoutError();
243
+ }
244
+ // detect native connection timeout errors
245
+ // deno throws "TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)"
246
+ // undici throws "TypeError: fetch failed" with cause "ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)"
247
+ // others do not provide enough information to distinguish timeouts from other connection errors
248
+ if (/timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''))) {
249
+ throw new Errors.APIConnectionTimeoutError();
250
+ }
251
+ throw new Errors.APIConnectionError({ cause: response });
252
+ }
253
+ if (!response.ok) {
254
+ if (retriesRemaining && this.shouldRetry(response)) {
255
+ const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;
256
+ (0, log_1.logger)(this).debug(`response (error; ${retryMessage})`, response.status, url, response.headers);
257
+ return this.retryRequest(options, retriesRemaining, response.headers);
258
+ }
259
+ const errText = await response.text().catch((err) => (0, errors_1.castToError)(err).message);
260
+ const errJSON = safeJSON(errText);
261
+ const errMessage = errJSON ? undefined : errText;
262
+ const retryMessage = retriesRemaining ? `(error; no more retries left)` : `(error; not retryable)`;
263
+ (0, log_1.logger)(this).debug(`response (error; ${retryMessage})`, response.status, url, response.headers, errMessage);
264
+ const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);
265
+ throw err;
266
+ }
267
+ return { response, options, controller };
268
+ }
269
+ async fetchWithTimeout(url, init, ms, controller) {
270
+ const { signal, method, ...options } = init || {};
271
+ if (signal)
272
+ signal.addEventListener('abort', () => controller.abort());
273
+ const timeout = setTimeout(() => controller.abort(), ms);
274
+ const isReadableBody = Shims.isReadableLike(options.body);
275
+ const fetchOptions = {
276
+ signal: controller.signal,
277
+ ...(isReadableBody ? { duplex: 'half' } : {}),
278
+ method: 'GET',
279
+ ...options,
280
+ };
281
+ if (method) {
282
+ // Custom methods like 'patch' need to be uppercased
283
+ // See https://github.com/nodejs/undici/issues/2294
284
+ fetchOptions.method = method.toUpperCase();
285
+ }
286
+ return (
287
+ // use undefined this binding; fetch errors if bound to something else in browser/cloudflare
288
+ this.fetch.call(undefined, url, fetchOptions).finally(() => {
289
+ clearTimeout(timeout);
290
+ }));
291
+ }
292
+ shouldRetry(response) {
293
+ // Note this is not a standard header.
294
+ const shouldRetryHeader = response.headers.get('x-should-retry');
295
+ // If the server explicitly says whether or not to retry, obey.
296
+ if (shouldRetryHeader === 'true')
297
+ return true;
298
+ if (shouldRetryHeader === 'false')
299
+ return false;
300
+ // Retry on request timeouts.
301
+ if (response.status === 408)
302
+ return true;
303
+ // Retry on lock timeouts.
304
+ if (response.status === 409)
305
+ return true;
306
+ // Retry on rate limits.
307
+ if (response.status === 429)
308
+ return true;
309
+ // Retry internal errors.
310
+ if (response.status >= 500)
311
+ return true;
312
+ return false;
313
+ }
314
+ async retryRequest(options, retriesRemaining, responseHeaders) {
315
+ let timeoutMillis;
316
+ // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.
317
+ const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');
318
+ if (retryAfterMillisHeader) {
319
+ const timeoutMs = parseFloat(retryAfterMillisHeader);
320
+ if (!Number.isNaN(timeoutMs)) {
321
+ timeoutMillis = timeoutMs;
322
+ }
323
+ }
324
+ // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
325
+ const retryAfterHeader = responseHeaders?.get('retry-after');
326
+ if (retryAfterHeader && !timeoutMillis) {
327
+ const timeoutSeconds = parseFloat(retryAfterHeader);
328
+ if (!Number.isNaN(timeoutSeconds)) {
329
+ timeoutMillis = timeoutSeconds * 1000;
330
+ }
331
+ else {
332
+ timeoutMillis = Date.parse(retryAfterHeader) - Date.now();
333
+ }
334
+ }
335
+ // If the API asks us to wait a certain amount of time (and it's a reasonable amount),
336
+ // just do what it says, but otherwise calculate a default
337
+ if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {
338
+ const maxRetries = options.maxRetries ?? this.maxRetries;
339
+ timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);
340
+ }
341
+ await (0, sleep_1.sleep)(timeoutMillis);
342
+ return this.makeRequest(options, retriesRemaining - 1);
343
+ }
344
+ calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {
345
+ const initialRetryDelay = 0.5;
346
+ const maxRetryDelay = 8.0;
347
+ const numRetries = maxRetries - retriesRemaining;
348
+ // Apply exponential backoff, but not more than the max.
349
+ const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);
350
+ // Apply some jitter, take up to at most 25 percent of the retry time.
351
+ const jitter = 1 - Math.random() * 0.25;
352
+ return sleepSeconds * jitter * 1000;
353
+ }
354
+ buildRequest(options, { retryCount = 0 } = {}) {
355
+ const { method, path, query } = options;
356
+ const url = this.buildURL(path, query);
357
+ if ('timeout' in options)
358
+ (0, values_1.validatePositiveInteger)('timeout', options.timeout);
359
+ const timeout = options.timeout ?? this.timeout;
360
+ const { bodyHeaders, body } = this.buildBody({ options });
361
+ const reqHeaders = this.buildHeaders({ options, method, bodyHeaders, retryCount });
362
+ const req = {
363
+ method,
364
+ headers: reqHeaders,
365
+ ...(options.signal && { signal: options.signal }),
366
+ ...(globalThis.ReadableStream &&
367
+ body instanceof globalThis.ReadableStream && { duplex: 'half' }),
368
+ ...(body && { body }),
369
+ ...(this.fetchOptions ?? {}),
370
+ ...(options.fetchOptions ?? {}),
371
+ };
372
+ return { req, url, timeout };
373
+ }
374
+ buildHeaders({ options, method, bodyHeaders, retryCount, }) {
375
+ let idempotencyHeaders = {};
376
+ if (this.idempotencyHeader && method !== 'get') {
377
+ if (!options.idempotencyKey)
378
+ options.idempotencyKey = this.defaultIdempotencyKey();
379
+ idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;
380
+ }
381
+ const headers = (0, headers_1.buildHeaders)([
382
+ idempotencyHeaders,
383
+ {
384
+ Accept: 'application/json',
385
+ 'User-Agent': this.getUserAgent(),
386
+ 'X-Stainless-Retry-Count': String(retryCount),
387
+ ...(0, detect_platform_1.getPlatformHeaders)(),
388
+ },
389
+ this.authHeaders(options),
390
+ this._options.defaultHeaders,
391
+ bodyHeaders,
392
+ options.headers,
393
+ ]);
394
+ this.validateHeaders(headers);
395
+ return headers.values;
396
+ }
397
+ buildBody({ options: { body, headers: rawHeaders } }) {
398
+ if (!body) {
399
+ return { bodyHeaders: undefined, body: undefined };
400
+ }
401
+ const headers = (0, headers_1.buildHeaders)([rawHeaders]);
402
+ if (
403
+ // Pass raw type verbatim
404
+ ArrayBuffer.isView(body) ||
405
+ body instanceof ArrayBuffer ||
406
+ body instanceof DataView ||
407
+ (typeof body === 'string' &&
408
+ // Preserve legacy string encoding behavior for now
409
+ headers.values.has('content-type')) ||
410
+ // `Blob` is superset of `File`
411
+ body instanceof Blob ||
412
+ // `FormData` -> `multipart/form-data`
413
+ body instanceof FormData ||
414
+ // `URLSearchParams` -> `application/x-www-form-urlencoded`
415
+ body instanceof URLSearchParams ||
416
+ // Send chunked stream (each chunk has own `length`)
417
+ (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {
418
+ return { bodyHeaders: undefined, body: body };
419
+ }
420
+ else if (typeof body === 'object' &&
421
+ (Symbol.asyncIterator in body ||
422
+ (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {
423
+ return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };
424
+ }
425
+ else {
426
+ return __classPrivateFieldGet(this, _Petstore_encoder, "f").call(this, { body, headers });
427
+ }
428
+ }
429
+ }
430
+ exports.Petstore = Petstore;
431
+ _a = Petstore, _Petstore_encoder = new WeakMap();
432
+ Petstore.Petstore = _a;
433
+ Petstore.DEFAULT_TIMEOUT = 60000; // 1 minute
434
+ Petstore.PetstoreError = Errors.PetstoreError;
435
+ Petstore.APIError = Errors.APIError;
436
+ Petstore.APIConnectionError = Errors.APIConnectionError;
437
+ Petstore.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;
438
+ Petstore.APIUserAbortError = Errors.APIUserAbortError;
439
+ Petstore.NotFoundError = Errors.NotFoundError;
440
+ Petstore.ConflictError = Errors.ConflictError;
441
+ Petstore.RateLimitError = Errors.RateLimitError;
442
+ Petstore.BadRequestError = Errors.BadRequestError;
443
+ Petstore.AuthenticationError = Errors.AuthenticationError;
444
+ Petstore.InternalServerError = Errors.InternalServerError;
445
+ Petstore.PermissionDeniedError = Errors.PermissionDeniedError;
446
+ Petstore.UnprocessableEntityError = Errors.UnprocessableEntityError;
447
+ Petstore.toFile = Uploads.toFile;
448
+ Petstore.Calls = calls_1.Calls;
449
+ //# sourceMappingURL=client.js.map
package/client.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}