@visulima/storage 1.0.0-alpha.9 → 1.0.1

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 (424) hide show
  1. package/CHANGELOG.md +562 -0
  2. package/LICENSE.md +237 -568
  3. package/README.md +82 -466
  4. package/dist/adapter/nuxt/module.d.ts +41 -34
  5. package/dist/adapter/nuxt/module.js +1 -93
  6. package/dist/adapter/nuxt/package.json +0 -6
  7. package/dist/ai/ai-sdk/index.d.ts +113 -0
  8. package/dist/ai/ai-sdk/index.js +1 -0
  9. package/dist/ai/claude/index.d.ts +177 -0
  10. package/dist/ai/claude/index.js +1 -0
  11. package/dist/ai/openai/index.d.ts +205 -0
  12. package/dist/ai/openai/index.js +1 -0
  13. package/dist/ai/tanstack/index.d.ts +115 -0
  14. package/dist/ai/tanstack/index.js +1 -0
  15. package/dist/handler/http/fetch/index.d.ts +303 -4
  16. package/dist/handler/http/fetch/index.js +1 -4
  17. package/dist/handler/http/hono/index.d.ts +73 -64
  18. package/dist/handler/http/hono/index.js +1 -65
  19. package/dist/handler/http/nextjs/index.d.ts +66 -58
  20. package/dist/handler/http/nextjs/index.js +1 -37
  21. package/dist/handler/http/node/index.d.ts +368 -4
  22. package/dist/handler/http/node/index.js +1 -8
  23. package/dist/handler/http/solid-start/index.d.ts +66 -57
  24. package/dist/handler/http/solid-start/index.js +1 -44
  25. package/dist/index.d.ts +106 -17
  26. package/dist/index.js +1 -13
  27. package/dist/openapi/index.d.ts +24 -5
  28. package/dist/openapi/index.js +1 -5
  29. package/dist/packem_shared/AbstractBaseStorage-CiPEMcuo.js +1 -0
  30. package/dist/packem_shared/AwsLightFile-CpZrubaV.js +1 -0
  31. package/dist/packem_shared/AwsLightMetaStorage-DPqJ9LTr.js +1 -0
  32. package/dist/packem_shared/AwsLightStorage-BK-WPL0h.js +1 -0
  33. package/dist/packem_shared/AzureFile-DFSaVe25.js +1 -0
  34. package/dist/packem_shared/AzureSMetaStorage-ByzM6Aix.js +1 -0
  35. package/dist/packem_shared/AzureStorage-1UvDIQZd.js +1 -0
  36. package/dist/packem_shared/BaseTransformer-Buw5lX_3.js +1 -0
  37. package/dist/packem_shared/BoxFile-CseIoPW1.js +1 -0
  38. package/dist/packem_shared/BoxMetaStorage-BSn6Qfnf.js +1 -0
  39. package/dist/packem_shared/BoxStorage-DbGqBLux.js +1 -0
  40. package/dist/packem_shared/BunS3File-BcYmsz1n.js +1 -0
  41. package/dist/packem_shared/BunS3MetaStorage-BSn6Qfnf.js +1 -0
  42. package/dist/packem_shared/BunS3Storage-DNvimm9e.js +1 -0
  43. package/dist/packem_shared/BunnyFile-BgEOlcYI.js +1 -0
  44. package/dist/packem_shared/BunnyMetaStorage-BSn6Qfnf.js +1 -0
  45. package/dist/packem_shared/BunnyStorage-C7d0opLL.js +1 -0
  46. package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +1 -0
  47. package/dist/packem_shared/CloudinaryMetaStorage-DPVnmNe5.js +1 -0
  48. package/dist/packem_shared/CloudinaryStorage-Dc3XA2lP.js +1 -0
  49. package/dist/packem_shared/DiskStorage-CI07TVNu.js +1 -0
  50. package/dist/packem_shared/DiskStorageWithChecksum-vFCubS6K.js +1 -0
  51. package/dist/packem_shared/DropboxFile-BFb7eOzy.js +1 -0
  52. package/dist/packem_shared/DropboxMetaStorage-BSn6Qfnf.js +1 -0
  53. package/dist/packem_shared/DropboxStorage-CY9Ggu3m.js +1 -0
  54. package/dist/packem_shared/ERRORS-BIBxE2oR.js +1 -0
  55. package/dist/packem_shared/File-W8aOo15X.js +1 -0
  56. package/dist/packem_shared/Files-CpIcMjP0.js +1 -0
  57. package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +1 -0
  58. package/dist/packem_shared/FirebaseMetaStorage-DPVnmNe5.js +1 -0
  59. package/dist/packem_shared/FirebaseStorage-D6O9CJXN.js +2 -0
  60. package/dist/packem_shared/FtpFile-ClWDYnt2.js +1 -0
  61. package/dist/packem_shared/FtpMetaStorage-BSn6Qfnf.js +1 -0
  62. package/dist/packem_shared/FtpStorage-DbEjbq8z.js +1 -0
  63. package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
  64. package/dist/packem_shared/GCSFile-Cero7qZN.js +1 -0
  65. package/dist/packem_shared/GCSMetaStorage-BuPA0DDW.js +1 -0
  66. package/dist/packem_shared/GCStorage-i9t5TQc1.js +1 -0
  67. package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +1 -0
  68. package/dist/packem_shared/GoogleDriveMetaStorage-Cbwa1CHV.js +1 -0
  69. package/dist/packem_shared/GoogleDriveStorage-Bklsz7Bh.js +1 -0
  70. package/dist/packem_shared/LocalMetaStorage-BhicZnNl.js +1 -0
  71. package/dist/packem_shared/MediaTransformer-D2kUsklW.js +1 -0
  72. package/dist/packem_shared/MemoryMetaStorage-Ksgh9pe7.js +1 -0
  73. package/dist/packem_shared/MemoryStorage-9gbWd09l.js +1 -0
  74. package/dist/packem_shared/MetaStorage-DPEUyWgN.js +1 -0
  75. package/dist/packem_shared/Metadata-B7CcBueg.js +1 -0
  76. package/dist/packem_shared/Multipart-CQjYqU--.js +1 -0
  77. package/dist/packem_shared/Multipart-D0ok6BBy.js +1 -0
  78. package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +1 -0
  79. package/dist/packem_shared/NetlifyBlobMetaStorage-DPVnmNe5.js +1 -0
  80. package/dist/packem_shared/NetlifyBlobStorage-CkpCCoN1.js +1 -0
  81. package/dist/packem_shared/NoOpMetrics-BLo6u4NY.js +1 -0
  82. package/dist/packem_shared/OneDriveFile-CNNJYI43.js +1 -0
  83. package/dist/packem_shared/OneDriveMetaStorage-Cbwa1CHV.js +1 -0
  84. package/dist/packem_shared/OneDriveStorage-CP6MvGAa.js +1 -0
  85. package/dist/packem_shared/OpenTelemetryMetrics-DJDQsNKp.js +1 -0
  86. package/dist/packem_shared/PocketBaseFile-DpJpxl3e.js +1 -0
  87. package/dist/packem_shared/PocketBaseMetaStorage-DOTLwVE7.js +1 -0
  88. package/dist/packem_shared/PocketBaseStorage-2qhbI2PW.js +1 -0
  89. package/dist/packem_shared/Rest-CI_BiZPv.js +1 -0
  90. package/dist/packem_shared/Rest-DvfN4-kf.js +1 -0
  91. package/dist/packem_shared/S3File-CpZrubaV.js +1 -0
  92. package/dist/packem_shared/S3MetaStorage-CMonflzp.js +1 -0
  93. package/dist/packem_shared/S3Storage-YGeNk3Tt.js +1 -0
  94. package/dist/packem_shared/SftpFile-ClWDYnt2.js +1 -0
  95. package/dist/packem_shared/SftpMetaStorage-BSn6Qfnf.js +1 -0
  96. package/dist/packem_shared/SftpStorage-2Hz396Xr.js +1 -0
  97. package/dist/packem_shared/SharePointFile-Blz9FS4h.js +1 -0
  98. package/dist/packem_shared/SharePointMetaStorage-BSn6Qfnf.js +1 -0
  99. package/dist/packem_shared/SharePointStorage-CrX2Pk6C.js +1 -0
  100. package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +1 -0
  101. package/dist/packem_shared/SupabaseMetaStorage-Cbwa1CHV.js +1 -0
  102. package/dist/packem_shared/SupabaseStorage-Dc_DBX29.js +1 -0
  103. package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +1 -0
  104. package/dist/packem_shared/Tus-BBVt2ky3.js +1 -0
  105. package/dist/packem_shared/Tus-BlBZykIL.js +1 -0
  106. package/dist/packem_shared/UploadControl-DZJhI9Wh.js +1 -0
  107. package/dist/packem_shared/UploadThingFile-BTFMpcIA.js +1 -0
  108. package/dist/packem_shared/UploadThingMetaStorage-DPVnmNe5.js +1 -0
  109. package/dist/packem_shared/UploadThingStorage-BChykYSe.js +1 -0
  110. package/dist/packem_shared/ValidationError-3B06DFyE.js +1 -0
  111. package/dist/packem_shared/VercelBlobFile-CVQwKlZk.js +1 -0
  112. package/dist/packem_shared/VercelBlobMetaStorage-BSn6Qfnf.js +1 -0
  113. package/dist/packem_shared/VercelBlobStorage-CsRyPfw3.js +1 -0
  114. package/dist/packem_shared/_commonjsHelpers-CWAkuNXM.js +1 -0
  115. package/dist/packem_shared/agentsCopyFile-Dl5iffdH.js +1 -0
  116. package/dist/packem_shared/akamai-DthkaFul.js +1 -0
  117. package/dist/packem_shared/alibaba-BEi25O1g.js +1 -0
  118. package/dist/packem_shared/approval-fVHwBp7u.js +1 -0
  119. package/dist/packem_shared/approval.d-CMAYH9GF.d.ts +75 -0
  120. package/dist/packem_shared/aws-light-meta-storage-DGrn72VJ.js +4 -0
  121. package/dist/packem_shared/azure-meta-storage-ClbEsfI4.js +1 -0
  122. package/dist/packem_shared/backblaze-m1N5NZ9q.js +1 -0
  123. package/dist/packem_shared/base-handler-core-D-9Ku1h-.js +1 -0
  124. package/dist/packem_shared/base-handler-fetch-CfkNakv8.js +1 -0
  125. package/dist/packem_shared/base-handler-node-BF1v1qDa.js +1 -0
  126. package/dist/packem_shared/cache-Cw3QjoVN.js +1 -0
  127. package/dist/packem_shared/claudeCopyFile-BX9O4ORk.js +1 -0
  128. package/dist/packem_shared/cloudflare-CdUTErlo.js +1 -0
  129. package/dist/packem_shared/copyFile-49FtxXcm.js +1 -0
  130. package/dist/packem_shared/copyFile-BUPezT_c.js +1 -0
  131. package/dist/packem_shared/createResponsesFileTools-6Tvt2PNr.js +1 -0
  132. package/dist/packem_shared/createRetryWrapper-CxgiV_hH.js +1 -0
  133. package/dist/packem_shared/detect-file-type-BA7UBLKA.js +1 -0
  134. package/dist/packem_shared/digitalOcean-B2uB6pgz.js +1 -0
  135. package/dist/packem_shared/disk-storage-CsQcYW3s.js +1 -0
  136. package/dist/packem_shared/disk-storage-with-checksum.d-B-VGEsfl.d.ts +156 -0
  137. package/dist/packem_shared/executors-BDzMjc4y.js +1 -0
  138. package/dist/packem_shared/executors.d-BZP2rWo3.d.ts +69 -0
  139. package/dist/packem_shared/exoscale-BDa1Gjth.js +1 -0
  140. package/dist/packem_shared/filebase-CsFYJIwB.js +1 -0
  141. package/dist/packem_shared/files.d-CH0iLBNC.d.ts +655 -0
  142. package/dist/packem_shared/gcs-meta-storage-B1RrMqH3.js +1 -0
  143. package/dist/packem_shared/get-file-status-y3wTtDQs.js +1 -0
  144. package/dist/packem_shared/getFormatFromContentType-DCTTPQHm.js +1 -0
  145. package/dist/packem_shared/has-content-50BsqrWw.js +1 -0
  146. package/dist/packem_shared/headers-BAiAKekR.js +26 -0
  147. package/dist/packem_shared/hetzner-BGGFiRGD.js +1 -0
  148. package/dist/packem_shared/ibmCos-j-3TfJ5p.js +1 -0
  149. package/dist/packem_shared/idriveE2-C6pQ5pQ0.js +1 -0
  150. package/dist/packem_shared/index-nZWCQrSe.js +5 -0
  151. package/dist/packem_shared/internal-D_cZIFwI.js +1 -0
  152. package/dist/packem_shared/is-expired-CBEk6XBi.js +1 -0
  153. package/dist/packem_shared/local-meta-storage-iuJnu90B.js +11 -0
  154. package/dist/packem_shared/local-meta-storage.d-D9PBfkn6.d.ts +21 -0
  155. package/dist/packem_shared/media-transformer.d-Quf4ai47.d.ts +331 -0
  156. package/dist/packem_shared/memory-storage.d-4EU1cMt1.d.ts +101 -0
  157. package/dist/packem_shared/minio-NKquuBfS.js +1 -0
  158. package/dist/packem_shared/multipart-base-BOzY19lb.js +1 -0
  159. package/dist/packem_shared/oauth-refresh-EdGzlcOZ.js +1 -0
  160. package/dist/packem_shared/oracleCloud-DslqNpn6.js +1 -0
  161. package/dist/packem_shared/ovhCloud-CMHE6uLV.js +1 -0
  162. package/dist/packem_shared/part-match-D-9dGX42.js +1 -0
  163. package/dist/packem_shared/path-0oTTdkvl-DvWvbDbh.js +1 -0
  164. package/dist/packem_shared/posix-dirname-CfpH5wZi.js +1 -0
  165. package/dist/packem_shared/response-builder-CbSA8qPa.js +1 -0
  166. package/dist/packem_shared/rest-base-e0reNDE_.js +1 -0
  167. package/dist/packem_shared/restOpenApiSpec-Csv513qf.js +1 -0
  168. package/dist/packem_shared/s3-base-storage-BoTyhuzO.js +1 -0
  169. package/dist/packem_shared/s3-base-storage.d-BQgP5B-t.d.ts +287 -0
  170. package/dist/packem_shared/scaleway-U1In3v70.js +1 -0
  171. package/dist/packem_shared/sharedErrorSchemaObject-YN65aAKj.js +1 -0
  172. package/dist/packem_shared/storage-0j5nCAUp.js +1 -0
  173. package/dist/packem_shared/storage.d-CEM1upWM.d.ts +1176 -0
  174. package/dist/packem_shared/storj-Cb59q9kF.js +1 -0
  175. package/dist/packem_shared/sync-DhR3536K.js +1 -0
  176. package/dist/packem_shared/tencent-Q1y2GENc.js +1 -0
  177. package/dist/packem_shared/tigris-BELKoyyp.js +1 -0
  178. package/dist/packem_shared/transformOpenApiSpec-CIEAgpBD.js +1 -0
  179. package/dist/packem_shared/tus-base.d-DLzKE54M.d.ts +106 -0
  180. package/dist/packem_shared/tusOpenApiSpec-D96B03t5.js +1 -0
  181. package/dist/packem_shared/types.d-Bon9GVVe.d.ts +104 -0
  182. package/dist/packem_shared/types.d-CggTCgXr.d.ts +49 -0
  183. package/dist/packem_shared/types.d-CrUWY4On.d.ts +720 -0
  184. package/dist/packem_shared/update-size-DuNuLyxj.js +1 -0
  185. package/dist/packem_shared/vultr-B491cQ4e.js +1 -0
  186. package/dist/packem_shared/waitForStorage-ByQmG4xF.js +1 -0
  187. package/dist/packem_shared/wasabi-DFrwIoab.js +1 -0
  188. package/dist/packem_shared/xhrOpenApiSpec-DQR4h6M8.js +1 -0
  189. package/dist/packem_shared/yandex-CwzHuEKP.js +1 -0
  190. package/dist/storage/aws/clients/index.d.ts +612 -6
  191. package/dist/storage/aws/clients/index.js +1 -6
  192. package/dist/storage/aws/index.d.ts +332 -4
  193. package/dist/storage/aws/index.js +1 -3
  194. package/dist/storage/aws-light/index.d.ts +259 -4
  195. package/dist/storage/aws-light/index.js +1 -3
  196. package/dist/storage/azure/index.d.ts +236 -4
  197. package/dist/storage/azure/index.js +1 -3
  198. package/dist/storage/box/index.d.ts +189 -0
  199. package/dist/storage/box/index.js +1 -0
  200. package/dist/storage/bun-s3/index.d.ts +200 -0
  201. package/dist/storage/bun-s3/index.js +1 -0
  202. package/dist/storage/bunny/index.d.ts +119 -0
  203. package/dist/storage/bunny/index.js +1 -0
  204. package/dist/storage/cloudinary/index.d.ts +121 -0
  205. package/dist/storage/cloudinary/index.js +1 -0
  206. package/dist/storage/dropbox/index.d.ts +132 -0
  207. package/dist/storage/dropbox/index.js +1 -0
  208. package/dist/storage/firebase/index.d.ts +192 -0
  209. package/dist/storage/firebase/index.js +1 -0
  210. package/dist/storage/ftp/index.d.ts +91 -0
  211. package/dist/storage/ftp/index.js +1 -0
  212. package/dist/storage/gcs/index.d.ts +195 -5
  213. package/dist/storage/gcs/index.js +1 -4
  214. package/dist/storage/google-drive/index.d.ts +148 -0
  215. package/dist/storage/google-drive/index.js +1 -0
  216. package/dist/storage/local/index.d.ts +7 -4
  217. package/dist/storage/local/index.js +1 -3
  218. package/dist/storage/memory/index.d.ts +6 -0
  219. package/dist/storage/memory/index.js +1 -0
  220. package/dist/storage/netlify-blob/index.d.ts +147 -4
  221. package/dist/storage/netlify-blob/index.js +1 -3
  222. package/dist/storage/onedrive/index.d.ts +103 -0
  223. package/dist/storage/onedrive/index.js +1 -0
  224. package/dist/storage/pocketbase/index.d.ts +172 -0
  225. package/dist/storage/pocketbase/index.js +1 -0
  226. package/dist/storage/sftp/index.d.ts +92 -0
  227. package/dist/storage/sftp/index.js +1 -0
  228. package/dist/storage/sharepoint/index.d.ts +180 -0
  229. package/dist/storage/sharepoint/index.js +1 -0
  230. package/dist/storage/supabase/index.d.ts +115 -0
  231. package/dist/storage/supabase/index.js +1 -0
  232. package/dist/storage/uploadthing/index.d.ts +95 -0
  233. package/dist/storage/uploadthing/index.js +1 -0
  234. package/dist/storage/vercel-blob/index.d.ts +189 -4
  235. package/dist/storage/vercel-blob/index.js +1 -3
  236. package/dist/transformer/audio-transformer.d.ts +127 -125
  237. package/dist/transformer/audio-transformer.js +1 -278
  238. package/dist/transformer/image-transformer.d.ts +573 -568
  239. package/dist/transformer/image-transformer.js +1 -1100
  240. package/dist/transformer/index.d.ts +62 -5
  241. package/dist/transformer/index.js +1 -4
  242. package/dist/transformer/video-transformer.d.ts +144 -142
  243. package/dist/transformer/video-transformer.js +1 -310
  244. package/package.json +218 -67
  245. package/dist/handler/base/base-handler-core.d.ts +0 -91
  246. package/dist/handler/base/base-handler-fetch.d.ts +0 -76
  247. package/dist/handler/base/base-handler-node.d.ts +0 -137
  248. package/dist/handler/multipart/multipart-base.d.ts +0 -84
  249. package/dist/handler/multipart/multipart-fetch.d.ts +0 -64
  250. package/dist/handler/multipart/multipart.d.ts +0 -49
  251. package/dist/handler/rest/rest-base.d.ts +0 -106
  252. package/dist/handler/rest/rest-fetch.d.ts +0 -88
  253. package/dist/handler/rest/rest.d.ts +0 -93
  254. package/dist/handler/tus/tus-base.d.ts +0 -152
  255. package/dist/handler/tus/tus-fetch.d.ts +0 -72
  256. package/dist/handler/tus/tus.d.ts +0 -78
  257. package/dist/handler/types.d.ts +0 -53
  258. package/dist/handler/utils/request-parser.d.ts +0 -72
  259. package/dist/handler/utils/response-builder.d.ts +0 -83
  260. package/dist/handler/utils/storage-utils.d.ts +0 -10
  261. package/dist/handler/utils/stream-utils.d.ts +0 -29
  262. package/dist/handler/utils/upload-handlers.d.ts +0 -76
  263. package/dist/metrics/index.d.ts +0 -2
  264. package/dist/metrics/no-op-metrics.d.ts +0 -15
  265. package/dist/metrics/opentelemetry-metrics.d.ts +0 -55
  266. package/dist/openapi/rest.d.ts +0 -7
  267. package/dist/openapi/shared.d.ts +0 -13
  268. package/dist/openapi/transform.d.ts +0 -3
  269. package/dist/openapi/tus.d.ts +0 -7
  270. package/dist/openapi/xhr.d.ts +0 -7
  271. package/dist/packem_shared/AwsLightFile-tTneXZgG.js +0 -11
  272. package/dist/packem_shared/AwsLightMetaStorage-BWSOtVaN.js +0 -4
  273. package/dist/packem_shared/AwsLightStorage-Blv-GP4v.js +0 -133
  274. package/dist/packem_shared/AzureFile-CesgFzps.js +0 -8
  275. package/dist/packem_shared/AzureSMetaStorage-CFs-OYJT.js +0 -88
  276. package/dist/packem_shared/AzureStorage-B0v048hG.js +0 -357
  277. package/dist/packem_shared/BaseTransformer-C2gLib6v.js +0 -82
  278. package/dist/packem_shared/DiskStorage-Ck5yGQsq.js +0 -12
  279. package/dist/packem_shared/DiskStorageWithChecksum-BRl-V5x2.js +0 -238
  280. package/dist/packem_shared/ERRORS-D0apMqnc.js +0 -97
  281. package/dist/packem_shared/File-Bb3P23dr.js +0 -69
  282. package/dist/packem_shared/GCSConfig-vPP22kN6.js +0 -11
  283. package/dist/packem_shared/GCSFile-BIEunhAN.js +0 -8
  284. package/dist/packem_shared/GCSMetaStorage-CHZKMe7N.js +0 -7
  285. package/dist/packem_shared/GCStorage-C-gAuP0j.js +0 -406
  286. package/dist/packem_shared/LocalMetaStorage-CZHhKkMd.js +0 -7
  287. package/dist/packem_shared/MediaTransformer-D6658DL1.js +0 -1197
  288. package/dist/packem_shared/MetaStorage-pECeFOad.js +0 -46
  289. package/dist/packem_shared/Metadata-DRLXeJ0F.js +0 -89
  290. package/dist/packem_shared/Multipart-CRV21AUU.js +0 -128
  291. package/dist/packem_shared/Multipart-D2ryPMjD.js +0 -163
  292. package/dist/packem_shared/NetlifyBlobFile-CXzyjqrD.js +0 -14
  293. package/dist/packem_shared/NetlifyBlobMetaStorage-DxZ5aDvD.js +0 -9
  294. package/dist/packem_shared/NetlifyBlobStorage-CLPtjHqd.js +0 -376
  295. package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +0 -10
  296. package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +0 -67
  297. package/dist/packem_shared/Rest-DcxBMBjU.js +0 -228
  298. package/dist/packem_shared/Rest-DjwU3puo.js +0 -267
  299. package/dist/packem_shared/S3File-DZiyk9Qt.js +0 -11
  300. package/dist/packem_shared/S3MetaStorage-Dz9aDabA.js +0 -76
  301. package/dist/packem_shared/S3Storage-DHmTk-hU.js +0 -316
  302. package/dist/packem_shared/TUS_RESUMABLE-Dtfsffnj.js +0 -434
  303. package/dist/packem_shared/Tus-DFVlZHaX.js +0 -200
  304. package/dist/packem_shared/Tus-DaN0FmOy.js +0 -195
  305. package/dist/packem_shared/ValidationError-BfF1aE4h.js +0 -26
  306. package/dist/packem_shared/VercelBlobFile-BCg4aTEq.js +0 -18
  307. package/dist/packem_shared/VercelBlobMetaStorage-Bd9F-VFm.js +0 -9
  308. package/dist/packem_shared/VercelBlobStorage-DD9LMOS6.js +0 -261
  309. package/dist/packem_shared/_commonjsHelpers-BqLXS_qQ.js +0 -5
  310. package/dist/packem_shared/aws-light-meta-storage-DKJBgbR6.js +0 -446
  311. package/dist/packem_shared/backblaze-BlMnIcBC.js +0 -20
  312. package/dist/packem_shared/base-handler-core-BoAqTyz7.js +0 -303
  313. package/dist/packem_shared/base-handler-fetch-D4u2xits.js +0 -291
  314. package/dist/packem_shared/base-handler-node-DGzcHHAy.js +0 -730
  315. package/dist/packem_shared/cache-B88MXQ_2.js +0 -18
  316. package/dist/packem_shared/cloudflare-Bi1q8wXE.js +0 -21
  317. package/dist/packem_shared/defaultCloudStorageFileNameValidation-DUuacjWv.js +0 -11
  318. package/dist/packem_shared/digitalOcean-CWQRJM3L.js +0 -21
  319. package/dist/packem_shared/disk-storage-CD47QI30.js +0 -810
  320. package/dist/packem_shared/gcs-meta-storage-CJ8Uts_d.js +0 -158
  321. package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
  322. package/dist/packem_shared/headers-YLRp1dLo.js +0 -1318
  323. package/dist/packem_shared/is-expired-CTThU1q5.js +0 -8
  324. package/dist/packem_shared/isRetryableError-Dycp7127.js +0 -82
  325. package/dist/packem_shared/isValidMediaType-BeDgiObq.js +0 -35
  326. package/dist/packem_shared/local-meta-storage-By-3SNBI.js +0 -649
  327. package/dist/packem_shared/minio-C2YBZQOw.js +0 -22
  328. package/dist/packem_shared/multipart-base-C994naBi.js +0 -102
  329. package/dist/packem_shared/part-match-BMNqHDYD.js +0 -96
  330. package/dist/packem_shared/path-CR6YkPXX-7R1-9CMk.js +0 -161
  331. package/dist/packem_shared/response-builder-BtnRiBUI.js +0 -45
  332. package/dist/packem_shared/rest-base-D9URIFkc.js +0 -457
  333. package/dist/packem_shared/restOpenApiSpec-D1JC_Jto.js +0 -800
  334. package/dist/packem_shared/s3-base-storage-C1DIHTYY.js +0 -510
  335. package/dist/packem_shared/sharedGet-Cpo7QUyu.js +0 -1019
  336. package/dist/packem_shared/storage-C6NSXb8h.js +0 -1175
  337. package/dist/packem_shared/tigris-Hac8TKnX.js +0 -21
  338. package/dist/packem_shared/transformOpenApiSpec-DWM5WtnN.js +0 -975
  339. package/dist/packem_shared/tusOpenApiSpec-mBZkl7he.js +0 -740
  340. package/dist/packem_shared/update-size-CCGm6i1J.js +0 -8
  341. package/dist/packem_shared/validator-BeX_lJet.js +0 -78
  342. package/dist/packem_shared/waitForStorage-Cscw85sx.js +0 -18
  343. package/dist/packem_shared/wasabi-DIyflHSd.js +0 -21
  344. package/dist/packem_shared/xhrOpenApiSpec-B1V5Dxrj.js +0 -264
  345. package/dist/storage/aws/clients/backblaze.d.ts +0 -12
  346. package/dist/storage/aws/clients/cloudflare.d.ts +0 -13
  347. package/dist/storage/aws/clients/digital-ocean.d.ts +0 -12
  348. package/dist/storage/aws/clients/minio.d.ts +0 -13
  349. package/dist/storage/aws/clients/tigris.d.ts +0 -12
  350. package/dist/storage/aws/clients/types.d.ts +0 -95
  351. package/dist/storage/aws/clients/wasabi.d.ts +0 -12
  352. package/dist/storage/aws/s3-base-storage.d.ts +0 -248
  353. package/dist/storage/aws/s3-client-adapter.d.ts +0 -110
  354. package/dist/storage/aws/s3-file.d.ts +0 -10
  355. package/dist/storage/aws/s3-meta-storage.d.ts +0 -15
  356. package/dist/storage/aws/s3-storage.d.ts +0 -70
  357. package/dist/storage/aws/types.d.ts +0 -119
  358. package/dist/storage/aws-light/aws-light-api-adapter.d.ts +0 -130
  359. package/dist/storage/aws-light/aws-light-file.d.ts +0 -10
  360. package/dist/storage/aws-light/aws-light-meta-storage.d.ts +0 -19
  361. package/dist/storage/aws-light/aws-light-storage.d.ts +0 -65
  362. package/dist/storage/aws-light/types.d.ts +0 -37
  363. package/dist/storage/azure/azure-file.d.ts +0 -6
  364. package/dist/storage/azure/azure-meta-storage.d.ts +0 -15
  365. package/dist/storage/azure/azure-storage.d.ts +0 -69
  366. package/dist/storage/azure/types.d.ts +0 -62
  367. package/dist/storage/gcs/fetch-error.d.ts +0 -11
  368. package/dist/storage/gcs/gcs-config.d.ts +0 -2
  369. package/dist/storage/gcs/gcs-file.d.ts +0 -6
  370. package/dist/storage/gcs/gcs-meta-storage.d.ts +0 -27
  371. package/dist/storage/gcs/gcs-storage.d.ts +0 -91
  372. package/dist/storage/gcs/types.d.ts +0 -55
  373. package/dist/storage/gcs/utils.d.ts +0 -7
  374. package/dist/storage/local/disk-storage-with-checksum.d.ts +0 -15
  375. package/dist/storage/local/disk-storage.d.ts +0 -135
  376. package/dist/storage/local/local-meta-storage.d.ts +0 -32
  377. package/dist/storage/meta-storage.d.ts +0 -30
  378. package/dist/storage/netlify-blob/netlify-blob-file.d.ts +0 -12
  379. package/dist/storage/netlify-blob/netlify-blob-meta-storage.d.ts +0 -7
  380. package/dist/storage/netlify-blob/netlify-blob-storage.d.ts +0 -93
  381. package/dist/storage/netlify-blob/types.d.ts +0 -30
  382. package/dist/storage/storage.d.ts +0 -353
  383. package/dist/storage/types.d.ts +0 -221
  384. package/dist/storage/utils/file/file.d.ts +0 -25
  385. package/dist/storage/utils/file/get-file-status.d.ts +0 -9
  386. package/dist/storage/utils/file/has-content.d.ts +0 -9
  387. package/dist/storage/utils/file/index.d.ts +0 -10
  388. package/dist/storage/utils/file/is-expired.d.ts +0 -8
  389. package/dist/storage/utils/file/metadata.d.ts +0 -18
  390. package/dist/storage/utils/file/part-match.d.ts +0 -11
  391. package/dist/storage/utils/file/types.d.ts +0 -37
  392. package/dist/storage/utils/file/update-metadata.d.ts +0 -10
  393. package/dist/storage/utils/file/update-size.d.ts +0 -10
  394. package/dist/storage/vercel-blob/types.d.ts +0 -32
  395. package/dist/storage/vercel-blob/vercel-blob-file.d.ts +0 -16
  396. package/dist/storage/vercel-blob/vercel-blob-meta-storage.d.ts +0 -7
  397. package/dist/storage/vercel-blob/vercel-blob-storage.d.ts +0 -76
  398. package/dist/transformer/base-transformer.d.ts +0 -63
  399. package/dist/transformer/media-transformer.d.ts +0 -332
  400. package/dist/transformer/types.d.ts +0 -652
  401. package/dist/transformer/utils.d.ts +0 -33
  402. package/dist/transformer/validation-error.d.ts +0 -23
  403. package/dist/utils/cache.d.ts +0 -32
  404. package/dist/utils/chunked-upload.d.ts +0 -65
  405. package/dist/utils/detect-file-type.d.ts +0 -28
  406. package/dist/utils/errors.d.ts +0 -74
  407. package/dist/utils/file-path-url-matcher.d.ts +0 -18
  408. package/dist/utils/headers.d.ts +0 -111
  409. package/dist/utils/http.d.ts +0 -92
  410. package/dist/utils/locker.d.ts +0 -26
  411. package/dist/utils/pipes/stream-checksum.d.ts +0 -47
  412. package/dist/utils/pipes/stream-length.d.ts +0 -22
  413. package/dist/utils/primitives/get-last-one.d.ts +0 -3
  414. package/dist/utils/primitives/is-record.d.ts +0 -2
  415. package/dist/utils/primitives/map-values.d.ts +0 -9
  416. package/dist/utils/primitives/pick.d.ts +0 -2
  417. package/dist/utils/primitives/to-milliseconds.d.ts +0 -12
  418. package/dist/utils/primitives/to-seconds.d.ts +0 -12
  419. package/dist/utils/range-checksum.d.ts +0 -33
  420. package/dist/utils/range-hasher.d.ts +0 -46
  421. package/dist/utils/retry.d.ts +0 -64
  422. package/dist/utils/types.d.ts +0 -108
  423. package/dist/utils/validation-error.d.ts +0 -22
  424. package/dist/utils/validator.d.ts +0 -36
@@ -1,152 +0,0 @@
1
- import type { Checksum, FileInit, UploadFile } from "../../storage/utils/index.d.ts";
2
- import { Metadata } from "../../storage/utils/index.d.ts";
3
- import type { Headers } from "../../utils/types.d.ts";
4
- import type { ResponseFile } from "../types.d.ts";
5
- /**
6
- * Parse TUS protocol metadata string into object.
7
- * @param encoded Base64-encoded metadata string (optional, defaults to empty string)
8
- * @returns Parsed metadata object with decoded values
9
- */
10
- export declare const parseMetadata: (encoded?: string) => Metadata;
11
- /**
12
- * Serialize metadata object to TUS protocol format.
13
- * @param object Metadata object to serialize
14
- * @returns Base64-encoded metadata string in TUS format
15
- */
16
- export declare const serializeMetadata: (object: Metadata | Record<string, unknown> | undefined) => string;
17
- /**
18
- * Base class containing shared TUS protocol business logic.
19
- * Platform-agnostic - contains no Node.js or Web API specific code.
20
- * @template TFile The file type used by this handler.
21
- */
22
- export declare abstract class TusBase<TFile extends UploadFile> {
23
- /**
24
- * Storage instance for file operations.
25
- */
26
- protected get storage(): {
27
- checkIfExpired: (file: TFile) => Promise<void>;
28
- checksumTypes: string[];
29
- config: {
30
- useRelativeLocation?: boolean;
31
- };
32
- create: (config: FileInit) => Promise<TFile>;
33
- delete: (options: {
34
- id: string;
35
- }) => Promise<TFile>;
36
- getMeta: (id: string) => Promise<TFile>;
37
- getStream?: (options: {
38
- id: string;
39
- }) => Promise<{
40
- size?: number;
41
- stream: unknown;
42
- }>;
43
- maxUploadSize: number;
44
- tusExtension: string[];
45
- update: (options: {
46
- id: string;
47
- }, updates: {
48
- id?: string;
49
- metadata?: Record<string, unknown>;
50
- size?: number;
51
- }) => Promise<TFile>;
52
- write: (options: {
53
- body: unknown;
54
- checksum?: string;
55
- checksumAlgorithm?: string;
56
- contentLength: number;
57
- id: string;
58
- start: number;
59
- }) => Promise<TFile>;
60
- };
61
- /**
62
- * Whether to disable termination for finished uploads.
63
- * Must be implemented by subclasses via getter.
64
- */
65
- protected abstract get disableTerminationForFinishedUploads(): boolean;
66
- /**
67
- * Build file URL from request URL and file data.
68
- * @param _requestUrl Request URL string
69
- * @param _file File object containing ID
70
- * @returns Constructed file URL for TUS protocol
71
- */
72
- protected buildFileUrl(_requestUrl: string, _file: TFile): string;
73
- /**
74
- * Handle OPTIONS request with TUS protocol capabilities.
75
- * @param methods Array of supported HTTP methods
76
- * @returns ResponseFile with TUS headers
77
- */
78
- handleOptions(methods: string[]): ResponseFile<TFile>;
79
- /**
80
- * Handle TUS POST (create upload).
81
- * @param uploadLength Upload length header value
82
- * @param uploadDeferLength Upload defer length header value
83
- * @param uploadConcat Upload concat header value
84
- * @param metadataHeader Upload metadata header value
85
- * @param requestUrl Request URL for Location header
86
- * @param bodyStream Request body stream (for creation-with-upload)
87
- * @param contentLength Content length (for creation-with-upload)
88
- * @param contentType Content type (for creation-with-upload)
89
- * @returns Promise resolving to ResponseFile with upload result
90
- */
91
- handlePost(uploadLength: string | undefined, uploadDeferLength: string | undefined, uploadConcat: string | undefined, metadataHeader: string | undefined, requestUrl: string, bodyStream: unknown, contentLength: number, contentType: string): Promise<ResponseFile<TFile>>;
92
- /**
93
- * Handle TUS PATCH (write chunk).
94
- * @param id File ID from URL
95
- * @param uploadOffset Upload offset header value
96
- * @param uploadLength Optional upload length header value (for defer-length)
97
- * @param metadataHeader Optional upload metadata header value
98
- * @param checksum Optional checksum
99
- * @param checksumAlgorithm Optional checksum algorithm
100
- * @param requestUrl Request URL for Location header
101
- * @param bodyStream Request body stream
102
- * @param contentLength Content length
103
- * @returns Promise resolving to ResponseFile with upload progress
104
- */
105
- handlePatch(id: string, uploadOffset: number, uploadLength: string | undefined, metadataHeader: string | undefined, checksum: string | undefined, checksumAlgorithm: string | undefined, _requestUrl: string, bodyStream: unknown, contentLength: number): Promise<ResponseFile<TFile>>;
106
- /**
107
- * Handle TUS HEAD (get upload status).
108
- * @param id File ID from URL
109
- * @returns Promise resolving to ResponseFile with upload status headers
110
- */
111
- handleHead(id: string): Promise<ResponseFile<TFile>>;
112
- /**
113
- * Handle TUS GET (get upload metadata).
114
- * @param id File ID from URL
115
- * @returns Promise resolving to ResponseFile with file metadata as JSON
116
- */
117
- handleGet(id: string): Promise<ResponseFile<TFile>>;
118
- /**
119
- * Handle TUS DELETE (terminate upload).
120
- * @param id File ID from URL
121
- * @returns Promise resolving to ResponseFile with deletion confirmation
122
- */
123
- handleDelete(id: string): Promise<ResponseFile<TFile>>;
124
- /**
125
- * Build TUS protocol headers including required Tus-Resumable and optional Upload-Expires.
126
- * @param file Upload file object with metadata
127
- * @param headers Additional headers to include
128
- * @returns Headers object with TUS protocol headers
129
- */
130
- protected buildHeaders(file: UploadFile, headers?: Headers): Headers;
131
- /**
132
- * Extract checksum algorithm and value from Upload-Checksum header.
133
- * @param checksumHeader Upload-Checksum header value
134
- * @returns Object containing checksum algorithm and value
135
- */
136
- extractChecksum(checksumHeader: string | undefined): Checksum;
137
- /**
138
- * Validate Tus-Resumable header value.
139
- * @param tusResumable Tus-Resumable header value
140
- * @throws {Error} 412 if version doesn't match or header is missing
141
- */
142
- validateTusResumableHeader(tusResumable: string | undefined): void;
143
- /**
144
- * Concatenate partial uploads into a final upload.
145
- * @param finalFile Final file that will contain concatenated content
146
- * @param partialFiles Array of partial upload files to concatenate
147
- * @returns Promise resolving when concatenation is complete
148
- */
149
- protected concatenateFiles(finalFile: TFile, partialFiles: TFile[]): Promise<void>;
150
- }
151
- export declare const TUS_RESUMABLE: string;
152
- export declare const TUS_VERSION: string;
@@ -1,72 +0,0 @@
1
- import type { UploadFile } from "../../storage/utils/index.d.ts";
2
- import BaseHandlerFetch from "../base/base-handler-fetch.d.ts";
3
- import type { Handlers, ResponseFile, UploadOptions } from "../types.d.ts";
4
- export { TUS_RESUMABLE, TUS_VERSION } from "./tus-base.d.ts";
5
- /**
6
- * TUS resumable upload protocol handler (Web API Fetch version).
7
- *
8
- * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
9
- * @example
10
- * ```ts
11
- * const tus = new TusFetch({storage});
12
- *
13
- * // Use with Hono, Cloudflare Workers, etc.
14
- * app.all('/files/*', async (c) => {
15
- * return tus.fetch(c.req.raw);
16
- * });
17
- * ```
18
- */
19
- export declare class Tus<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
20
- /**
21
- * Limiting enabled http method handler
22
- */
23
- static readonly methods: Handlers[];
24
- private readonly tusBase;
25
- constructor(options: UploadOptions<TFile>);
26
- /**
27
- * Handle OPTIONS requests with TUS protocol capabilities.
28
- * @returns Promise resolving to ResponseFile with TUS headers
29
- */
30
- options(): Promise<ResponseFile<TFile>>;
31
- /**
32
- * Creates a new TUS upload and optionally starts uploading data.
33
- * @param request Web API Request with TUS headers.
34
- * @returns Promise resolving to ResponseFile with upload location and offset.
35
- */
36
- post(request: Request): Promise<ResponseFile<TFile>>;
37
- /**
38
- * Write a chunk of data to an existing TUS upload.
39
- * @param request Web API Request with chunk data and TUS headers
40
- * @returns Promise resolving to ResponseFile with updated offset
41
- */
42
- patch(request: Request): Promise<ResponseFile<TFile>>;
43
- /**
44
- * Get current upload offset and metadata for TUS resumable uploads.
45
- * @param request Web API Request with upload ID
46
- * @returns Promise resolving to ResponseFile with upload-offset and metadata headers
47
- */
48
- head(request: Request): Promise<ResponseFile<TFile>>;
49
- /**
50
- * Get TUS upload metadata and current status.
51
- * @param request Web API Request with upload ID
52
- * @returns Promise resolving to ResponseFile with file metadata as JSON
53
- */
54
- get(request: Request): Promise<ResponseFile<TFile>>;
55
- /**
56
- * Delete a TUS upload and its associated data.
57
- * @param request Web API Request with upload ID
58
- * @returns Promise resolving to ResponseFile with deletion confirmation
59
- */
60
- delete(request: Request): Promise<ResponseFile<TFile>>;
61
- /**
62
- * Compose and register HTTP method handlers.
63
- */
64
- protected compose(): void;
65
- /**
66
- * Build file URL for TUS uploads (without file extension).
67
- * @param requestUrl Request URL string
68
- * @param file File object containing ID
69
- * @returns Constructed file URL for TUS protocol
70
- */
71
- protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
72
- }
@@ -1,78 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { UploadFile } from "../../storage/utils/index.d.ts";
3
- import type { UploadResponse } from "../../utils/types.d.ts";
4
- import BaseHandlerNode from "../base/base-handler-node.d.ts";
5
- import type { Handlers, ResponseFile, UploadOptions } from "../types.d.ts";
6
- export { TUS_RESUMABLE, TUS_VERSION } from "./tus-base.d.ts";
7
- /**
8
- * TUS resumable upload protocol handler (Node.js version).
9
- *
10
- * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
11
- * @example
12
- * ```ts
13
- * const tus = new Tus({storage});
14
- *
15
- * app.all('/files', tus.handle);
16
- * ```
17
- */
18
- export declare class Tus<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
19
- /**
20
- * Limiting enabled http method handler
21
- */
22
- static readonly methods: Handlers[];
23
- disableTerminationForFinishedUploads: boolean;
24
- private readonly tusBase;
25
- constructor(options: UploadOptions<TFile>);
26
- /**
27
- * Handle OPTIONS requests with TUS protocol capabilities.
28
- * @returns Promise resolving to ResponseFile with TUS headers
29
- */
30
- options(): Promise<ResponseFile<TFile>>;
31
- /**
32
- * Creates a new TUS upload and optionally starts uploading data.
33
- * @param request Node.js IncomingMessage with TUS headers.
34
- * @returns Promise resolving to ResponseFile with upload location and offset.
35
- */
36
- post(request: NodeRequest): Promise<ResponseFile<TFile>>;
37
- /**
38
- * Write a chunk of data to an existing TUS upload.
39
- * @param request Node.js IncomingMessage with chunk data and TUS headers
40
- * @returns Promise resolving to ResponseFile with updated offset
41
- */
42
- patch(request: NodeRequest): Promise<ResponseFile<TFile>>;
43
- /**
44
- * Get current upload offset and metadata for TUS resumable uploads.
45
- * @param request Node.js IncomingMessage with upload ID
46
- * @returns Promise resolving to ResponseFile with upload-offset and metadata headers
47
- */
48
- head(request: NodeRequest): Promise<ResponseFile<TFile>>;
49
- /**
50
- * Get TUS upload metadata and current status.
51
- * @param request Node.js IncomingMessage with upload ID
52
- * @returns Promise resolving to ResponseFile with file metadata as JSON
53
- */
54
- get(request: NodeRequest): Promise<ResponseFile<TFile>>;
55
- /**
56
- * Delete a TUS upload and its associated data.
57
- * @param request Node.js IncomingMessage with upload ID
58
- * @returns Promise resolving to ResponseFile with deletion confirmation
59
- */
60
- delete(request: NodeRequest): Promise<ResponseFile<TFile>>;
61
- /**
62
- * Send TUS protocol response with required headers.
63
- * @param response Node.js ServerResponse to send response to
64
- * @param uploadResponse Response data with body, headers, and status code
65
- */
66
- send(response: NodeResponse, { body, headers, statusCode }: UploadResponse): void;
67
- /**
68
- * Compose and register HTTP method handlers.
69
- */
70
- protected compose(): void;
71
- /**
72
- * Build file URL for TUS uploads (without file extension).
73
- * @param requestUrl Request URL string
74
- * @param file File object containing ID
75
- * @returns Constructed file URL for TUS protocol
76
- */
77
- protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
78
- }
@@ -1,53 +0,0 @@
1
- import type { EventEmitter } from "node:events";
2
- import type { IncomingMessage } from "node:http";
3
- import type { Readable } from "node:stream";
4
- import type { PaginationResult } from "@visulima/pagination";
5
- import type { BaseStorage } from "../storage/storage.d.ts";
6
- import type { UploadEventType, UploadFile } from "../storage/utils/index.d.ts";
7
- import type MediaTransformer from "../transformer/media-transformer.d.ts";
8
- import type { UploadError } from "../utils/errors.d.ts";
9
- type WebRequest = globalThis.Request;
10
- type WebResponse = globalThis.Response;
11
- interface BaseResponse {
12
- headers: Record<string, number | string>;
13
- statusCode: number;
14
- }
15
- export interface StreamingResponse extends BaseResponse {
16
- /** Total size of the stream (for Content-Length header) */
17
- size?: number;
18
- /** Stream of data to send */
19
- stream: Readable;
20
- }
21
- export interface RequestEvent {
22
- request: Pick<IncomingMessage, "headers" | "method" | "url">;
23
- }
24
- export type AsyncHandler<Request, Response> = (request: Request, response: Response) => Promise<void | ResponseFile<UploadFile> | ResponseList<UploadFile> | StreamingResponse>;
25
- export type Handlers = "delete" | "download" | "get" | "head" | "options" | "patch" | "post" | "put";
26
- export type MethodHandler<Request, Response> = {
27
- [h in Handlers]?: AsyncHandler<Request, Response>;
28
- };
29
- export type UploadEvent<TFile extends UploadFile> = RequestEvent & TFile;
30
- export type UploadErrorEvent = RequestEvent & UploadError;
31
- export type ResponseFile<TFile extends UploadFile> = BaseResponse & TFile & {
32
- /** Optional stream for streaming responses instead of content buffer */
33
- stream?: Readable;
34
- };
35
- export type ResponseList<TFile extends UploadFile> = BaseResponse & {
36
- data: PaginationResult<TFile> | TFile[];
37
- };
38
- export interface BaseHandler<TFile extends UploadFile> extends EventEmitter {
39
- emit: ((event: "error", error: UploadErrorEvent) => boolean) & ((event: UploadEventType, payload: UploadEvent<TFile>) => boolean);
40
- fetch: (request: WebRequest) => Promise<WebResponse>;
41
- off: ((event: "error", listener: (error: UploadErrorEvent) => void) => this) & ((event: UploadEventType, listener: (payload: UploadEvent<TFile>) => void) => this);
42
- on: ((event: "error", listener: (error: UploadErrorEvent) => void) => this) & ((event: UploadEventType, listener: (payload: UploadEvent<TFile>) => void) => this);
43
- }
44
- export interface UploadOptions<TFile extends UploadFile> {
45
- disableTerminationForFinishedUploads?: boolean;
46
- /** Maximum file size for multipart parser (default: min(storage.maxUploadSize, 1GB)) */
47
- maxFileSize?: number;
48
- /** Maximum header size for multipart parser (default: 64KB) */
49
- maxHeaderSize?: number;
50
- mediaTransformer?: MediaTransformer;
51
- storage: BaseStorage<TFile>;
52
- }
53
- export {};
@@ -1,72 +0,0 @@
1
- import type { IncomingMessage } from "node:http";
2
- import type { FileInit } from "../../storage/utils/index.d.ts";
3
- /**
4
- * Parses metadata from X-File-Metadata header.
5
- * @param request The HTTP request
6
- * @param existingMetadata Existing metadata to merge with (optional)
7
- * @returns Parsed metadata object
8
- */
9
- export declare const parseMetadata: (request: IncomingMessage, existingMetadata?: Record<string, unknown>) => Record<string, unknown>;
10
- /**
11
- * Parses filename from Content-Disposition header value string.
12
- * Uses a safer parsing approach to avoid ReDoS vulnerabilities.
13
- * @param contentDisposition The Content-Disposition header value
14
- * @returns Filename if found, undefined otherwise
15
- */
16
- export declare const parseContentDispositionValue: (contentDisposition: string | null | undefined) => string | undefined;
17
- /**
18
- * Parses filename from Content-Disposition header.
19
- * Uses a safer parsing approach to avoid ReDoS vulnerabilities.
20
- * @param request The HTTP request
21
- * @returns Filename if found, undefined otherwise
22
- */
23
- export declare const parseContentDisposition: (request: IncomingMessage) => string | undefined;
24
- /**
25
- * Parses chunked upload headers (X-Chunk-Offset, X-Total-Size, etc.).
26
- * @param request The HTTP request
27
- * @returns Object with chunk offset, total size, and chunked upload flag
28
- */
29
- export declare const parseChunkHeaders: (request: IncomingMessage) => {
30
- chunkOffset?: number;
31
- isChunkedUpload: boolean;
32
- totalSize?: number;
33
- };
34
- /**
35
- * Validates that a request has a body.
36
- * @param request The HTTP request
37
- * @param allowEmptyForChunked Whether to allow empty body for chunked uploads
38
- * @throws {HttpError} If body is required but missing
39
- */
40
- export declare const validateRequestBody: (request: IncomingMessage, allowEmptyForChunked?: boolean) => void;
41
- /**
42
- * Validates Content-Length header.
43
- * @param request The HTTP request
44
- * @param allowZeroForChunked Whether to allow zero length for chunked uploads
45
- * @param maxSize Maximum allowed size
46
- * @returns Parsed content length
47
- * @throws {HttpError} If Content-Length is invalid or exceeds max size
48
- */
49
- export declare const validateContentLength: (request: IncomingMessage, allowZeroForChunked?: boolean, maxSize?: number) => number;
50
- /**
51
- * Extracts file initialization config from request headers.
52
- * @param request The HTTP request
53
- * @param contentLength The content length (already validated)
54
- * @param contentType The content type (default: application/octet-stream)
55
- * @returns FileInit configuration object
56
- */
57
- export declare const extractFileInit: (request: IncomingMessage, contentLength: number, contentType?: string) => FileInit;
58
- /**
59
- * Validates chunk offset and size for chunked uploads.
60
- * @param chunkOffset The chunk offset
61
- * @param contentLength The chunk content length
62
- * @param totalSize The total file size
63
- * @throws {HttpError} If validation fails
64
- */
65
- export declare const validateChunk: (chunkOffset: number, contentLength: number, totalSize: number) => void;
66
- /**
67
- * Gets content type from request headers with fallback.
68
- * @param request The HTTP request
69
- * @param fallback Default content type if not found (default: application/octet-stream)
70
- * @returns Content type string
71
- */
72
- export declare const getContentType: (request: IncomingMessage, fallback?: string) => string;
@@ -1,83 +0,0 @@
1
- import type { UploadFile } from "../../storage/utils/index.d.ts";
2
- import type { Header } from "../../utils/types.d.ts";
3
- import type { ResponseFile } from "../types.d.ts";
4
- /**
5
- * Builds a standard ResponseFile from a file object and headers.
6
- * @param file The file object to convert to a response
7
- * @param headers Additional headers to include
8
- * @param statusCode HTTP status code (default: 200)
9
- * @returns ResponseFile with file data and headers
10
- */
11
- export declare const buildResponseFile: <TFile extends UploadFile>(file: TFile, headers?: Record<string, string | number>, statusCode?: number) => ResponseFile<TFile>;
12
- /**
13
- * Builds standard file headers including Location, expiration, and ETag.
14
- * @param file The file object
15
- * @param locationUrl The Location header URL
16
- * @param additionalHeaders Additional headers to merge in
17
- * @returns Headers object with standard file headers
18
- */
19
- export declare const buildFileHeaders: <TFile extends UploadFile>(file: TFile, locationUrl: string, additionalHeaders?: Record<string, string | number>) => Record<string, string | number>;
20
- /**
21
- * Builds chunked upload headers for progress tracking.
22
- * @param file The file object with chunked upload metadata
23
- * @param isComplete Whether the upload is complete
24
- * @returns Headers object with chunked upload progress headers
25
- */
26
- export declare const buildChunkedUploadHeaders: <TFile extends UploadFile>(file: TFile, isComplete: boolean) => Record<string, string | number>;
27
- /**
28
- * Builds a Location header URL for a file.
29
- * @param requestUrl The request URL or originalUrl
30
- * @param fileId The file ID
31
- * @param contentType The file content type (for extension)
32
- * @param useRelativeLocation Whether to use relative URLs
33
- * @param baseUrl The base URL (for absolute URLs)
34
- * @returns Location URL string
35
- */
36
- export declare const buildLocationHeader: (requestUrl: string | undefined, fileId: string, contentType: string, useRelativeLocation: boolean, baseUrl?: string) => string;
37
- /**
38
- * Builds standard file metadata headers for HEAD requests.
39
- * @param file The file object
40
- * @returns Headers object with file metadata
41
- */
42
- export declare const buildFileMetadataHeaders: <TFile extends UploadFile>(file: TFile) => Record<string, string | number>;
43
- /**
44
- * Converts headers from Record format to string format, handling arrays.
45
- * @param headers Headers object that may contain arrays
46
- * @returns Headers object with all values as strings
47
- */
48
- export declare const convertHeadersToString: (headers: Record<string, Header>) => Record<string, string>;
49
- /**
50
- * Builds an error response body in standard format.
51
- * @param error The error object
52
- * @returns Error response body object
53
- */
54
- export declare const buildErrorResponseBody: (error: {
55
- code?: string;
56
- message?: string;
57
- name?: string;
58
- }) => {
59
- error: {
60
- code: string;
61
- message: string;
62
- name: string;
63
- };
64
- };
65
- /**
66
- * Prepares response body and headers for sending, handling different body types.
67
- * @param body The response body (string, Buffer, or object)
68
- * @param headers Existing headers
69
- * @returns Object with prepared data and headers
70
- */
71
- export declare const prepareResponseBody: (body: string | Buffer | object | undefined, headers?: Record<string, string | number>) => {
72
- data: Buffer | string;
73
- headers: Record<string, string | number>;
74
- };
75
- /**
76
- * Cleans file data for serialization by removing non-serializable properties.
77
- * @param fileData File data object
78
- * @returns Cleaned file data object
79
- */
80
- export declare const cleanFileData: <TFile extends UploadFile>(fileData: TFile & {
81
- content?: unknown;
82
- stream?: unknown;
83
- }) => Omit<TFile, "content" | "stream">;
@@ -1,10 +0,0 @@
1
- /**
2
- * Wait for storage to be ready before handling requests.
3
- * This ensures storage initialization (e.g., AWS S3, GCS) completes before processing uploads.
4
- * @param storage Storage instance with isReady property
5
- * @param timeoutMs Maximum time to wait in milliseconds (default: 5000)
6
- * @throws Error if storage doesn't become ready within timeout
7
- */
8
- export declare const waitForStorage: (storage: {
9
- isReady: boolean;
10
- }, timeoutMs?: number) => Promise<void>;
@@ -1,29 +0,0 @@
1
- import type { ServerResponse } from "node:http";
2
- import type { Readable } from "node:stream";
3
- /**
4
- * Creates a range-limited stream that properly handles backpressure.
5
- * @param sourceStream Source readable stream to limit
6
- * @param start Start byte position (inclusive)
7
- * @param end End byte position (inclusive)
8
- * @returns New readable stream limited to the specified byte range
9
- */
10
- export declare const createRangeLimitedStream: (sourceStream: Readable, start: number, end: number) => Readable;
11
- /**
12
- * Pipes streams with proper backpressure handling and error management.
13
- * @param source Source readable stream to pipe from
14
- * @param destination Destination response stream to pipe to
15
- * @param sendError Function to send error responses
16
- */
17
- export declare const pipeWithBackpressure: <TResponse extends ServerResponse>(source: Readable, destination: TResponse, sendError: (response: TResponse, error: Error) => Promise<void>) => void;
18
- /**
19
- * Creates a stream response configuration object.
20
- * @param stream The readable stream
21
- * @param size Optional total size of the stream
22
- * @param headers Optional headers to include
23
- * @returns Stream response configuration
24
- */
25
- export declare const createStreamResponse: (stream: Readable, size?: number, headers?: Record<string, string | number>) => {
26
- headers: Record<string, string | number>;
27
- size?: number;
28
- stream: Readable;
29
- };
@@ -1,76 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { Readable } from "node:stream";
3
- import type { UploadFile } from "../../storage/utils/index.d.ts";
4
- import type { ResponseBody, UploadResponse } from "../../utils/types.d.ts";
5
- import type { ResponseFile, ResponseList } from "../types.d.ts";
6
- /**
7
- * Handles HEAD/OPTIONS requests.
8
- * @param file Response file with headers and status code
9
- * @param send Function to send response
10
- */
11
- export declare const handleHeadOptionsRequest: <TFile extends UploadFile, NodeResponse extends ServerResponse>(file: ResponseFile<TFile>, send: (response: NodeResponse, data: {
12
- headers: Record<string, string | number>;
13
- statusCode: number;
14
- }) => void, response: NodeResponse) => void;
15
- /**
16
- * Handles GET requests with streaming support.
17
- * @param file Response file (may contain stream)
18
- * @param request HTTP request
19
- * @param response HTTP response
20
- * @param next Optional Express next function
21
- * @param send Function to send regular response
22
- * @param sendStream Function to send stream response
23
- * @param parseRangeHeader Function to parse range header
24
- */
25
- export declare const handleGetRequest: <TFile extends UploadFile, NodeResponse extends ServerResponse>(file: ResponseFile<TFile> | ResponseList<TFile>, request: IncomingMessage, response: NodeResponse, next: (() => void) | undefined, send: (response: NodeResponse, data: UploadResponse<ResponseBody>) => void, sendStream: (response: NodeResponse, stream: Readable, options: {
26
- headers: Record<string, string | number>;
27
- range?: {
28
- end: number;
29
- start: number;
30
- };
31
- size?: number;
32
- statusCode: number;
33
- }) => void, parseRangeHeader: (rangeHeader: string | undefined, fileSize: number) => {
34
- end: number;
35
- start: number;
36
- } | undefined) => void;
37
- /**
38
- * Handles completed upload responses.
39
- * @param file Response file
40
- * @param request HTTP request
41
- * @param response HTTP response
42
- * @param next Optional Express next function
43
- * @param storage Storage instance for onComplete hook
44
- * @param logger Optional logger
45
- * @param finish Function to finish the response
46
- */
47
- export declare const handleCompletedUpload: <TFile extends UploadFile, NodeResponse extends ServerResponse>(file: ResponseFile<TFile>, request: IncomingMessage, response: NodeResponse, next: (() => void) | undefined, storage: {
48
- onComplete: (file: TFile, responseFile: ResponseFile<TFile>, request?: IncomingMessage) => void | Promise<void>;
49
- }, logger: {
50
- error?: (message: string, error: unknown) => void;
51
- } | undefined, finish: (request: IncomingMessage, response: NodeResponse, uploadResponse: ResponseFile<TFile>) => void) => Promise<void>;
52
- /**
53
- * Handles partial upload responses.
54
- * @param file Response file
55
- * @param request HTTP request
56
- * @param response HTTP response
57
- * @param send Function to send response
58
- */
59
- export declare const handlePartialUpload: <TFile extends UploadFile, NodeResponse extends ServerResponse>(file: ResponseFile<TFile>, request: IncomingMessage, response: NodeResponse, send: (response: NodeResponse, data: {
60
- body: Buffer | string | undefined;
61
- headers: Record<string, string>;
62
- statusCode: number;
63
- }) => void) => void;
64
- /**
65
- * Handles errors during upload processing.
66
- * @param error The error that occurred
67
- * @param request HTTP request
68
- * @param emit Function to emit events
69
- * @param listenerCount Function to count event listeners
70
- * @param logger Optional logger
71
- * @param sendError Function to send error response
72
- * @param response HTTP response
73
- */
74
- export declare const handleUploadError: <NodeResponse extends ServerResponse>(error: unknown, request: IncomingMessage, emit: (event: string, data: unknown) => boolean, listenerCount: (event: string) => number, logger: {
75
- error?: (message: string, error: unknown) => void;
76
- } | undefined, sendError: (response: NodeResponse, error: Error) => Promise<void>, response: NodeResponse) => Promise<void>;
@@ -1,2 +0,0 @@
1
- export { default as NoOpMetrics } from "./no-op-metrics.d.ts";
2
- export { default as OpenTelemetryMetrics } from "./opentelemetry-metrics.d.ts";
@@ -1,15 +0,0 @@
1
- /**
2
- * No-op metrics implementation.
3
- * Used when metrics are not provided, ensuring no overhead when metrics are disabled.
4
- */
5
- import type { Metrics } from "../utils/types.d.ts";
6
- /**
7
- * No-op metrics that does nothing.
8
- * Used as a default when metrics are not provided.
9
- */
10
- declare class NoOpMetrics implements Metrics {
11
- increment(_name: string, _value?: number, _attributes?: Record<string, string | number>): void;
12
- timing(_name: string, _duration: number, _attributes?: Record<string, string | number>): void;
13
- gauge(_name: string, _value: number, _attributes?: Record<string, string | number>): void;
14
- }
15
- export default NoOpMetrics;