@roarkanalytics/sdk 2.21.1 → 2.21.2

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 (348) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +69 -46
  3. package/api-promise.d.mts +1 -46
  4. package/api-promise.d.mts.map +1 -1
  5. package/api-promise.d.ts +1 -46
  6. package/api-promise.d.ts.map +1 -1
  7. package/api-promise.js +3 -81
  8. package/api-promise.js.map +1 -1
  9. package/api-promise.mjs +1 -79
  10. package/api-promise.mjs.map +1 -1
  11. package/client.d.mts +25 -30
  12. package/client.d.mts.map +1 -1
  13. package/client.d.ts +25 -30
  14. package/client.d.ts.map +1 -1
  15. package/client.js +150 -132
  16. package/client.js.map +1 -1
  17. package/client.mjs +145 -104
  18. package/client.mjs.map +1 -1
  19. package/core/api-promise.d.mts +46 -0
  20. package/core/api-promise.d.mts.map +1 -0
  21. package/core/api-promise.d.ts +46 -0
  22. package/core/api-promise.d.ts.map +1 -0
  23. package/core/api-promise.js +74 -0
  24. package/core/api-promise.js.map +1 -0
  25. package/core/api-promise.mjs +70 -0
  26. package/core/api-promise.mjs.map +1 -0
  27. package/core/error.d.mts +46 -0
  28. package/core/error.d.mts.map +1 -0
  29. package/core/error.d.ts +46 -0
  30. package/core/error.d.ts.map +1 -0
  31. package/core/error.js +113 -0
  32. package/core/error.js.map +1 -0
  33. package/core/error.mjs +97 -0
  34. package/core/error.mjs.map +1 -0
  35. package/core/resource.d.mts +6 -0
  36. package/core/resource.d.mts.map +1 -0
  37. package/core/resource.d.ts +6 -0
  38. package/core/resource.d.ts.map +1 -0
  39. package/core/resource.js +11 -0
  40. package/core/resource.js.map +1 -0
  41. package/core/resource.mjs +7 -0
  42. package/core/resource.mjs.map +1 -0
  43. package/core/uploads.d.mts +3 -0
  44. package/core/uploads.d.mts.map +1 -0
  45. package/core/uploads.d.ts +3 -0
  46. package/core/uploads.d.ts.map +1 -0
  47. package/core/uploads.js +6 -0
  48. package/core/uploads.js.map +1 -0
  49. package/core/uploads.mjs +2 -0
  50. package/core/uploads.mjs.map +1 -0
  51. package/error.d.mts +1 -46
  52. package/error.d.mts.map +1 -1
  53. package/error.d.ts +1 -46
  54. package/error.d.ts.map +1 -1
  55. package/error.js +3 -110
  56. package/error.js.map +1 -1
  57. package/error.mjs +1 -96
  58. package/error.mjs.map +1 -1
  59. package/index.d.mts +6 -6
  60. package/index.d.ts +3 -3
  61. package/index.js +3 -3
  62. package/index.js.map +1 -1
  63. package/index.mjs +3 -3
  64. package/internal/builtin-types.d.mts +11 -3
  65. package/internal/builtin-types.d.mts.map +1 -1
  66. package/internal/builtin-types.d.ts +11 -3
  67. package/internal/builtin-types.d.ts.map +1 -1
  68. package/internal/detect-platform.js +3 -3
  69. package/internal/detect-platform.js.map +1 -1
  70. package/internal/detect-platform.mjs +3 -3
  71. package/internal/detect-platform.mjs.map +1 -1
  72. package/internal/errors.d.mts.map +1 -1
  73. package/internal/errors.d.ts.map +1 -1
  74. package/internal/errors.js +17 -2
  75. package/internal/errors.js.map +1 -1
  76. package/internal/errors.mjs +15 -0
  77. package/internal/errors.mjs.map +1 -1
  78. package/internal/headers.d.mts +1 -2
  79. package/internal/headers.d.mts.map +1 -1
  80. package/internal/headers.d.ts +1 -2
  81. package/internal/headers.d.ts.map +1 -1
  82. package/internal/headers.js +7 -5
  83. package/internal/headers.js.map +1 -1
  84. package/internal/headers.mjs +7 -5
  85. package/internal/headers.mjs.map +1 -1
  86. package/internal/parse.d.mts +3 -1
  87. package/internal/parse.d.mts.map +1 -1
  88. package/internal/parse.d.ts +3 -1
  89. package/internal/parse.d.ts.map +1 -1
  90. package/internal/parse.js +33 -21
  91. package/internal/parse.js.map +1 -1
  92. package/internal/parse.mjs +33 -20
  93. package/internal/parse.mjs.map +1 -1
  94. package/internal/qs/formats.d.mts +1 -0
  95. package/internal/qs/formats.d.mts.map +1 -1
  96. package/internal/qs/formats.d.ts +1 -0
  97. package/internal/qs/formats.d.ts.map +1 -1
  98. package/internal/qs/formats.js +4 -2
  99. package/internal/qs/formats.js.map +1 -1
  100. package/internal/qs/formats.mjs +2 -1
  101. package/internal/qs/formats.mjs.map +1 -1
  102. package/internal/qs/stringify.d.mts.map +1 -1
  103. package/internal/qs/stringify.d.ts.map +1 -1
  104. package/internal/qs/stringify.js +16 -19
  105. package/internal/qs/stringify.js.map +1 -1
  106. package/internal/qs/stringify.mjs +17 -19
  107. package/internal/qs/stringify.mjs.map +1 -1
  108. package/internal/qs/utils.d.mts +1 -0
  109. package/internal/qs/utils.d.mts.map +1 -1
  110. package/internal/qs/utils.d.ts +1 -0
  111. package/internal/qs/utils.d.ts.map +1 -1
  112. package/internal/qs/utils.js +22 -21
  113. package/internal/qs/utils.js.map +1 -1
  114. package/internal/qs/utils.mjs +12 -12
  115. package/internal/qs/utils.mjs.map +1 -1
  116. package/internal/request-options.d.mts +43 -2
  117. package/internal/request-options.d.mts.map +1 -1
  118. package/internal/request-options.d.ts +43 -2
  119. package/internal/request-options.d.ts.map +1 -1
  120. package/internal/request-options.js +1 -26
  121. package/internal/request-options.js.map +1 -1
  122. package/internal/request-options.mjs +0 -24
  123. package/internal/request-options.mjs.map +1 -1
  124. package/internal/shim-types.d.mts +11 -22
  125. package/internal/shim-types.d.mts.map +1 -0
  126. package/internal/shim-types.d.ts +11 -22
  127. package/internal/shim-types.d.ts.map +1 -0
  128. package/internal/shim-types.js +4 -0
  129. package/internal/shim-types.js.map +1 -0
  130. package/internal/shim-types.mjs +3 -0
  131. package/internal/shim-types.mjs.map +1 -0
  132. package/internal/shims.d.mts +7 -48
  133. package/internal/shims.d.mts.map +1 -1
  134. package/internal/shims.d.ts +7 -48
  135. package/internal/shims.d.ts.map +1 -1
  136. package/internal/shims.js +21 -30
  137. package/internal/shims.js.map +1 -1
  138. package/internal/shims.mjs +16 -23
  139. package/internal/shims.mjs.map +1 -1
  140. package/internal/to-file.d.mts +45 -0
  141. package/internal/to-file.d.mts.map +1 -0
  142. package/internal/to-file.d.ts +45 -0
  143. package/internal/to-file.d.ts.map +1 -0
  144. package/internal/to-file.js +91 -0
  145. package/internal/to-file.js.map +1 -0
  146. package/internal/to-file.mjs +88 -0
  147. package/internal/to-file.mjs.map +1 -0
  148. package/internal/tslib.js +81 -0
  149. package/internal/tslib.mjs +17 -0
  150. package/internal/types.d.mts +14 -13
  151. package/internal/types.d.mts.map +1 -1
  152. package/internal/types.d.ts +14 -13
  153. package/internal/types.d.ts.map +1 -1
  154. package/internal/uploads.d.mts +16 -47
  155. package/internal/uploads.d.mts.map +1 -1
  156. package/internal/uploads.d.ts +16 -47
  157. package/internal/uploads.d.ts.map +1 -1
  158. package/internal/uploads.js +41 -108
  159. package/internal/uploads.js.map +1 -1
  160. package/internal/uploads.mjs +39 -108
  161. package/internal/uploads.mjs.map +1 -1
  162. package/internal/utils/base64.d.mts.map +1 -1
  163. package/internal/utils/base64.d.ts.map +1 -1
  164. package/internal/utils/base64.js +13 -8
  165. package/internal/utils/base64.js.map +1 -1
  166. package/internal/utils/base64.mjs +13 -8
  167. package/internal/utils/base64.mjs.map +1 -1
  168. package/internal/utils/bytes.d.mts +4 -0
  169. package/internal/utils/bytes.d.mts.map +1 -0
  170. package/internal/utils/bytes.d.ts +4 -0
  171. package/internal/utils/bytes.d.ts.map +1 -0
  172. package/internal/utils/bytes.js +31 -0
  173. package/internal/utils/bytes.js.map +1 -0
  174. package/internal/utils/bytes.mjs +26 -0
  175. package/internal/utils/bytes.mjs.map +1 -0
  176. package/internal/utils/env.d.mts.map +1 -1
  177. package/internal/utils/env.d.ts.map +1 -1
  178. package/internal/utils/env.js.map +1 -1
  179. package/internal/utils/env.mjs.map +1 -1
  180. package/internal/utils/log.d.mts +35 -2
  181. package/internal/utils/log.d.mts.map +1 -1
  182. package/internal/utils/log.d.ts +35 -2
  183. package/internal/utils/log.d.ts.map +1 -1
  184. package/internal/utils/log.js +62 -24
  185. package/internal/utils/log.js.map +1 -1
  186. package/internal/utils/log.mjs +58 -22
  187. package/internal/utils/log.mjs.map +1 -1
  188. package/internal/utils/path.d.mts +15 -0
  189. package/internal/utils/path.d.mts.map +1 -0
  190. package/internal/utils/path.d.ts +15 -0
  191. package/internal/utils/path.d.ts.map +1 -0
  192. package/internal/utils/path.js +79 -0
  193. package/internal/utils/path.js.map +1 -0
  194. package/internal/utils/path.mjs +74 -0
  195. package/internal/utils/path.mjs.map +1 -0
  196. package/internal/utils/sleep.d.mts.map +1 -1
  197. package/internal/utils/sleep.d.ts.map +1 -1
  198. package/internal/utils/uuid.d.mts +1 -1
  199. package/internal/utils/uuid.d.mts.map +1 -1
  200. package/internal/utils/uuid.d.ts +1 -1
  201. package/internal/utils/uuid.d.ts.map +1 -1
  202. package/internal/utils/uuid.js +10 -6
  203. package/internal/utils/uuid.js.map +1 -1
  204. package/internal/utils/uuid.mjs +9 -5
  205. package/internal/utils/uuid.mjs.map +1 -1
  206. package/internal/utils/values.d.mts +4 -1
  207. package/internal/utils/values.d.mts.map +1 -1
  208. package/internal/utils/values.d.ts +4 -1
  209. package/internal/utils/values.d.ts.map +1 -1
  210. package/internal/utils/values.js +21 -9
  211. package/internal/utils/values.js.map +1 -1
  212. package/internal/utils/values.mjs +14 -4
  213. package/internal/utils/values.mjs.map +1 -1
  214. package/internal/utils.js +7 -20
  215. package/internal/utils.js.map +1 -1
  216. package/package.json +31 -13
  217. package/resource.d.mts +1 -5
  218. package/resource.d.mts.map +1 -1
  219. package/resource.d.ts +1 -5
  220. package/resource.d.ts.map +1 -1
  221. package/resource.js +3 -8
  222. package/resource.js.map +1 -1
  223. package/resource.mjs +1 -6
  224. package/resource.mjs.map +1 -1
  225. package/resources/call.d.mts +17 -7
  226. package/resources/call.d.mts.map +1 -1
  227. package/resources/call.d.ts +17 -7
  228. package/resources/call.d.ts.map +1 -1
  229. package/resources/call.js +6 -5
  230. package/resources/call.js.map +1 -1
  231. package/resources/call.mjs +6 -5
  232. package/resources/call.mjs.map +1 -1
  233. package/resources/evaluation.d.mts +20 -8
  234. package/resources/evaluation.d.mts.map +1 -1
  235. package/resources/evaluation.d.ts +20 -8
  236. package/resources/evaluation.d.ts.map +1 -1
  237. package/resources/evaluation.js +5 -4
  238. package/resources/evaluation.js.map +1 -1
  239. package/resources/evaluation.mjs +5 -4
  240. package/resources/evaluation.mjs.map +1 -1
  241. package/resources/health.d.mts +2 -2
  242. package/resources/health.d.ts +2 -2
  243. package/resources/health.js +1 -1
  244. package/resources/health.js.map +1 -1
  245. package/resources/health.mjs +1 -1
  246. package/resources/integrations.d.mts +39 -6
  247. package/resources/integrations.d.mts.map +1 -1
  248. package/resources/integrations.d.ts +39 -6
  249. package/resources/integrations.d.ts.map +1 -1
  250. package/resources/integrations.js +26 -1
  251. package/resources/integrations.js.map +1 -1
  252. package/resources/integrations.mjs +26 -1
  253. package/resources/integrations.mjs.map +1 -1
  254. package/resources/metric.d.mts +2 -2
  255. package/resources/metric.d.ts +2 -2
  256. package/resources/metric.js +1 -1
  257. package/resources/metric.js.map +1 -1
  258. package/resources/metric.mjs +1 -1
  259. package/resources/persona.d.mts +45 -8
  260. package/resources/persona.d.mts.map +1 -1
  261. package/resources/persona.d.ts +45 -8
  262. package/resources/persona.d.ts.map +1 -1
  263. package/resources/persona.js +29 -3
  264. package/resources/persona.js.map +1 -1
  265. package/resources/persona.mjs +29 -3
  266. package/resources/persona.mjs.map +1 -1
  267. package/resources/simulation.d.mts +51 -5
  268. package/resources/simulation.d.mts.map +1 -1
  269. package/resources/simulation.d.ts +51 -5
  270. package/resources/simulation.d.ts.map +1 -1
  271. package/resources/simulation.js +45 -4
  272. package/resources/simulation.js.map +1 -1
  273. package/resources/simulation.mjs +45 -4
  274. package/resources/simulation.mjs.map +1 -1
  275. package/resources.d.mts +2 -0
  276. package/resources.d.mts.map +1 -0
  277. package/resources.d.ts +2 -0
  278. package/resources.d.ts.map +1 -0
  279. package/resources.js +5 -0
  280. package/resources.js.map +1 -0
  281. package/resources.mjs +2 -0
  282. package/resources.mjs.map +1 -0
  283. package/src/api-promise.ts +2 -92
  284. package/src/client.ts +207 -116
  285. package/src/core/README.md +3 -0
  286. package/src/core/api-promise.ts +92 -0
  287. package/src/core/error.ts +130 -0
  288. package/src/core/resource.ts +11 -0
  289. package/src/core/uploads.ts +2 -0
  290. package/src/error.ts +2 -130
  291. package/src/index.ts +3 -3
  292. package/src/internal/README.md +3 -0
  293. package/src/internal/builtin-types.ts +14 -0
  294. package/src/internal/detect-platform.ts +3 -3
  295. package/src/internal/errors.ts +11 -0
  296. package/src/internal/headers.ts +9 -8
  297. package/src/internal/parse.ts +43 -28
  298. package/src/internal/qs/formats.ts +2 -1
  299. package/src/internal/qs/stringify.ts +17 -20
  300. package/src/internal/qs/utils.ts +14 -14
  301. package/src/internal/request-options.ts +55 -31
  302. package/src/internal/shim-types.ts +26 -0
  303. package/src/internal/shims.ts +20 -58
  304. package/src/internal/to-file.ts +154 -0
  305. package/src/internal/types.ts +14 -17
  306. package/src/internal/uploads.ts +60 -180
  307. package/src/internal/utils/base64.ts +14 -11
  308. package/src/internal/utils/bytes.ts +32 -0
  309. package/src/internal/utils/log.ts +100 -23
  310. package/src/internal/utils/path.ts +88 -0
  311. package/src/internal/utils/uuid.ts +10 -6
  312. package/src/internal/utils/values.ts +16 -5
  313. package/src/resource.ts +2 -11
  314. package/src/resources/call.ts +12 -11
  315. package/src/resources/evaluation.ts +12 -11
  316. package/src/resources/health.ts +2 -2
  317. package/src/resources/integrations.ts +31 -6
  318. package/src/resources/metric.ts +2 -2
  319. package/src/resources/persona.ts +36 -10
  320. package/src/resources/simulation.ts +49 -8
  321. package/src/resources.ts +1 -0
  322. package/src/uploads.ts +2 -1
  323. package/src/version.ts +1 -1
  324. package/uploads.d.mts +1 -1
  325. package/uploads.d.mts.map +1 -1
  326. package/uploads.d.ts +1 -1
  327. package/uploads.d.ts.map +1 -1
  328. package/uploads.js +3 -3
  329. package/uploads.js.map +1 -1
  330. package/uploads.mjs +1 -1
  331. package/uploads.mjs.map +1 -1
  332. package/version.d.mts +1 -1
  333. package/version.d.ts +1 -1
  334. package/version.js +1 -1
  335. package/version.mjs +1 -1
  336. package/internal/polyfill/crypto.node.d.ts +0 -10
  337. package/internal/polyfill/crypto.node.js +0 -11
  338. package/internal/polyfill/crypto.node.mjs +0 -2
  339. package/internal/polyfill/file.node.d.ts +0 -9
  340. package/internal/polyfill/file.node.js +0 -17
  341. package/internal/polyfill/file.node.mjs +0 -9
  342. package/src/internal/polyfill/crypto.node.d.ts +0 -10
  343. package/src/internal/polyfill/crypto.node.js +0 -11
  344. package/src/internal/polyfill/crypto.node.mjs +0 -2
  345. package/src/internal/polyfill/file.node.d.ts +0 -9
  346. package/src/internal/polyfill/file.node.js +0 -17
  347. package/src/internal/polyfill/file.node.mjs +0 -9
  348. package/src/internal/shim-types.d.ts +0 -28
@@ -1,12 +1,16 @@
1
-
2
-
3
1
  import { type RequestOptions } from "./request-options.js";
4
2
  import type { FilePropertyBag, Fetch } from "./builtin-types.js";
5
- import { type FsReadStreamLike } from "./shims.js";
6
3
  import type { Roark } from "../client.js";
7
- import "./polyfill/file.node.js";
8
- type BlobLikePart = string | ArrayBuffer | ArrayBufferView | BlobLike | DataView;
9
- type BlobPart = string | ArrayBuffer | ArrayBufferView | Blob | DataView;
4
+ export type BlobPart = string | ArrayBuffer | ArrayBufferView | Blob | DataView;
5
+ type FsReadStream = AsyncIterable<Uint8Array> & {
6
+ path: string | {
7
+ toString(): string;
8
+ };
9
+ };
10
+ interface BunFile extends Blob {
11
+ readonly name?: string | undefined;
12
+ }
13
+ export declare const checkFileSupport: () => void;
10
14
  /**
11
15
  * Typically, this is a native "File" class.
12
16
  *
@@ -16,49 +20,14 @@ type BlobPart = string | ArrayBuffer | ArrayBufferView | Blob | DataView;
16
20
  * For convenience, you can also pass a fetch Response, or in Node,
17
21
  * the result of fs.createReadStream().
18
22
  */
19
- export type Uploadable = FileLike | ResponseLike | FsReadStreamLike;
20
- /**
21
- * Intended to match DOM Blob, node-fetch Blob, node:buffer Blob, etc.
22
- * Don't add arrayBuffer here, node-fetch doesn't have it
23
- */
24
- interface BlobLike {
25
- /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */
26
- readonly size: number;
27
- /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */
28
- readonly type: string;
29
- /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */
30
- text(): Promise<string>;
31
- /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */
32
- slice(start?: number, end?: number): BlobLike;
33
- }
34
- /**
35
- * Intended to match DOM File, node:buffer File, undici File, etc.
36
- */
37
- interface FileLike extends BlobLike {
38
- /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */
39
- readonly lastModified: number;
40
- /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */
41
- readonly name: string;
42
- }
43
- /**
44
- * Intended to match DOM Response, node-fetch Response, undici Response, etc.
45
- */
46
- export interface ResponseLike {
47
- url: string;
48
- blob(): Promise<BlobLike>;
49
- }
50
- type ToFileInput = Uploadable | Exclude<BlobLikePart, string> | AsyncIterable<BlobLikePart>;
23
+ export type Uploadable = File | Response | FsReadStream | BunFile;
51
24
  /**
52
- * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
53
- * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s
54
- * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
55
- * @param {Object=} options additional properties
56
- * @param {string=} options.type the MIME type of the content
57
- * @param {number=} options.lastModified the last modified timestamp
58
- * @returns a {@link File} with the given properties
25
+ * Construct a `File` instance. This is used to ensure a helpful error is thrown
26
+ * for environments that don't define a global `File` yet.
59
27
  */
60
- export declare function toFile(value: ToFileInput | PromiseLike<ToFileInput>, name?: string | null | undefined, options?: FilePropertyBag | undefined): Promise<FileLike>;
61
- export declare function getBytes(value: Uploadable | BlobLikePart | AsyncIterable<BlobLikePart>): Promise<Array<BlobPart>>;
28
+ export declare function makeFile(fileBits: BlobPart[], fileName: string | undefined, options?: FilePropertyBag): File;
29
+ export declare function getName(value: any): string | undefined;
30
+ export declare const isAsyncIterable: (value: any) => value is AsyncIterable<any>;
62
31
  /**
63
32
  * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
64
33
  * Otherwise returns the request as is.
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../src/internal/uploads.ts"],"names":[],"mappings":";;OAAO,EAAE,KAAK,cAAc,EAAE;OACvB,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;OAC/B,EAAsB,KAAK,gBAAgB,EAAE;OAC7C,KAAK,EAAE,KAAK,EAAE;;AAGrB,KAAK,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACjF,KAAK,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEpE;;;GAGG;AACH,UAAU,QAAQ;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,6EAA6E;IAC7E,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC/C;AAcD;;GAEG;AACH,UAAU,QAAS,SAAQ,QAAQ;IACjC,oFAAoF;IACpF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAgBD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAYD,KAAK,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAgB5F;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,EAC7C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,GACpC,OAAO,CAAC,QAAQ,CAAC,CAgCnB;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,GAC7D,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CA0B1B;AAsBD;;;GAGG;AACH,eAAO,MAAM,gCAAgC,SACrC,cAAc,SACb,KAAK,GAAG,KAAK,KACnB,QAAQ,cAAc,CAIxB,CAAC;AAEF,KAAK,2BAA2B,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,2BAA2B,SAChC,2BAA2B,SAC1B,KAAK,GAAG,KAAK,KACnB,QAAQ,cAAc,CAExB,CAAC;AAkCF,eAAO,MAAM,UAAU,4DAEd,KAAK,GAAG,KAAK,KACnB,QAAQ,QAAQ,CASlB,CAAC"}
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../src/internal/uploads.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,cAAc,EAAE;OACvB,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;OAC/B,KAAK,EAAE,KAAK,EAAE;AAGrB,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,IAAI,GAAG,QAAQ,CAAC;AAChF,KAAK,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAG1F,UAAU,OAAQ,SAAQ,IAAI;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,eAAO,MAAM,gBAAgB,YAY5B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;AAElE;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,QAAQ,EAAE,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CAGN;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CActD;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,aAAa,CAAC,GAAG,CAC0B,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,gCAAgC,GAC3C,MAAM,cAAc,EACpB,OAAO,KAAK,GAAG,KAAK,KACnB,OAAO,CAAC,cAAc,CAIxB,CAAC;AAEF,KAAK,2BAA2B,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,2BAA2B,GACtC,MAAM,2BAA2B,EACjC,OAAO,KAAK,GAAG,KAAK,KACnB,OAAO,CAAC,cAAc,CAExB,CAAC;AAkCF,eAAO,MAAM,UAAU,GAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,MAAM,CAAC,GAAG,SAAS,EACnB,OAAO,KAAK,GAAG,KAAK,KACnB,OAAO,CAAC,QAAQ,CASlB,CAAC"}
@@ -1,119 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = exports.getBytes = exports.toFile = void 0;
3
+ exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = exports.isAsyncIterable = exports.checkFileSupport = void 0;
4
+ exports.makeFile = makeFile;
5
+ exports.getName = getName;
4
6
  const shims_1 = require("./shims.js");
5
- require("./polyfill/file.node.js");
6
- /**
7
- * This check adds the arrayBuffer() method type because it is available and used at runtime
8
- */
9
- const isBlobLike = (value) => value != null &&
10
- typeof value === 'object' &&
11
- typeof value.size === 'number' &&
12
- typeof value.type === 'string' &&
13
- typeof value.text === 'function' &&
14
- typeof value.slice === 'function' &&
15
- typeof value.arrayBuffer === 'function';
16
- /**
17
- * This check adds the arrayBuffer() method type because it is available and used at runtime
18
- */
19
- const isFileLike = (value) => value != null &&
20
- typeof value === 'object' &&
21
- typeof value.name === 'string' &&
22
- typeof value.lastModified === 'number' &&
23
- isBlobLike(value);
24
- const isResponseLike = (value) => value != null &&
25
- typeof value === 'object' &&
26
- typeof value.url === 'string' &&
27
- typeof value.blob === 'function';
28
- const isUploadable = (value) => {
29
- return isFileLike(value) || isResponseLike(value) || (0, shims_1.isFsReadStreamLike)(value);
7
+ const checkFileSupport = () => {
8
+ if (typeof File === 'undefined') {
9
+ const { process } = globalThis;
10
+ const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;
11
+ throw new Error('`File` is not defined as a global, which is required for file uploads.' +
12
+ (isOldNode ?
13
+ " Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`."
14
+ : ''));
15
+ }
30
16
  };
17
+ exports.checkFileSupport = checkFileSupport;
31
18
  /**
32
19
  * Construct a `File` instance. This is used to ensure a helpful error is thrown
33
- * for environments that don't define a global `File` yet and so that we don't
34
- * accidentally rely on a global `File` type in our annotations.
20
+ * for environments that don't define a global `File` yet.
35
21
  */
36
22
  function makeFile(fileBits, fileName, options) {
37
- const File = globalThis.File;
38
- if (typeof File === 'undefined') {
39
- throw new Error('`File` is not defined as a global which is required for file uploads');
40
- }
41
- return new File(fileBits, fileName, options);
42
- }
43
- /**
44
- * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
45
- * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s
46
- * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
47
- * @param {Object=} options additional properties
48
- * @param {string=} options.type the MIME type of the content
49
- * @param {number=} options.lastModified the last modified timestamp
50
- * @returns a {@link File} with the given properties
51
- */
52
- async function toFile(value, name, options) {
53
- // If it's a promise, resolve it.
54
- value = await value;
55
- // If we've been given a `File` we don't need to do anything
56
- if (isFileLike(value)) {
57
- const File = globalThis.File;
58
- if (File && value instanceof File) {
59
- return value;
60
- }
61
- return makeFile([await value.arrayBuffer()], value.name);
62
- }
63
- if (isResponseLike(value)) {
64
- const blob = await value.blob();
65
- name || (name = new URL(value.url).pathname.split(/[\\/]/).pop() ?? 'unknown_file');
66
- return makeFile(await getBytes(blob), name, options);
67
- }
68
- const parts = await getBytes(value);
69
- name || (name = getName(value) ?? 'unknown_file');
70
- if (!options?.type) {
71
- const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);
72
- if (typeof type === 'string') {
73
- options = { ...options, type };
74
- }
75
- }
76
- return makeFile(parts, name, options);
77
- }
78
- exports.toFile = toFile;
79
- async function getBytes(value) {
80
- let parts = [];
81
- if (typeof value === 'string' ||
82
- ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
83
- value instanceof ArrayBuffer) {
84
- parts.push(value);
85
- }
86
- else if (isBlobLike(value)) {
87
- parts.push(value instanceof Blob ? value : await value.arrayBuffer());
88
- }
89
- else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
90
- ) {
91
- for await (const chunk of value) {
92
- parts.push(...(await getBytes(chunk))); // TODO, consider validating?
93
- }
94
- }
95
- else {
96
- const constructor = value?.constructor?.name;
97
- throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);
98
- }
99
- return parts;
100
- }
101
- exports.getBytes = getBytes;
102
- function propsForError(value) {
103
- if (typeof value !== 'object' || value === null)
104
- return '';
105
- const props = Object.getOwnPropertyNames(value);
106
- return `; props: [${props.map((p) => `"${p}"`).join(', ')}]`;
23
+ (0, exports.checkFileSupport)();
24
+ return new File(fileBits, fileName ?? 'unknown_file', options);
107
25
  }
108
26
  function getName(value) {
109
- return ((typeof value === 'object' &&
27
+ return (((typeof value === 'object' &&
110
28
  value !== null &&
111
- (('name' in value && String(value.name)) ||
112
- ('filename' in value && String(value.filename)) ||
113
- ('path' in value && String(value.path).split(/[\\/]/).pop()))) ||
114
- undefined);
29
+ (('name' in value && value.name && String(value.name)) ||
30
+ ('url' in value && value.url && String(value.url)) ||
31
+ ('filename' in value && value.filename && String(value.filename)) ||
32
+ ('path' in value && value.path && String(value.path)))) ||
33
+ '')
34
+ .split(/[\\/]/)
35
+ .pop() || undefined);
115
36
  }
116
- const isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
37
+ const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
38
+ exports.isAsyncIterable = isAsyncIterable;
117
39
  /**
118
40
  * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
119
41
  * Otherwise returns the request as is.
@@ -128,7 +50,7 @@ const multipartFormRequestOptions = async (opts, fetch) => {
128
50
  return { ...opts, body: await (0, exports.createForm)(opts.body, fetch) };
129
51
  };
130
52
  exports.multipartFormRequestOptions = multipartFormRequestOptions;
131
- const supportsFormDataMap = new WeakMap();
53
+ const supportsFormDataMap = /* @__PURE__ */ new WeakMap();
132
54
  /**
133
55
  * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending
134
56
  * properly-encoded form data, it just stringifies the object, resulting in a request body of "[object FormData]".
@@ -168,6 +90,12 @@ const createForm = async (body, fetch) => {
168
90
  return form;
169
91
  };
170
92
  exports.createForm = createForm;
93
+ // We check for Blob not File because Bun.File doesn't inherit from File,
94
+ // but they both inherit from Blob and have a `name` property at runtime.
95
+ const isNamedBlob = (value) => value instanceof Blob && 'name' in value;
96
+ const isUploadable = (value) => typeof value === 'object' &&
97
+ value !== null &&
98
+ (value instanceof Response || (0, exports.isAsyncIterable)(value) || isNamedBlob(value));
171
99
  const hasUploadableValue = (value) => {
172
100
  if (isUploadable(value))
173
101
  return true;
@@ -191,9 +119,14 @@ const addFormValue = async (form, key, value) => {
191
119
  if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
192
120
  form.append(key, String(value));
193
121
  }
194
- else if (isUploadable(value)) {
195
- const file = await toFile(value);
196
- form.append(key, file);
122
+ else if (value instanceof Response) {
123
+ form.append(key, makeFile([await value.blob()], getName(value)));
124
+ }
125
+ else if ((0, exports.isAsyncIterable)(value)) {
126
+ form.append(key, makeFile([await new Response((0, shims_1.ReadableStreamFrom)(value)).blob()], getName(value)));
127
+ }
128
+ else if (isNamedBlob(value)) {
129
+ form.append(key, value, getName(value));
197
130
  }
198
131
  else if (Array.isArray(value)) {
199
132
  await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/internal/uploads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/internal/uploads.ts"],"names":[],"mappings":"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"}
@@ -1,114 +1,34 @@
1
- import { isFsReadStreamLike } from "./shims.mjs";
2
- import "./polyfill/file.node.mjs";
3
- /**
4
- * This check adds the arrayBuffer() method type because it is available and used at runtime
5
- */
6
- const isBlobLike = (value) => value != null &&
7
- typeof value === 'object' &&
8
- typeof value.size === 'number' &&
9
- typeof value.type === 'string' &&
10
- typeof value.text === 'function' &&
11
- typeof value.slice === 'function' &&
12
- typeof value.arrayBuffer === 'function';
13
- /**
14
- * This check adds the arrayBuffer() method type because it is available and used at runtime
15
- */
16
- const isFileLike = (value) => value != null &&
17
- typeof value === 'object' &&
18
- typeof value.name === 'string' &&
19
- typeof value.lastModified === 'number' &&
20
- isBlobLike(value);
21
- const isResponseLike = (value) => value != null &&
22
- typeof value === 'object' &&
23
- typeof value.url === 'string' &&
24
- typeof value.blob === 'function';
25
- const isUploadable = (value) => {
26
- return isFileLike(value) || isResponseLike(value) || isFsReadStreamLike(value);
27
- };
28
- /**
29
- * Construct a `File` instance. This is used to ensure a helpful error is thrown
30
- * for environments that don't define a global `File` yet and so that we don't
31
- * accidentally rely on a global `File` type in our annotations.
32
- */
33
- function makeFile(fileBits, fileName, options) {
34
- const File = globalThis.File;
1
+ import { ReadableStreamFrom } from "./shims.mjs";
2
+ export const checkFileSupport = () => {
35
3
  if (typeof File === 'undefined') {
36
- throw new Error('`File` is not defined as a global which is required for file uploads');
4
+ const { process } = globalThis;
5
+ const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;
6
+ throw new Error('`File` is not defined as a global, which is required for file uploads.' +
7
+ (isOldNode ?
8
+ " Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`."
9
+ : ''));
37
10
  }
38
- return new File(fileBits, fileName, options);
39
- }
11
+ };
40
12
  /**
41
- * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
42
- * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s
43
- * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
44
- * @param {Object=} options additional properties
45
- * @param {string=} options.type the MIME type of the content
46
- * @param {number=} options.lastModified the last modified timestamp
47
- * @returns a {@link File} with the given properties
13
+ * Construct a `File` instance. This is used to ensure a helpful error is thrown
14
+ * for environments that don't define a global `File` yet.
48
15
  */
49
- export async function toFile(value, name, options) {
50
- // If it's a promise, resolve it.
51
- value = await value;
52
- // If we've been given a `File` we don't need to do anything
53
- if (isFileLike(value)) {
54
- const File = globalThis.File;
55
- if (File && value instanceof File) {
56
- return value;
57
- }
58
- return makeFile([await value.arrayBuffer()], value.name);
59
- }
60
- if (isResponseLike(value)) {
61
- const blob = await value.blob();
62
- name || (name = new URL(value.url).pathname.split(/[\\/]/).pop() ?? 'unknown_file');
63
- return makeFile(await getBytes(blob), name, options);
64
- }
65
- const parts = await getBytes(value);
66
- name || (name = getName(value) ?? 'unknown_file');
67
- if (!options?.type) {
68
- const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);
69
- if (typeof type === 'string') {
70
- options = { ...options, type };
71
- }
72
- }
73
- return makeFile(parts, name, options);
16
+ export function makeFile(fileBits, fileName, options) {
17
+ checkFileSupport();
18
+ return new File(fileBits, fileName ?? 'unknown_file', options);
74
19
  }
75
- export async function getBytes(value) {
76
- let parts = [];
77
- if (typeof value === 'string' ||
78
- ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
79
- value instanceof ArrayBuffer) {
80
- parts.push(value);
81
- }
82
- else if (isBlobLike(value)) {
83
- parts.push(value instanceof Blob ? value : await value.arrayBuffer());
84
- }
85
- else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
86
- ) {
87
- for await (const chunk of value) {
88
- parts.push(...(await getBytes(chunk))); // TODO, consider validating?
89
- }
90
- }
91
- else {
92
- const constructor = value?.constructor?.name;
93
- throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);
94
- }
95
- return parts;
96
- }
97
- function propsForError(value) {
98
- if (typeof value !== 'object' || value === null)
99
- return '';
100
- const props = Object.getOwnPropertyNames(value);
101
- return `; props: [${props.map((p) => `"${p}"`).join(', ')}]`;
102
- }
103
- function getName(value) {
104
- return ((typeof value === 'object' &&
20
+ export function getName(value) {
21
+ return (((typeof value === 'object' &&
105
22
  value !== null &&
106
- (('name' in value && String(value.name)) ||
107
- ('filename' in value && String(value.filename)) ||
108
- ('path' in value && String(value.path).split(/[\\/]/).pop()))) ||
109
- undefined);
23
+ (('name' in value && value.name && String(value.name)) ||
24
+ ('url' in value && value.url && String(value.url)) ||
25
+ ('filename' in value && value.filename && String(value.filename)) ||
26
+ ('path' in value && value.path && String(value.path)))) ||
27
+ '')
28
+ .split(/[\\/]/)
29
+ .pop() || undefined);
110
30
  }
111
- const isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
31
+ export const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
112
32
  /**
113
33
  * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
114
34
  * Otherwise returns the request as is.
@@ -121,7 +41,7 @@ export const maybeMultipartFormRequestOptions = async (opts, fetch) => {
121
41
  export const multipartFormRequestOptions = async (opts, fetch) => {
122
42
  return { ...opts, body: await createForm(opts.body, fetch) };
123
43
  };
124
- const supportsFormDataMap = new WeakMap();
44
+ const supportsFormDataMap = /* @__PURE__ */ new WeakMap();
125
45
  /**
126
46
  * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending
127
47
  * properly-encoded form data, it just stringifies the object, resulting in a request body of "[object FormData]".
@@ -160,6 +80,12 @@ export const createForm = async (body, fetch) => {
160
80
  await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
161
81
  return form;
162
82
  };
83
+ // We check for Blob not File because Bun.File doesn't inherit from File,
84
+ // but they both inherit from Blob and have a `name` property at runtime.
85
+ const isNamedBlob = (value) => value instanceof Blob && 'name' in value;
86
+ const isUploadable = (value) => typeof value === 'object' &&
87
+ value !== null &&
88
+ (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));
163
89
  const hasUploadableValue = (value) => {
164
90
  if (isUploadable(value))
165
91
  return true;
@@ -183,9 +109,14 @@ const addFormValue = async (form, key, value) => {
183
109
  if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
184
110
  form.append(key, String(value));
185
111
  }
186
- else if (isUploadable(value)) {
187
- const file = await toFile(value);
188
- form.append(key, file);
112
+ else if (value instanceof Response) {
113
+ form.append(key, makeFile([await value.blob()], getName(value)));
114
+ }
115
+ else if (isAsyncIterable(value)) {
116
+ form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));
117
+ }
118
+ else if (isNamedBlob(value)) {
119
+ form.append(key, value, getName(value));
189
120
  }
190
121
  else if (Array.isArray(value)) {
191
122
  await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.mjs","sourceRoot":"","sources":["../src/internal/uploads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uploads.mjs","sourceRoot":"","sources":["../src/internal/uploads.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base64.d.mts","sourceRoot":"","sources":["../../src/internal/utils/base64.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,SAAU,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,KAAG,MAgBvE,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,UAcxC,CAAC"}
1
+ {"version":3,"file":"base64.d.mts","sourceRoot":"","sources":["../../src/internal/utils/base64.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,KAAG,MAgBvE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,UAgBxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/internal/utils/base64.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,SAAU,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,KAAG,MAgBvE,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,UAcxC,CAAC"}
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/internal/utils/base64.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,KAAG,MAgBvE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,UAgBxC,CAAC"}
@@ -2,16 +2,17 @@
2
2
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.fromBase64 = exports.toBase64 = void 0;
5
- const error_1 = require("../../error.js");
5
+ const error_1 = require("../../core/error.js");
6
+ const bytes_1 = require("./bytes.js");
6
7
  const toBase64 = (data) => {
7
8
  if (!data)
8
9
  return '';
9
- if (typeof data === 'string') {
10
- data = new globalThis.TextEncoder().encode(data);
11
- }
12
10
  if (typeof globalThis.Buffer !== 'undefined') {
13
11
  return globalThis.Buffer.from(data).toString('base64');
14
12
  }
13
+ if (typeof data === 'string') {
14
+ data = (0, bytes_1.encodeUTF8)(data);
15
+ }
15
16
  if (typeof btoa !== 'undefined') {
16
17
  return btoa(String.fromCharCode.apply(null, data));
17
18
  }
@@ -20,12 +21,16 @@ const toBase64 = (data) => {
20
21
  exports.toBase64 = toBase64;
21
22
  const fromBase64 = (str) => {
22
23
  if (typeof globalThis.Buffer !== 'undefined') {
23
- return new Uint8Array(globalThis.Buffer.from(str, 'base64'));
24
+ const buf = globalThis.Buffer.from(str, 'base64');
25
+ return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
24
26
  }
25
27
  if (typeof atob !== 'undefined') {
26
- return new Uint8Array(atob(str)
27
- .split('')
28
- .map((c) => c.charCodeAt(0)));
28
+ const bstr = atob(str);
29
+ const buf = new Uint8Array(bstr.length);
30
+ for (let i = 0; i < bstr.length; i++) {
31
+ buf[i] = bstr.charCodeAt(i);
32
+ }
33
+ return buf;
29
34
  }
30
35
  throw new error_1.RoarkError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');
31
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/internal/utils/base64.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,0CAAyC;AAElC,MAAM,QAAQ,GAAG,CAAC,IAA4C,EAAU,EAAE;IAC/E,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,GAAG,IAAK,UAAkB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC3D;IAED,IAAI,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW,EAAE;QACrD,OAAQ,UAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACjE;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC;KAC3D;IAED,MAAM,IAAI,kBAAU,CAAC,0EAA0E,CAAC,CAAC;AACnG,CAAC,CAAC;AAhBW,QAAA,QAAQ,YAgBnB;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,EAAc,EAAE;IACpD,IAAI,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW,EAAE;QACrD,OAAO,IAAI,UAAU,CAAE,UAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;KACvE;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,GAAG,CAAC;aACN,KAAK,CAAC,EAAE,CAAC;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC/B,CAAC;KACH;IAED,MAAM,IAAI,kBAAU,CAAC,wEAAwE,CAAC,CAAC;AACjG,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/internal/utils/base64.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,+CAA8C;AAC9C,sCAAqC;AAE9B,MAAM,QAAQ,GAAG,CAAC,IAA4C,EAAU,EAAE;IAC/E,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACtD,OAAQ,UAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,kBAAU,CAAC,0EAA0E,CAAC,CAAC;AACnG,CAAC,CAAC;AAhBW,QAAA,QAAQ,YAgBnB;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,EAAc,EAAE;IACpD,IAAI,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACtD,MAAM,GAAG,GAAI,UAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3D,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,kBAAU,CAAC,wEAAwE,CAAC,CAAC;AACjG,CAAC,CAAC;AAhBW,QAAA,UAAU,cAgBrB"}