@roarkanalytics/sdk 0.1.0-alpha.1 → 0.1.0-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +1 -1
  3. package/README.md +48 -85
  4. package/_shims/MultipartBody.d.ts +9 -0
  5. package/_shims/MultipartBody.d.ts.map +1 -0
  6. package/_shims/MultipartBody.js +16 -0
  7. package/_shims/MultipartBody.js.map +1 -0
  8. package/_shims/MultipartBody.mjs +12 -0
  9. package/_shims/MultipartBody.mjs.map +1 -0
  10. package/_shims/README.md +46 -0
  11. package/_shims/auto/runtime-bun.d.ts +5 -0
  12. package/_shims/auto/runtime-bun.d.ts.map +1 -0
  13. package/{internal/utils.js → _shims/auto/runtime-bun.js} +5 -8
  14. package/_shims/auto/runtime-bun.js.map +1 -0
  15. package/_shims/auto/runtime-bun.mjs +2 -0
  16. package/_shims/auto/runtime-bun.mjs.map +1 -0
  17. package/_shims/auto/runtime-node.d.ts +5 -0
  18. package/_shims/auto/runtime-node.d.ts.map +1 -0
  19. package/_shims/auto/runtime-node.js +21 -0
  20. package/_shims/auto/runtime-node.js.map +1 -0
  21. package/_shims/auto/runtime-node.mjs +2 -0
  22. package/_shims/auto/runtime-node.mjs.map +1 -0
  23. package/_shims/auto/runtime.d.ts +5 -0
  24. package/_shims/auto/runtime.d.ts.map +1 -0
  25. package/_shims/auto/runtime.js +21 -0
  26. package/_shims/auto/runtime.js.map +1 -0
  27. package/_shims/auto/runtime.mjs +2 -0
  28. package/_shims/auto/runtime.mjs.map +1 -0
  29. package/_shims/auto/types-node.d.ts +5 -0
  30. package/_shims/auto/types-node.d.ts.map +1 -0
  31. package/_shims/auto/types-node.js +21 -0
  32. package/_shims/auto/types-node.js.map +1 -0
  33. package/_shims/auto/types-node.mjs +2 -0
  34. package/_shims/auto/types-node.mjs.map +1 -0
  35. package/_shims/auto/types.d.ts +101 -0
  36. package/_shims/auto/types.js +3 -0
  37. package/_shims/auto/types.mjs +3 -0
  38. package/_shims/bun-runtime.d.ts +6 -0
  39. package/_shims/bun-runtime.d.ts.map +1 -0
  40. package/_shims/bun-runtime.js +14 -0
  41. package/_shims/bun-runtime.js.map +1 -0
  42. package/_shims/bun-runtime.mjs +10 -0
  43. package/_shims/bun-runtime.mjs.map +1 -0
  44. package/_shims/index.d.ts +81 -0
  45. package/_shims/index.js +13 -0
  46. package/_shims/index.mjs +7 -0
  47. package/_shims/manual-types.d.ts +12 -0
  48. package/_shims/manual-types.js +3 -0
  49. package/_shims/manual-types.mjs +3 -0
  50. package/_shims/node-runtime.d.ts +3 -0
  51. package/_shims/node-runtime.d.ts.map +1 -0
  52. package/_shims/node-runtime.js +89 -0
  53. package/_shims/node-runtime.js.map +1 -0
  54. package/_shims/node-runtime.mjs +56 -0
  55. package/_shims/node-runtime.mjs.map +1 -0
  56. package/_shims/node-types.d.ts +42 -0
  57. package/_shims/node-types.js +3 -0
  58. package/_shims/node-types.mjs +3 -0
  59. package/_shims/registry.d.ts +37 -0
  60. package/_shims/registry.d.ts.map +1 -0
  61. package/_shims/registry.js +41 -0
  62. package/_shims/registry.js.map +1 -0
  63. package/_shims/registry.mjs +37 -0
  64. package/_shims/registry.mjs.map +1 -0
  65. package/_shims/web-runtime.d.ts +5 -0
  66. package/_shims/web-runtime.d.ts.map +1 -0
  67. package/_shims/web-runtime.js +78 -0
  68. package/_shims/web-runtime.js.map +1 -0
  69. package/_shims/web-runtime.mjs +71 -0
  70. package/_shims/web-runtime.mjs.map +1 -0
  71. package/_shims/web-types.d.ts +83 -0
  72. package/_shims/web-types.js +3 -0
  73. package/_shims/web-types.mjs +3 -0
  74. package/core.d.ts +241 -0
  75. package/core.d.ts.map +1 -0
  76. package/core.js +908 -0
  77. package/core.js.map +1 -0
  78. package/core.mjs +876 -0
  79. package/core.mjs.map +1 -0
  80. package/error.d.ts +3 -3
  81. package/error.d.ts.map +1 -1
  82. package/error.js +6 -6
  83. package/error.js.map +1 -1
  84. package/error.mjs +3 -3
  85. package/error.mjs.map +1 -1
  86. package/index.d.mts +109 -5
  87. package/index.d.ts +109 -5
  88. package/index.d.ts.map +1 -1
  89. package/index.js +103 -11
  90. package/index.js.map +1 -1
  91. package/index.mjs +77 -5
  92. package/index.mjs.map +1 -1
  93. package/package.json +66 -82
  94. package/resource.d.ts +3 -3
  95. package/resource.d.ts.map +1 -1
  96. package/resource.js.map +1 -1
  97. package/resource.mjs.map +1 -1
  98. package/resources/calls.d.ts +2 -3
  99. package/resources/calls.d.ts.map +1 -1
  100. package/resources/calls.js.map +1 -1
  101. package/resources/calls.mjs.map +1 -1
  102. package/resources/index.d.ts.map +1 -1
  103. package/shims/node.d.ts +30 -0
  104. package/shims/node.d.ts.map +1 -0
  105. package/shims/node.js +31 -0
  106. package/shims/node.js.map +1 -0
  107. package/shims/node.mjs +5 -0
  108. package/shims/node.mjs.map +1 -0
  109. package/shims/web.d.ts +26 -0
  110. package/shims/web.d.ts.map +1 -0
  111. package/shims/web.js +31 -0
  112. package/shims/web.js.map +1 -0
  113. package/shims/web.mjs +5 -0
  114. package/shims/web.mjs.map +1 -0
  115. package/src/_shims/MultipartBody.ts +9 -0
  116. package/src/_shims/README.md +46 -0
  117. package/src/_shims/auto/runtime-bun.ts +4 -0
  118. package/src/_shims/auto/runtime-node.ts +4 -0
  119. package/src/_shims/auto/runtime.ts +4 -0
  120. package/src/_shims/auto/types-node.ts +4 -0
  121. package/src/_shims/auto/types.d.ts +101 -0
  122. package/src/_shims/auto/types.js +3 -0
  123. package/src/_shims/auto/types.mjs +3 -0
  124. package/src/_shims/bun-runtime.ts +14 -0
  125. package/src/_shims/index.d.ts +81 -0
  126. package/src/_shims/index.js +13 -0
  127. package/src/_shims/index.mjs +7 -0
  128. package/src/_shims/manual-types.d.ts +12 -0
  129. package/src/_shims/manual-types.js +3 -0
  130. package/src/_shims/manual-types.mjs +3 -0
  131. package/src/_shims/node-runtime.ts +81 -0
  132. package/src/_shims/node-types.d.ts +42 -0
  133. package/src/_shims/node-types.js +3 -0
  134. package/src/_shims/node-types.mjs +3 -0
  135. package/src/_shims/registry.ts +67 -0
  136. package/src/_shims/web-runtime.ts +103 -0
  137. package/src/_shims/web-types.d.ts +83 -0
  138. package/src/_shims/web-types.js +3 -0
  139. package/src/_shims/web-types.mjs +3 -0
  140. package/src/core.ts +1200 -0
  141. package/src/error.ts +3 -3
  142. package/src/index.ts +172 -5
  143. package/src/resource.ts +3 -3
  144. package/src/resources/calls.ts +2 -3
  145. package/src/shims/node.ts +50 -0
  146. package/src/shims/web.ts +50 -0
  147. package/src/tsconfig.json +2 -2
  148. package/src/uploads.ts +255 -1
  149. package/src/version.ts +1 -1
  150. package/uploads.d.ts +74 -1
  151. package/uploads.d.ts.map +1 -1
  152. package/uploads.js +168 -3
  153. package/uploads.js.map +1 -1
  154. package/uploads.mjs +157 -1
  155. package/uploads.mjs.map +1 -1
  156. package/version.d.ts +1 -1
  157. package/version.js +1 -1
  158. package/version.mjs +1 -1
  159. package/api-promise.d.mts +0 -47
  160. package/api-promise.d.mts.map +0 -1
  161. package/api-promise.d.ts +0 -47
  162. package/api-promise.d.ts.map +0 -1
  163. package/api-promise.js +0 -84
  164. package/api-promise.js.map +0 -1
  165. package/api-promise.mjs +0 -80
  166. package/api-promise.mjs.map +0 -1
  167. package/client.d.mts +0 -186
  168. package/client.d.mts.map +0 -1
  169. package/client.d.ts +0 -186
  170. package/client.d.ts.map +0 -1
  171. package/client.js +0 -449
  172. package/client.js.map +0 -1
  173. package/client.mjs +0 -422
  174. package/client.mjs.map +0 -1
  175. package/error.d.mts +0 -47
  176. package/error.d.mts.map +0 -1
  177. package/index.d.mts.map +0 -1
  178. package/internal/builtin-types.d.mts +0 -65
  179. package/internal/builtin-types.d.mts.map +0 -1
  180. package/internal/builtin-types.d.ts +0 -65
  181. package/internal/builtin-types.d.ts.map +0 -1
  182. package/internal/builtin-types.js +0 -4
  183. package/internal/builtin-types.js.map +0 -1
  184. package/internal/builtin-types.mjs +0 -3
  185. package/internal/builtin-types.mjs.map +0 -1
  186. package/internal/detect-platform.d.mts +0 -15
  187. package/internal/detect-platform.d.mts.map +0 -1
  188. package/internal/detect-platform.d.ts +0 -15
  189. package/internal/detect-platform.d.ts.map +0 -1
  190. package/internal/detect-platform.js +0 -162
  191. package/internal/detect-platform.js.map +0 -1
  192. package/internal/detect-platform.mjs +0 -157
  193. package/internal/detect-platform.mjs.map +0 -1
  194. package/internal/errors.d.mts +0 -3
  195. package/internal/errors.d.mts.map +0 -1
  196. package/internal/errors.d.ts +0 -3
  197. package/internal/errors.d.ts.map +0 -1
  198. package/internal/errors.js +0 -26
  199. package/internal/errors.js.map +0 -1
  200. package/internal/errors.mjs +0 -21
  201. package/internal/errors.mjs.map +0 -1
  202. package/internal/headers.d.mts +0 -21
  203. package/internal/headers.d.mts.map +0 -1
  204. package/internal/headers.d.ts +0 -21
  205. package/internal/headers.d.ts.map +0 -1
  206. package/internal/headers.js +0 -77
  207. package/internal/headers.js.map +0 -1
  208. package/internal/headers.mjs +0 -72
  209. package/internal/headers.mjs.map +0 -1
  210. package/internal/parse.d.mts +0 -10
  211. package/internal/parse.d.mts.map +0 -1
  212. package/internal/parse.d.ts +0 -10
  213. package/internal/parse.d.ts.map +0 -1
  214. package/internal/parse.js +0 -28
  215. package/internal/parse.js.map +0 -1
  216. package/internal/parse.mjs +0 -24
  217. package/internal/parse.mjs.map +0 -1
  218. package/internal/polyfill/crypto.node.d.ts +0 -10
  219. package/internal/polyfill/crypto.node.js +0 -11
  220. package/internal/polyfill/crypto.node.mjs +0 -2
  221. package/internal/polyfill/file.node.d.ts +0 -9
  222. package/internal/polyfill/file.node.js +0 -17
  223. package/internal/polyfill/file.node.mjs +0 -9
  224. package/internal/request-options.d.mts +0 -34
  225. package/internal/request-options.d.mts.map +0 -1
  226. package/internal/request-options.d.ts +0 -34
  227. package/internal/request-options.d.ts.map +0 -1
  228. package/internal/request-options.js +0 -39
  229. package/internal/request-options.js.map +0 -1
  230. package/internal/request-options.mjs +0 -34
  231. package/internal/request-options.mjs.map +0 -1
  232. package/internal/shim-types.d.mts +0 -28
  233. package/internal/shim-types.d.ts +0 -28
  234. package/internal/shims.d.mts +0 -61
  235. package/internal/shims.d.mts.map +0 -1
  236. package/internal/shims.d.ts +0 -61
  237. package/internal/shims.d.ts.map +0 -1
  238. package/internal/shims.js +0 -101
  239. package/internal/shims.js.map +0 -1
  240. package/internal/shims.mjs +0 -92
  241. package/internal/shims.mjs.map +0 -1
  242. package/internal/types.d.mts +0 -68
  243. package/internal/types.d.mts.map +0 -1
  244. package/internal/types.d.ts +0 -68
  245. package/internal/types.d.ts.map +0 -1
  246. package/internal/types.js +0 -4
  247. package/internal/types.js.map +0 -1
  248. package/internal/types.mjs +0 -3
  249. package/internal/types.mjs.map +0 -1
  250. package/internal/uploads.d.mts +0 -73
  251. package/internal/uploads.d.mts.map +0 -1
  252. package/internal/uploads.d.ts +0 -73
  253. package/internal/uploads.d.ts.map +0 -1
  254. package/internal/uploads.js +0 -208
  255. package/internal/uploads.js.map +0 -1
  256. package/internal/uploads.mjs +0 -200
  257. package/internal/uploads.mjs.map +0 -1
  258. package/internal/utils/base64.d.mts +0 -3
  259. package/internal/utils/base64.d.mts.map +0 -1
  260. package/internal/utils/base64.d.ts +0 -3
  261. package/internal/utils/base64.d.ts.map +0 -1
  262. package/internal/utils/base64.js +0 -33
  263. package/internal/utils/base64.js.map +0 -1
  264. package/internal/utils/base64.mjs +0 -28
  265. package/internal/utils/base64.mjs.map +0 -1
  266. package/internal/utils/env.d.mts +0 -9
  267. package/internal/utils/env.d.mts.map +0 -1
  268. package/internal/utils/env.d.ts +0 -9
  269. package/internal/utils/env.d.ts.map +0 -1
  270. package/internal/utils/env.js +0 -22
  271. package/internal/utils/env.js.map +0 -1
  272. package/internal/utils/env.mjs +0 -18
  273. package/internal/utils/env.mjs.map +0 -1
  274. package/internal/utils/log.d.mts +0 -4
  275. package/internal/utils/log.d.mts.map +0 -1
  276. package/internal/utils/log.d.ts +0 -4
  277. package/internal/utils/log.d.ts.map +0 -1
  278. package/internal/utils/log.js +0 -47
  279. package/internal/utils/log.js.map +0 -1
  280. package/internal/utils/log.mjs +0 -43
  281. package/internal/utils/log.mjs.map +0 -1
  282. package/internal/utils/sleep.d.mts +0 -2
  283. package/internal/utils/sleep.d.mts.map +0 -1
  284. package/internal/utils/sleep.d.ts +0 -2
  285. package/internal/utils/sleep.d.ts.map +0 -1
  286. package/internal/utils/sleep.js +0 -7
  287. package/internal/utils/sleep.js.map +0 -1
  288. package/internal/utils/sleep.mjs +0 -3
  289. package/internal/utils/sleep.mjs.map +0 -1
  290. package/internal/utils/uuid.d.mts +0 -5
  291. package/internal/utils/uuid.d.mts.map +0 -1
  292. package/internal/utils/uuid.d.ts +0 -5
  293. package/internal/utils/uuid.d.ts.map +0 -1
  294. package/internal/utils/uuid.js +0 -15
  295. package/internal/utils/uuid.js.map +0 -1
  296. package/internal/utils/uuid.mjs +0 -11
  297. package/internal/utils/uuid.mjs.map +0 -1
  298. package/internal/utils/values.d.mts +0 -15
  299. package/internal/utils/values.d.mts.map +0 -1
  300. package/internal/utils/values.d.ts +0 -15
  301. package/internal/utils/values.d.ts.map +0 -1
  302. package/internal/utils/values.js +0 -100
  303. package/internal/utils/values.js.map +0 -1
  304. package/internal/utils/values.mjs +0 -84
  305. package/internal/utils/values.mjs.map +0 -1
  306. package/internal/utils.d.mts +0 -7
  307. package/internal/utils.d.mts.map +0 -1
  308. package/internal/utils.d.ts +0 -7
  309. package/internal/utils.d.ts.map +0 -1
  310. package/internal/utils.js.map +0 -1
  311. package/internal/utils.mjs +0 -8
  312. package/internal/utils.mjs.map +0 -1
  313. package/resource.d.mts +0 -6
  314. package/resource.d.mts.map +0 -1
  315. package/resources/calls.d.mts +0 -85
  316. package/resources/calls.d.mts.map +0 -1
  317. package/resources/index.d.mts +0 -2
  318. package/resources/index.d.mts.map +0 -1
  319. package/src/api-promise.ts +0 -92
  320. package/src/client.ts +0 -646
  321. package/src/internal/builtin-types.ts +0 -79
  322. package/src/internal/detect-platform.ts +0 -196
  323. package/src/internal/errors.ts +0 -22
  324. package/src/internal/headers.ts +0 -96
  325. package/src/internal/parse.ts +0 -41
  326. package/src/internal/polyfill/crypto.node.d.ts +0 -10
  327. package/src/internal/polyfill/crypto.node.js +0 -11
  328. package/src/internal/polyfill/crypto.node.mjs +0 -2
  329. package/src/internal/polyfill/file.node.d.ts +0 -9
  330. package/src/internal/polyfill/file.node.js +0 -17
  331. package/src/internal/polyfill/file.node.mjs +0 -9
  332. package/src/internal/request-options.ts +0 -67
  333. package/src/internal/shim-types.d.ts +0 -28
  334. package/src/internal/shims.ts +0 -145
  335. package/src/internal/types.ts +0 -98
  336. package/src/internal/uploads.ts +0 -307
  337. package/src/internal/utils/base64.ts +0 -37
  338. package/src/internal/utils/env.ts +0 -18
  339. package/src/internal/utils/log.ts +0 -49
  340. package/src/internal/utils/sleep.ts +0 -3
  341. package/src/internal/utils/uuid.ts +0 -13
  342. package/src/internal/utils/values.ts +0 -94
  343. package/src/internal/utils.ts +0 -8
  344. package/uploads.d.mts +0 -2
  345. package/uploads.d.mts.map +0 -1
  346. package/version.d.mts +0 -2
  347. package/version.d.mts.map +0 -1
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import { manual } from './manual-types';
5
+ import * as auto from "./auto/types";
6
+ import { type RequestOptions } from '../core';
7
+
8
+ type SelectType<Manual, Auto> = unknown extends Manual ? Auto : Manual;
9
+
10
+ export const kind: string;
11
+
12
+ // @ts-ignore
13
+ export type Agent = SelectType<manual.Agent, auto.Agent>;
14
+
15
+ // @ts-ignore
16
+ export const fetch: SelectType<typeof manual.fetch, typeof auto.fetch>;
17
+
18
+ // @ts-ignore
19
+ export type Request = SelectType<manual.Request, auto.Request>;
20
+ // @ts-ignore
21
+ export type RequestInfo = SelectType<manual.RequestInfo, auto.RequestInfo>;
22
+ // @ts-ignore
23
+ export type RequestInit = SelectType<manual.RequestInit, auto.RequestInit>;
24
+
25
+ // @ts-ignore
26
+ export type Response = SelectType<manual.Response, auto.Response>;
27
+ // @ts-ignore
28
+ export type ResponseInit = SelectType<manual.ResponseInit, auto.ResponseInit>;
29
+ // @ts-ignore
30
+ export type ResponseType = SelectType<manual.ResponseType, auto.ResponseType>;
31
+ // @ts-ignore
32
+ export type BodyInit = SelectType<manual.BodyInit, auto.BodyInit>;
33
+ // @ts-ignore
34
+ export type Headers = SelectType<manual.Headers, auto.Headers>;
35
+ // @ts-ignore
36
+ export const Headers: SelectType<typeof manual.Headers, typeof auto.Headers>;
37
+ // @ts-ignore
38
+ export type HeadersInit = SelectType<manual.HeadersInit, auto.HeadersInit>;
39
+
40
+ // @ts-ignore
41
+ export type BlobPropertyBag = SelectType<manual.BlobPropertyBag, auto.BlobPropertyBag>;
42
+ // @ts-ignore
43
+ export type FilePropertyBag = SelectType<manual.FilePropertyBag, auto.FilePropertyBag>;
44
+ // @ts-ignore
45
+ export type FileFromPathOptions = SelectType<manual.FileFromPathOptions, auto.FileFromPathOptions>;
46
+ // @ts-ignore
47
+ export type FormData = SelectType<manual.FormData, auto.FormData>;
48
+ // @ts-ignore
49
+ export const FormData: SelectType<typeof manual.FormData, typeof auto.FormData>;
50
+ // @ts-ignore
51
+ export type File = SelectType<manual.File, auto.File>;
52
+ // @ts-ignore
53
+ export const File: SelectType<typeof manual.File, typeof auto.File>;
54
+ // @ts-ignore
55
+ export type Blob = SelectType<manual.Blob, auto.Blob>;
56
+ // @ts-ignore
57
+ export const Blob: SelectType<typeof manual.Blob, typeof auto.Blob>;
58
+
59
+ // @ts-ignore
60
+ export type Readable = SelectType<manual.Readable, auto.Readable>;
61
+ // @ts-ignore
62
+ export type FsReadStream = SelectType<manual.FsReadStream, auto.FsReadStream>;
63
+ // @ts-ignore
64
+ export type ReadableStream = SelectType<manual.ReadableStream, auto.ReadableStream>;
65
+ // @ts-ignore
66
+ export const ReadableStream: SelectType<typeof manual.ReadableStream, typeof auto.ReadableStream>;
67
+
68
+ export function getMultipartRequestOptions<T = Record<string, unknown>>(
69
+ form: FormData,
70
+ opts: RequestOptions<T>,
71
+ ): Promise<RequestOptions<T>>;
72
+
73
+ export function getDefaultAgent(url: string): any;
74
+
75
+ // @ts-ignore
76
+ export type FileFromPathOptions = SelectType<manual.FileFromPathOptions, auto.FileFromPathOptions>;
77
+
78
+ export function fileFromPath(path: string, options?: FileFromPathOptions): Promise<File>;
79
+ export function fileFromPath(path: string, filename?: string, options?: FileFromPathOptions): Promise<File>;
80
+
81
+ export function isFsReadStream(value: any): value is FsReadStream;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ const shims = require('./registry');
5
+ const auto = require('@roarkanalytics/sdk/_shims/auto/runtime');
6
+ if (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });
7
+ for (const property of Object.keys(shims)) {
8
+ Object.defineProperty(exports, property, {
9
+ get() {
10
+ return shims[property];
11
+ },
12
+ });
13
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import * as shims from './registry.mjs';
5
+ import * as auto from "./auto/runtime";
6
+ if (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });
7
+ export * from './registry.mjs';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ /**
5
+ * Types will get added to this namespace when you import one of the following:
6
+ *
7
+ * import '@roarkanalytics/sdk/shims/node'
8
+ * import '@roarkanalytics/sdk/shims/web'
9
+ *
10
+ * Importing more than one will cause type and runtime errors.
11
+ */
12
+ export namespace manual {}
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import * as nf from 'node-fetch';
5
+ import * as fd from 'formdata-node';
6
+ import { type File, type FilePropertyBag } from 'formdata-node';
7
+ import KeepAliveAgent from 'agentkeepalive';
8
+ import { AbortController as AbortControllerPolyfill } from 'abort-controller';
9
+ import { ReadStream as FsReadStream } from 'node:fs';
10
+ import { type Agent } from 'node:http';
11
+ import { FormDataEncoder } from 'form-data-encoder';
12
+ import { Readable } from 'node:stream';
13
+ import { type RequestOptions } from '../core';
14
+ import { MultipartBody } from './MultipartBody';
15
+ import { type Shims } from './registry';
16
+ import { ReadableStream } from 'node:stream/web';
17
+
18
+ type FileFromPathOptions = Omit<FilePropertyBag, 'lastModified'>;
19
+
20
+ let fileFromPathWarned = false;
21
+
22
+ /**
23
+ * @deprecated use fs.createReadStream('./my/file.txt') instead
24
+ */
25
+ async function fileFromPath(path: string): Promise<File>;
26
+ async function fileFromPath(path: string, filename?: string): Promise<File>;
27
+ async function fileFromPath(path: string, options?: FileFromPathOptions): Promise<File>;
28
+ async function fileFromPath(path: string, filename?: string, options?: FileFromPathOptions): Promise<File>;
29
+ async function fileFromPath(path: string, ...args: any[]): Promise<File> {
30
+ // this import fails in environments that don't handle export maps correctly, like old versions of Jest
31
+ const { fileFromPath: _fileFromPath } = await import('formdata-node/file-from-path');
32
+
33
+ if (!fileFromPathWarned) {
34
+ console.warn(`fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(path)}) instead`);
35
+ fileFromPathWarned = true;
36
+ }
37
+ // @ts-ignore
38
+ return await _fileFromPath(path, ...args);
39
+ }
40
+
41
+ const defaultHttpAgent: Agent = new KeepAliveAgent({ keepAlive: true, timeout: 5 * 60 * 1000 });
42
+ const defaultHttpsAgent: Agent = new KeepAliveAgent.HttpsAgent({ keepAlive: true, timeout: 5 * 60 * 1000 });
43
+
44
+ async function getMultipartRequestOptions<T = Record<string, unknown>>(
45
+ form: fd.FormData,
46
+ opts: RequestOptions<T>,
47
+ ): Promise<RequestOptions<T>> {
48
+ const encoder = new FormDataEncoder(form);
49
+ const readable = Readable.from(encoder);
50
+ const body = new MultipartBody(readable);
51
+ const headers = {
52
+ ...opts.headers,
53
+ ...encoder.headers,
54
+ 'Content-Length': encoder.contentLength,
55
+ };
56
+
57
+ return { ...opts, body: body as any, headers };
58
+ }
59
+
60
+ export function getRuntime(): Shims {
61
+ // Polyfill global object if needed.
62
+ if (typeof AbortController === 'undefined') {
63
+ // @ts-expect-error (the types are subtly different, but compatible in practice)
64
+ globalThis.AbortController = AbortControllerPolyfill;
65
+ }
66
+ return {
67
+ kind: 'node',
68
+ fetch: nf.default,
69
+ Request: nf.Request,
70
+ Response: nf.Response,
71
+ Headers: nf.Headers,
72
+ FormData: fd.FormData,
73
+ Blob: fd.Blob,
74
+ File: fd.File,
75
+ ReadableStream,
76
+ getMultipartRequestOptions,
77
+ getDefaultAgent: (url: string): Agent => (url.startsWith('https') ? defaultHttpsAgent : defaultHttpAgent),
78
+ fileFromPath,
79
+ isFsReadStream: (value: any): value is FsReadStream => value instanceof FsReadStream,
80
+ };
81
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import * as nf from 'node-fetch';
5
+ import * as fd from 'formdata-node';
6
+
7
+ export { type Agent } from 'node:http';
8
+ export { type Readable } from 'node:stream';
9
+ export { type ReadStream as FsReadStream } from 'node:fs';
10
+ export { ReadableStream } from 'node:stream/web';
11
+
12
+ export const fetch: typeof nf.default;
13
+
14
+ export type Request = nf.Request;
15
+ export type RequestInfo = nf.RequestInfo;
16
+ export type RequestInit = nf.RequestInit;
17
+
18
+ export type Response = nf.Response;
19
+ export type ResponseInit = nf.ResponseInit;
20
+ export type ResponseType = nf.ResponseType;
21
+ export type BodyInit = nf.BodyInit;
22
+ export type Headers = nf.Headers;
23
+ export type HeadersInit = nf.HeadersInit;
24
+
25
+ type EndingType = 'native' | 'transparent';
26
+ export interface BlobPropertyBag {
27
+ endings?: EndingType;
28
+ type?: string;
29
+ }
30
+
31
+ export interface FilePropertyBag extends BlobPropertyBag {
32
+ lastModified?: number;
33
+ }
34
+
35
+ export type FileFromPathOptions = Omit<FilePropertyBag, 'lastModified'>;
36
+
37
+ export type FormData = fd.FormData;
38
+ export const FormData: typeof fd.FormData;
39
+ export type File = fd.File;
40
+ export const File: typeof fd.File;
41
+ export type Blob = fd.Blob;
42
+ export const Blob: typeof fd.Blob;
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import { type RequestOptions } from '../core';
5
+
6
+ export interface Shims {
7
+ kind: string;
8
+ fetch: any;
9
+ Request: any;
10
+ Response: any;
11
+ Headers: any;
12
+ FormData: any;
13
+ Blob: any;
14
+ File: any;
15
+ ReadableStream: any;
16
+ getMultipartRequestOptions: <T = Record<string, unknown>>(
17
+ form: Shims['FormData'],
18
+ opts: RequestOptions<T>,
19
+ ) => Promise<RequestOptions<T>>;
20
+ getDefaultAgent: (url: string) => any;
21
+ fileFromPath:
22
+ | ((path: string, filename?: string, options?: {}) => Promise<Shims['File']>)
23
+ | ((path: string, options?: {}) => Promise<Shims['File']>);
24
+ isFsReadStream: (value: any) => boolean;
25
+ }
26
+
27
+ export let auto = false;
28
+ export let kind: Shims['kind'] | undefined = undefined;
29
+ export let fetch: Shims['fetch'] | undefined = undefined;
30
+ export let Request: Shims['Request'] | undefined = undefined;
31
+ export let Response: Shims['Response'] | undefined = undefined;
32
+ export let Headers: Shims['Headers'] | undefined = undefined;
33
+ export let FormData: Shims['FormData'] | undefined = undefined;
34
+ export let Blob: Shims['Blob'] | undefined = undefined;
35
+ export let File: Shims['File'] | undefined = undefined;
36
+ export let ReadableStream: Shims['ReadableStream'] | undefined = undefined;
37
+ export let getMultipartRequestOptions: Shims['getMultipartRequestOptions'] | undefined = undefined;
38
+ export let getDefaultAgent: Shims['getDefaultAgent'] | undefined = undefined;
39
+ export let fileFromPath: Shims['fileFromPath'] | undefined = undefined;
40
+ export let isFsReadStream: Shims['isFsReadStream'] | undefined = undefined;
41
+
42
+ export function setShims(shims: Shims, options: { auto: boolean } = { auto: false }) {
43
+ if (auto) {
44
+ throw new Error(
45
+ `you must \`import '@roarkanalytics/sdk/shims/${shims.kind}'\` before importing anything else from @roarkanalytics/sdk`,
46
+ );
47
+ }
48
+ if (kind) {
49
+ throw new Error(
50
+ `can't \`import '@roarkanalytics/sdk/shims/${shims.kind}'\` after \`import '@roarkanalytics/sdk/shims/${kind}'\``,
51
+ );
52
+ }
53
+ auto = options.auto;
54
+ kind = shims.kind;
55
+ fetch = shims.fetch;
56
+ Request = shims.Request;
57
+ Response = shims.Response;
58
+ Headers = shims.Headers;
59
+ FormData = shims.FormData;
60
+ Blob = shims.Blob;
61
+ File = shims.File;
62
+ ReadableStream = shims.ReadableStream;
63
+ getMultipartRequestOptions = shims.getMultipartRequestOptions;
64
+ getDefaultAgent = shims.getDefaultAgent;
65
+ fileFromPath = shims.fileFromPath;
66
+ isFsReadStream = shims.isFsReadStream;
67
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ import { MultipartBody } from './MultipartBody';
5
+ import { type RequestOptions } from '../core';
6
+ import { type Shims } from './registry';
7
+
8
+ export function getRuntime({ manuallyImported }: { manuallyImported?: boolean } = {}): Shims {
9
+ const recommendation =
10
+ manuallyImported ?
11
+ `You may need to use polyfills`
12
+ : `Add one of these imports before your first \`import … from '@roarkanalytics/sdk'\`:
13
+ - \`import '@roarkanalytics/sdk/shims/node'\` (if you're running on Node)
14
+ - \`import '@roarkanalytics/sdk/shims/web'\` (otherwise)
15
+ `;
16
+
17
+ let _fetch, _Request, _Response, _Headers;
18
+ try {
19
+ // @ts-ignore
20
+ _fetch = fetch;
21
+ // @ts-ignore
22
+ _Request = Request;
23
+ // @ts-ignore
24
+ _Response = Response;
25
+ // @ts-ignore
26
+ _Headers = Headers;
27
+ } catch (error) {
28
+ throw new Error(
29
+ `this environment is missing the following Web Fetch API type: ${
30
+ (error as any).message
31
+ }. ${recommendation}`,
32
+ );
33
+ }
34
+
35
+ return {
36
+ kind: 'web',
37
+ fetch: _fetch,
38
+ Request: _Request,
39
+ Response: _Response,
40
+ Headers: _Headers,
41
+ FormData:
42
+ // @ts-ignore
43
+ typeof FormData !== 'undefined' ? FormData : (
44
+ class FormData {
45
+ // @ts-ignore
46
+ constructor() {
47
+ throw new Error(
48
+ `file uploads aren't supported in this environment yet as 'FormData' is undefined. ${recommendation}`,
49
+ );
50
+ }
51
+ }
52
+ ),
53
+ Blob:
54
+ typeof Blob !== 'undefined' ? Blob : (
55
+ class Blob {
56
+ constructor() {
57
+ throw new Error(
58
+ `file uploads aren't supported in this environment yet as 'Blob' is undefined. ${recommendation}`,
59
+ );
60
+ }
61
+ }
62
+ ),
63
+ File:
64
+ // @ts-ignore
65
+ typeof File !== 'undefined' ? File : (
66
+ class File {
67
+ // @ts-ignore
68
+ constructor() {
69
+ throw new Error(
70
+ `file uploads aren't supported in this environment yet as 'File' is undefined. ${recommendation}`,
71
+ );
72
+ }
73
+ }
74
+ ),
75
+ ReadableStream:
76
+ // @ts-ignore
77
+ typeof ReadableStream !== 'undefined' ? ReadableStream : (
78
+ class ReadableStream {
79
+ // @ts-ignore
80
+ constructor() {
81
+ throw new Error(
82
+ `streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${recommendation}`,
83
+ );
84
+ }
85
+ }
86
+ ),
87
+ getMultipartRequestOptions: async <T = Record<string, unknown>>(
88
+ // @ts-ignore
89
+ form: FormData,
90
+ opts: RequestOptions<T>,
91
+ ): Promise<RequestOptions<T>> => ({
92
+ ...opts,
93
+ body: new MultipartBody(form) as any,
94
+ }),
95
+ getDefaultAgent: (url: string) => undefined,
96
+ fileFromPath: () => {
97
+ throw new Error(
98
+ 'The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/roarkhq/sdk-roark-analytics-node#file-uploads',
99
+ );
100
+ },
101
+ isFsReadStream: (value: any) => false,
102
+ };
103
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
4
+ export type Agent = any;
5
+
6
+ declare const _fetch: typeof fetch;
7
+ export { _fetch as fetch };
8
+
9
+ type _Request = Request;
10
+ export { _Request as Request };
11
+
12
+ type _RequestInfo = RequestInfo;
13
+ export { type _RequestInfo as RequestInfo };
14
+
15
+ type _RequestInit = RequestInit;
16
+ export { type _RequestInit as RequestInit };
17
+
18
+ type _Response = Response;
19
+ export { _Response as Response };
20
+
21
+ type _ResponseInit = ResponseInit;
22
+ export { type _ResponseInit as ResponseInit };
23
+
24
+ type _ResponseType = ResponseType;
25
+ export { type _ResponseType as ResponseType };
26
+
27
+ type _BodyInit = BodyInit;
28
+ export { type _BodyInit as BodyInit };
29
+
30
+ type _Headers = Headers;
31
+ export { _Headers as Headers };
32
+
33
+ type _HeadersInit = HeadersInit;
34
+ export { type _HeadersInit as HeadersInit };
35
+
36
+ type EndingType = 'native' | 'transparent';
37
+
38
+ export interface BlobPropertyBag {
39
+ endings?: EndingType;
40
+ type?: string;
41
+ }
42
+
43
+ export interface FilePropertyBag extends BlobPropertyBag {
44
+ lastModified?: number;
45
+ }
46
+
47
+ export type FileFromPathOptions = Omit<FilePropertyBag, 'lastModified'>;
48
+
49
+ type _FormData = FormData;
50
+ declare const _FormData: typeof FormData;
51
+ export { _FormData as FormData };
52
+
53
+ type _File = File;
54
+ declare const _File: typeof File;
55
+ export { _File as File };
56
+
57
+ type _Blob = Blob;
58
+ declare const _Blob: typeof Blob;
59
+ export { _Blob as Blob };
60
+
61
+ export declare class Readable {
62
+ readable: boolean;
63
+ readonly readableEnded: boolean;
64
+ readonly readableFlowing: boolean | null;
65
+ readonly readableHighWaterMark: number;
66
+ readonly readableLength: number;
67
+ readonly readableObjectMode: boolean;
68
+ destroyed: boolean;
69
+ read(size?: number): any;
70
+ pause(): this;
71
+ resume(): this;
72
+ isPaused(): boolean;
73
+ destroy(error?: Error): this;
74
+ [Symbol.asyncIterator](): AsyncIterableIterator<any>;
75
+ }
76
+
77
+ export declare class FsReadStream extends Readable {
78
+ path: {}; // node type is string | Buffer
79
+ }
80
+
81
+ type _ReadableStream<R = any> = ReadableStream<R>;
82
+ declare const _ReadableStream: typeof ReadableStream;
83
+ export { _ReadableStream as ReadableStream };
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */
@@ -0,0 +1,3 @@
1
+ /**
2
+ * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
3
+ */