@visulima/storage 1.0.0-alpha.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +555 -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-Ba7cLu-t.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-DTBVxHXO.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-BFsD4qbF.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-DFwhEI9C.js +1 -0
  39. package/dist/packem_shared/BoxStorage-B_t-OVzf.js +1 -0
  40. package/dist/packem_shared/BunS3File-BcYmsz1n.js +1 -0
  41. package/dist/packem_shared/BunS3MetaStorage-DFwhEI9C.js +1 -0
  42. package/dist/packem_shared/BunS3Storage-CB_pZWlV.js +1 -0
  43. package/dist/packem_shared/BunnyFile-BgEOlcYI.js +1 -0
  44. package/dist/packem_shared/BunnyMetaStorage-DFwhEI9C.js +1 -0
  45. package/dist/packem_shared/BunnyStorage-CILSK4_Z.js +1 -0
  46. package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +1 -0
  47. package/dist/packem_shared/CloudinaryMetaStorage-D_vNzewL.js +1 -0
  48. package/dist/packem_shared/CloudinaryStorage-DiCbdAi_.js +1 -0
  49. package/dist/packem_shared/DiskStorage-Kp5t3vnF.js +1 -0
  50. package/dist/packem_shared/DiskStorageWithChecksum-Bh6w-Iu8.js +1 -0
  51. package/dist/packem_shared/DropboxFile-BFb7eOzy.js +1 -0
  52. package/dist/packem_shared/DropboxMetaStorage-DFwhEI9C.js +1 -0
  53. package/dist/packem_shared/DropboxStorage-H8bd8hEz.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-BA3mpDwz.js +1 -0
  57. package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +1 -0
  58. package/dist/packem_shared/FirebaseMetaStorage-D_vNzewL.js +1 -0
  59. package/dist/packem_shared/FirebaseStorage-Dgk4XyMr.js +2 -0
  60. package/dist/packem_shared/FtpFile-ClWDYnt2.js +1 -0
  61. package/dist/packem_shared/FtpMetaStorage-DFwhEI9C.js +1 -0
  62. package/dist/packem_shared/FtpStorage-g_DjiR-C.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-3fLTlRd4.js +1 -0
  66. package/dist/packem_shared/GCStorage-DUfwVFd3.js +1 -0
  67. package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +1 -0
  68. package/dist/packem_shared/GoogleDriveMetaStorage-DqkgoE46.js +1 -0
  69. package/dist/packem_shared/GoogleDriveStorage-D0-5egHE.js +1 -0
  70. package/dist/packem_shared/LocalMetaStorage-Bp5mVc76.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-DzSTdlAq.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-Btj2mo9r.js +1 -0
  77. package/dist/packem_shared/Multipart-C4GpuHMU.js +1 -0
  78. package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +1 -0
  79. package/dist/packem_shared/NetlifyBlobMetaStorage-D_vNzewL.js +1 -0
  80. package/dist/packem_shared/NetlifyBlobStorage-DZdCmOVW.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-DqkgoE46.js +1 -0
  84. package/dist/packem_shared/OneDriveStorage-CvJetV7_.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-CpvDRnSu.js +1 -0
  88. package/dist/packem_shared/PocketBaseStorage-BPil-koe.js +1 -0
  89. package/dist/packem_shared/Rest-BehVaxbl.js +1 -0
  90. package/dist/packem_shared/Rest-ymPCZkKR.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-wslqssvr.js +1 -0
  94. package/dist/packem_shared/SftpFile-ClWDYnt2.js +1 -0
  95. package/dist/packem_shared/SftpMetaStorage-DFwhEI9C.js +1 -0
  96. package/dist/packem_shared/SftpStorage-BVbMtS2b.js +1 -0
  97. package/dist/packem_shared/SharePointFile-Blz9FS4h.js +1 -0
  98. package/dist/packem_shared/SharePointMetaStorage-DFwhEI9C.js +1 -0
  99. package/dist/packem_shared/SharePointStorage-DWjvR5oZ.js +1 -0
  100. package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +1 -0
  101. package/dist/packem_shared/SupabaseMetaStorage-DqkgoE46.js +1 -0
  102. package/dist/packem_shared/SupabaseStorage-BiKmYKb6.js +1 -0
  103. package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +1 -0
  104. package/dist/packem_shared/Tus-BgbON_wQ.js +1 -0
  105. package/dist/packem_shared/Tus-v6jzkaIO.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-D_vNzewL.js +1 -0
  109. package/dist/packem_shared/UploadThingStorage-jrEnANC5.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-DFwhEI9C.js +1 -0
  113. package/dist/packem_shared/VercelBlobStorage-Y-cDgH30.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-EeV8gZck.js +1 -0
  124. package/dist/packem_shared/base-handler-fetch-CHzsgb7C.js +1 -0
  125. package/dist/packem_shared/base-handler-node-BjpW8pGi.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-DIn-VnCh.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-Dy37wCjI.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-C2T92TYb.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-BVg7lYf5.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-CynUg0mH.js +1 -0
  167. package/dist/packem_shared/restOpenApiSpec-Csv513qf.js +1 -0
  168. package/dist/packem_shared/s3-base-storage-DXZYN24h.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-Cyy73Y6r.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 +202 -51
  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,91 +0,0 @@
1
- import { EventEmitter } from "node:events";
2
- import type { BaseStorage } from "../../storage/storage.d.ts";
3
- import type { UploadFile } from "../../storage/utils/index.d.ts";
4
- import type MediaTransformer from "../../transformer/media-transformer.d.ts";
5
- import type { ErrorResponses } from "../../utils/errors.d.ts";
6
- import type { ResponseBodyType } from "../../utils/types.d.ts";
7
- import type { UploadOptions } from "../types.d.ts";
8
- /**
9
- * Core base class containing shared business logic for all handlers.
10
- * This class is platform-agnostic and contains no Node.js or Web API specific code.
11
- * @template TFile The file type used by this handler.
12
- */
13
- declare abstract class BaseHandlerCore<TFile extends UploadFile> extends EventEmitter {
14
- /**
15
- * Response body type for the handler.
16
- */
17
- responseType: ResponseBodyType;
18
- /**
19
- * Storage instance for file operations.
20
- */
21
- storage: BaseStorage<TFile>;
22
- /**
23
- * Optional media transformer for image/video processing.
24
- */
25
- mediaTransformer?: MediaTransformer;
26
- /**
27
- * Whether to disable termination for finished uploads.
28
- */
29
- disableTerminationForFinishedUploads?: boolean;
30
- /**
31
- * Logger instance for debugging and error reporting.
32
- */
33
- protected logger?: Console;
34
- /**
35
- * Gets the logger instance.
36
- * @returns Logger instance or undefined.
37
- */
38
- get loggerInstance(): Console | undefined;
39
- /**
40
- * Internal error responses configuration.
41
- */
42
- protected internalErrorResponses: ErrorResponses;
43
- /**
44
- * Gets the error responses configuration.
45
- * @returns Error responses configuration.
46
- */
47
- get errorResponses(): ErrorResponses;
48
- constructor({ disableTerminationForFinishedUploads, mediaTransformer, storage }: UploadOptions<TFile>);
49
- /**
50
- * Sets custom error responses.
51
- * @param value Partial error responses to override defaults.
52
- */
53
- set errorResponses(value: Partial<ErrorResponses>);
54
- /**
55
- * Assemble error responses by merging defaults with custom overrides.
56
- * @param customErrors Custom error responses to override defaults
57
- */
58
- assembleErrors: (customErrors?: {}) => void;
59
- /**
60
- * Parses HTTP Range header and returns start/end byte positions for partial content requests.
61
- * @param rangeHeader HTTP Range header value (e.g., "bytes=0-1023").
62
- * @param fileSize Total size of the file in bytes.
63
- * @returns Object with start and end positions, or undefined if range is invalid.
64
- */
65
- parseRangeHeader(rangeHeader: string | undefined, fileSize: number): {
66
- end: number;
67
- start: number;
68
- } | undefined;
69
- /**
70
- * Build file URL from request and file data.
71
- * Platform-agnostic version that accepts URL string.
72
- * @param requestUrl Request URL string
73
- * @param file File object containing ID and content type
74
- * @returns Constructed file URL with extension based on content type
75
- */
76
- protected buildFileUrlFromString(requestUrl: string, file: TFile): string;
77
- /**
78
- * Negotiates content type based on Accept header and supported formats.
79
- * Platform-agnostic version that accepts header string.
80
- * @param acceptHeader Accept header value
81
- * @param supportedTypes Array of supported MIME types to match against
82
- * @returns Best matching content type or undefined if no match found
83
- */
84
- negotiateContentTypeFromHeader(acceptHeader: string | undefined, supportedTypes: string[]): string | undefined;
85
- /**
86
- * Check for undefined ID or path errors and throw appropriate HTTP errors.
87
- * @param error The error to check
88
- */
89
- protected checkForUndefinedIdOrPath(error: unknown): void;
90
- }
91
- export default BaseHandlerCore;
@@ -1,76 +0,0 @@
1
- import type { UploadFile } from "../../storage/utils/index.d.ts";
2
- import type { UploadResponse } from "../../utils/types.d.ts";
3
- import type { Handlers, ResponseFile, ResponseList, UploadOptions } from "../types.d.ts";
4
- import BaseHandlerCore from "./base-handler-core.d.ts";
5
- /**
6
- * Base handler for Web API Fetch platform (Request/Response).
7
- * Extends BaseHandlerCore with Fetch-specific request/response handling.
8
- * @template TFile The file type used by this handler.
9
- */
10
- declare abstract class BaseHandlerFetch<TFile extends UploadFile> extends BaseHandlerCore<TFile> {
11
- /**
12
- * Limiting enabled HTTP method handler.
13
- */
14
- static readonly methods: Handlers[];
15
- /**
16
- * Map of registered HTTP method handlers.
17
- */
18
- protected registeredHandlers: Map<string, (request: Request) => Promise<ResponseFile<TFile> | ResponseList<TFile>>>;
19
- constructor(options: UploadOptions<TFile>);
20
- /**
21
- * Gets the registered handlers map.
22
- * @returns Map of registered handlers.
23
- */
24
- get handlers(): Map<string, (request: Request) => Promise<ResponseFile<TFile> | ResponseList<TFile>>>;
25
- /**
26
- * Handles Web API Fetch requests (for Hono, Cloudflare Workers, etc.).
27
- * @param request Web API Request object.
28
- * @returns Promise resolving to Web API Response.
29
- */
30
- fetch(request: Request): Promise<globalThis.Response>;
31
- /**
32
- * Compose and register HTTP method handlers.
33
- * Subclasses should override this to register their specific handlers.
34
- */
35
- protected abstract compose(): void;
36
- /**
37
- * Handle the response from handlers for fetch requests and convert to Web API Response.
38
- * @param request Web API Request object
39
- * @param file Response file or list from handler
40
- * @returns Promise resolving to Web API Response object
41
- */
42
- protected handleFetchResponse(request: Request, file: ResponseFile<TFile> | ResponseList<TFile>): Promise<globalThis.Response>;
43
- /**
44
- * Convert headers to Web API Headers format by flattening arrays and converting to strings.
45
- * @param headers Headers object with potentially array values
46
- * @returns Headers object with all values as strings
47
- */
48
- protected convertHeaders(headers: Record<string, number | string | string[]>): Record<string, string>;
49
- /**
50
- * Create Web API Response from UploadResponse object.
51
- * @param uploadResponse Upload response containing body, headers, and status code
52
- * @returns Web API Response object
53
- */
54
- protected createResponse(uploadResponse: UploadResponse): globalThis.Response;
55
- /**
56
- * Create error Response from Error object with appropriate status code and message.
57
- * @param error Error object to convert to HTTP error response
58
- * @returns Web API Response object with error details
59
- */
60
- protected createErrorResponse(error: Error): Promise<globalThis.Response>;
61
- /**
62
- * Build file URL from request and file data.
63
- * @param request Web API Request object
64
- * @param file File object containing ID and content type
65
- * @returns Constructed file URL with extension based on content type
66
- */
67
- protected buildFileUrl(request: Request, file: TFile): string;
68
- /**
69
- * Negotiates content type based on Accept header and supported formats.
70
- * @param request Web API Request object containing Accept header.
71
- * @param supportedTypes Array of supported MIME types to match against.
72
- * @returns Best matching content type or undefined if no match found.
73
- */
74
- negotiateContentType(request: Request, supportedTypes: string[]): string | undefined;
75
- }
76
- export default BaseHandlerFetch;
@@ -1,137 +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 { UploadResponse } from "../../utils/types.d.ts";
5
- import type { AsyncHandler, Handlers, MethodHandler, ResponseFile, ResponseList, UploadOptions } from "../types.d.ts";
6
- import BaseHandlerCore from "./base-handler-core.d.ts";
7
- /**
8
- * Base handler for Node.js platform (IncomingMessage/ServerResponse).
9
- * Extends BaseHandlerCore with Node.js-specific request/response handling.
10
- * @template TFile The file type used by this handler.
11
- * @template NodeRequest The Node.js request type.
12
- * @template NodeResponse The Node.js response type.
13
- */
14
- declare abstract class BaseHandlerNode<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerCore<TFile> implements MethodHandler<NodeRequest, NodeResponse> {
15
- /**
16
- * Limiting enabled HTTP method handler.
17
- */
18
- static readonly methods: Handlers[];
19
- /**
20
- * Map of registered HTTP method handlers.
21
- */
22
- protected registeredHandlers: Map<string, AsyncHandler<NodeRequest, NodeResponse>>;
23
- constructor(options: UploadOptions<TFile>);
24
- /**
25
- * Gets the registered handlers map.
26
- * @returns Map of registered handlers.
27
- */
28
- get handlers(): Map<string, AsyncHandler<NodeRequest, NodeResponse>>;
29
- /**
30
- * Handles HTTP request (alias for upload method).
31
- * @param request Node.js IncomingMessage.
32
- * @param response Node.js ServerResponse.
33
- */
34
- handle: (request: NodeRequest, response: NodeResponse) => Promise<void>;
35
- /**
36
- * Main upload handler that processes HTTP requests and routes them to appropriate method handlers.
37
- * @param request Node.js IncomingMessage.
38
- * @param response Node.js ServerResponse.
39
- * @param next Optional Express-style next function for middleware compatibility.
40
- * @throws {UploadError} When storage is not ready or method is not allowed.
41
- */
42
- upload: (request: NodeRequest, response: NodeResponse, next?: () => void) => Promise<void>;
43
- /**
44
- * Compose and register HTTP method handlers.
45
- * Subclasses should override this to register their specific handlers.
46
- */
47
- protected abstract compose(): void;
48
- /**
49
- * Sends an HTTP response with the provided body, headers, and status code.
50
- * @param response Node.js ServerResponse to send data to.
51
- * @param body Response body, headers, and status code.
52
- */
53
- send(response: NodeResponse, { body, headers, statusCode }: UploadResponse): void;
54
- /**
55
- * Sends an error response to the client with appropriate status code and message.
56
- * @param response Node.js ServerResponse to send error to.
57
- * @param error Error object to convert to HTTP error response.
58
- */
59
- sendError(response: NodeResponse, error: Error): Promise<void>;
60
- /**
61
- * Sends streaming response to client with proper backpressure handling and range request support.
62
- * @param response Node.js ServerResponse to stream data to.
63
- * @param stream Readable stream containing the file data.
64
- * @param options Streaming options including headers, range, size, and status code.
65
- */
66
- sendStream(response: NodeResponse, stream: Readable, { headers, range, size, statusCode, }: {
67
- headers?: Record<string, string | number>;
68
- range?: {
69
- end: number;
70
- start: number;
71
- };
72
- size?: number;
73
- statusCode?: number;
74
- }): void;
75
- /**
76
- * Finish upload by sending final response to client with completed file data.
77
- * @param _request HTTP request (unused parameter)
78
- * @param response HTTP response object to send final response to
79
- * @param uploadResponse Final upload response data containing body, headers, and status code
80
- */
81
- protected finish(_request: NodeRequest, response: NodeResponse, uploadResponse: UploadResponse | ResponseFile<TFile>): void;
82
- /**
83
- * Build file URL from request and file data.
84
- * @param request HTTP request with optional originalUrl property
85
- * @param file File object containing ID and content type
86
- * @returns Constructed file URL with extension based on content type
87
- */
88
- protected buildFileUrl(request: NodeRequest & {
89
- originalUrl?: string;
90
- }, file: TFile): string;
91
- /**
92
- * Negotiates content type based on Accept header and supported formats.
93
- * @param request HTTP request object containing Accept header.
94
- * @param supportedTypes Array of supported MIME types to match against.
95
- * @returns Best matching content type or undefined if no match found.
96
- */
97
- negotiateContentType(request: NodeRequest, supportedTypes: string[]): string | undefined;
98
- /**
99
- * Default OPTIONS handler.
100
- * @param _request HTTP request (unused)
101
- * @param _response HTTP response (unused)
102
- * @returns Promise resolving to ResponseFile with CORS headers
103
- */
104
- options(_request: NodeRequest, _response: NodeResponse): Promise<ResponseFile<TFile>>;
105
- /**
106
- * Retrieves a file or list of files based on the request path.
107
- * @param request Node.js IncomingMessage with optional originalUrl.
108
- * @param response Node.js ServerResponse.
109
- * @returns Promise resolving to a single file, paginated list, or array of files.
110
- * @throws {UploadError} When file is not found or storage error occurs.
111
- */
112
- get(request: NodeRequest & {
113
- originalUrl?: string;
114
- }, _response: NodeResponse): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
115
- /**
116
- * Returns a list of uploaded files with optional pagination support.
117
- * @param request Node.js IncomingMessage containing query parameters for pagination.
118
- * @param _response Node.js ServerResponse (unused).
119
- * @returns Promise resolving to a paginated or complete list of uploaded files.
120
- */
121
- list(request: NodeRequest, _response: NodeResponse): Promise<ResponseList<TFile>>;
122
- /**
123
- * Streams download of a file with resumable support using HTTP range requests.
124
- * @param request Node.js IncomingMessage with optional originalUrl and range header.
125
- * @param response Node.js ServerResponse to stream the file to.
126
- * @throws {HttpError} When file is not found or streaming is not supported.
127
- */
128
- download(request: NodeRequest & {
129
- originalUrl?: string;
130
- }, response: NodeResponse): Promise<void>;
131
- /**
132
- * Check if error is related to undefined ID or path and throw appropriate HTTP error.
133
- * @param error Error object to check
134
- */
135
- protected checkForUndefinedIdOrPath(error: unknown): void;
136
- }
137
- export default BaseHandlerNode;
@@ -1,84 +0,0 @@
1
- import type { FileInit, UploadFile } from "../../storage/utils/index.d.ts";
2
- import type { ResponseFile } from "../types.d.ts";
3
- /**
4
- * Base class containing shared Multipart business logic.
5
- * Platform-agnostic - contains no Node.js or Web API specific code.
6
- * @template TFile The file type used by this handler.
7
- */
8
- declare abstract class MultipartBase<TFile extends UploadFile> {
9
- /**
10
- * Handle multipart POST (upload file).
11
- * @param filePart File part from multipart parser
12
- * @param filePart.bytes File bytes data
13
- * @param filePart.filename Original filename
14
- * @param filePart.mediaType Content type
15
- * @param filePart.size File size in bytes
16
- * @param metadataParts All parts from multipart parser (for extracting metadata)
17
- * @param requestUrl Request URL for Location header
18
- * @returns Promise resolving to ResponseFile with upload result
19
- */
20
- handlePost(filePart: {
21
- bytes: unknown;
22
- filename?: string;
23
- mediaType?: string;
24
- size: number;
25
- }, metadataParts: {
26
- isFile: boolean;
27
- name?: string;
28
- text?: string;
29
- }[], requestUrl: string): Promise<ResponseFile<TFile>>;
30
- /**
31
- * Handle DELETE (delete file).
32
- * @param id File ID from URL
33
- * @returns Promise resolving to ResponseFile with deletion result
34
- */
35
- handleDelete(id: string): Promise<ResponseFile<TFile>>;
36
- /**
37
- * Storage instance for file operations.
38
- */
39
- protected get storage(): {
40
- create: (config: FileInit) => Promise<TFile>;
41
- delete: (options: {
42
- id: string;
43
- }) => Promise<TFile>;
44
- maxUploadSize: number;
45
- update: (options: {
46
- id: string;
47
- }, updates: {
48
- metadata?: Record<string, unknown>;
49
- }) => Promise<TFile>;
50
- write: (options: {
51
- body: unknown;
52
- contentLength: number;
53
- id: string;
54
- start: number;
55
- }) => Promise<TFile>;
56
- };
57
- /**
58
- * Maximum file size allowed for multipart uploads
59
- */
60
- protected abstract get maxFileSize(): number;
61
- /**
62
- * Maximum header size allowed for multipart parser
63
- */
64
- protected abstract get maxHeaderSize(): number;
65
- /**
66
- * Build file URL from request URL and file data.
67
- * @param _requestUrl Request URL string
68
- * @param _file File object containing ID and content type
69
- * @returns Constructed file URL with extension based on content type
70
- */
71
- protected buildFileUrl(_requestUrl: string, _file: TFile): string;
72
- /**
73
- * Create a stream from bytes data.
74
- * @param bytes Bytes data (Uint8Array, Buffer, or other)
75
- * @returns Stream object
76
- */
77
- protected abstract createStreamFromBytes(bytes: unknown): unknown;
78
- /**
79
- * Create an empty stream for signaling completion.
80
- * @returns Empty stream object
81
- */
82
- protected abstract createEmptyStream(): unknown;
83
- }
84
- export default MultipartBase;
@@ -1,64 +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
- /**
5
- * Multipart/form-data upload handler (Web API Fetch version).
6
- * @example
7
- * ```ts
8
- * const multipart = new MultipartFetch({
9
- * storage,
10
- * maxFileSize: 100 * 1024 * 1024, // 100MB
11
- * });
12
- *
13
- * // Use with Hono, Cloudflare Workers, etc.
14
- * app.all('/files/*', async (c) => {
15
- * return multipart.fetch(c.req.raw);
16
- * });
17
- * ```
18
- */
19
- declare class Multipart<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
20
- /**
21
- * Limiting enabled http method handler
22
- */
23
- static readonly methods: Handlers[];
24
- private readonly multipartBase;
25
- /**
26
- * Maximum file size allowed for multipart uploads
27
- */
28
- private maxFileSize;
29
- /**
30
- * Maximum header size allowed for multipart parser
31
- */
32
- private maxHeaderSize;
33
- constructor(options: UploadOptions<TFile>);
34
- /**
35
- * Handles multipart/form-data POST requests for file uploads.
36
- * @param request Web API Request containing multipart data.
37
- * @returns Promise resolving to ResponseFile with upload result.
38
- */
39
- post(request: Request): Promise<ResponseFile<TFile>>;
40
- /**
41
- * Delete an uploaded file.
42
- * @param request Web API Request with file ID
43
- * @returns Promise resolving to ResponseFile with deletion result
44
- */
45
- delete(request: Request): Promise<ResponseFile<TFile>>;
46
- /**
47
- * Handle OPTIONS requests with CORS headers.
48
- * @param _request Web API Request (unused)
49
- * @returns Promise resolving to ResponseFile with CORS headers
50
- */
51
- options(_request: Request): Promise<ResponseFile<TFile>>;
52
- /**
53
- * Retrieves a file or list of files based on the request path.
54
- * Delegates to BaseHandlerFetch.fetch() method.
55
- * @param _request Web API Request
56
- * @returns Promise resolving to Web API Response
57
- */
58
- get(_request: Request): Promise<ResponseFile<TFile>>;
59
- /**
60
- * Compose and register HTTP method handlers.
61
- */
62
- protected compose(): void;
63
- }
64
- export default Multipart;
@@ -1,49 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { UploadFile } from "../../storage/utils/index.d.ts";
3
- import BaseHandlerNode from "../base/base-handler-node.d.ts";
4
- import type { Handlers, ResponseFile, UploadOptions } from "../types.d.ts";
5
- /**
6
- * Multipart/form-data upload handler (Node.js version).
7
- * @example
8
- * ```ts
9
- * const multipart = new Multipart({
10
- * storage,
11
- * maxFileSize: 100 * 1024 * 1024, // 100MB
12
- * });
13
- *
14
- * app.use('/files', multipart.handle);
15
- * ```
16
- */
17
- declare class Multipart<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
18
- /**
19
- * Limiting enabled http method handler
20
- */
21
- static readonly methods: Handlers[];
22
- private readonly multipartBase;
23
- /**
24
- * Maximum file size allowed for multipart uploads
25
- */
26
- private maxFileSize;
27
- /**
28
- * Maximum header size allowed for multipart parser
29
- */
30
- private maxHeaderSize;
31
- constructor(options: UploadOptions<TFile>);
32
- /**
33
- * Handles multipart/form-data POST requests for file uploads.
34
- * @param request Node.js IncomingMessage containing multipart data.
35
- * @returns Promise resolving to ResponseFile with upload result.
36
- */
37
- post(request: NodeRequest): Promise<ResponseFile<TFile>>;
38
- /**
39
- * Delete an uploaded file.
40
- * @param request Node.js IncomingMessage with file ID
41
- * @returns Promise resolving to ResponseFile with deletion result
42
- */
43
- delete(request: NodeRequest): Promise<ResponseFile<TFile>>;
44
- /**
45
- * Compose and register HTTP method handlers.
46
- */
47
- protected compose(): void;
48
- }
49
- export default Multipart;
@@ -1,106 +0,0 @@
1
- import type { FileInit, UploadFile } from "../../storage/utils/index.d.ts";
2
- import type { ResponseFile, ResponseList } from "../types.d.ts";
3
- /**
4
- * Base class containing shared REST API business logic.
5
- * Platform-agnostic - contains no Node.js or Web API specific code.
6
- * @template TFile The file type used by this handler.
7
- */
8
- declare abstract class RestBase<TFile extends UploadFile> {
9
- /**
10
- * Handle single file deletion.
11
- * @param id File ID to delete
12
- * @returns Promise resolving to ResponseFile with deletion result
13
- */
14
- deleteSingle(id: string): Promise<ResponseFile<TFile>>;
15
- /**
16
- * Handle file creation (POST).
17
- * @param config File initialization config
18
- * @param isChunkedUpload Whether this is a chunked upload initialization
19
- * @param requestUrl Request URL for Location header
20
- * @param bodyStream Request body stream (for non-chunked uploads)
21
- * @param contentLength Content length (for non-chunked uploads)
22
- * @returns Promise resolving to ResponseFile with upload result
23
- */
24
- handlePost(config: FileInit, isChunkedUpload: boolean, requestUrl: string, bodyStream: unknown, contentLength: number): Promise<ResponseFile<TFile>>;
25
- /**
26
- * Handle file update or creation (PUT).
27
- * @param id File ID from URL
28
- * @param config File initialization config (for new files)
29
- * @param requestUrl Request URL for Location header
30
- * @param bodyStream Request body stream
31
- * @param contentLength Content length
32
- * @param metadata Optional metadata to merge (for updates)
33
- * @returns Promise resolving to ResponseFile with upload result
34
- */
35
- handlePut(id: string, config: FileInit, requestUrl: string, bodyStream: unknown, contentLength: number, metadata?: Record<string, unknown>): Promise<ResponseFile<TFile>>;
36
- /**
37
- * Handle chunked upload chunk (PATCH).
38
- * @param id File ID from URL
39
- * @param chunkOffset Chunk offset in bytes
40
- * @param contentLength Chunk content length
41
- * @param chunkChecksum Optional chunk checksum
42
- * @param requestUrl Request URL for Location header
43
- * @param bodyStream Request body stream
44
- * @returns Promise resolving to ResponseFile with upload progress
45
- */
46
- handlePatch(id: string, chunkOffset: number, contentLength: number, chunkChecksum: string | undefined, requestUrl: string, bodyStream: unknown): Promise<ResponseFile<TFile>>;
47
- /**
48
- * Handle file metadata retrieval (HEAD).
49
- * @param id File ID from URL
50
- * @returns Promise resolving to ResponseFile with metadata headers
51
- */
52
- handleHead(id: string): Promise<ResponseFile<TFile>>;
53
- /**
54
- * Handle OPTIONS request with REST API capabilities.
55
- * @param methods Array of supported HTTP methods
56
- * @param maxUploadSize Maximum upload size
57
- * @returns ResponseFile with CORS headers
58
- */
59
- handleOptions(methods: string[], maxUploadSize: number): ResponseFile<TFile>;
60
- /**
61
- * Handle batch file deletion.
62
- * @param ids Array of file IDs to delete
63
- * @returns Promise resolving to ResponseList with deletion results
64
- */
65
- deleteBatch(ids: string[]): Promise<ResponseList<TFile>>;
66
- /**
67
- * Storage instance for file operations.
68
- */
69
- protected get storage(): {
70
- create: (config: FileInit) => Promise<TFile>;
71
- delete: (options: {
72
- id: string;
73
- }) => Promise<TFile>;
74
- deleteBatch: (ids: string[]) => Promise<{
75
- failed: {
76
- error: string;
77
- id: string;
78
- }[];
79
- failedCount: number;
80
- successful: TFile[];
81
- successfulCount: number;
82
- }>;
83
- getMeta: (id: string) => Promise<TFile>;
84
- maxUploadSize: number;
85
- update: (options: {
86
- id: string;
87
- }, updates: {
88
- metadata?: Record<string, unknown>;
89
- status?: string;
90
- }) => Promise<void>;
91
- write: (options: {
92
- body: unknown;
93
- contentLength: number;
94
- id: string;
95
- start: number;
96
- }) => Promise<TFile>;
97
- };
98
- /**
99
- * Build file URL from request URL and file data.
100
- * @param _requestUrl Request URL string
101
- * @param _file File object containing ID and content type
102
- * @returns Constructed file URL with extension based on content type
103
- */
104
- protected buildFileUrl(_requestUrl: string, _file: TFile): string;
105
- }
106
- export default RestBase;