@detectant-api/sdk 0.0.1 → 0.0.3

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 (407) hide show
  1. package/README.md +111 -0
  2. package/dist/cjs/BaseClient.d.ts +54 -0
  3. package/dist/cjs/BaseClient.js +77 -0
  4. package/dist/cjs/Client.d.ts +86 -0
  5. package/dist/cjs/Client.js +255 -0
  6. package/dist/cjs/api/client/index.d.ts +1 -0
  7. package/dist/cjs/api/client/index.js +17 -0
  8. package/dist/cjs/api/client/requests/CreateScanBatchRequest.d.ts +5 -0
  9. package/dist/cjs/api/client/requests/CreateScanBatchRequest.js +3 -0
  10. package/dist/cjs/api/client/requests/CreateScanRequest.d.ts +5 -0
  11. package/dist/cjs/api/client/requests/CreateScanRequest.js +3 -0
  12. package/dist/cjs/api/client/requests/index.d.ts +2 -0
  13. package/dist/cjs/api/client/requests/index.js +2 -0
  14. package/dist/cjs/api/errors/BadRequestError.d.ts +7 -0
  15. package/dist/cjs/api/errors/BadRequestError.js +54 -0
  16. package/dist/cjs/api/errors/ContentTooLargeError.d.ts +7 -0
  17. package/dist/cjs/api/errors/ContentTooLargeError.js +54 -0
  18. package/dist/cjs/api/errors/ForbiddenError.d.ts +7 -0
  19. package/dist/cjs/api/errors/ForbiddenError.js +54 -0
  20. package/dist/cjs/api/errors/InternalServerError.d.ts +7 -0
  21. package/dist/cjs/api/errors/InternalServerError.js +54 -0
  22. package/dist/cjs/api/errors/NotFoundError.d.ts +7 -0
  23. package/dist/cjs/api/errors/NotFoundError.js +54 -0
  24. package/dist/cjs/api/errors/ServiceUnavailableError.d.ts +5 -0
  25. package/dist/cjs/api/errors/ServiceUnavailableError.js +54 -0
  26. package/dist/cjs/api/errors/TooManyRequestsError.d.ts +7 -0
  27. package/dist/cjs/api/errors/TooManyRequestsError.js +54 -0
  28. package/dist/cjs/api/errors/UnauthorizedError.d.ts +7 -0
  29. package/dist/cjs/api/errors/UnauthorizedError.js +54 -0
  30. package/dist/cjs/api/errors/index.d.ts +8 -0
  31. package/dist/cjs/api/errors/index.js +24 -0
  32. package/dist/cjs/api/index.d.ts +4 -0
  33. package/dist/cjs/api/index.js +20 -0
  34. package/dist/cjs/api/resources/health/client/Client.d.ts +43 -0
  35. package/dist/cjs/api/resources/health/client/Client.js +152 -0
  36. package/dist/cjs/api/resources/health/client/index.d.ts +1 -0
  37. package/dist/cjs/api/resources/health/client/index.js +2 -0
  38. package/dist/cjs/api/resources/health/exports.d.ts +2 -0
  39. package/dist/cjs/api/resources/health/exports.js +21 -0
  40. package/dist/cjs/api/resources/health/index.d.ts +1 -0
  41. package/dist/cjs/api/resources/health/index.js +17 -0
  42. package/dist/cjs/api/resources/index.d.ts +3 -0
  43. package/dist/cjs/api/resources/index.js +42 -0
  44. package/dist/cjs/api/resources/scans/client/Client.d.ts +54 -0
  45. package/dist/cjs/api/resources/scans/client/Client.js +196 -0
  46. package/dist/cjs/api/resources/scans/client/index.d.ts +1 -0
  47. package/dist/cjs/api/resources/scans/client/index.js +17 -0
  48. package/dist/cjs/api/resources/scans/client/requests/GetScanRequest.d.ts +10 -0
  49. package/dist/cjs/api/resources/scans/client/requests/GetScanRequest.js +3 -0
  50. package/dist/cjs/api/resources/scans/client/requests/ListScansRequest.d.ts +18 -0
  51. package/dist/cjs/api/resources/scans/client/requests/ListScansRequest.js +3 -0
  52. package/dist/cjs/api/resources/scans/client/requests/index.d.ts +2 -0
  53. package/dist/cjs/api/resources/scans/client/requests/index.js +2 -0
  54. package/dist/cjs/api/resources/scans/exports.d.ts +2 -0
  55. package/dist/cjs/api/resources/scans/exports.js +21 -0
  56. package/dist/cjs/api/resources/scans/index.d.ts +1 -0
  57. package/dist/cjs/api/resources/scans/index.js +17 -0
  58. package/dist/cjs/api/types/ApiError.d.ts +8 -0
  59. package/dist/cjs/api/types/ApiError.js +3 -0
  60. package/dist/cjs/api/types/ErrorResponse.d.ts +4 -0
  61. package/dist/cjs/api/types/ErrorResponse.js +3 -0
  62. package/dist/cjs/api/types/HealthResponse.d.ts +10 -0
  63. package/dist/cjs/api/types/HealthResponse.js +11 -0
  64. package/dist/cjs/api/types/Scan.d.ts +32 -0
  65. package/dist/cjs/api/types/Scan.js +17 -0
  66. package/dist/cjs/api/types/ScanBatchResponse.d.ts +5 -0
  67. package/dist/cjs/api/types/ScanBatchResponse.js +3 -0
  68. package/dist/cjs/api/types/ScanBatchResult.d.ts +13 -0
  69. package/dist/cjs/api/types/ScanBatchResult.js +3 -0
  70. package/dist/cjs/api/types/ScanFailure.d.ts +11 -0
  71. package/dist/cjs/api/types/ScanFailure.js +11 -0
  72. package/dist/cjs/api/types/ScanList.d.ts +7 -0
  73. package/dist/cjs/api/types/ScanList.js +3 -0
  74. package/dist/cjs/api/types/TypeAnalysis.d.ts +26 -0
  75. package/dist/cjs/api/types/TypeAnalysis.js +20 -0
  76. package/dist/cjs/api/types/TypeAnalysisReason.d.ts +13 -0
  77. package/dist/cjs/api/types/TypeAnalysisReason.js +12 -0
  78. package/dist/cjs/api/types/TypeDeclaration.d.ts +6 -0
  79. package/dist/cjs/api/types/TypeDeclaration.js +3 -0
  80. package/dist/cjs/api/types/TypeIdentification.d.ts +6 -0
  81. package/dist/cjs/api/types/TypeIdentification.js +3 -0
  82. package/dist/cjs/api/types/index.d.ts +12 -0
  83. package/dist/cjs/api/types/index.js +28 -0
  84. package/dist/cjs/auth/HeaderAuthProvider.d.ts +20 -0
  85. package/dist/cjs/auth/HeaderAuthProvider.js +80 -0
  86. package/dist/cjs/auth/index.d.ts +1 -0
  87. package/dist/cjs/auth/index.js +5 -0
  88. package/dist/cjs/core/auth/AuthProvider.d.ts +8 -0
  89. package/dist/cjs/core/auth/AuthProvider.js +9 -0
  90. package/dist/cjs/core/auth/AuthRequest.d.ts +9 -0
  91. package/dist/cjs/core/auth/AuthRequest.js +2 -0
  92. package/dist/cjs/core/auth/BasicAuth.d.ts +8 -0
  93. package/dist/cjs/core/auth/BasicAuth.js +33 -0
  94. package/dist/cjs/core/auth/BearerToken.d.ts +7 -0
  95. package/dist/cjs/core/auth/BearerToken.js +16 -0
  96. package/dist/cjs/core/auth/NoOpAuthProvider.d.ts +5 -0
  97. package/dist/cjs/core/auth/NoOpAuthProvider.js +9 -0
  98. package/dist/cjs/core/auth/index.d.ts +5 -0
  99. package/dist/cjs/core/auth/index.js +11 -0
  100. package/dist/cjs/core/base64.d.ts +2 -0
  101. package/dist/cjs/core/base64.js +26 -0
  102. package/dist/cjs/core/exports.d.ts +2 -0
  103. package/dist/cjs/core/exports.js +18 -0
  104. package/dist/cjs/core/fetcher/APIResponse.d.ts +20 -0
  105. package/dist/cjs/core/fetcher/APIResponse.js +2 -0
  106. package/dist/cjs/core/fetcher/BinaryResponse.d.ts +19 -0
  107. package/dist/cjs/core/fetcher/BinaryResponse.js +17 -0
  108. package/dist/cjs/core/fetcher/EndpointMetadata.d.ts +13 -0
  109. package/dist/cjs/core/fetcher/EndpointMetadata.js +2 -0
  110. package/dist/cjs/core/fetcher/EndpointSupplier.d.ts +12 -0
  111. package/dist/cjs/core/fetcher/EndpointSupplier.js +22 -0
  112. package/dist/cjs/core/fetcher/Fetcher.d.ts +56 -0
  113. package/dist/cjs/core/fetcher/Fetcher.js +244 -0
  114. package/dist/cjs/core/fetcher/Headers.d.ts +2 -0
  115. package/dist/cjs/core/fetcher/Headers.js +84 -0
  116. package/dist/cjs/core/fetcher/HttpResponsePromise.d.ts +58 -0
  117. package/dist/cjs/core/fetcher/HttpResponsePromise.js +103 -0
  118. package/dist/cjs/core/fetcher/RawResponse.d.ts +29 -0
  119. package/dist/cjs/core/fetcher/RawResponse.js +44 -0
  120. package/dist/cjs/core/fetcher/Supplier.d.ts +4 -0
  121. package/dist/cjs/core/fetcher/Supplier.js +22 -0
  122. package/dist/cjs/core/fetcher/createRequestUrl.d.ts +1 -0
  123. package/dist/cjs/core/fetcher/createRequestUrl.js +8 -0
  124. package/dist/cjs/core/fetcher/getErrorResponseBody.d.ts +1 -0
  125. package/dist/cjs/core/fetcher/getErrorResponseBody.js +45 -0
  126. package/dist/cjs/core/fetcher/getFetchFn.d.ts +1 -0
  127. package/dist/cjs/core/fetcher/getFetchFn.js +17 -0
  128. package/dist/cjs/core/fetcher/getHeader.d.ts +1 -0
  129. package/dist/cjs/core/fetcher/getHeader.js +11 -0
  130. package/dist/cjs/core/fetcher/getRequestBody.d.ts +7 -0
  131. package/dist/cjs/core/fetcher/getRequestBody.js +27 -0
  132. package/dist/cjs/core/fetcher/getResponseBody.d.ts +1 -0
  133. package/dist/cjs/core/fetcher/getResponseBody.js +80 -0
  134. package/dist/cjs/core/fetcher/index.d.ts +13 -0
  135. package/dist/cjs/core/fetcher/index.js +19 -0
  136. package/dist/cjs/core/fetcher/makePassthroughRequest.d.ts +49 -0
  137. package/dist/cjs/core/fetcher/makePassthroughRequest.js +157 -0
  138. package/dist/cjs/core/fetcher/makeRequest.d.ts +6 -0
  139. package/dist/cjs/core/fetcher/makeRequest.js +61 -0
  140. package/dist/cjs/core/fetcher/redactUrl.d.ts +2 -0
  141. package/dist/cjs/core/fetcher/redactUrl.js +88 -0
  142. package/dist/cjs/core/fetcher/requestWithRetries.d.ts +1 -0
  143. package/dist/cjs/core/fetcher/requestWithRetries.js +70 -0
  144. package/dist/cjs/core/fetcher/signals.d.ts +5 -0
  145. package/dist/cjs/core/fetcher/signals.js +32 -0
  146. package/dist/cjs/core/file/exports.d.ts +1 -0
  147. package/dist/cjs/core/file/exports.js +2 -0
  148. package/dist/cjs/core/file/file.d.ts +10 -0
  149. package/dist/cjs/core/file/file.js +225 -0
  150. package/dist/cjs/core/file/index.d.ts +2 -0
  151. package/dist/cjs/core/file/index.js +18 -0
  152. package/dist/cjs/core/file/types.d.ts +66 -0
  153. package/dist/cjs/core/file/types.js +2 -0
  154. package/dist/cjs/core/form-data-utils/FormDataWrapper.d.ts +15 -0
  155. package/dist/cjs/core/form-data-utils/FormDataWrapper.js +188 -0
  156. package/dist/cjs/core/form-data-utils/encodeAsFormParameter.d.ts +1 -0
  157. package/dist/cjs/core/form-data-utils/encodeAsFormParameter.js +12 -0
  158. package/dist/cjs/core/form-data-utils/index.d.ts +2 -0
  159. package/dist/cjs/core/form-data-utils/index.js +20 -0
  160. package/dist/cjs/core/headers.d.ts +2 -0
  161. package/dist/cjs/core/headers.js +31 -0
  162. package/dist/cjs/core/index.d.ts +8 -0
  163. package/dist/cjs/core/index.js +47 -0
  164. package/dist/cjs/core/json.d.ts +15 -0
  165. package/dist/cjs/core/json.js +24 -0
  166. package/dist/cjs/core/logging/exports.d.ts +18 -0
  167. package/dist/cjs/core/logging/exports.js +45 -0
  168. package/dist/cjs/core/logging/index.d.ts +1 -0
  169. package/dist/cjs/core/logging/index.js +17 -0
  170. package/dist/cjs/core/logging/logger.d.ts +126 -0
  171. package/dist/cjs/core/logging/logger.js +144 -0
  172. package/dist/cjs/core/requestBody.d.ts +12 -0
  173. package/dist/cjs/core/requestBody.js +26 -0
  174. package/dist/cjs/core/runtime/index.d.ts +1 -0
  175. package/dist/cjs/core/runtime/index.js +6 -0
  176. package/dist/cjs/core/runtime/runtime.d.ts +28 -0
  177. package/dist/cjs/core/runtime/runtime.js +176 -0
  178. package/dist/cjs/core/url/QueryStringBuilder.d.ts +47 -0
  179. package/dist/cjs/core/url/QueryStringBuilder.js +83 -0
  180. package/dist/cjs/core/url/encodePathParam.d.ts +1 -0
  181. package/dist/cjs/core/url/encodePathParam.js +21 -0
  182. package/dist/cjs/core/url/index.d.ts +4 -0
  183. package/dist/cjs/core/url/index.js +11 -0
  184. package/dist/cjs/core/url/join.d.ts +1 -0
  185. package/dist/cjs/core/url/join.js +68 -0
  186. package/dist/cjs/core/url/qs.d.ts +7 -0
  187. package/dist/cjs/core/url/qs.js +76 -0
  188. package/dist/cjs/environments.d.ts +4 -0
  189. package/dist/cjs/environments.js +7 -0
  190. package/dist/cjs/errors/DetectantApiError.d.ts +15 -0
  191. package/dist/cjs/errors/DetectantApiError.js +39 -0
  192. package/dist/cjs/errors/DetectantApiTimeoutError.d.ts +6 -0
  193. package/dist/cjs/errors/DetectantApiTimeoutError.js +52 -0
  194. package/dist/cjs/errors/handleNonStatusCodeError.d.ts +2 -0
  195. package/dist/cjs/errors/handleNonStatusCodeError.js +68 -0
  196. package/dist/cjs/errors/index.d.ts +2 -0
  197. package/dist/cjs/errors/index.js +7 -0
  198. package/dist/cjs/exports.d.ts +1 -0
  199. package/dist/cjs/exports.js +17 -0
  200. package/dist/cjs/index.d.ts +6 -0
  201. package/dist/cjs/index.js +48 -0
  202. package/dist/cjs/version.d.ts +1 -0
  203. package/dist/cjs/version.js +4 -0
  204. package/dist/esm/BaseClient.d.mts +54 -0
  205. package/dist/esm/BaseClient.mjs +40 -0
  206. package/dist/esm/Client.d.mts +86 -0
  207. package/dist/esm/Client.mjs +218 -0
  208. package/dist/esm/api/client/index.d.mts +1 -0
  209. package/dist/esm/api/client/index.mjs +1 -0
  210. package/dist/esm/api/client/requests/CreateScanBatchRequest.d.mts +5 -0
  211. package/dist/esm/api/client/requests/CreateScanBatchRequest.mjs +2 -0
  212. package/dist/esm/api/client/requests/CreateScanRequest.d.mts +5 -0
  213. package/dist/esm/api/client/requests/CreateScanRequest.mjs +2 -0
  214. package/dist/esm/api/client/requests/index.d.mts +2 -0
  215. package/dist/esm/api/client/requests/index.mjs +1 -0
  216. package/dist/esm/api/errors/BadRequestError.d.mts +7 -0
  217. package/dist/esm/api/errors/BadRequestError.mjs +17 -0
  218. package/dist/esm/api/errors/ContentTooLargeError.d.mts +7 -0
  219. package/dist/esm/api/errors/ContentTooLargeError.mjs +17 -0
  220. package/dist/esm/api/errors/ForbiddenError.d.mts +7 -0
  221. package/dist/esm/api/errors/ForbiddenError.mjs +17 -0
  222. package/dist/esm/api/errors/InternalServerError.d.mts +7 -0
  223. package/dist/esm/api/errors/InternalServerError.mjs +17 -0
  224. package/dist/esm/api/errors/NotFoundError.d.mts +7 -0
  225. package/dist/esm/api/errors/NotFoundError.mjs +17 -0
  226. package/dist/esm/api/errors/ServiceUnavailableError.d.mts +5 -0
  227. package/dist/esm/api/errors/ServiceUnavailableError.mjs +17 -0
  228. package/dist/esm/api/errors/TooManyRequestsError.d.mts +7 -0
  229. package/dist/esm/api/errors/TooManyRequestsError.mjs +17 -0
  230. package/dist/esm/api/errors/UnauthorizedError.d.mts +7 -0
  231. package/dist/esm/api/errors/UnauthorizedError.mjs +17 -0
  232. package/dist/esm/api/errors/index.d.mts +8 -0
  233. package/dist/esm/api/errors/index.mjs +8 -0
  234. package/dist/esm/api/index.d.mts +4 -0
  235. package/dist/esm/api/index.mjs +4 -0
  236. package/dist/esm/api/resources/health/client/Client.d.mts +43 -0
  237. package/dist/esm/api/resources/health/client/Client.mjs +115 -0
  238. package/dist/esm/api/resources/health/client/index.d.mts +1 -0
  239. package/dist/esm/api/resources/health/client/index.mjs +1 -0
  240. package/dist/esm/api/resources/health/exports.d.mts +2 -0
  241. package/dist/esm/api/resources/health/exports.mjs +3 -0
  242. package/dist/esm/api/resources/health/index.d.mts +1 -0
  243. package/dist/esm/api/resources/health/index.mjs +1 -0
  244. package/dist/esm/api/resources/index.d.mts +3 -0
  245. package/dist/esm/api/resources/index.mjs +3 -0
  246. package/dist/esm/api/resources/scans/client/Client.d.mts +54 -0
  247. package/dist/esm/api/resources/scans/client/Client.mjs +159 -0
  248. package/dist/esm/api/resources/scans/client/index.d.mts +1 -0
  249. package/dist/esm/api/resources/scans/client/index.mjs +1 -0
  250. package/dist/esm/api/resources/scans/client/requests/GetScanRequest.d.mts +10 -0
  251. package/dist/esm/api/resources/scans/client/requests/GetScanRequest.mjs +2 -0
  252. package/dist/esm/api/resources/scans/client/requests/ListScansRequest.d.mts +18 -0
  253. package/dist/esm/api/resources/scans/client/requests/ListScansRequest.mjs +2 -0
  254. package/dist/esm/api/resources/scans/client/requests/index.d.mts +2 -0
  255. package/dist/esm/api/resources/scans/client/requests/index.mjs +1 -0
  256. package/dist/esm/api/resources/scans/exports.d.mts +2 -0
  257. package/dist/esm/api/resources/scans/exports.mjs +3 -0
  258. package/dist/esm/api/resources/scans/index.d.mts +1 -0
  259. package/dist/esm/api/resources/scans/index.mjs +1 -0
  260. package/dist/esm/api/types/ApiError.d.mts +8 -0
  261. package/dist/esm/api/types/ApiError.mjs +2 -0
  262. package/dist/esm/api/types/ErrorResponse.d.mts +4 -0
  263. package/dist/esm/api/types/ErrorResponse.mjs +2 -0
  264. package/dist/esm/api/types/HealthResponse.d.mts +10 -0
  265. package/dist/esm/api/types/HealthResponse.mjs +8 -0
  266. package/dist/esm/api/types/Scan.d.mts +32 -0
  267. package/dist/esm/api/types/Scan.mjs +14 -0
  268. package/dist/esm/api/types/ScanBatchResponse.d.mts +5 -0
  269. package/dist/esm/api/types/ScanBatchResponse.mjs +2 -0
  270. package/dist/esm/api/types/ScanBatchResult.d.mts +13 -0
  271. package/dist/esm/api/types/ScanBatchResult.mjs +2 -0
  272. package/dist/esm/api/types/ScanFailure.d.mts +11 -0
  273. package/dist/esm/api/types/ScanFailure.mjs +8 -0
  274. package/dist/esm/api/types/ScanList.d.mts +7 -0
  275. package/dist/esm/api/types/ScanList.mjs +2 -0
  276. package/dist/esm/api/types/TypeAnalysis.d.mts +26 -0
  277. package/dist/esm/api/types/TypeAnalysis.mjs +17 -0
  278. package/dist/esm/api/types/TypeAnalysisReason.d.mts +13 -0
  279. package/dist/esm/api/types/TypeAnalysisReason.mjs +9 -0
  280. package/dist/esm/api/types/TypeDeclaration.d.mts +6 -0
  281. package/dist/esm/api/types/TypeDeclaration.mjs +2 -0
  282. package/dist/esm/api/types/TypeIdentification.d.mts +6 -0
  283. package/dist/esm/api/types/TypeIdentification.mjs +2 -0
  284. package/dist/esm/api/types/index.d.mts +12 -0
  285. package/dist/esm/api/types/index.mjs +12 -0
  286. package/dist/esm/auth/HeaderAuthProvider.d.mts +20 -0
  287. package/dist/esm/auth/HeaderAuthProvider.mjs +43 -0
  288. package/dist/esm/auth/index.d.mts +1 -0
  289. package/dist/esm/auth/index.mjs +1 -0
  290. package/dist/esm/core/auth/AuthProvider.d.mts +8 -0
  291. package/dist/esm/core/auth/AuthProvider.mjs +6 -0
  292. package/dist/esm/core/auth/AuthRequest.d.mts +9 -0
  293. package/dist/esm/core/auth/AuthRequest.mjs +1 -0
  294. package/dist/esm/core/auth/BasicAuth.d.mts +8 -0
  295. package/dist/esm/core/auth/BasicAuth.mjs +30 -0
  296. package/dist/esm/core/auth/BearerToken.d.mts +7 -0
  297. package/dist/esm/core/auth/BearerToken.mjs +13 -0
  298. package/dist/esm/core/auth/NoOpAuthProvider.d.mts +5 -0
  299. package/dist/esm/core/auth/NoOpAuthProvider.mjs +5 -0
  300. package/dist/esm/core/auth/index.d.mts +5 -0
  301. package/dist/esm/core/auth/index.mjs +4 -0
  302. package/dist/esm/core/base64.d.mts +2 -0
  303. package/dist/esm/core/base64.mjs +22 -0
  304. package/dist/esm/core/exports.d.mts +2 -0
  305. package/dist/esm/core/exports.mjs +2 -0
  306. package/dist/esm/core/fetcher/APIResponse.d.mts +20 -0
  307. package/dist/esm/core/fetcher/APIResponse.mjs +1 -0
  308. package/dist/esm/core/fetcher/BinaryResponse.d.mts +19 -0
  309. package/dist/esm/core/fetcher/BinaryResponse.mjs +14 -0
  310. package/dist/esm/core/fetcher/EndpointMetadata.d.mts +13 -0
  311. package/dist/esm/core/fetcher/EndpointMetadata.mjs +1 -0
  312. package/dist/esm/core/fetcher/EndpointSupplier.d.mts +12 -0
  313. package/dist/esm/core/fetcher/EndpointSupplier.mjs +19 -0
  314. package/dist/esm/core/fetcher/Fetcher.d.mts +56 -0
  315. package/dist/esm/core/fetcher/Fetcher.mjs +240 -0
  316. package/dist/esm/core/fetcher/Headers.d.mts +2 -0
  317. package/dist/esm/core/fetcher/Headers.mjs +82 -0
  318. package/dist/esm/core/fetcher/HttpResponsePromise.d.mts +58 -0
  319. package/dist/esm/core/fetcher/HttpResponsePromise.mjs +99 -0
  320. package/dist/esm/core/fetcher/RawResponse.d.mts +29 -0
  321. package/dist/esm/core/fetcher/RawResponse.mjs +40 -0
  322. package/dist/esm/core/fetcher/Supplier.d.mts +4 -0
  323. package/dist/esm/core/fetcher/Supplier.mjs +19 -0
  324. package/dist/esm/core/fetcher/createRequestUrl.d.mts +1 -0
  325. package/dist/esm/core/fetcher/createRequestUrl.mjs +5 -0
  326. package/dist/esm/core/fetcher/getErrorResponseBody.d.mts +1 -0
  327. package/dist/esm/core/fetcher/getErrorResponseBody.mjs +42 -0
  328. package/dist/esm/core/fetcher/getFetchFn.d.mts +1 -0
  329. package/dist/esm/core/fetcher/getFetchFn.mjs +14 -0
  330. package/dist/esm/core/fetcher/getHeader.d.mts +1 -0
  331. package/dist/esm/core/fetcher/getHeader.mjs +8 -0
  332. package/dist/esm/core/fetcher/getRequestBody.d.mts +7 -0
  333. package/dist/esm/core/fetcher/getRequestBody.mjs +24 -0
  334. package/dist/esm/core/fetcher/getResponseBody.d.mts +1 -0
  335. package/dist/esm/core/fetcher/getResponseBody.mjs +77 -0
  336. package/dist/esm/core/fetcher/index.d.mts +13 -0
  337. package/dist/esm/core/fetcher/index.mjs +7 -0
  338. package/dist/esm/core/fetcher/makePassthroughRequest.d.mts +49 -0
  339. package/dist/esm/core/fetcher/makePassthroughRequest.mjs +154 -0
  340. package/dist/esm/core/fetcher/makeRequest.d.mts +6 -0
  341. package/dist/esm/core/fetcher/makeRequest.mjs +55 -0
  342. package/dist/esm/core/fetcher/redactUrl.d.mts +2 -0
  343. package/dist/esm/core/fetcher/redactUrl.mjs +84 -0
  344. package/dist/esm/core/fetcher/requestWithRetries.d.mts +1 -0
  345. package/dist/esm/core/fetcher/requestWithRetries.mjs +67 -0
  346. package/dist/esm/core/fetcher/signals.d.mts +5 -0
  347. package/dist/esm/core/fetcher/signals.mjs +28 -0
  348. package/dist/esm/core/file/exports.d.mts +1 -0
  349. package/dist/esm/core/file/exports.mjs +1 -0
  350. package/dist/esm/core/file/file.d.mts +10 -0
  351. package/dist/esm/core/file/file.mjs +188 -0
  352. package/dist/esm/core/file/index.d.mts +2 -0
  353. package/dist/esm/core/file/index.mjs +2 -0
  354. package/dist/esm/core/file/types.d.mts +66 -0
  355. package/dist/esm/core/file/types.mjs +1 -0
  356. package/dist/esm/core/form-data-utils/FormDataWrapper.d.mts +15 -0
  357. package/dist/esm/core/form-data-utils/FormDataWrapper.mjs +150 -0
  358. package/dist/esm/core/form-data-utils/encodeAsFormParameter.d.mts +1 -0
  359. package/dist/esm/core/form-data-utils/encodeAsFormParameter.mjs +9 -0
  360. package/dist/esm/core/form-data-utils/index.d.mts +2 -0
  361. package/dist/esm/core/form-data-utils/index.mjs +2 -0
  362. package/dist/esm/core/headers.d.mts +2 -0
  363. package/dist/esm/core/headers.mjs +27 -0
  364. package/dist/esm/core/index.d.mts +8 -0
  365. package/dist/esm/core/index.mjs +8 -0
  366. package/dist/esm/core/json.d.mts +15 -0
  367. package/dist/esm/core/json.mjs +19 -0
  368. package/dist/esm/core/logging/exports.d.mts +18 -0
  369. package/dist/esm/core/logging/exports.mjs +9 -0
  370. package/dist/esm/core/logging/index.d.mts +1 -0
  371. package/dist/esm/core/logging/index.mjs +1 -0
  372. package/dist/esm/core/logging/logger.d.mts +126 -0
  373. package/dist/esm/core/logging/logger.mjs +138 -0
  374. package/dist/esm/core/requestBody.d.mts +12 -0
  375. package/dist/esm/core/requestBody.mjs +23 -0
  376. package/dist/esm/core/runtime/index.d.mts +1 -0
  377. package/dist/esm/core/runtime/index.mjs +1 -0
  378. package/dist/esm/core/runtime/runtime.d.mts +28 -0
  379. package/dist/esm/core/runtime/runtime.mjs +172 -0
  380. package/dist/esm/core/url/QueryStringBuilder.d.mts +47 -0
  381. package/dist/esm/core/url/QueryStringBuilder.mjs +80 -0
  382. package/dist/esm/core/url/encodePathParam.d.mts +1 -0
  383. package/dist/esm/core/url/encodePathParam.mjs +18 -0
  384. package/dist/esm/core/url/index.d.mts +4 -0
  385. package/dist/esm/core/url/index.mjs +4 -0
  386. package/dist/esm/core/url/join.d.mts +1 -0
  387. package/dist/esm/core/url/join.mjs +65 -0
  388. package/dist/esm/core/url/qs.d.mts +7 -0
  389. package/dist/esm/core/url/qs.mjs +73 -0
  390. package/dist/esm/environments.d.mts +4 -0
  391. package/dist/esm/environments.mjs +4 -0
  392. package/dist/esm/errors/DetectantApiError.d.mts +15 -0
  393. package/dist/esm/errors/DetectantApiError.mjs +35 -0
  394. package/dist/esm/errors/DetectantApiTimeoutError.d.mts +6 -0
  395. package/dist/esm/errors/DetectantApiTimeoutError.mjs +15 -0
  396. package/dist/esm/errors/handleNonStatusCodeError.d.mts +2 -0
  397. package/dist/esm/errors/handleNonStatusCodeError.mjs +32 -0
  398. package/dist/esm/errors/index.d.mts +2 -0
  399. package/dist/esm/errors/index.mjs +2 -0
  400. package/dist/esm/exports.d.mts +1 -0
  401. package/dist/esm/exports.mjs +1 -0
  402. package/dist/esm/index.d.mts +6 -0
  403. package/dist/esm/index.mjs +5 -0
  404. package/dist/esm/version.d.mts +1 -0
  405. package/dist/esm/version.mjs +1 -0
  406. package/package.json +91 -1
  407. package/reference.md +380 -0
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SENSITIVE_QUERY_PARAMS = void 0;
4
+ exports.redactUrl = redactUrl;
5
+ exports.SENSITIVE_QUERY_PARAMS = new Set([
6
+ "api_key",
7
+ "api-key",
8
+ "apikey",
9
+ "token",
10
+ "access_token",
11
+ "access-token",
12
+ "auth_token",
13
+ "auth-token",
14
+ "password",
15
+ "passwd",
16
+ "secret",
17
+ "api_secret",
18
+ "api-secret",
19
+ "apisecret",
20
+ "key",
21
+ "session",
22
+ "session_id",
23
+ "session-id",
24
+ ]);
25
+ function redactUrl(url) {
26
+ const protocolIndex = url.indexOf("://");
27
+ if (protocolIndex === -1)
28
+ return url;
29
+ const afterProtocol = protocolIndex + 3;
30
+ // Find the first delimiter that marks the end of the authority section
31
+ const pathStart = url.indexOf("/", afterProtocol);
32
+ let queryStart = url.indexOf("?", afterProtocol);
33
+ let fragmentStart = url.indexOf("#", afterProtocol);
34
+ const firstDelimiter = Math.min(pathStart === -1 ? url.length : pathStart, queryStart === -1 ? url.length : queryStart, fragmentStart === -1 ? url.length : fragmentStart);
35
+ // Find the LAST @ before the delimiter (handles multiple @ in credentials)
36
+ let atIndex = -1;
37
+ for (let i = afterProtocol; i < firstDelimiter; i++) {
38
+ if (url[i] === "@") {
39
+ atIndex = i;
40
+ }
41
+ }
42
+ if (atIndex !== -1) {
43
+ url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;
44
+ }
45
+ // Recalculate queryStart since url might have changed
46
+ queryStart = url.indexOf("?");
47
+ if (queryStart === -1)
48
+ return url;
49
+ fragmentStart = url.indexOf("#", queryStart);
50
+ const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;
51
+ const queryString = url.slice(queryStart + 1, queryEnd);
52
+ if (queryString.length === 0)
53
+ return url;
54
+ // FAST PATH: Quick check if any sensitive keywords present
55
+ // Using indexOf is faster than regex for simple substring matching
56
+ const lower = queryString.toLowerCase();
57
+ const hasSensitive = lower.includes("token") ||
58
+ lower.includes("key") ||
59
+ lower.includes("password") ||
60
+ lower.includes("passwd") ||
61
+ lower.includes("secret") ||
62
+ lower.includes("session") ||
63
+ lower.includes("auth");
64
+ if (!hasSensitive) {
65
+ return url;
66
+ }
67
+ // SLOW PATH: Parse and redact
68
+ const redactedParams = [];
69
+ const params = queryString.split("&");
70
+ for (const param of params) {
71
+ const equalIndex = param.indexOf("=");
72
+ if (equalIndex === -1) {
73
+ redactedParams.push(param);
74
+ continue;
75
+ }
76
+ const key = param.slice(0, equalIndex);
77
+ let shouldRedact = exports.SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());
78
+ if (!shouldRedact && key.includes("%")) {
79
+ try {
80
+ const decodedKey = decodeURIComponent(key);
81
+ shouldRedact = exports.SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());
82
+ }
83
+ catch (_a) { }
84
+ }
85
+ redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);
86
+ }
87
+ return url.slice(0, queryStart + 1) + redactedParams.join("&") + url.slice(queryEnd);
88
+ }
@@ -0,0 +1 @@
1
+ export declare function requestWithRetries(requestFn: () => Promise<Response>, maxRetries?: number): Promise<Response>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.requestWithRetries = requestWithRetries;
13
+ const INITIAL_RETRY_DELAY = 1000; // in milliseconds
14
+ const MAX_RETRY_DELAY = 60000; // in milliseconds
15
+ const DEFAULT_MAX_RETRIES = 2;
16
+ const JITTER_FACTOR = 0.2; // 20% random jitter
17
+ function isRetryableStatusCode(statusCode) {
18
+ return [408, 429].includes(statusCode) || statusCode >= 500;
19
+ }
20
+ function addPositiveJitter(delay) {
21
+ const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;
22
+ return delay * jitterMultiplier;
23
+ }
24
+ function addSymmetricJitter(delay) {
25
+ const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;
26
+ return delay * jitterMultiplier;
27
+ }
28
+ function getRetryDelayFromHeaders(response, retryAttempt) {
29
+ const retryAfter = response.headers.get("Retry-After");
30
+ if (retryAfter) {
31
+ const retryAfterSeconds = parseInt(retryAfter, 10);
32
+ if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {
33
+ return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);
34
+ }
35
+ const retryAfterDate = new Date(retryAfter);
36
+ if (!Number.isNaN(retryAfterDate.getTime())) {
37
+ const delay = retryAfterDate.getTime() - Date.now();
38
+ if (delay > 0) {
39
+ return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);
40
+ }
41
+ }
42
+ }
43
+ const rateLimitReset = response.headers.get("X-RateLimit-Reset");
44
+ if (rateLimitReset) {
45
+ const resetTime = parseInt(rateLimitReset, 10);
46
+ if (!Number.isNaN(resetTime)) {
47
+ const delay = resetTime * 1000 - Date.now();
48
+ if (delay > 0) {
49
+ return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));
50
+ }
51
+ }
52
+ }
53
+ return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryAttempt), MAX_RETRY_DELAY));
54
+ }
55
+ function requestWithRetries(requestFn_1) {
56
+ return __awaiter(this, arguments, void 0, function* (requestFn, maxRetries = DEFAULT_MAX_RETRIES) {
57
+ let response = yield requestFn();
58
+ for (let i = 0; i < maxRetries; ++i) {
59
+ if (isRetryableStatusCode(response.status)) {
60
+ const delay = getRetryDelayFromHeaders(response, i);
61
+ yield new Promise((resolve) => setTimeout(resolve, delay));
62
+ response = yield requestFn();
63
+ }
64
+ else {
65
+ break;
66
+ }
67
+ }
68
+ return response;
69
+ });
70
+ }
@@ -0,0 +1,5 @@
1
+ export declare function getTimeoutSignal(timeoutMs: number): {
2
+ signal: AbortSignal;
3
+ abortId: ReturnType<typeof setTimeout>;
4
+ };
5
+ export declare function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTimeoutSignal = getTimeoutSignal;
4
+ exports.anySignal = anySignal;
5
+ const TIMEOUT = "timeout";
6
+ function getTimeoutSignal(timeoutMs) {
7
+ const controller = new AbortController();
8
+ const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
9
+ return { signal: controller.signal, abortId };
10
+ }
11
+ function anySignal(...args) {
12
+ const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args);
13
+ const controller = new AbortController();
14
+ for (const signal of signals) {
15
+ if (signal.aborted) {
16
+ controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason);
17
+ return controller.signal;
18
+ }
19
+ signal.addEventListener("abort", () => controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason), {
20
+ signal: controller.signal,
21
+ });
22
+ // Re-check after adding listener: the signal may have aborted
23
+ // between the initial `signal.aborted` check and the `addEventListener`
24
+ // call above. If it did, the abort event was already dispatched and
25
+ // the listener will never fire — we must manually abort.
26
+ if (signal.aborted) {
27
+ controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason);
28
+ return controller.signal;
29
+ }
30
+ }
31
+ return controller.signal;
32
+ }
@@ -0,0 +1 @@
1
+ export type { Uploadable } from "./types.js";
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import type { Uploadable } from "./types.js";
2
+ export declare function toBinaryUploadRequest(file: Uploadable): Promise<{
3
+ body: Uploadable.FileLike;
4
+ headers?: Record<string, string>;
5
+ }>;
6
+ export declare function toMultipartDataPart(file: Uploadable): Promise<{
7
+ data: Uploadable.FileLike;
8
+ filename?: string;
9
+ contentType?: string;
10
+ }>;
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.toBinaryUploadRequest = toBinaryUploadRequest;
46
+ exports.toMultipartDataPart = toMultipartDataPart;
47
+ function toBinaryUploadRequest(file) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const { data, filename, contentLength, contentType } = yield getFileWithMetadata(file);
50
+ const request = {
51
+ body: data,
52
+ headers: {},
53
+ };
54
+ if (filename) {
55
+ request.headers["Content-Disposition"] = `attachment; filename="${filename}"`;
56
+ }
57
+ if (contentType) {
58
+ request.headers["Content-Type"] = contentType;
59
+ }
60
+ if (contentLength != null) {
61
+ request.headers["Content-Length"] = contentLength.toString();
62
+ }
63
+ return request;
64
+ });
65
+ }
66
+ function toMultipartDataPart(file) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const { data, filename, contentType } = yield getFileWithMetadata(file, {
69
+ noSniffFileSize: true,
70
+ });
71
+ return {
72
+ data,
73
+ filename,
74
+ contentType,
75
+ };
76
+ });
77
+ }
78
+ function getFileWithMetadata(file_1) {
79
+ return __awaiter(this, arguments, void 0, function* (file, { noSniffFileSize } = {}) {
80
+ var _a, _b, _c, _d, _e;
81
+ if (file == null) {
82
+ throw new Error(`Expected file to be a Blob, Buffer, ReadableStream, or an object with a "path" or "data" property, but received ${file === null ? "null" : "undefined"}.`);
83
+ }
84
+ if (isFileLike(file)) {
85
+ return getFileWithMetadata({
86
+ data: file,
87
+ }, { noSniffFileSize });
88
+ }
89
+ if ("path" in file) {
90
+ const fs = yield Promise.resolve().then(() => __importStar(require("fs")));
91
+ if (!(fs === null || fs === void 0 ? void 0 : fs.createReadStream)) {
92
+ throw new Error("File path uploads are not supported in this environment.");
93
+ }
94
+ const data = fs.createReadStream(file.path);
95
+ const contentLength = (_a = file.contentLength) !== null && _a !== void 0 ? _a : (noSniffFileSize === true ? undefined : yield tryGetFileSizeFromPath(file.path));
96
+ const filename = (_b = file.filename) !== null && _b !== void 0 ? _b : getNameFromPath(file.path);
97
+ return {
98
+ data,
99
+ filename,
100
+ contentType: file.contentType,
101
+ contentLength,
102
+ };
103
+ }
104
+ if ("data" in file) {
105
+ const data = file.data;
106
+ const contentLength = (_c = file.contentLength) !== null && _c !== void 0 ? _c : (yield tryGetContentLengthFromFileLike(data, {
107
+ noSniffFileSize,
108
+ }));
109
+ const filename = (_d = file.filename) !== null && _d !== void 0 ? _d : tryGetNameFromFileLike(data);
110
+ return {
111
+ data,
112
+ filename,
113
+ contentType: (_e = file.contentType) !== null && _e !== void 0 ? _e : tryGetContentTypeFromFileLike(data),
114
+ contentLength,
115
+ };
116
+ }
117
+ throw new Error(`Invalid FileUpload of type ${typeof file}: ${JSON.stringify(file)}`);
118
+ });
119
+ }
120
+ function isFileLike(value) {
121
+ return (isBuffer(value) ||
122
+ isArrayBufferView(value) ||
123
+ isArrayBuffer(value) ||
124
+ isUint8Array(value) ||
125
+ isBlob(value) ||
126
+ isFile(value) ||
127
+ isStreamLike(value) ||
128
+ isReadableStream(value));
129
+ }
130
+ function tryGetFileSizeFromPath(path) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ var _a;
133
+ try {
134
+ const fs = yield Promise.resolve().then(() => __importStar(require("fs")));
135
+ if (!((_a = fs === null || fs === void 0 ? void 0 : fs.promises) === null || _a === void 0 ? void 0 : _a.stat)) {
136
+ return undefined;
137
+ }
138
+ const fileStat = yield fs.promises.stat(path);
139
+ return fileStat.size;
140
+ }
141
+ catch (_fallbackError) {
142
+ return undefined;
143
+ }
144
+ });
145
+ }
146
+ function tryGetNameFromFileLike(data) {
147
+ if (isNamedValue(data)) {
148
+ return data.name;
149
+ }
150
+ if (isPathedValue(data)) {
151
+ return getNameFromPath(data.path.toString());
152
+ }
153
+ return undefined;
154
+ }
155
+ function tryGetContentLengthFromFileLike(data_1) {
156
+ return __awaiter(this, arguments, void 0, function* (data, { noSniffFileSize } = {}) {
157
+ if (isBuffer(data)) {
158
+ return data.length;
159
+ }
160
+ if (isArrayBufferView(data)) {
161
+ return data.byteLength;
162
+ }
163
+ if (isArrayBuffer(data)) {
164
+ return data.byteLength;
165
+ }
166
+ if (isBlob(data)) {
167
+ return data.size;
168
+ }
169
+ if (isFile(data)) {
170
+ return data.size;
171
+ }
172
+ if (noSniffFileSize === true) {
173
+ return undefined;
174
+ }
175
+ if (isPathedValue(data)) {
176
+ return yield tryGetFileSizeFromPath(data.path.toString());
177
+ }
178
+ return undefined;
179
+ });
180
+ }
181
+ function tryGetContentTypeFromFileLike(data) {
182
+ if (isBlob(data)) {
183
+ return data.type;
184
+ }
185
+ if (isFile(data)) {
186
+ return data.type;
187
+ }
188
+ return undefined;
189
+ }
190
+ function getNameFromPath(path) {
191
+ const lastForwardSlash = path.lastIndexOf("/");
192
+ const lastBackSlash = path.lastIndexOf("\\");
193
+ const lastSlashIndex = Math.max(lastForwardSlash, lastBackSlash);
194
+ return lastSlashIndex >= 0 ? path.substring(lastSlashIndex + 1) : path;
195
+ }
196
+ function isNamedValue(value) {
197
+ return typeof value === "object" && value != null && "name" in value;
198
+ }
199
+ function isPathedValue(value) {
200
+ return typeof value === "object" && value != null && "path" in value;
201
+ }
202
+ function isStreamLike(value) {
203
+ return typeof value === "object" && value != null && ("read" in value || "pipe" in value);
204
+ }
205
+ function isReadableStream(value) {
206
+ return typeof value === "object" && value != null && "getReader" in value;
207
+ }
208
+ function isBuffer(value) {
209
+ return typeof Buffer !== "undefined" && Buffer.isBuffer && Buffer.isBuffer(value);
210
+ }
211
+ function isArrayBufferView(value) {
212
+ return typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView(value);
213
+ }
214
+ function isArrayBuffer(value) {
215
+ return typeof ArrayBuffer !== "undefined" && value instanceof ArrayBuffer;
216
+ }
217
+ function isUint8Array(value) {
218
+ return typeof Uint8Array !== "undefined" && value instanceof Uint8Array;
219
+ }
220
+ function isBlob(value) {
221
+ return typeof Blob !== "undefined" && value instanceof Blob;
222
+ }
223
+ function isFile(value) {
224
+ return typeof File !== "undefined" && value instanceof File;
225
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./file.js";
2
+ export * from "./types.js";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./file.js"), exports);
18
+ __exportStar(require("./types.js"), exports);
@@ -0,0 +1,66 @@
1
+ /**
2
+ * A file that can be uploaded. Can be a file-like object (stream, buffer, blob, etc.),
3
+ * a path to a file, or an object with a file-like object and metadata.
4
+ */
5
+ export type Uploadable = Uploadable.FileLike | Uploadable.FromPath | Uploadable.WithMetadata;
6
+ export declare namespace Uploadable {
7
+ /**
8
+ * Various file-like objects that can be used to upload a file.
9
+ */
10
+ type FileLike = ArrayBuffer | ArrayBufferLike | ArrayBufferView | Uint8Array | import("buffer").Buffer | import("buffer").Blob | import("buffer").File | import("stream").Readable | import("stream/web").ReadableStream | globalThis.Blob | globalThis.File | ReadableStream;
11
+ /**
12
+ * A file path with optional metadata, used for uploading a file from the file system.
13
+ */
14
+ type FromPath = {
15
+ /** The path to the file to upload */
16
+ path: string;
17
+ /**
18
+ * Optional override for the file name (defaults to basename of path).
19
+ * This is used to set the `Content-Disposition` header in upload requests.
20
+ */
21
+ filename?: string;
22
+ /**
23
+ * Optional MIME type of the file (e.g., 'image/jpeg', 'text/plain').
24
+ * This is used to set the `Content-Type` header in upload requests.
25
+ */
26
+ contentType?: string;
27
+ /**
28
+ * Optional file size in bytes.
29
+ * If not provided, the file size will be determined from the file system.
30
+ * The content length is used to set the `Content-Length` header in upload requests.
31
+ */
32
+ contentLength?: number;
33
+ };
34
+ /**
35
+ * A file-like object with metadata, used for uploading files.
36
+ */
37
+ type WithMetadata = {
38
+ /** The file data */
39
+ data: FileLike;
40
+ /**
41
+ * Optional override for the file name (defaults to basename of path).
42
+ * This is used to set the `Content-Disposition` header in upload requests.
43
+ */
44
+ filename?: string;
45
+ /**
46
+ * Optional MIME type of the file (e.g., 'image/jpeg', 'text/plain').
47
+ * This is used to set the `Content-Type` header in upload requests.
48
+ *
49
+ * If not provided, the content type may be determined from the data itself.
50
+ * * If the data is a `File`, `Blob`, or similar, the content type will be determined from the file itself, if the type is set.
51
+ * * Any other data type will not have a content type set, and the upload request will use `Content-Type: application/octet-stream` instead.
52
+ */
53
+ contentType?: string;
54
+ /**
55
+ * Optional file size in bytes.
56
+ * The content length is used to set the `Content-Length` header in upload requests.
57
+ * If the content length is not provided and cannot be determined, the upload request will not include the `Content-Length` header, but will use `Transfer-Encoding: chunked` instead.
58
+ *
59
+ * If not provided, the file size will be determined depending on the data type.
60
+ * * If the data is of type `fs.ReadStream` (`createReadStream`), the size will be determined from the file system.
61
+ * * If the data is a `Buffer`, `ArrayBuffer`, `Uint8Array`, `Blob`, `File`, or similar, the size will be determined from the data itself.
62
+ * * If the data is a `Readable` or `ReadableStream`, the size will not be determined.
63
+ */
64
+ contentLength?: number;
65
+ };
66
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import { type Uploadable } from "../../core/file/index.js";
2
+ interface FormDataRequest<Body> {
3
+ body: Body;
4
+ headers: Record<string, string>;
5
+ duplex?: "half";
6
+ }
7
+ export declare function newFormData(): Promise<FormDataWrapper>;
8
+ export declare class FormDataWrapper {
9
+ private fd;
10
+ setup(): Promise<void>;
11
+ append(key: string, value: unknown): void;
12
+ appendFile(key: string, value: Uploadable): Promise<void>;
13
+ getRequest(): FormDataRequest<FormData>;
14
+ }
15
+ export {};