openai 4.8.0 → 4.9.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.
Files changed (319) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +4 -0
  3. package/_shims/MultipartBody.d.ts +9 -0
  4. package/_shims/MultipartBody.d.ts.map +1 -0
  5. package/_shims/MultipartBody.js +16 -0
  6. package/_shims/MultipartBody.js.map +1 -0
  7. package/_shims/MultipartBody.mjs +12 -0
  8. package/_shims/MultipartBody.mjs.map +1 -0
  9. package/_shims/README.md +46 -0
  10. package/{src/_shims/ReadableStream-node.ts → _shims/auto/runtime-bun.d.ts} +2 -3
  11. package/_shims/auto/runtime-bun.d.ts.map +1 -0
  12. package/_shims/auto/runtime-bun.js +21 -0
  13. package/_shims/auto/runtime-bun.js.map +1 -0
  14. package/_shims/auto/runtime-bun.mjs +2 -0
  15. package/_shims/auto/runtime-bun.mjs.map +1 -0
  16. package/_shims/auto/runtime-node.d.ts +5 -0
  17. package/_shims/auto/runtime-node.d.ts.map +1 -0
  18. package/_shims/auto/runtime-node.js +21 -0
  19. package/_shims/auto/runtime-node.js.map +1 -0
  20. package/_shims/auto/runtime-node.mjs +2 -0
  21. package/_shims/auto/runtime-node.mjs.map +1 -0
  22. package/_shims/auto/runtime.d.ts +5 -0
  23. package/_shims/auto/runtime.d.ts.map +1 -0
  24. package/_shims/auto/runtime.js +21 -0
  25. package/_shims/auto/runtime.js.map +1 -0
  26. package/_shims/auto/runtime.mjs +2 -0
  27. package/_shims/auto/runtime.mjs.map +1 -0
  28. package/_shims/auto/types-node.d.ts +5 -0
  29. package/_shims/auto/types-node.d.ts.map +1 -0
  30. package/_shims/auto/types-node.js +21 -0
  31. package/_shims/auto/types-node.js.map +1 -0
  32. package/_shims/auto/types-node.mjs +2 -0
  33. package/_shims/auto/types-node.mjs.map +1 -0
  34. package/_shims/auto/types.d.ts +99 -0
  35. package/_shims/{ReadableStream.js → auto/types.js} +0 -2
  36. package/{src/_shims/ReadableStream.js → _shims/auto/types.mjs} +0 -2
  37. package/_shims/bun-runtime.d.ts +6 -0
  38. package/_shims/bun-runtime.d.ts.map +1 -0
  39. package/_shims/bun-runtime.js +14 -0
  40. package/_shims/bun-runtime.js.map +1 -0
  41. package/_shims/bun-runtime.mjs +10 -0
  42. package/_shims/bun-runtime.mjs.map +1 -0
  43. package/_shims/index.d.ts +79 -0
  44. package/_shims/index.js +13 -0
  45. package/_shims/index.mjs +7 -0
  46. package/_shims/manual-types.d.ts +12 -0
  47. package/_shims/manual-types.js +3 -0
  48. package/_shims/manual-types.mjs +3 -0
  49. package/_shims/node-runtime.d.ts +3 -0
  50. package/_shims/node-runtime.d.ts.map +1 -0
  51. package/_shims/node-runtime.js +87 -0
  52. package/_shims/node-runtime.js.map +1 -0
  53. package/_shims/node-runtime.mjs +54 -0
  54. package/_shims/node-runtime.mjs.map +1 -0
  55. package/_shims/node-types.d.ts +42 -0
  56. package/_shims/node-types.js +3 -0
  57. package/_shims/node-types.mjs +3 -0
  58. package/_shims/registry.d.ts +35 -0
  59. package/_shims/registry.d.ts.map +1 -0
  60. package/_shims/registry.js +39 -0
  61. package/_shims/registry.js.map +1 -0
  62. package/_shims/registry.mjs +35 -0
  63. package/_shims/registry.mjs.map +1 -0
  64. package/_shims/web-runtime.d.ts +5 -0
  65. package/_shims/web-runtime.d.ts.map +1 -0
  66. package/_shims/web-runtime.js +70 -0
  67. package/_shims/web-runtime.js.map +1 -0
  68. package/_shims/web-runtime.mjs +63 -0
  69. package/_shims/web-runtime.mjs.map +1 -0
  70. package/_shims/web-types.d.ts +82 -0
  71. package/_shims/web-types.js +3 -0
  72. package/_shims/web-types.mjs +3 -0
  73. package/core.d.ts +170 -218
  74. package/core.d.ts.map +1 -1
  75. package/core.js +679 -737
  76. package/core.js.map +1 -1
  77. package/core.mjs +673 -688
  78. package/core.mjs.map +1 -1
  79. package/error.d.ts +32 -34
  80. package/error.js +95 -109
  81. package/error.mjs +92 -94
  82. package/index.d.mts +164 -175
  83. package/index.d.ts +164 -175
  84. package/index.d.ts.map +1 -1
  85. package/index.js +110 -161
  86. package/index.mjs +88 -109
  87. package/package.json +31 -58
  88. package/pagination.d.ts +31 -41
  89. package/pagination.js +52 -48
  90. package/pagination.mjs +50 -46
  91. package/resource.d.ts +10 -10
  92. package/resource.js +12 -12
  93. package/resource.mjs +10 -10
  94. package/resources/audio/audio.d.ts +12 -12
  95. package/resources/audio/audio.js +33 -50
  96. package/resources/audio/audio.mjs +11 -11
  97. package/resources/audio/index.d.ts +4 -4
  98. package/resources/audio/index.js +9 -24
  99. package/resources/audio/index.mjs +4 -4
  100. package/resources/audio/transcriptions.d.ts +44 -44
  101. package/resources/audio/transcriptions.js +13 -12
  102. package/resources/audio/transcriptions.mjs +9 -8
  103. package/resources/audio/translations.d.ts +38 -38
  104. package/resources/audio/translations.js +13 -12
  105. package/resources/audio/translations.mjs +9 -8
  106. package/resources/chat/chat.d.ts +17 -17
  107. package/resources/chat/chat.js +30 -47
  108. package/resources/chat/chat.mjs +8 -8
  109. package/resources/chat/completions.d.ts +330 -353
  110. package/resources/chat/completions.js +10 -13
  111. package/resources/chat/completions.mjs +7 -10
  112. package/resources/chat/index.d.ts +3 -17
  113. package/resources/chat/index.js +7 -17
  114. package/resources/chat/index.mjs +3 -3
  115. package/resources/completions.d.ts +216 -232
  116. package/resources/completions.js +10 -13
  117. package/resources/completions.mjs +7 -10
  118. package/resources/edits.d.ts +73 -73
  119. package/resources/edits.js +16 -15
  120. package/resources/edits.mjs +13 -12
  121. package/resources/embeddings.d.ts +73 -76
  122. package/resources/embeddings.js +12 -11
  123. package/resources/embeddings.mjs +9 -8
  124. package/resources/files.d.ts +91 -96
  125. package/resources/files.js +64 -65
  126. package/resources/files.mjs +57 -58
  127. package/resources/fine-tunes.d.ts +277 -290
  128. package/resources/fine-tunes.js +49 -50
  129. package/resources/fine-tunes.mjs +45 -46
  130. package/resources/fine-tuning/fine-tuning.d.ts +12 -12
  131. package/resources/fine-tuning/fine-tuning.js +32 -49
  132. package/resources/fine-tuning/fine-tuning.mjs +10 -10
  133. package/resources/fine-tuning/index.d.ts +3 -12
  134. package/resources/fine-tuning/index.js +9 -29
  135. package/resources/fine-tuning/index.mjs +3 -3
  136. package/resources/fine-tuning/jobs.d.ts +173 -179
  137. package/resources/fine-tuning/jobs.js +50 -47
  138. package/resources/fine-tuning/jobs.mjs +45 -42
  139. package/resources/images.d.ts +116 -119
  140. package/resources/images.js +25 -24
  141. package/resources/images.mjs +21 -20
  142. package/resources/index.d.ts +12 -37
  143. package/resources/index.js +29 -113
  144. package/resources/index.mjs +12 -12
  145. package/resources/models.d.ts +41 -40
  146. package/resources/models.js +30 -28
  147. package/resources/models.mjs +26 -24
  148. package/resources/moderations.d.ts +153 -156
  149. package/resources/moderations.js +12 -11
  150. package/resources/moderations.mjs +9 -8
  151. package/shims/node.d.ts +29 -0
  152. package/shims/node.d.ts.map +1 -0
  153. package/shims/node.js +31 -0
  154. package/shims/node.js.map +1 -0
  155. package/shims/node.mjs +5 -0
  156. package/shims/node.mjs.map +1 -0
  157. package/shims/web.d.ts +26 -0
  158. package/shims/web.d.ts.map +1 -0
  159. package/shims/web.js +31 -0
  160. package/shims/web.js.map +1 -0
  161. package/shims/web.mjs +5 -0
  162. package/shims/web.mjs.map +1 -0
  163. package/src/_shims/MultipartBody.ts +9 -0
  164. package/src/_shims/README.md +46 -0
  165. package/src/_shims/auto/runtime-bun.ts +4 -0
  166. package/src/_shims/auto/runtime-node.ts +4 -0
  167. package/src/_shims/auto/runtime.ts +4 -0
  168. package/src/_shims/auto/types-node.ts +4 -0
  169. package/src/_shims/auto/types.d.ts +99 -0
  170. package/src/_shims/auto/types.js +3 -0
  171. package/src/_shims/auto/types.mjs +3 -0
  172. package/src/_shims/bun-runtime.ts +14 -0
  173. package/src/_shims/index.d.ts +79 -0
  174. package/src/_shims/index.js +13 -0
  175. package/src/_shims/index.mjs +7 -0
  176. package/src/_shims/manual-types.d.ts +12 -0
  177. package/src/_shims/manual-types.js +3 -0
  178. package/src/_shims/manual-types.mjs +3 -0
  179. package/src/_shims/node-runtime.ts +79 -0
  180. package/src/_shims/node-types.d.ts +42 -0
  181. package/src/_shims/node-types.js +3 -0
  182. package/src/_shims/node-types.mjs +3 -0
  183. package/src/_shims/registry.ts +62 -0
  184. package/src/_shims/web-runtime.ts +91 -0
  185. package/src/_shims/web-types.d.ts +82 -0
  186. package/src/_shims/web-types.js +3 -0
  187. package/src/_shims/web-types.mjs +3 -0
  188. package/src/core.ts +34 -17
  189. package/src/error.ts +1 -1
  190. package/src/index.ts +6 -6
  191. package/src/pagination.ts +1 -1
  192. package/src/resource.ts +1 -1
  193. package/src/resources/audio/audio.ts +4 -4
  194. package/src/resources/audio/index.ts +3 -3
  195. package/src/resources/audio/transcriptions.ts +4 -4
  196. package/src/resources/audio/translations.ts +4 -4
  197. package/src/resources/chat/chat.ts +3 -3
  198. package/src/resources/chat/completions.ts +6 -6
  199. package/src/resources/chat/index.ts +2 -2
  200. package/src/resources/completions.ts +5 -5
  201. package/src/resources/edits.ts +4 -4
  202. package/src/resources/embeddings.ts +3 -3
  203. package/src/resources/files.ts +7 -7
  204. package/src/resources/fine-tunes.ts +7 -7
  205. package/src/resources/fine-tuning/fine-tuning.ts +3 -3
  206. package/src/resources/fine-tuning/index.ts +2 -2
  207. package/src/resources/fine-tuning/jobs.ts +6 -6
  208. package/src/resources/images.ts +4 -4
  209. package/src/resources/index.ts +11 -11
  210. package/src/resources/models.ts +4 -4
  211. package/src/resources/moderations.ts +3 -3
  212. package/src/shims/node.ts +50 -0
  213. package/src/shims/web.ts +50 -0
  214. package/src/streaming.ts +1 -1
  215. package/src/uploads.ts +12 -16
  216. package/src/version.ts +1 -1
  217. package/streaming.d.ts +9 -8
  218. package/streaming.d.ts.map +1 -1
  219. package/streaming.js +194 -185
  220. package/streaming.mjs +192 -183
  221. package/uploads.d.ts +23 -39
  222. package/uploads.d.ts.map +1 -1
  223. package/uploads.js +115 -157
  224. package/uploads.js.map +1 -1
  225. package/uploads.mjs +111 -133
  226. package/uploads.mjs.map +1 -1
  227. package/version.d.ts +2 -2
  228. package/version.js +4 -4
  229. package/version.mjs +2 -2
  230. package/_shims/ReadableStream-node.d.ts +0 -6
  231. package/_shims/ReadableStream-node.d.ts.map +0 -1
  232. package/_shims/ReadableStream-node.js +0 -14
  233. package/_shims/ReadableStream-node.js.map +0 -1
  234. package/_shims/ReadableStream-node.mjs +0 -3
  235. package/_shims/ReadableStream-node.mjs.map +0 -1
  236. package/_shims/ReadableStream.d.ts +0 -38
  237. package/_shims/ReadableStream.mjs +0 -7
  238. package/_shims/agent-node.d.ts +0 -7
  239. package/_shims/agent-node.d.ts.map +0 -1
  240. package/_shims/agent-node.js +0 -28
  241. package/_shims/agent-node.js.map +0 -1
  242. package/_shims/agent-node.mjs +0 -16
  243. package/_shims/agent-node.mjs.map +0 -1
  244. package/_shims/agent.d.ts +0 -9
  245. package/_shims/agent.d.ts.map +0 -1
  246. package/_shims/agent.js +0 -14
  247. package/_shims/agent.js.map +0 -1
  248. package/_shims/agent.mjs +0 -10
  249. package/_shims/agent.mjs.map +0 -1
  250. package/_shims/fetch-node.d.ts +0 -64
  251. package/_shims/fetch-node.js +0 -12
  252. package/_shims/fetch-node.mjs +0 -14
  253. package/_shims/fetch.d.ts +0 -60
  254. package/_shims/fetch.js +0 -13
  255. package/_shims/fetch.mjs +0 -15
  256. package/_shims/fileFromPath-node.d.ts +0 -17
  257. package/_shims/fileFromPath-node.d.ts.map +0 -1
  258. package/_shims/fileFromPath-node.js +0 -17
  259. package/_shims/fileFromPath-node.js.map +0 -1
  260. package/_shims/fileFromPath-node.mjs +0 -13
  261. package/_shims/fileFromPath-node.mjs.map +0 -1
  262. package/_shims/fileFromPath.d.ts +0 -22
  263. package/_shims/fileFromPath.d.ts.map +0 -1
  264. package/_shims/fileFromPath.js +0 -16
  265. package/_shims/fileFromPath.js.map +0 -1
  266. package/_shims/fileFromPath.mjs +0 -12
  267. package/_shims/fileFromPath.mjs.map +0 -1
  268. package/_shims/form-data-node.d.ts +0 -45
  269. package/_shims/form-data-node.js +0 -11
  270. package/_shims/form-data-node.mjs +0 -9
  271. package/_shims/form-data.d.ts +0 -43
  272. package/_shims/form-data.js +0 -17
  273. package/_shims/form-data.mjs +0 -20
  274. package/_shims/getMultipartRequestOptions-node.d.ts +0 -10
  275. package/_shims/getMultipartRequestOptions-node.d.ts.map +0 -1
  276. package/_shims/getMultipartRequestOptions-node.js +0 -22
  277. package/_shims/getMultipartRequestOptions-node.js.map +0 -1
  278. package/_shims/getMultipartRequestOptions-node.mjs +0 -18
  279. package/_shims/getMultipartRequestOptions-node.mjs.map +0 -1
  280. package/_shims/getMultipartRequestOptions.d.ts +0 -10
  281. package/_shims/getMultipartRequestOptions.d.ts.map +0 -1
  282. package/_shims/getMultipartRequestOptions.js +0 -12
  283. package/_shims/getMultipartRequestOptions.js.map +0 -1
  284. package/_shims/getMultipartRequestOptions.mjs +0 -8
  285. package/_shims/getMultipartRequestOptions.mjs.map +0 -1
  286. package/_shims/node-readable-node.d.ts +0 -8
  287. package/_shims/node-readable-node.d.ts.map +0 -1
  288. package/_shims/node-readable-node.js +0 -9
  289. package/_shims/node-readable-node.js.map +0 -1
  290. package/_shims/node-readable-node.mjs +0 -5
  291. package/_shims/node-readable-node.mjs.map +0 -1
  292. package/_shims/node-readable.d.ts +0 -23
  293. package/_shims/node-readable.d.ts.map +0 -1
  294. package/_shims/node-readable.js +0 -11
  295. package/_shims/node-readable.js.map +0 -1
  296. package/_shims/node-readable.mjs +0 -7
  297. package/_shims/node-readable.mjs.map +0 -1
  298. package/src/_shims/ReadableStream.d.ts +0 -38
  299. package/src/_shims/ReadableStream.mjs +0 -7
  300. package/src/_shims/agent-node.ts +0 -22
  301. package/src/_shims/agent.ts +0 -12
  302. package/src/_shims/fetch-node.d.ts +0 -64
  303. package/src/_shims/fetch-node.js +0 -12
  304. package/src/_shims/fetch-node.mjs +0 -14
  305. package/src/_shims/fetch.d.ts +0 -60
  306. package/src/_shims/fetch.js +0 -13
  307. package/src/_shims/fetch.mjs +0 -15
  308. package/src/_shims/fileFromPath-node.ts +0 -29
  309. package/src/_shims/fileFromPath.ts +0 -29
  310. package/src/_shims/form-data-node.d.ts +0 -45
  311. package/src/_shims/form-data-node.js +0 -11
  312. package/src/_shims/form-data-node.mjs +0 -9
  313. package/src/_shims/form-data.d.ts +0 -43
  314. package/src/_shims/form-data.js +0 -17
  315. package/src/_shims/form-data.mjs +0 -20
  316. package/src/_shims/getMultipartRequestOptions-node.ts +0 -25
  317. package/src/_shims/getMultipartRequestOptions.ts +0 -14
  318. package/src/_shims/node-readable-node.ts +0 -10
  319. package/src/_shims/node-readable.ts +0 -30
package/uploads.js CHANGED
@@ -1,59 +1,34 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.createForm =
4
- exports.multipartFormRequestOptions =
5
- exports.maybeMultipartFormRequestOptions =
6
- exports.isMultipartBody =
7
- exports.MultipartBody =
8
- exports.toFile =
9
- exports.isUploadable =
10
- exports.isBlobLike =
11
- exports.isFileLike =
12
- exports.isResponseLike =
13
- exports.fileFromPath =
14
- void 0;
15
- const form_data_1 = require('openai/_shims/form-data');
16
- const getMultipartRequestOptions_1 = require('openai/_shims/getMultipartRequestOptions');
17
- const fileFromPath_1 = require('openai/_shims/fileFromPath');
18
- Object.defineProperty(exports, 'fileFromPath', {
19
- enumerable: true,
20
- get: function () {
21
- return fileFromPath_1.fileFromPath;
22
- },
23
- });
24
- const node_readable_1 = require('openai/_shims/node-readable');
25
- const isResponseLike = (value) =>
26
- value != null &&
27
- typeof value === 'object' &&
28
- typeof value.url === 'string' &&
29
- typeof value.blob === 'function';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = exports.isMultipartBody = exports.toFile = exports.isUploadable = exports.isBlobLike = exports.isFileLike = exports.isResponseLike = exports.fileFromPath = void 0;
4
+ const index_1 = require("./_shims/index.js");
5
+ var index_2 = require("./_shims/index.js");
6
+ Object.defineProperty(exports, "fileFromPath", { enumerable: true, get: function () { return index_2.fileFromPath; } });
7
+ const isResponseLike = (value) => value != null &&
8
+ typeof value === 'object' &&
9
+ typeof value.url === 'string' &&
10
+ typeof value.blob === 'function';
30
11
  exports.isResponseLike = isResponseLike;
31
- const isFileLike = (value) =>
32
- value != null &&
33
- typeof value === 'object' &&
34
- typeof value.name === 'string' &&
35
- typeof value.lastModified === 'number' &&
36
- (0, exports.isBlobLike)(value);
12
+ const isFileLike = (value) => value != null &&
13
+ typeof value === 'object' &&
14
+ typeof value.name === 'string' &&
15
+ typeof value.lastModified === 'number' &&
16
+ (0, exports.isBlobLike)(value);
37
17
  exports.isFileLike = isFileLike;
38
18
  /**
39
19
  * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check
40
20
  * adds the arrayBuffer() method type because it is available and used at runtime
41
21
  */
42
- const isBlobLike = (value) =>
43
- value != null &&
44
- typeof value === 'object' &&
45
- typeof value.size === 'number' &&
46
- typeof value.type === 'string' &&
47
- typeof value.text === 'function' &&
48
- typeof value.slice === 'function' &&
49
- typeof value.arrayBuffer === 'function';
22
+ const isBlobLike = (value) => value != null &&
23
+ typeof value === 'object' &&
24
+ typeof value.size === 'number' &&
25
+ typeof value.type === 'string' &&
26
+ typeof value.text === 'function' &&
27
+ typeof value.slice === 'function' &&
28
+ typeof value.arrayBuffer === 'function';
50
29
  exports.isBlobLike = isBlobLike;
51
30
  const isUploadable = (value) => {
52
- return (
53
- (0, exports.isFileLike)(value) ||
54
- (0, exports.isResponseLike)(value) ||
55
- (0, node_readable_1.isFsReadStream)(value)
56
- );
31
+ return (0, exports.isFileLike)(value) || (0, exports.isResponseLike)(value) || (0, index_1.isFsReadStream)(value);
57
32
  };
58
33
  exports.isUploadable = isUploadable;
59
34
  /**
@@ -66,143 +41,126 @@ exports.isUploadable = isUploadable;
66
41
  * @returns a {@link File} with the given properties
67
42
  */
68
43
  async function toFile(value, name, options = {}) {
69
- var _a, _b, _c;
70
- // If it's a promise, resolve it.
71
- value = await value;
72
- if ((0, exports.isResponseLike)(value)) {
73
- const blob = await value.blob();
74
- name ||
75
- (name =
76
- (_a = new URL(value.url).pathname.split(/[\\/]/).pop()) !== null && _a !== void 0 ?
77
- _a
78
- : 'unknown_file');
79
- return new form_data_1.File([blob], name, options);
80
- }
81
- const bits = await getBytes(value);
82
- name || (name = (_b = getName(value)) !== null && _b !== void 0 ? _b : 'unknown_file');
83
- if (!options.type) {
84
- const type = (_c = bits[0]) === null || _c === void 0 ? void 0 : _c.type;
85
- if (typeof type === 'string') {
86
- options = { ...options, type };
44
+ var _a, _b, _c;
45
+ // If it's a promise, resolve it.
46
+ value = await value;
47
+ if ((0, exports.isResponseLike)(value)) {
48
+ const blob = await value.blob();
49
+ name || (name = (_a = new URL(value.url).pathname.split(/[\\/]/).pop()) !== null && _a !== void 0 ? _a : 'unknown_file');
50
+ return new index_1.File([blob], name, options);
87
51
  }
88
- }
89
- return new form_data_1.File(bits, name, options);
52
+ const bits = await getBytes(value);
53
+ name || (name = (_b = getName(value)) !== null && _b !== void 0 ? _b : 'unknown_file');
54
+ if (!options.type) {
55
+ const type = (_c = bits[0]) === null || _c === void 0 ? void 0 : _c.type;
56
+ if (typeof type === 'string') {
57
+ options = { ...options, type };
58
+ }
59
+ }
60
+ return new index_1.File(bits, name, options);
90
61
  }
91
62
  exports.toFile = toFile;
92
63
  async function getBytes(value) {
93
- var _a;
94
- let parts = [];
95
- if (
96
- typeof value === 'string' ||
97
- ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
98
- value instanceof ArrayBuffer
99
- ) {
100
- parts.push(value);
101
- } else if ((0, exports.isBlobLike)(value)) {
102
- parts.push(await value.arrayBuffer());
103
- } else if (
104
- isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
105
- ) {
106
- for await (const chunk of value) {
107
- parts.push(chunk); // TODO, consider validating?
64
+ var _a;
65
+ let parts = [];
66
+ if (typeof value === 'string' ||
67
+ ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
68
+ value instanceof ArrayBuffer) {
69
+ parts.push(value);
70
+ }
71
+ else if ((0, exports.isBlobLike)(value)) {
72
+ parts.push(await value.arrayBuffer());
73
+ }
74
+ else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
75
+ ) {
76
+ for await (const chunk of value) {
77
+ parts.push(chunk); // TODO, consider validating?
78
+ }
108
79
  }
109
- } else {
110
- throw new Error(
111
- `Unexpected data type: ${typeof value}; constructor: ${
112
- (_a = value === null || value === void 0 ? void 0 : value.constructor) === null || _a === void 0 ?
113
- void 0
114
- : _a.name
115
- }; props: ${propsForError(value)}`,
116
- );
117
- }
118
- return parts;
80
+ else {
81
+ throw new Error(`Unexpected data type: ${typeof value}; constructor: ${(_a = value === null || value === void 0 ? void 0 : value.constructor) === null || _a === void 0 ? void 0 : _a.name}; props: ${propsForError(value)}`);
82
+ }
83
+ return parts;
119
84
  }
120
85
  function propsForError(value) {
121
- const props = Object.getOwnPropertyNames(value);
122
- return `[${props.map((p) => `"${p}"`).join(', ')}]`;
86
+ const props = Object.getOwnPropertyNames(value);
87
+ return `[${props.map((p) => `"${p}"`).join(', ')}]`;
123
88
  }
124
89
  function getName(value) {
125
- var _a;
126
- return (
127
- getStringFromMaybeBuffer(value.name) ||
128
- getStringFromMaybeBuffer(value.filename) ||
129
- // For fs.ReadStream
130
- ((_a = getStringFromMaybeBuffer(value.path)) === null || _a === void 0 ? void 0 : _a.split(/[\\/]/).pop())
131
- );
90
+ var _a;
91
+ return (getStringFromMaybeBuffer(value.name) ||
92
+ getStringFromMaybeBuffer(value.filename) ||
93
+ (
94
+ // For fs.ReadStream
95
+ (_a = getStringFromMaybeBuffer(value.path)) === null || _a === void 0 ? void 0 : _a.split(/[\\/]/).pop()));
132
96
  }
133
97
  const getStringFromMaybeBuffer = (x) => {
134
- if (typeof x === 'string') return x;
135
- if (typeof Buffer !== 'undefined' && x instanceof Buffer) return String(x);
136
- return undefined;
98
+ if (typeof x === 'string')
99
+ return x;
100
+ if (typeof Buffer !== 'undefined' && x instanceof Buffer)
101
+ return String(x);
102
+ return undefined;
137
103
  };
138
- const isAsyncIterableIterator = (value) =>
139
- value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
140
- class MultipartBody {
141
- constructor(body) {
142
- this.body = body;
143
- }
144
- get [Symbol.toStringTag]() {
145
- return 'MultipartBody';
146
- }
147
- }
148
- exports.MultipartBody = MultipartBody;
149
- const isMultipartBody = (body) =>
150
- body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';
104
+ const isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
105
+ const isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';
151
106
  exports.isMultipartBody = isMultipartBody;
152
107
  /**
153
108
  * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
154
109
  * Otherwise returns the request as is.
155
110
  */
156
111
  const maybeMultipartFormRequestOptions = async (opts) => {
157
- if (!hasUploadableValue(opts.body)) return opts;
158
- const form = await (0, exports.createForm)(opts.body);
159
- return (0, getMultipartRequestOptions_1.getMultipartRequestOptions)(form, opts);
112
+ if (!hasUploadableValue(opts.body))
113
+ return opts;
114
+ const form = await (0, exports.createForm)(opts.body);
115
+ return (0, index_1.getMultipartRequestOptions)(form, opts);
160
116
  };
161
117
  exports.maybeMultipartFormRequestOptions = maybeMultipartFormRequestOptions;
162
118
  const multipartFormRequestOptions = async (opts) => {
163
- const form = await (0, exports.createForm)(opts.body);
164
- return (0, getMultipartRequestOptions_1.getMultipartRequestOptions)(form, opts);
119
+ const form = await (0, exports.createForm)(opts.body);
120
+ return (0, index_1.getMultipartRequestOptions)(form, opts);
165
121
  };
166
122
  exports.multipartFormRequestOptions = multipartFormRequestOptions;
167
123
  const createForm = async (body) => {
168
- const form = new form_data_1.FormData();
169
- await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
170
- return form;
124
+ const form = new index_1.FormData();
125
+ await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
126
+ return form;
171
127
  };
172
128
  exports.createForm = createForm;
173
129
  const hasUploadableValue = (value) => {
174
- if ((0, exports.isUploadable)(value)) return true;
175
- if (Array.isArray(value)) return value.some(hasUploadableValue);
176
- if (value && typeof value === 'object') {
177
- for (const k in value) {
178
- if (hasUploadableValue(value[k])) return true;
130
+ if ((0, exports.isUploadable)(value))
131
+ return true;
132
+ if (Array.isArray(value))
133
+ return value.some(hasUploadableValue);
134
+ if (value && typeof value === 'object') {
135
+ for (const k in value) {
136
+ if (hasUploadableValue(value[k]))
137
+ return true;
138
+ }
179
139
  }
180
- }
181
- return false;
140
+ return false;
182
141
  };
183
142
  const addFormValue = async (form, key, value) => {
184
- if (value === undefined) return;
185
- if (value == null) {
186
- throw new TypeError(
187
- `Received null for "${key}"; to pass null in FormData, you must use the string 'null'`,
188
- );
189
- }
190
- // TODO: make nested formats configurable
191
- if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
192
- form.append(key, String(value));
193
- } else if ((0, exports.isUploadable)(value)) {
194
- const file = await toFile(value);
195
- form.append(key, file);
196
- } else if (Array.isArray(value)) {
197
- await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
198
- } else if (typeof value === 'object') {
199
- await Promise.all(
200
- Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)),
201
- );
202
- } else {
203
- throw new TypeError(
204
- `Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`,
205
- );
206
- }
143
+ if (value === undefined)
144
+ return;
145
+ if (value == null) {
146
+ throw new TypeError(`Received null for "${key}"; to pass null in FormData, you must use the string 'null'`);
147
+ }
148
+ // TODO: make nested formats configurable
149
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
150
+ form.append(key, String(value));
151
+ }
152
+ else if ((0, exports.isUploadable)(value)) {
153
+ const file = await toFile(value);
154
+ form.append(key, file);
155
+ }
156
+ else if (Array.isArray(value)) {
157
+ await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
158
+ }
159
+ else if (typeof value === 'object') {
160
+ await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));
161
+ }
162
+ else {
163
+ throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);
164
+ }
207
165
  };
208
- //# sourceMappingURL=uploads.js.map
166
+ //# sourceMappingURL=uploads.js.map
package/uploads.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.js","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":";;;AAGA,uDAA0F;AAC1F,yFAAsF;AACtF,6DAA0D;AAGjD,6FAHA,2BAAY,OAGA;AAFrB,+DAAgF;AAmDzE,MAAM,cAAc,GAAG,CAAC,KAAU,EAAyB,EAAE,CAClE,KAAK,IAAI,IAAI;IACb,OAAO,KAAK,KAAK,QAAQ;IACzB,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;IAC7B,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AAJtB,QAAA,cAAc,kBAIQ;AAE5B,MAAM,UAAU,GAAG,CAAC,KAAU,EAAqB,EAAE,CAC1D,KAAK,IAAI,IAAI;IACb,OAAO,KAAK,KAAK,QAAQ;IACzB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;IAC9B,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;IACtC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;AALP,QAAA,UAAU,cAKH;AAEpB;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,KAAU,EAA+D,EAAE,CACpG,KAAK,IAAI,IAAI;IACb,OAAO,KAAK,KAAK,QAAQ;IACzB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;IAC9B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;IAC9B,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;IAChC,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;IACjC,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC;AAP7B,QAAA,UAAU,cAOmB;AAEnC,MAAM,YAAY,GAAG,CAAC,KAAU,EAAuB,EAAE;IAC9D,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,IAAA,8BAAc,EAAC,KAAK,CAAC,CAAC;AAC7E,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAIF;;;;;;;;GAQG;AACI,KAAK,UAAU,MAAM,CAC1B,KAA6C,EAC7C,IAAgC,EAChC,UAAuC,EAAE;;IAEzC,iCAAiC;IACjC,KAAK,GAAG,MAAM,KAAK,CAAC;IAEpB,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,KAAJ,IAAI,GAAK,MAAA,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,mCAAI,cAAc,EAAC;QAE5E,OAAO,IAAI,gBAAI,CAAC,CAAC,IAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/C;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,KAAJ,IAAI,GAAK,MAAA,OAAO,CAAC,KAAK,CAAC,mCAAI,cAAc,EAAC;IAE1C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAC,IAAI,CAAC,CAAC,CAAS,0CAAE,IAAI,CAAC;QACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;SAChC;KACF;IAED,OAAO,IAAI,gBAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AA3BD,wBA2BC;AAED,KAAK,UAAU,QAAQ,CAAC,KAAkB;;IACxC,IAAI,KAAK,GAAoB,EAAE,CAAC;IAChC,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,oCAAoC;QACjE,KAAK,YAAY,WAAW,EAC5B;QACA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnB;SAAM,IAAI,IAAA,kBAAU,EAAC,KAAK,CAAC,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;KACvC;SAAM,IACL,uBAAuB,CAAC,KAAK,CAAC,CAAC,0CAA0C;MACzE;QACA,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAiB,CAAC,CAAC,CAAC,6BAA6B;SAC7D;KACF;SAAM;QACL,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,KAAK,kBACnC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,0CAAE,IACtB,YAAY,aAAa,CAAC,KAAK,CAAC,EAAE,CACnC,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAU;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,KAAU;;IACzB,OAAO,CACL,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC;QACpC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC;;QACxC,oBAAoB;QACpB,MAAA,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,CAAA,CAC3D,CAAC;AACJ,CAAC;AAED,MAAM,wBAAwB,GAAG,CAAC,CAA4B,EAAsB,EAAE;IACpF,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,YAAY,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAU,EAA2C,EAAE,CACtF,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;AAElG,MAAa,aAAa;IACxB,YAAmB,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AALD,sCAKC;AAEM,MAAM,eAAe,GAAG,CAAC,IAAS,EAAyB,EAAE,CAClE,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,eAAe,CAAC;AADnF,QAAA,eAAe,mBACoE;AAEhG;;;GAGG;AACI,MAAM,gCAAgC,GAAG,KAAK,EACnD,IAAuB,EACqB,EAAE;IAC9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,IAAA,uDAA0B,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC;AAPW,QAAA,gCAAgC,oCAO3C;AAEK,MAAM,2BAA2B,GAAG,KAAK,EAC9C,IAAuB,EACqB,EAAE;IAC9C,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,IAAA,uDAA0B,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,2BAA2B,+BAKtC;AAEK,MAAM,UAAU,GAAG,KAAK,EAA+B,IAAmB,EAAqB,EAAE;IACtG,MAAM,IAAI,GAAG,IAAI,oBAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAW,EAAE;IACrD,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACtC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI,kBAAkB,CAAE,KAAa,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;SACxD;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,IAAc,EAAE,GAAW,EAAE,KAAc,EAAiB,EAAE;IACxF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,MAAM,IAAI,SAAS,CACjB,sBAAsB,GAAG,6DAA6D,CACvF,CAAC;KACH;IAED,yCAAyC;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;QACxF,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACjC;SAAM,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAY,CAAC,CAAC;KAChC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KAChF;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CACzF,CAAC;KACH;SAAM;QACL,MAAM,IAAI,SAAS,CACjB,wGAAwG,KAAK,UAAU,CACxH,CAAC;KACH;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":"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"}
package/uploads.mjs CHANGED
@@ -1,33 +1,27 @@
1
- import { FormData, File } from 'openai/_shims/form-data';
2
- import { getMultipartRequestOptions } from 'openai/_shims/getMultipartRequestOptions';
3
- import { fileFromPath } from 'openai/_shims/fileFromPath';
4
- import { isFsReadStream } from 'openai/_shims/node-readable';
5
- export { fileFromPath };
6
- export const isResponseLike = (value) =>
7
- value != null &&
8
- typeof value === 'object' &&
9
- typeof value.url === 'string' &&
10
- typeof value.blob === 'function';
11
- export const isFileLike = (value) =>
12
- value != null &&
13
- typeof value === 'object' &&
14
- typeof value.name === 'string' &&
15
- typeof value.lastModified === 'number' &&
16
- isBlobLike(value);
1
+ import { FormData, File, getMultipartRequestOptions, isFsReadStream, } from "./_shims/index.mjs";
2
+ export { fileFromPath } from "./_shims/index.mjs";
3
+ export const isResponseLike = (value) => value != null &&
4
+ typeof value === 'object' &&
5
+ typeof value.url === 'string' &&
6
+ typeof value.blob === 'function';
7
+ export const isFileLike = (value) => value != null &&
8
+ typeof value === 'object' &&
9
+ typeof value.name === 'string' &&
10
+ typeof value.lastModified === 'number' &&
11
+ isBlobLike(value);
17
12
  /**
18
13
  * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check
19
14
  * adds the arrayBuffer() method type because it is available and used at runtime
20
15
  */
21
- export const isBlobLike = (value) =>
22
- value != null &&
23
- typeof value === 'object' &&
24
- typeof value.size === 'number' &&
25
- typeof value.type === 'string' &&
26
- typeof value.text === 'function' &&
27
- typeof value.slice === 'function' &&
28
- typeof value.arrayBuffer === 'function';
16
+ export const isBlobLike = (value) => value != null &&
17
+ typeof value === 'object' &&
18
+ typeof value.size === 'number' &&
19
+ typeof value.type === 'string' &&
20
+ typeof value.text === 'function' &&
21
+ typeof value.slice === 'function' &&
22
+ typeof value.arrayBuffer === 'function';
29
23
  export const isUploadable = (value) => {
30
- return isFileLike(value) || isResponseLike(value) || isFsReadStream(value);
24
+ return isFileLike(value) || isResponseLike(value) || isFsReadStream(value);
31
25
  };
32
26
  /**
33
27
  * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
@@ -39,137 +33,121 @@ export const isUploadable = (value) => {
39
33
  * @returns a {@link File} with the given properties
40
34
  */
41
35
  export async function toFile(value, name, options = {}) {
42
- var _a, _b, _c;
43
- // If it's a promise, resolve it.
44
- value = await value;
45
- if (isResponseLike(value)) {
46
- const blob = await value.blob();
47
- name ||
48
- (name =
49
- (_a = new URL(value.url).pathname.split(/[\\/]/).pop()) !== null && _a !== void 0 ?
50
- _a
51
- : 'unknown_file');
52
- return new File([blob], name, options);
53
- }
54
- const bits = await getBytes(value);
55
- name || (name = (_b = getName(value)) !== null && _b !== void 0 ? _b : 'unknown_file');
56
- if (!options.type) {
57
- const type = (_c = bits[0]) === null || _c === void 0 ? void 0 : _c.type;
58
- if (typeof type === 'string') {
59
- options = { ...options, type };
36
+ var _a, _b, _c;
37
+ // If it's a promise, resolve it.
38
+ value = await value;
39
+ if (isResponseLike(value)) {
40
+ const blob = await value.blob();
41
+ name || (name = (_a = new URL(value.url).pathname.split(/[\\/]/).pop()) !== null && _a !== void 0 ? _a : 'unknown_file');
42
+ return new File([blob], name, options);
60
43
  }
61
- }
62
- return new File(bits, name, options);
44
+ const bits = await getBytes(value);
45
+ name || (name = (_b = getName(value)) !== null && _b !== void 0 ? _b : 'unknown_file');
46
+ if (!options.type) {
47
+ const type = (_c = bits[0]) === null || _c === void 0 ? void 0 : _c.type;
48
+ if (typeof type === 'string') {
49
+ options = { ...options, type };
50
+ }
51
+ }
52
+ return new File(bits, name, options);
63
53
  }
64
54
  async function getBytes(value) {
65
- var _a;
66
- let parts = [];
67
- if (
68
- typeof value === 'string' ||
69
- ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
70
- value instanceof ArrayBuffer
71
- ) {
72
- parts.push(value);
73
- } else if (isBlobLike(value)) {
74
- parts.push(await value.arrayBuffer());
75
- } else if (
76
- isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
77
- ) {
78
- for await (const chunk of value) {
79
- parts.push(chunk); // TODO, consider validating?
55
+ var _a;
56
+ let parts = [];
57
+ if (typeof value === 'string' ||
58
+ ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
59
+ value instanceof ArrayBuffer) {
60
+ parts.push(value);
61
+ }
62
+ else if (isBlobLike(value)) {
63
+ parts.push(await value.arrayBuffer());
64
+ }
65
+ else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
66
+ ) {
67
+ for await (const chunk of value) {
68
+ parts.push(chunk); // TODO, consider validating?
69
+ }
80
70
  }
81
- } else {
82
- throw new Error(
83
- `Unexpected data type: ${typeof value}; constructor: ${
84
- (_a = value === null || value === void 0 ? void 0 : value.constructor) === null || _a === void 0 ?
85
- void 0
86
- : _a.name
87
- }; props: ${propsForError(value)}`,
88
- );
89
- }
90
- return parts;
71
+ else {
72
+ throw new Error(`Unexpected data type: ${typeof value}; constructor: ${(_a = value === null || value === void 0 ? void 0 : value.constructor) === null || _a === void 0 ? void 0 : _a.name}; props: ${propsForError(value)}`);
73
+ }
74
+ return parts;
91
75
  }
92
76
  function propsForError(value) {
93
- const props = Object.getOwnPropertyNames(value);
94
- return `[${props.map((p) => `"${p}"`).join(', ')}]`;
77
+ const props = Object.getOwnPropertyNames(value);
78
+ return `[${props.map((p) => `"${p}"`).join(', ')}]`;
95
79
  }
96
80
  function getName(value) {
97
- var _a;
98
- return (
99
- getStringFromMaybeBuffer(value.name) ||
100
- getStringFromMaybeBuffer(value.filename) ||
101
- // For fs.ReadStream
102
- ((_a = getStringFromMaybeBuffer(value.path)) === null || _a === void 0 ? void 0 : _a.split(/[\\/]/).pop())
103
- );
81
+ var _a;
82
+ return (getStringFromMaybeBuffer(value.name) ||
83
+ getStringFromMaybeBuffer(value.filename) ||
84
+ (
85
+ // For fs.ReadStream
86
+ (_a = getStringFromMaybeBuffer(value.path)) === null || _a === void 0 ? void 0 : _a.split(/[\\/]/).pop()));
104
87
  }
105
88
  const getStringFromMaybeBuffer = (x) => {
106
- if (typeof x === 'string') return x;
107
- if (typeof Buffer !== 'undefined' && x instanceof Buffer) return String(x);
108
- return undefined;
89
+ if (typeof x === 'string')
90
+ return x;
91
+ if (typeof Buffer !== 'undefined' && x instanceof Buffer)
92
+ return String(x);
93
+ return undefined;
109
94
  };
110
- const isAsyncIterableIterator = (value) =>
111
- value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
112
- export class MultipartBody {
113
- constructor(body) {
114
- this.body = body;
115
- }
116
- get [Symbol.toStringTag]() {
117
- return 'MultipartBody';
118
- }
119
- }
120
- export const isMultipartBody = (body) =>
121
- body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';
95
+ const isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
96
+ export const isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';
122
97
  /**
123
98
  * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
124
99
  * Otherwise returns the request as is.
125
100
  */
126
101
  export const maybeMultipartFormRequestOptions = async (opts) => {
127
- if (!hasUploadableValue(opts.body)) return opts;
128
- const form = await createForm(opts.body);
129
- return getMultipartRequestOptions(form, opts);
102
+ if (!hasUploadableValue(opts.body))
103
+ return opts;
104
+ const form = await createForm(opts.body);
105
+ return getMultipartRequestOptions(form, opts);
130
106
  };
131
107
  export const multipartFormRequestOptions = async (opts) => {
132
- const form = await createForm(opts.body);
133
- return getMultipartRequestOptions(form, opts);
108
+ const form = await createForm(opts.body);
109
+ return getMultipartRequestOptions(form, opts);
134
110
  };
135
111
  export const createForm = async (body) => {
136
- const form = new FormData();
137
- await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
138
- return form;
112
+ const form = new FormData();
113
+ await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
114
+ return form;
139
115
  };
140
116
  const hasUploadableValue = (value) => {
141
- if (isUploadable(value)) return true;
142
- if (Array.isArray(value)) return value.some(hasUploadableValue);
143
- if (value && typeof value === 'object') {
144
- for (const k in value) {
145
- if (hasUploadableValue(value[k])) return true;
117
+ if (isUploadable(value))
118
+ return true;
119
+ if (Array.isArray(value))
120
+ return value.some(hasUploadableValue);
121
+ if (value && typeof value === 'object') {
122
+ for (const k in value) {
123
+ if (hasUploadableValue(value[k]))
124
+ return true;
125
+ }
146
126
  }
147
- }
148
- return false;
127
+ return false;
149
128
  };
150
129
  const addFormValue = async (form, key, value) => {
151
- if (value === undefined) return;
152
- if (value == null) {
153
- throw new TypeError(
154
- `Received null for "${key}"; to pass null in FormData, you must use the string 'null'`,
155
- );
156
- }
157
- // TODO: make nested formats configurable
158
- if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
159
- form.append(key, String(value));
160
- } else if (isUploadable(value)) {
161
- const file = await toFile(value);
162
- form.append(key, file);
163
- } else if (Array.isArray(value)) {
164
- await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
165
- } else if (typeof value === 'object') {
166
- await Promise.all(
167
- Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)),
168
- );
169
- } else {
170
- throw new TypeError(
171
- `Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`,
172
- );
173
- }
130
+ if (value === undefined)
131
+ return;
132
+ if (value == null) {
133
+ throw new TypeError(`Received null for "${key}"; to pass null in FormData, you must use the string 'null'`);
134
+ }
135
+ // TODO: make nested formats configurable
136
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
137
+ form.append(key, String(value));
138
+ }
139
+ else if (isUploadable(value)) {
140
+ const file = await toFile(value);
141
+ form.append(key, file);
142
+ }
143
+ else if (Array.isArray(value)) {
144
+ await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
145
+ }
146
+ else if (typeof value === 'object') {
147
+ await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));
148
+ }
149
+ else {
150
+ throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);
151
+ }
174
152
  };
175
- //# sourceMappingURL=uploads.mjs.map
153
+ //# sourceMappingURL=uploads.mjs.map