@visulima/storage 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (417) hide show
  1. package/CHANGELOG.md +361 -0
  2. package/LICENSE.md +213 -573
  3. package/README.md +83 -470
  4. package/dist/adapter/nuxt/module.d.ts +41 -34
  5. package/dist/adapter/nuxt/module.js +1 -93
  6. package/dist/adapter/nuxt/node_modules/.bin/nuxi +22 -0
  7. package/dist/adapter/nuxt/node_modules/.bin/nuxt +22 -0
  8. package/dist/adapter/nuxt/package.json +0 -6
  9. package/dist/ai/ai-sdk/index.d.ts +113 -0
  10. package/dist/ai/ai-sdk/index.js +1 -0
  11. package/dist/ai/claude/index.d.ts +177 -0
  12. package/dist/ai/claude/index.js +1 -0
  13. package/dist/ai/openai/index.d.ts +205 -0
  14. package/dist/ai/openai/index.js +1 -0
  15. package/dist/ai/tanstack/index.d.ts +115 -0
  16. package/dist/ai/tanstack/index.js +1 -0
  17. package/dist/handler/http/fetch/index.d.ts +303 -4
  18. package/dist/handler/http/fetch/index.js +1 -4
  19. package/dist/handler/http/hono/index.d.ts +73 -64
  20. package/dist/handler/http/hono/index.js +1 -65
  21. package/dist/handler/http/nextjs/index.d.ts +66 -58
  22. package/dist/handler/http/nextjs/index.js +1 -37
  23. package/dist/handler/http/node/index.d.ts +361 -4
  24. package/dist/handler/http/node/index.js +1 -4
  25. package/dist/handler/http/solid-start/index.d.ts +66 -57
  26. package/dist/handler/http/solid-start/index.js +1 -44
  27. package/dist/index.d.ts +58 -17
  28. package/dist/index.js +1 -13
  29. package/dist/openapi/index.d.ts +24 -5
  30. package/dist/openapi/index.js +1 -5
  31. package/dist/packem_shared/AwsLightFile-BSqjc_rD.js +1 -0
  32. package/dist/packem_shared/AwsLightMetaStorage-B-iQbToR.js +1 -0
  33. package/dist/packem_shared/AwsLightStorage-w21RxjUm.js +1 -0
  34. package/dist/packem_shared/AzureFile-Dgj2Tef4.js +1 -0
  35. package/dist/packem_shared/AzureSMetaStorage-CR-lfQNQ.js +1 -0
  36. package/dist/packem_shared/AzureStorage-2kl7JDXs.js +1 -0
  37. package/dist/packem_shared/BaseTransformer-Fpcuz4kj.js +1 -0
  38. package/dist/packem_shared/BoxFile-Be0S4N1L.js +1 -0
  39. package/dist/packem_shared/BoxMetaStorage-DLdXbZaV.js +1 -0
  40. package/dist/packem_shared/BoxStorage-BUeEJoGL.js +1 -0
  41. package/dist/packem_shared/BunS3File-D-SRiyrm.js +1 -0
  42. package/dist/packem_shared/BunS3MetaStorage-Bv_CTTMz.js +1 -0
  43. package/dist/packem_shared/BunS3Storage-WM3rF6Fw.js +1 -0
  44. package/dist/packem_shared/BunnyFile-Dotl-lO9.js +1 -0
  45. package/dist/packem_shared/BunnyMetaStorage-DNMTSeoN.js +1 -0
  46. package/dist/packem_shared/BunnyStorage-D3s2fRB3.js +1 -0
  47. package/dist/packem_shared/CloudinaryFile-B5-m33eS.js +1 -0
  48. package/dist/packem_shared/CloudinaryMetaStorage-DEBk5eQy.js +1 -0
  49. package/dist/packem_shared/CloudinaryStorage-BBE2-aVz.js +1 -0
  50. package/dist/packem_shared/DiskStorage-DL0GiG6k.js +1 -0
  51. package/dist/packem_shared/DiskStorageWithChecksum-BvUTn7O-.js +1 -0
  52. package/dist/packem_shared/DropboxFile-BGVG2kXM.js +1 -0
  53. package/dist/packem_shared/DropboxMetaStorage-C6vj1QDA.js +1 -0
  54. package/dist/packem_shared/DropboxStorage-BL3OIdE_.js +1 -0
  55. package/dist/packem_shared/ERRORS-CyOuSMLY.js +1 -0
  56. package/dist/packem_shared/File-BhfUgJjs.js +1 -0
  57. package/dist/packem_shared/Files-CJh9_N-9.js +1 -0
  58. package/dist/packem_shared/FirebaseFile-JEu3plMP.js +1 -0
  59. package/dist/packem_shared/FirebaseMetaStorage-CzyOim-J.js +1 -0
  60. package/dist/packem_shared/FirebaseStorage-lXMXy3Pm.js +2 -0
  61. package/dist/packem_shared/FtpFile-B8jaICTB.js +1 -0
  62. package/dist/packem_shared/FtpMetaStorage-1Njy0DpU.js +1 -0
  63. package/dist/packem_shared/FtpStorage-Dw94efNW.js +1 -0
  64. package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
  65. package/dist/packem_shared/GCSFile-CDQ6IWAz.js +1 -0
  66. package/dist/packem_shared/GCSMetaStorage-udgXA5ia.js +1 -0
  67. package/dist/packem_shared/GCStorage-ChY6uJuO.js +1 -0
  68. package/dist/packem_shared/GoogleDriveFile-D0aGfGbL.js +1 -0
  69. package/dist/packem_shared/GoogleDriveMetaStorage-WGuUZPyx.js +1 -0
  70. package/dist/packem_shared/GoogleDriveStorage-C0NhBBWH.js +1 -0
  71. package/dist/packem_shared/LocalMetaStorage-QMKL7McF.js +1 -0
  72. package/dist/packem_shared/MediaTransformer-D-1c9Q_k.js +1 -0
  73. package/dist/packem_shared/MetaStorage-Y4m1dWgd.js +1 -0
  74. package/dist/packem_shared/Metadata-B6Ir0KO7.js +1 -0
  75. package/dist/packem_shared/Multipart-CIFfQksD.js +1 -0
  76. package/dist/packem_shared/Multipart-D9WIud9R.js +1 -0
  77. package/dist/packem_shared/NetlifyBlobFile-PMZLJ8AC.js +1 -0
  78. package/dist/packem_shared/NetlifyBlobMetaStorage-ClIFdTkT.js +1 -0
  79. package/dist/packem_shared/NetlifyBlobStorage-CO89TGvF.js +1 -0
  80. package/dist/packem_shared/NoOpMetrics-Dky06sf1.js +1 -0
  81. package/dist/packem_shared/OneDriveFile-XbVVKIJh.js +1 -0
  82. package/dist/packem_shared/OneDriveMetaStorage-DS4f83X2.js +1 -0
  83. package/dist/packem_shared/OneDriveStorage-jAN46vRm.js +1 -0
  84. package/dist/packem_shared/OpenTelemetryMetrics-9uxQMSlg.js +1 -0
  85. package/dist/packem_shared/PocketBaseFile-CkAiSBb0.js +1 -0
  86. package/dist/packem_shared/PocketBaseMetaStorage-B6utPncj.js +1 -0
  87. package/dist/packem_shared/PocketBaseStorage-DpOjOKAt.js +1 -0
  88. package/dist/packem_shared/Rest-BuD3ySAg.js +1 -0
  89. package/dist/packem_shared/Rest-URrQ5FYM.js +1 -0
  90. package/dist/packem_shared/S3File-BfmCOET4.js +1 -0
  91. package/dist/packem_shared/S3MetaStorage-vcriiosn.js +1 -0
  92. package/dist/packem_shared/S3Storage-n1ohEZj4.js +1 -0
  93. package/dist/packem_shared/SftpFile-CQCxZNVq.js +1 -0
  94. package/dist/packem_shared/SftpMetaStorage-DYqXwCdM.js +1 -0
  95. package/dist/packem_shared/SftpStorage-Ban-WN8v.js +1 -0
  96. package/dist/packem_shared/SharePointFile-BA6X9Sxr.js +1 -0
  97. package/dist/packem_shared/SharePointMetaStorage-DVM5-X6g.js +1 -0
  98. package/dist/packem_shared/SharePointStorage-BY90zh1c.js +1 -0
  99. package/dist/packem_shared/SupabaseFile-DZ1iv9gM.js +1 -0
  100. package/dist/packem_shared/SupabaseMetaStorage-ivXoYVUu.js +1 -0
  101. package/dist/packem_shared/SupabaseStorage-pNbHAE1Y.js +1 -0
  102. package/dist/packem_shared/TUS_RESUMABLE-B7KtPVeC.js +1 -0
  103. package/dist/packem_shared/Tus-Fp_hx5ug.js +1 -0
  104. package/dist/packem_shared/Tus-TNG9HAY8.js +1 -0
  105. package/dist/packem_shared/UploadThingFile-BpG9mE8K.js +1 -0
  106. package/dist/packem_shared/UploadThingMetaStorage-BvKNzgm7.js +1 -0
  107. package/dist/packem_shared/UploadThingStorage-BcmIE2dI.js +1 -0
  108. package/dist/packem_shared/ValidationError-D8KKJiKA.js +1 -0
  109. package/dist/packem_shared/VercelBlobFile-Cni_1qwD.js +1 -0
  110. package/dist/packem_shared/VercelBlobMetaStorage-CwaqWucZ.js +1 -0
  111. package/dist/packem_shared/VercelBlobStorage-s260zfFo.js +1 -0
  112. package/dist/packem_shared/_commonjsHelpers-D6W6KoPK.js +1 -0
  113. package/dist/packem_shared/agentsListFiles-R-CnGKc4.js +1 -0
  114. package/dist/packem_shared/akamai-BYS9pP8S.js +1 -0
  115. package/dist/packem_shared/alibaba-BJQ6ijoK.js +1 -0
  116. package/dist/packem_shared/approval-BBeX3o4E.js +1 -0
  117. package/dist/packem_shared/approval.d-CMAYH9GF.d.ts +75 -0
  118. package/dist/packem_shared/aws-light-meta-storage-CstQBYXG.js +4 -0
  119. package/dist/packem_shared/azure-meta-storage-C4SrMtT2.js +1 -0
  120. package/dist/packem_shared/backblaze-CvdtCvJL.js +1 -0
  121. package/dist/packem_shared/base-handler-core-BYDQditz.js +1 -0
  122. package/dist/packem_shared/base-handler-fetch-DWzsPkmV.js +1 -0
  123. package/dist/packem_shared/base-handler-node-Dety2rQB.js +1 -0
  124. package/dist/packem_shared/cache-qV_5Umeq.js +1 -0
  125. package/dist/packem_shared/claudeListFiles-DAezbKEi.js +1 -0
  126. package/dist/packem_shared/cloudflare-Bm_Pg6yx.js +1 -0
  127. package/dist/packem_shared/createResponsesFileTools-BCep-qdO.js +1 -0
  128. package/dist/packem_shared/defaultCloudStorageFileNameValidation-shIZX_7L.js +1 -0
  129. package/dist/packem_shared/detect-file-type-5JhzC9RU.js +1 -0
  130. package/dist/packem_shared/digitalOcean-Lj1NfDzc.js +1 -0
  131. package/dist/packem_shared/disk-storage-CKAJvhcj.js +1 -0
  132. package/dist/packem_shared/disk-storage-with-checksum.d-mHcg2uLw.d.ts +150 -0
  133. package/dist/packem_shared/executors-DG6hGtvm.js +1 -0
  134. package/dist/packem_shared/executors.d-X4hz3zfu.d.ts +65 -0
  135. package/dist/packem_shared/exoscale-O0HzxoDz.js +1 -0
  136. package/dist/packem_shared/filebase-D-urO4Ob.js +1 -0
  137. package/dist/packem_shared/gcs-meta-storage-mZiqlX-9.js +1 -0
  138. package/dist/packem_shared/has-content-Bx2p8Okx.js +1 -0
  139. package/dist/packem_shared/headers-DC2MEOrK.js +27 -0
  140. package/dist/packem_shared/hetzner-DDxE7Gy7.js +1 -0
  141. package/dist/packem_shared/ibmCos-Rx_yku4H.js +1 -0
  142. package/dist/packem_shared/idriveE2-BFhw0Vwy.js +1 -0
  143. package/dist/packem_shared/index-B4ETk0Lu.js +5 -0
  144. package/dist/packem_shared/index.d-C4Fivh4I.d.ts +94 -0
  145. package/dist/packem_shared/is-expired-1JuZjDtb.js +1 -0
  146. package/dist/packem_shared/isRetryableError-BhizNeAz.js +1 -0
  147. package/dist/packem_shared/isValidMediaType-B-2UKjZx.js +1 -0
  148. package/dist/packem_shared/listFiles-B6VF05d-.js +1 -0
  149. package/dist/packem_shared/listFiles-BtP6VnUp.js +1 -0
  150. package/dist/packem_shared/local-meta-storage-Bi0mK6gD.js +1 -0
  151. package/dist/packem_shared/local-meta-storage.d-B11vHYNm.d.ts +21 -0
  152. package/dist/packem_shared/media-transformer.d-C3QvECD7.d.ts +331 -0
  153. package/dist/packem_shared/minio-T_Z3iEy7.js +1 -0
  154. package/dist/packem_shared/multipart-base-BxckfvQf.js +1 -0
  155. package/dist/packem_shared/oauth-refresh-Dg2ybc6_.js +1 -0
  156. package/dist/packem_shared/oracleCloud-D5T9s4JV.js +1 -0
  157. package/dist/packem_shared/ovhCloud-DCwef2fe.js +1 -0
  158. package/dist/packem_shared/part-match-B5fLLmFw.js +1 -0
  159. package/dist/packem_shared/path-D7rMc9nq-B718mbm6.js +1 -0
  160. package/dist/packem_shared/posix-dirname-CiHXPPnw.js +1 -0
  161. package/dist/packem_shared/response-builder-Wdo_fvcF.js +1 -0
  162. package/dist/packem_shared/rest-base-DI7xFXr5.js +1 -0
  163. package/dist/packem_shared/restOpenApiSpec-PaIVbESh.js +1 -0
  164. package/dist/packem_shared/s3-base-storage-Dbexfg7p.js +1 -0
  165. package/dist/packem_shared/s3-base-storage.d-V3N2nKCt.d.ts +260 -0
  166. package/dist/packem_shared/scaleway-ygRXOss9.js +1 -0
  167. package/dist/packem_shared/sharedGet-Ce7WGAsc.js +1 -0
  168. package/dist/packem_shared/storage-Dh0tJh7j.js +1 -0
  169. package/dist/packem_shared/storage.d-RteRC-cG.d.ts +1106 -0
  170. package/dist/packem_shared/storj-CVA9mM-7.js +1 -0
  171. package/dist/packem_shared/tencent-CAcAGaIW.js +1 -0
  172. package/dist/packem_shared/tigris-wmhjfsH2.js +1 -0
  173. package/dist/packem_shared/transformOpenApiSpec-C0vEbDTO.js +1 -0
  174. package/dist/packem_shared/tus-base.d-CygntIPM.d.ts +99 -0
  175. package/dist/packem_shared/tusOpenApiSpec-DF0-hlWV.js +1 -0
  176. package/dist/packem_shared/types.d-ChNXbbHG.d.ts +104 -0
  177. package/dist/packem_shared/types.d-DxonY4XS.d.ts +720 -0
  178. package/dist/packem_shared/types.d-cI_cMxcZ.d.ts +49 -0
  179. package/dist/packem_shared/update-size-DANV7aa2.js +1 -0
  180. package/dist/packem_shared/vultr-lK9L-sFk.js +1 -0
  181. package/dist/packem_shared/waitForStorage-ChSBLhLc.js +1 -0
  182. package/dist/packem_shared/wasabi-JQzxdrFy.js +1 -0
  183. package/dist/packem_shared/xhrOpenApiSpec-nyoboz83.js +1 -0
  184. package/dist/packem_shared/yandex-ZwvE77v4.js +1 -0
  185. package/dist/storage/aws/clients/index.d.ts +612 -6
  186. package/dist/storage/aws/clients/index.js +1 -6
  187. package/dist/storage/aws/index.d.ts +321 -4
  188. package/dist/storage/aws/index.js +1 -3
  189. package/dist/storage/aws-light/index.d.ts +254 -4
  190. package/dist/storage/aws-light/index.js +1 -3
  191. package/dist/storage/azure/index.d.ts +217 -4
  192. package/dist/storage/azure/index.js +1 -3
  193. package/dist/storage/box/index.d.ts +189 -0
  194. package/dist/storage/box/index.js +1 -0
  195. package/dist/storage/bun-s3/index.d.ts +200 -0
  196. package/dist/storage/bun-s3/index.js +1 -0
  197. package/dist/storage/bunny/index.d.ts +119 -0
  198. package/dist/storage/bunny/index.js +1 -0
  199. package/dist/storage/cloudinary/index.d.ts +121 -0
  200. package/dist/storage/cloudinary/index.js +1 -0
  201. package/dist/storage/dropbox/index.d.ts +132 -0
  202. package/dist/storage/dropbox/index.js +1 -0
  203. package/dist/storage/firebase/index.d.ts +192 -0
  204. package/dist/storage/firebase/index.js +1 -0
  205. package/dist/storage/ftp/index.d.ts +85 -0
  206. package/dist/storage/ftp/index.js +1 -0
  207. package/dist/storage/gcs/index.d.ts +181 -5
  208. package/dist/storage/gcs/index.js +1 -4
  209. package/dist/storage/google-drive/index.d.ts +148 -0
  210. package/dist/storage/google-drive/index.js +1 -0
  211. package/dist/storage/local/index.d.ts +7 -4
  212. package/dist/storage/local/index.js +1 -3
  213. package/dist/storage/netlify-blob/index.d.ts +147 -4
  214. package/dist/storage/netlify-blob/index.js +1 -3
  215. package/dist/storage/onedrive/index.d.ts +103 -0
  216. package/dist/storage/onedrive/index.js +1 -0
  217. package/dist/storage/pocketbase/index.d.ts +172 -0
  218. package/dist/storage/pocketbase/index.js +1 -0
  219. package/dist/storage/sftp/index.d.ts +86 -0
  220. package/dist/storage/sftp/index.js +1 -0
  221. package/dist/storage/sharepoint/index.d.ts +180 -0
  222. package/dist/storage/sharepoint/index.js +1 -0
  223. package/dist/storage/supabase/index.d.ts +115 -0
  224. package/dist/storage/supabase/index.js +1 -0
  225. package/dist/storage/uploadthing/index.d.ts +95 -0
  226. package/dist/storage/uploadthing/index.js +1 -0
  227. package/dist/storage/vercel-blob/index.d.ts +189 -4
  228. package/dist/storage/vercel-blob/index.js +1 -3
  229. package/dist/transformer/audio-transformer.d.ts +127 -125
  230. package/dist/transformer/audio-transformer.js +1 -278
  231. package/dist/transformer/image-transformer.d.ts +573 -568
  232. package/dist/transformer/image-transformer.js +1 -1100
  233. package/dist/transformer/index.d.ts +62 -5
  234. package/dist/transformer/index.js +1 -4
  235. package/dist/transformer/video-transformer.d.ts +144 -142
  236. package/dist/transformer/video-transformer.js +1 -310
  237. package/package.json +195 -47
  238. package/dist/handler/base/base-handler-core.d.ts +0 -91
  239. package/dist/handler/base/base-handler-fetch.d.ts +0 -76
  240. package/dist/handler/base/base-handler-node.d.ts +0 -137
  241. package/dist/handler/multipart/multipart-base.d.ts +0 -84
  242. package/dist/handler/multipart/multipart-fetch.d.ts +0 -64
  243. package/dist/handler/multipart/multipart.d.ts +0 -49
  244. package/dist/handler/rest/rest-base.d.ts +0 -106
  245. package/dist/handler/rest/rest-fetch.d.ts +0 -88
  246. package/dist/handler/rest/rest.d.ts +0 -93
  247. package/dist/handler/tus/tus-base.d.ts +0 -152
  248. package/dist/handler/tus/tus-fetch.d.ts +0 -72
  249. package/dist/handler/tus/tus.d.ts +0 -78
  250. package/dist/handler/types.d.ts +0 -53
  251. package/dist/handler/utils/request-parser.d.ts +0 -72
  252. package/dist/handler/utils/response-builder.d.ts +0 -83
  253. package/dist/handler/utils/storage-utils.d.ts +0 -10
  254. package/dist/handler/utils/stream-utils.d.ts +0 -29
  255. package/dist/handler/utils/upload-handlers.d.ts +0 -76
  256. package/dist/metrics/index.d.ts +0 -2
  257. package/dist/metrics/no-op-metrics.d.ts +0 -15
  258. package/dist/metrics/opentelemetry-metrics.d.ts +0 -55
  259. package/dist/openapi/rest.d.ts +0 -7
  260. package/dist/openapi/shared.d.ts +0 -13
  261. package/dist/openapi/transform.d.ts +0 -3
  262. package/dist/openapi/tus.d.ts +0 -7
  263. package/dist/openapi/xhr.d.ts +0 -7
  264. package/dist/packem_shared/AwsLightFile-tTneXZgG.js +0 -11
  265. package/dist/packem_shared/AwsLightMetaStorage-BWSOtVaN.js +0 -4
  266. package/dist/packem_shared/AwsLightStorage-Blv-GP4v.js +0 -133
  267. package/dist/packem_shared/AzureFile-CesgFzps.js +0 -8
  268. package/dist/packem_shared/AzureSMetaStorage-CFs-OYJT.js +0 -88
  269. package/dist/packem_shared/AzureStorage-B0v048hG.js +0 -357
  270. package/dist/packem_shared/BaseTransformer-C2gLib6v.js +0 -82
  271. package/dist/packem_shared/DiskStorage-BlltBst6.js +0 -12
  272. package/dist/packem_shared/DiskStorageWithChecksum-BJTmMklc.js +0 -238
  273. package/dist/packem_shared/ERRORS-D0apMqnc.js +0 -97
  274. package/dist/packem_shared/File-Bb3P23dr.js +0 -69
  275. package/dist/packem_shared/GCSConfig-vPP22kN6.js +0 -11
  276. package/dist/packem_shared/GCSFile-BIEunhAN.js +0 -8
  277. package/dist/packem_shared/GCSMetaStorage-BMFEdzJ7.js +0 -7
  278. package/dist/packem_shared/GCStorage-DnhiwaS9.js +0 -406
  279. package/dist/packem_shared/LocalMetaStorage-CZHhKkMd.js +0 -7
  280. package/dist/packem_shared/MediaTransformer-D6658DL1.js +0 -1197
  281. package/dist/packem_shared/MetaStorage-pECeFOad.js +0 -46
  282. package/dist/packem_shared/Metadata-DRLXeJ0F.js +0 -89
  283. package/dist/packem_shared/Multipart-CNFK_Okz.js +0 -163
  284. package/dist/packem_shared/Multipart-CtUL7BQw.js +0 -128
  285. package/dist/packem_shared/NetlifyBlobFile-CXzyjqrD.js +0 -14
  286. package/dist/packem_shared/NetlifyBlobMetaStorage-DxZ5aDvD.js +0 -9
  287. package/dist/packem_shared/NetlifyBlobStorage-CLPtjHqd.js +0 -376
  288. package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +0 -10
  289. package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +0 -67
  290. package/dist/packem_shared/Rest-CAOAEkOj.js +0 -267
  291. package/dist/packem_shared/Rest-DNuLwBrK.js +0 -228
  292. package/dist/packem_shared/S3File-DZiyk9Qt.js +0 -11
  293. package/dist/packem_shared/S3MetaStorage-Dz9aDabA.js +0 -76
  294. package/dist/packem_shared/S3Storage-DHmTk-hU.js +0 -316
  295. package/dist/packem_shared/TUS_RESUMABLE-GJzZ9R-f.js +0 -434
  296. package/dist/packem_shared/Tus-B8PmlMgR.js +0 -200
  297. package/dist/packem_shared/Tus-C4F1aYOl.js +0 -195
  298. package/dist/packem_shared/ValidationError-BfF1aE4h.js +0 -26
  299. package/dist/packem_shared/VercelBlobFile-BCg4aTEq.js +0 -18
  300. package/dist/packem_shared/VercelBlobMetaStorage-Bd9F-VFm.js +0 -9
  301. package/dist/packem_shared/VercelBlobStorage-DD9LMOS6.js +0 -261
  302. package/dist/packem_shared/_commonjsHelpers-B85MJLTf.js +0 -5
  303. package/dist/packem_shared/aws-light-meta-storage-DKJBgbR6.js +0 -446
  304. package/dist/packem_shared/backblaze-BlMnIcBC.js +0 -20
  305. package/dist/packem_shared/base-handler-core-BKuf4YLT.js +0 -303
  306. package/dist/packem_shared/base-handler-fetch-Cr0hLiqg.js +0 -291
  307. package/dist/packem_shared/base-handler-node-gk5aN9Cx.js +0 -730
  308. package/dist/packem_shared/cache-B88MXQ_2.js +0 -18
  309. package/dist/packem_shared/cloudflare-Bi1q8wXE.js +0 -21
  310. package/dist/packem_shared/defaultCloudStorageFileNameValidation-DUuacjWv.js +0 -11
  311. package/dist/packem_shared/digitalOcean-CWQRJM3L.js +0 -21
  312. package/dist/packem_shared/disk-storage-Bh2wy3YW.js +0 -810
  313. package/dist/packem_shared/gcs-meta-storage-0tgMNnPO.js +0 -158
  314. package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
  315. package/dist/packem_shared/headers-DoS5nwM-.js +0 -3220
  316. package/dist/packem_shared/is-expired-CTThU1q5.js +0 -8
  317. package/dist/packem_shared/isRetryableError-Dycp7127.js +0 -82
  318. package/dist/packem_shared/isValidMediaType-BeDgiObq.js +0 -35
  319. package/dist/packem_shared/local-meta-storage-By-3SNBI.js +0 -649
  320. package/dist/packem_shared/minio-C2YBZQOw.js +0 -22
  321. package/dist/packem_shared/multipart-base-B3i67SSX.js +0 -102
  322. package/dist/packem_shared/part-match-BMNqHDYD.js +0 -96
  323. package/dist/packem_shared/path-CR6YkPXX-7R1-9CMk.js +0 -161
  324. package/dist/packem_shared/response-builder-BtnRiBUI.js +0 -45
  325. package/dist/packem_shared/rest-base-GRCcnan7.js +0 -457
  326. package/dist/packem_shared/restOpenApiSpec-CwcHHY2C.js +0 -800
  327. package/dist/packem_shared/s3-base-storage-C1DIHTYY.js +0 -510
  328. package/dist/packem_shared/sharedGet-Cpo7QUyu.js +0 -1019
  329. package/dist/packem_shared/storage-C6NSXb8h.js +0 -1175
  330. package/dist/packem_shared/tigris-Hac8TKnX.js +0 -21
  331. package/dist/packem_shared/transformOpenApiSpec-DWM5WtnN.js +0 -975
  332. package/dist/packem_shared/tusOpenApiSpec-6ohiToBy.js +0 -740
  333. package/dist/packem_shared/update-size-CCGm6i1J.js +0 -8
  334. package/dist/packem_shared/validator-BeX_lJet.js +0 -78
  335. package/dist/packem_shared/waitForStorage-Cscw85sx.js +0 -18
  336. package/dist/packem_shared/wasabi-DIyflHSd.js +0 -21
  337. package/dist/packem_shared/xhrOpenApiSpec-DS17brnx.js +0 -264
  338. package/dist/storage/aws/clients/backblaze.d.ts +0 -12
  339. package/dist/storage/aws/clients/cloudflare.d.ts +0 -13
  340. package/dist/storage/aws/clients/digital-ocean.d.ts +0 -12
  341. package/dist/storage/aws/clients/minio.d.ts +0 -13
  342. package/dist/storage/aws/clients/tigris.d.ts +0 -12
  343. package/dist/storage/aws/clients/types.d.ts +0 -95
  344. package/dist/storage/aws/clients/wasabi.d.ts +0 -12
  345. package/dist/storage/aws/s3-base-storage.d.ts +0 -248
  346. package/dist/storage/aws/s3-client-adapter.d.ts +0 -110
  347. package/dist/storage/aws/s3-file.d.ts +0 -10
  348. package/dist/storage/aws/s3-meta-storage.d.ts +0 -15
  349. package/dist/storage/aws/s3-storage.d.ts +0 -70
  350. package/dist/storage/aws/types.d.ts +0 -119
  351. package/dist/storage/aws-light/aws-light-api-adapter.d.ts +0 -130
  352. package/dist/storage/aws-light/aws-light-file.d.ts +0 -10
  353. package/dist/storage/aws-light/aws-light-meta-storage.d.ts +0 -19
  354. package/dist/storage/aws-light/aws-light-storage.d.ts +0 -65
  355. package/dist/storage/aws-light/types.d.ts +0 -37
  356. package/dist/storage/azure/azure-file.d.ts +0 -6
  357. package/dist/storage/azure/azure-meta-storage.d.ts +0 -15
  358. package/dist/storage/azure/azure-storage.d.ts +0 -69
  359. package/dist/storage/azure/types.d.ts +0 -62
  360. package/dist/storage/gcs/fetch-error.d.ts +0 -11
  361. package/dist/storage/gcs/gcs-config.d.ts +0 -2
  362. package/dist/storage/gcs/gcs-file.d.ts +0 -6
  363. package/dist/storage/gcs/gcs-meta-storage.d.ts +0 -27
  364. package/dist/storage/gcs/gcs-storage.d.ts +0 -91
  365. package/dist/storage/gcs/types.d.ts +0 -55
  366. package/dist/storage/gcs/utils.d.ts +0 -7
  367. package/dist/storage/local/disk-storage-with-checksum.d.ts +0 -15
  368. package/dist/storage/local/disk-storage.d.ts +0 -135
  369. package/dist/storage/local/local-meta-storage.d.ts +0 -32
  370. package/dist/storage/meta-storage.d.ts +0 -30
  371. package/dist/storage/netlify-blob/netlify-blob-file.d.ts +0 -12
  372. package/dist/storage/netlify-blob/netlify-blob-meta-storage.d.ts +0 -7
  373. package/dist/storage/netlify-blob/netlify-blob-storage.d.ts +0 -93
  374. package/dist/storage/netlify-blob/types.d.ts +0 -30
  375. package/dist/storage/storage.d.ts +0 -353
  376. package/dist/storage/types.d.ts +0 -221
  377. package/dist/storage/utils/file/file.d.ts +0 -25
  378. package/dist/storage/utils/file/get-file-status.d.ts +0 -9
  379. package/dist/storage/utils/file/has-content.d.ts +0 -9
  380. package/dist/storage/utils/file/index.d.ts +0 -10
  381. package/dist/storage/utils/file/is-expired.d.ts +0 -8
  382. package/dist/storage/utils/file/metadata.d.ts +0 -18
  383. package/dist/storage/utils/file/part-match.d.ts +0 -11
  384. package/dist/storage/utils/file/types.d.ts +0 -37
  385. package/dist/storage/utils/file/update-metadata.d.ts +0 -10
  386. package/dist/storage/utils/file/update-size.d.ts +0 -10
  387. package/dist/storage/vercel-blob/types.d.ts +0 -32
  388. package/dist/storage/vercel-blob/vercel-blob-file.d.ts +0 -16
  389. package/dist/storage/vercel-blob/vercel-blob-meta-storage.d.ts +0 -7
  390. package/dist/storage/vercel-blob/vercel-blob-storage.d.ts +0 -76
  391. package/dist/transformer/base-transformer.d.ts +0 -63
  392. package/dist/transformer/media-transformer.d.ts +0 -332
  393. package/dist/transformer/types.d.ts +0 -652
  394. package/dist/transformer/utils.d.ts +0 -33
  395. package/dist/transformer/validation-error.d.ts +0 -23
  396. package/dist/utils/cache.d.ts +0 -32
  397. package/dist/utils/chunked-upload.d.ts +0 -65
  398. package/dist/utils/detect-file-type.d.ts +0 -28
  399. package/dist/utils/errors.d.ts +0 -74
  400. package/dist/utils/file-path-url-matcher.d.ts +0 -18
  401. package/dist/utils/headers.d.ts +0 -111
  402. package/dist/utils/http.d.ts +0 -92
  403. package/dist/utils/locker.d.ts +0 -26
  404. package/dist/utils/pipes/stream-checksum.d.ts +0 -47
  405. package/dist/utils/pipes/stream-length.d.ts +0 -22
  406. package/dist/utils/primitives/get-last-one.d.ts +0 -3
  407. package/dist/utils/primitives/is-record.d.ts +0 -2
  408. package/dist/utils/primitives/map-values.d.ts +0 -9
  409. package/dist/utils/primitives/pick.d.ts +0 -2
  410. package/dist/utils/primitives/to-milliseconds.d.ts +0 -12
  411. package/dist/utils/primitives/to-seconds.d.ts +0 -12
  412. package/dist/utils/range-checksum.d.ts +0 -33
  413. package/dist/utils/range-hasher.d.ts +0 -46
  414. package/dist/utils/retry.d.ts +0 -64
  415. package/dist/utils/types.d.ts +0 -108
  416. package/dist/utils/validation-error.d.ts +0 -22
  417. package/dist/utils/validator.d.ts +0 -36
@@ -1,4 +1,361 @@
1
- export { default as Multipart } from "../../multipart/multipart.d.ts";
2
- export { default as Rest } from "../../rest/rest.d.ts";
3
- export { Tus, TUS_RESUMABLE, TUS_VERSION } from "../../tus/tus.d.ts";
4
- export type { AsyncHandler, BaseHandler, Handlers, MethodHandler, RequestEvent, UploadErrorEvent, UploadEvent, UploadOptions } from "../../types.d.ts";
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { U as UploadFile, K as UploadResponse } from "../../../packem_shared/storage.d-RteRC-cG.js";
3
+ import { Readable } from 'node:stream';
4
+ import { H as Handlers, A as AsyncHandler, U as UploadOptions, R as ResponseFile, a as ResponseList, M as MethodHandler } from "../../../packem_shared/types.d-cI_cMxcZ.js";
5
+ export { type B as BaseHandler, type b as RequestEvent, type c as UploadErrorEvent, type d as UploadEvent } from "../../../packem_shared/types.d-cI_cMxcZ.js";
6
+ import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-CygntIPM.js";
7
+ export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-CygntIPM.js";
8
+ import 'node:crypto';
9
+ import 'lru-cache';
10
+ import 'node:events';
11
+ import '@visulima/pagination';
12
+ import "../../../packem_shared/media-transformer.d-C3QvECD7.js";
13
+ import "../../../packem_shared/types.d-DxonY4XS.js";
14
+ /**
15
+ * Base handler for Node.js platform (IncomingMessage/ServerResponse).
16
+ * Extends BaseHandlerCore with Node.js-specific request/response handling.
17
+ * @template TFile The file type used by this handler.
18
+ * @template NodeRequest The Node.js request type.
19
+ * @template NodeResponse The Node.js response type.
20
+ */
21
+ declare abstract class BaseHandlerNode<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerCore<TFile> implements MethodHandler<NodeRequest, NodeResponse> {
22
+ /**
23
+ * Limiting enabled HTTP method handler.
24
+ */
25
+ static readonly methods: Handlers[];
26
+ /**
27
+ * Map of registered HTTP method handlers.
28
+ */
29
+ protected registeredHandlers: Map<string, AsyncHandler<NodeRequest, NodeResponse>>;
30
+ constructor(options: UploadOptions<TFile>);
31
+ /**
32
+ * Gets the registered handlers map.
33
+ * @returns Map of registered handlers.
34
+ */
35
+ get handlers(): Map<string, AsyncHandler<NodeRequest, NodeResponse>>;
36
+ /**
37
+ * Handles HTTP request (alias for upload method).
38
+ * @param request Node.js IncomingMessage.
39
+ * @param response Node.js ServerResponse.
40
+ */
41
+ handle: (request: NodeRequest, response: NodeResponse) => Promise<void>;
42
+ /**
43
+ * Main upload handler that processes HTTP requests and routes them to appropriate method handlers.
44
+ * @param request Node.js IncomingMessage.
45
+ * @param response Node.js ServerResponse.
46
+ * @param next Optional Express-style next function for middleware compatibility.
47
+ * @throws {UploadError} When storage is not ready or method is not allowed.
48
+ */
49
+ upload: (request: NodeRequest, response: NodeResponse, next?: () => void) => Promise<void>;
50
+ /**
51
+ * Compose and register HTTP method handlers.
52
+ * Subclasses should override this to register their specific handlers.
53
+ */
54
+ protected abstract compose(): void;
55
+ /**
56
+ * Sends an HTTP response with the provided body, headers, and status code.
57
+ * @param response Node.js ServerResponse to send data to.
58
+ * @param body Response body, headers, and status code.
59
+ */
60
+ send(response: NodeResponse, {
61
+ body,
62
+ headers,
63
+ statusCode
64
+ }: UploadResponse): void;
65
+ /**
66
+ * Sends an error response to the client with appropriate status code and message.
67
+ * @param response Node.js ServerResponse to send error to.
68
+ * @param error Error object to convert to HTTP error response.
69
+ */
70
+ sendError(response: NodeResponse, error: Error): Promise<void>;
71
+ /**
72
+ * Sends streaming response to client with proper backpressure handling and range request support.
73
+ * @param response Node.js ServerResponse to stream data to.
74
+ * @param stream Readable stream containing the file data.
75
+ * @param options Streaming options including headers, range, size, and status code.
76
+ */
77
+ sendStream(response: NodeResponse, stream: Readable, {
78
+ headers,
79
+ range,
80
+ size,
81
+ statusCode
82
+ }: {
83
+ headers?: Record<string, string | number>;
84
+ range?: {
85
+ end: number;
86
+ start: number;
87
+ };
88
+ size?: number;
89
+ statusCode?: number;
90
+ }): void;
91
+ /**
92
+ * Finish upload by sending final response to client with completed file data.
93
+ * @param _request HTTP request (unused parameter)
94
+ * @param response HTTP response object to send final response to
95
+ * @param uploadResponse Final upload response data containing body, headers, and status code
96
+ */
97
+ protected finish(_request: NodeRequest, response: NodeResponse, uploadResponse: UploadResponse | ResponseFile<TFile>): void;
98
+ /**
99
+ * Build file URL from request and file data.
100
+ * @param request HTTP request with optional originalUrl property
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(request: NodeRequest & {
105
+ originalUrl?: string;
106
+ }, file: TFile): string;
107
+ /**
108
+ * Negotiates content type based on Accept header and supported formats.
109
+ * @param request HTTP request object containing Accept header.
110
+ * @param supportedTypes Array of supported MIME types to match against.
111
+ * @returns Best matching content type or undefined if no match found.
112
+ */
113
+ negotiateContentType(request: NodeRequest, supportedTypes: string[]): string | undefined;
114
+ /**
115
+ * Default OPTIONS handler.
116
+ * @param _request HTTP request (unused)
117
+ * @param _response HTTP response (unused)
118
+ * @returns Promise resolving to ResponseFile with CORS headers
119
+ */
120
+ options(_request: NodeRequest, _response: NodeResponse): Promise<ResponseFile<TFile>>;
121
+ /**
122
+ * Retrieves a file or list of files based on the request path.
123
+ * @param request Node.js IncomingMessage with optional originalUrl.
124
+ * @param response Node.js ServerResponse.
125
+ * @returns Promise resolving to a single file, paginated list, or array of files.
126
+ * @throws {UploadError} When file is not found or storage error occurs.
127
+ */
128
+ get(request: NodeRequest & {
129
+ originalUrl?: string;
130
+ }, _response: NodeResponse): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
131
+ /**
132
+ * Returns a list of uploaded files with optional pagination support.
133
+ * @param request Node.js IncomingMessage containing query parameters for pagination.
134
+ * @param _response Node.js ServerResponse (unused).
135
+ * @returns Promise resolving to a paginated or complete list of uploaded files.
136
+ */
137
+ list(request: NodeRequest, _response: NodeResponse): Promise<ResponseList<TFile>>;
138
+ /**
139
+ * Streams download of a file with resumable support using HTTP range requests.
140
+ * @param request Node.js IncomingMessage with optional originalUrl and range header.
141
+ * @param response Node.js ServerResponse to stream the file to.
142
+ * @throws {HttpError} When file is not found or streaming is not supported.
143
+ */
144
+ download(request: NodeRequest & {
145
+ originalUrl?: string;
146
+ }, response: NodeResponse): Promise<void>;
147
+ /**
148
+ * Check if error is related to undefined ID or path and throw appropriate HTTP error.
149
+ * @param error Error object to check
150
+ */
151
+ protected override checkForUndefinedIdOrPath(error: unknown): void;
152
+ }
153
+ /**
154
+ * Multipart/form-data upload handler (Node.js version).
155
+ * @example
156
+ * ```ts
157
+ * const multipart = new Multipart({
158
+ * storage,
159
+ * maxFileSize: 100 * 1024 * 1024, // 100MB
160
+ * });
161
+ *
162
+ * app.use('/files', multipart.handle);
163
+ * ```
164
+ */
165
+ declare class Multipart<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
166
+ /**
167
+ * Limiting enabled http method handler
168
+ */
169
+ static override readonly methods: Handlers[];
170
+ private readonly multipartBase;
171
+ /**
172
+ * Maximum file size allowed for multipart uploads
173
+ */
174
+ private maxFileSize;
175
+ /**
176
+ * Maximum header size allowed for multipart parser
177
+ */
178
+ private maxHeaderSize;
179
+ constructor(options: UploadOptions<TFile>);
180
+ /**
181
+ * Handles multipart/form-data POST requests for file uploads.
182
+ * @param request Node.js IncomingMessage containing multipart data.
183
+ * @returns Promise resolving to ResponseFile with upload result.
184
+ */
185
+ post(request: NodeRequest): Promise<ResponseFile<TFile>>;
186
+ /**
187
+ * Delete an uploaded file.
188
+ * @param request Node.js IncomingMessage with file ID
189
+ * @returns Promise resolving to ResponseFile with deletion result
190
+ */
191
+ delete(request: NodeRequest): Promise<ResponseFile<TFile>>;
192
+ /**
193
+ * Compose and register HTTP method handlers.
194
+ */
195
+ protected compose(): void;
196
+ }
197
+ /**
198
+ * REST API handler for direct binary file uploads (Node.js version).
199
+ *
200
+ * This handler provides a clean REST interface for file operations:
201
+ * - POST: Create a new file with raw binary data or initialize chunked upload
202
+ * - PUT: Create or update a file (requires ID in URL)
203
+ * - PATCH: Upload chunks for chunked uploads (requires ID in URL)
204
+ * - GET: Retrieve a file or list files
205
+ * - DELETE: Delete a file (single) or multiple files (via ?ids=id1,id2 or JSON body)
206
+ * - HEAD: Get file metadata and upload progress
207
+ * - OPTIONS: CORS preflight
208
+ * @example
209
+ * ```ts
210
+ * const rest = new Rest({
211
+ * storage,
212
+ * });
213
+ *
214
+ * app.use('/files', rest.handle);
215
+ * ```
216
+ */
217
+ declare class Rest<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
218
+ /**
219
+ * Limiting enabled http method handler
220
+ */
221
+ static override readonly methods: Handlers[];
222
+ private readonly restBase;
223
+ constructor(options: UploadOptions<TFile>);
224
+ /**
225
+ * Compose and register HTTP method handlers.
226
+ */
227
+ protected override compose(): void;
228
+ /**
229
+ * Build file URL from request and file data.
230
+ * @param requestUrl Request URL string
231
+ * @param file File object containing ID and content type
232
+ * @returns Constructed file URL with extension based on content type
233
+ */
234
+ protected buildFileUrlForRest(requestUrl: string, file: TFile): string;
235
+ /**
236
+ * Creates a new file via POST request with raw binary data.
237
+ * Supports both full file uploads and chunked upload initialization.
238
+ * @param request Node.js IncomingMessage with file data.
239
+ * @returns Promise resolving to ResponseFile with upload result.
240
+ */
241
+ post(request: NodeRequest): Promise<ResponseFile<TFile>>;
242
+ /**
243
+ * Create or update a file via PUT request.
244
+ * Requires file ID in the URL path.
245
+ * @param request Node.js IncomingMessage with file ID and data
246
+ * @returns Promise resolving to ResponseFile with upload result
247
+ */
248
+ put(request: NodeRequest): Promise<ResponseFile<TFile>>;
249
+ /**
250
+ * Delete an uploaded file or multiple files.
251
+ * Supports single file (ID in URL) or batch delete (via ?ids=id1,id2 or JSON body).
252
+ * @param request Node.js IncomingMessage with file ID(s)
253
+ * @returns Promise resolving to ResponseFile (single) or ResponseList (batch) with deletion result
254
+ */
255
+ delete(request: NodeRequest): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
256
+ /**
257
+ * Uploads a chunk via PATCH request for chunked uploads.
258
+ * Headers required: X-Chunk-Offset (byte offset), Content-Length (chunk size).
259
+ * Optional: X-Chunk-Checksum (SHA256 checksum for validation).
260
+ * @param request Node.js IncomingMessage with chunk data.
261
+ * @returns Promise resolving to ResponseFile with upload progress.
262
+ */
263
+ patch(request: NodeRequest): Promise<ResponseFile<TFile>>;
264
+ /**
265
+ * Get file metadata via HEAD request.
266
+ * For chunked uploads, also returns upload progress information.
267
+ * @param request Node.js IncomingMessage with file ID
268
+ * @returns Promise resolving to ResponseFile with metadata headers
269
+ */
270
+ head(request: NodeRequest): Promise<ResponseFile<TFile>>;
271
+ /**
272
+ * Handle OPTIONS requests with REST API capabilities.
273
+ * @returns Promise resolving to ResponseFile with CORS headers
274
+ */
275
+ override options(): Promise<ResponseFile<TFile>>;
276
+ /**
277
+ * Retrieves a file or list of files based on the request path.
278
+ * Delegates to BaseHandlerNode.get() method.
279
+ * @param request Node.js IncomingMessage with optional originalUrl.
280
+ * @param response Node.js ServerResponse.
281
+ * @returns Promise resolving to a single file, paginated list, or array of files.
282
+ */
283
+ override get(request: NodeRequest, response: NodeResponse): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
284
+ }
285
+ /**
286
+ * TUS resumable upload protocol handler (Node.js version).
287
+ *
288
+ * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
289
+ * @example
290
+ * ```ts
291
+ * const tus = new Tus({storage});
292
+ *
293
+ * app.all('/files', tus.handle);
294
+ * ```
295
+ */
296
+ declare class Tus<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
297
+ /**
298
+ * Limiting enabled http method handler
299
+ */
300
+ static override readonly methods: Handlers[];
301
+ override disableTerminationForFinishedUploads: boolean;
302
+ private readonly tusBase;
303
+ constructor(options: UploadOptions<TFile>);
304
+ /**
305
+ * Handle OPTIONS requests with TUS protocol capabilities.
306
+ * @returns Promise resolving to ResponseFile with TUS headers
307
+ */
308
+ override options(): Promise<ResponseFile<TFile>>;
309
+ /**
310
+ * Creates a new TUS upload and optionally starts uploading data.
311
+ * @param request Node.js IncomingMessage with TUS headers.
312
+ * @returns Promise resolving to ResponseFile with upload location and offset.
313
+ */
314
+ post(request: NodeRequest): Promise<ResponseFile<TFile>>;
315
+ /**
316
+ * Write a chunk of data to an existing TUS upload.
317
+ * @param request Node.js IncomingMessage with chunk data and TUS headers
318
+ * @returns Promise resolving to ResponseFile with updated offset
319
+ */
320
+ patch(request: NodeRequest): Promise<ResponseFile<TFile>>;
321
+ /**
322
+ * Get current upload offset and metadata for TUS resumable uploads.
323
+ * @param request Node.js IncomingMessage with upload ID
324
+ * @returns Promise resolving to ResponseFile with upload-offset and metadata headers
325
+ */
326
+ head(request: NodeRequest): Promise<ResponseFile<TFile>>;
327
+ /**
328
+ * Get TUS upload metadata and current status.
329
+ * @param request Node.js IncomingMessage with upload ID
330
+ * @returns Promise resolving to ResponseFile with file metadata as JSON
331
+ */
332
+ override get(request: NodeRequest): Promise<ResponseFile<TFile>>;
333
+ /**
334
+ * Delete a TUS upload and its associated data.
335
+ * @param request Node.js IncomingMessage with upload ID
336
+ * @returns Promise resolving to ResponseFile with deletion confirmation
337
+ */
338
+ delete(request: NodeRequest): Promise<ResponseFile<TFile>>;
339
+ /**
340
+ * Send TUS protocol response with required headers.
341
+ * @param response Node.js ServerResponse to send response to
342
+ * @param uploadResponse Response data with body, headers, and status code
343
+ */
344
+ override send(response: NodeResponse, {
345
+ body,
346
+ headers,
347
+ statusCode
348
+ }: UploadResponse): void;
349
+ /**
350
+ * Compose and register HTTP method handlers.
351
+ */
352
+ protected compose(): void;
353
+ /**
354
+ * Build file URL for TUS uploads (without file extension).
355
+ * @param requestUrl Request URL string
356
+ * @param file File object containing ID
357
+ * @returns Constructed file URL for TUS protocol
358
+ */
359
+ protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
360
+ }
361
+ export { type AsyncHandler, type Handlers, type MethodHandler, Multipart, Rest, Tus, type UploadOptions };
@@ -1,4 +1 @@
1
- export { default as Multipart } from '../../../packem_shared/Multipart-CtUL7BQw.js';
2
- export { default as Rest } from '../../../packem_shared/Rest-DNuLwBrK.js';
3
- export { Tus } from '../../../packem_shared/Tus-C4F1aYOl.js';
4
- export { TUS_RESUMABLE, TUS_VERSION } from '../../../packem_shared/TUS_RESUMABLE-GJzZ9R-f.js';
1
+ import o from"../../../packem_shared/Multipart-CIFfQksD.js";import m from"../../../packem_shared/Rest-URrQ5FYM.js";import{Tus as f}from"../../../packem_shared/Tus-TNG9HAY8.js";import{TUS_RESUMABLE as S,TUS_VERSION as a}from"../../../packem_shared/TUS_RESUMABLE-B7KtPVeC.js";export{o as Multipart,m as Rest,S as TUS_RESUMABLE,a as TUS_VERSION,f as Tus};
@@ -1,60 +1,69 @@
1
- import type { APIEvent } from "@solidjs/start/server";
2
- import type { UploadFile } from "../../../storage/utils/index.d.ts";
3
- import type { UploadOptions } from "../../types.d.ts";
1
+ import { APIEvent } from '@solidjs/start/server';
2
+ import { U as UploadFile } from "../../../packem_shared/storage.d-RteRC-cG.js";
3
+ import 'node:stream';
4
+ import { U as UploadOptions } from "../../../packem_shared/types.d-cI_cMxcZ.js";
5
+ import 'node:crypto';
6
+ import 'node:http';
7
+ import 'lru-cache';
8
+ import 'node:events';
9
+ import '@visulima/pagination';
10
+ import "../../../packem_shared/media-transformer.d-C3QvECD7.js";
11
+ import "../../../packem_shared/types.d-DxonY4XS.js";
4
12
  /**
5
- * Configuration for SolidStart handler.
6
- */
7
- export interface SolidStartHandlerConfig<TFile extends UploadFile> extends UploadOptions<TFile> {
8
- /** Handler type to use */
9
- type: "multipart" | "rest" | "tus";
13
+ * Configuration for SolidStart handler.
14
+ */
15
+ interface SolidStartHandlerConfig<TFile extends UploadFile> extends UploadOptions<TFile> {
16
+ /** Handler type to use */
17
+ type: "multipart" | "rest" | "tus";
10
18
  }
11
19
  /**
12
- * SolidStart API route handler that automatically handles the correct HTTP methods for each handler type.
13
- * @example
14
- * ```ts
15
- * // app/routes/api/upload/multipart.ts
16
- * import { DiskStorage } from "@visulima/storage";
17
- * import { createSolidStartHandler } from "@visulima/storage/handler/http/solid-start";
18
- *
19
- * const storage = new DiskStorage({ directory: "./uploads" });
20
- * const handler = createSolidStartHandler({ storage, type: "multipart" });
21
- *
22
- * export const POST = handler;
23
- * export const DELETE = handler;
24
- * export const GET = handler;
25
- * export const OPTIONS = handler;
26
- * ```
27
- * @example
28
- * ```ts
29
- * // app/routes/api/upload/rest.ts
30
- * import { DiskStorage } from "@visulima/storage";
31
- * import { createSolidStartHandler } from "@visulima/storage/handler/http/solid-start";
32
- *
33
- * const storage = new DiskStorage({ directory: "./uploads" });
34
- * const handler = createSolidStartHandler({ storage, type: "rest" });
35
- *
36
- * export const POST = handler;
37
- * export const PUT = handler;
38
- * export const PATCH = handler;
39
- * export const GET = handler;
40
- * export const HEAD = handler;
41
- * export const DELETE = handler;
42
- * export const OPTIONS = handler;
43
- * ```
44
- * @example
45
- * ```ts
46
- * // app/routes/api/upload/tus.ts
47
- * import { DiskStorage } from "@visulima/storage";
48
- * import { createSolidStartHandler } from "@visulima/storage/handler/http/solid-start";
49
- *
50
- * const storage = new DiskStorage({ directory: "./uploads" });
51
- * const handler = createSolidStartHandler({ storage, type: "tus" });
52
- *
53
- * export const POST = handler;
54
- * export const PATCH = handler;
55
- * export const HEAD = handler;
56
- * export const DELETE = handler;
57
- * export const OPTIONS = handler;
58
- * ```
59
- */
60
- export declare const createSolidStartHandler: <TFile extends UploadFile>(config: SolidStartHandlerConfig<TFile>) => (event: APIEvent) => Promise<Response>;
20
+ * SolidStart API route handler that automatically handles the correct HTTP methods for each handler type.
21
+ * @example
22
+ * ```ts
23
+ * // app/routes/api/upload/multipart.ts
24
+ * import { DiskStorage } from "@visulima/storage";
25
+ * import { createSolidStartHandler } from "@visulima/storage/handler/http/solid-start";
26
+ *
27
+ * const storage = new DiskStorage({ directory: "./uploads" });
28
+ * const handler = createSolidStartHandler({ storage, type: "multipart" });
29
+ *
30
+ * export const POST = handler;
31
+ * export const DELETE = handler;
32
+ * export const GET = handler;
33
+ * export const OPTIONS = handler;
34
+ * ```
35
+ * @example
36
+ * ```ts
37
+ * // app/routes/api/upload/rest.ts
38
+ * import { DiskStorage } from "@visulima/storage";
39
+ * import { createSolidStartHandler } from "@visulima/storage/handler/http/solid-start";
40
+ *
41
+ * const storage = new DiskStorage({ directory: "./uploads" });
42
+ * const handler = createSolidStartHandler({ storage, type: "rest" });
43
+ *
44
+ * export const POST = handler;
45
+ * export const PUT = handler;
46
+ * export const PATCH = handler;
47
+ * export const GET = handler;
48
+ * export const HEAD = handler;
49
+ * export const DELETE = handler;
50
+ * export const OPTIONS = handler;
51
+ * ```
52
+ * @example
53
+ * ```ts
54
+ * // app/routes/api/upload/tus.ts
55
+ * import { DiskStorage } from "@visulima/storage";
56
+ * import { createSolidStartHandler } from "@visulima/storage/handler/http/solid-start";
57
+ *
58
+ * const storage = new DiskStorage({ directory: "./uploads" });
59
+ * const handler = createSolidStartHandler({ storage, type: "tus" });
60
+ *
61
+ * export const POST = handler;
62
+ * export const PATCH = handler;
63
+ * export const HEAD = handler;
64
+ * export const DELETE = handler;
65
+ * export const OPTIONS = handler;
66
+ * ```
67
+ */
68
+ declare const createSolidStartHandler: <TFile extends UploadFile>(config: SolidStartHandlerConfig<TFile>) => ((event: APIEvent) => Promise<Response>);
69
+ export { SolidStartHandlerConfig, createSolidStartHandler };
@@ -1,44 +1 @@
1
- import Multipart from '../../../packem_shared/Multipart-CNFK_Okz.js';
2
- import RestFetch from '../../../packem_shared/Rest-CAOAEkOj.js';
3
- import { Tus } from '../../../packem_shared/Tus-B8PmlMgR.js';
4
-
5
- const createSolidStartHandler = (config) => {
6
- let handler;
7
- switch (config.type) {
8
- case "multipart": {
9
- handler = new Multipart(config);
10
- break;
11
- }
12
- case "rest": {
13
- handler = new RestFetch(config);
14
- break;
15
- }
16
- case "tus": {
17
- handler = new Tus(config);
18
- break;
19
- }
20
- default: {
21
- throw new Error(`Unknown handler type: ${String(config.type ?? "unknown")}`);
22
- }
23
- }
24
- const solidStartHandler = async (event) => {
25
- try {
26
- return await handler.fetch(event.request);
27
- } catch (error) {
28
- const errorObject = error;
29
- const statusCode = errorObject.statusCode || (errorObject.status ? Number.parseInt(errorObject.status, 10) : void 0) || 500;
30
- return Response.json(
31
- { error: errorObject.message || "Request failed" },
32
- {
33
- headers: {
34
- "Content-Type": "application/json"
35
- },
36
- status: statusCode
37
- }
38
- );
39
- }
40
- };
41
- return solidStartHandler;
42
- };
43
-
44
- export { createSolidStartHandler };
1
+ var i=Object.defineProperty;var a=(t,e)=>i(t,"name",{value:e,configurable:!0});import c from"../../../packem_shared/Multipart-D9WIud9R.js";import d from"../../../packem_shared/Rest-BuD3ySAg.js";import{Tus as l}from"../../../packem_shared/Tus-Fp_hx5ug.js";var p=Object.defineProperty,n=a((t,e)=>p(t,"name",{value:e,configurable:!0}),"s");const b=n(t=>{let e;switch(t.type){case"multipart":{e=new c(t);break}case"rest":{e=new d(t);break}case"tus":{e=new l(t);break}default:throw new Error(`Unknown handler type: ${String(t.type??"unknown")}`)}return n(async s=>{try{return await e.fetch(s.request)}catch(o){const r=o,u=r.statusCode||(r.status?Number.parseInt(r.status,10):void 0)||500;return Response.json({error:r.message||"Request failed"},{headers:{"Content-Type":"application/json"},status:u})}},"solidStartHandler")},"createSolidStartHandler");export{b as createSolidStartHandler};
package/dist/index.d.ts CHANGED
@@ -1,17 +1,58 @@
1
- export { waitForStorage } from "./handler/utils/storage-utils.d.ts";
2
- export { NoOpMetrics, OpenTelemetryMetrics } from "./metrics/index.d.ts";
3
- export { default as DiskStorage } from "./storage/local/disk-storage.d.ts";
4
- export { default as DiskStorageWithChecksum } from "./storage/local/disk-storage-with-checksum.d.ts";
5
- export type { LocalMetaStorageOptions } from "./storage/local/local-meta-storage.d.ts";
6
- export { default as LocalMetaStorage } from "./storage/local/local-meta-storage.d.ts";
7
- export { default as MetaStorage } from "./storage/meta-storage.d.ts";
8
- export { BaseStorage as AbstractBaseStorage, defaultCloudStorageFileNameValidation, defaultFilesystemFileNameValidation } from "./storage/storage.d.ts";
9
- export type { BaseStorageOptions, BatchOperationResponse, BatchOperationResult, DiskStorageOptions, DiskStorageWithChecksumOptions, ExpirationOptions, MetaStorageOptions, OnComplete, OnCreate, OnDelete, OnError, OnUpdate, PurgeList, } from "./storage/types.d.ts";
10
- export type { FileInit, FilePart, FileQuery, UploadEventType, UploadFile } from "./storage/utils/file/index.d.ts";
11
- export { File, Metadata } from "./storage/utils/file/index.d.ts";
12
- export { ErrorMap, ERRORS, isUploadError, throwErrorCode, UploadError } from "./utils/errors.d.ts";
13
- export type { RetryConfig } from "./utils/retry.d.ts";
14
- export { createRetryWrapper, isRetryableError, retry } from "./utils/retry.d.ts";
15
- export type { Header, Headers, HttpError, HttpErrorBody, IncomingMessageWithBody, Metrics, RangeChecksum, RangeHasher, ResponseBody, ResponseBodyType, ResponseTuple, UploadResponse, Validation, ValidationError, ValidatorConfig, } from "./utils/types.d.ts";
16
- export type { AnyWebReadableByteStreamWithFileType, AnyWebReadableStream, Detector, FileTypeOptions, FileTypeParser, FileTypeResult, StreamOptions, TokenizerPositionError, } from "file-type";
17
- export { fileTypeFromBlob, fileTypeFromBuffer, fileTypeFromTokenizer, supportedExtensions, supportedMimeTypes } from "file-type";
1
+ export { type D as DownloadResult, type a as FileBody, type b as FileObject, F as Files, type c as FilesOptions, type L as ListOptions, type S as SignedReadUrlOptions, type d as SignedUploadUrlOptions, type U as UploadOptions } from "./packem_shared/index.d-C4Fivh4I.js";
2
+ import { l as Metrics } from "./packem_shared/storage.d-RteRC-cG.js";
3
+ export { B as AbstractBaseStorage, type i as BaseStorageOptions, type m as BatchOperationResponse, type n as BatchOperationResult, type D as DiskStorageOptions, type h as DiskStorageWithChecksumOptions, E as ERRORS, o as ErrorMap, type p as ExpirationOptions, F as File, type e as FileInit, type f as FilePart, type g as FileQuery, type q as Header, type r as Headers, type H as HttpError, type s as HttpErrorBody, type I as IncomingMessageWithBody, type L as LocalMetaStorageOptions, M as MetaStorage, type t as MetaStorageOptions, u as Metadata, type v as OnComplete, type w as OnCreate, type x as OnDelete, type y as OnError, type z as OnUpdate, type P as PurgeList, type A as RangeChecksum, type C as RangeHasher, type G as ResponseBody, type j as ResponseBodyType, type J as ResponseTuple, type R as RetryConfig, b as UploadError, type c as UploadEventType, type U as UploadFile, type K as UploadResponse, type V as Validation, type N as ValidationError, type Q as ValidatorConfig, d as createRetryWrapper, S as defaultCloudStorageFileNameValidation, T as defaultFilesystemFileNameValidation, W as extractHttpStatus, X as isRetryableError, Y as isUploadError, Z as mapStatusToErrorCode, _ as retry, $ as throwErrorCode, a0 as wrapStorageError } from "./packem_shared/storage.d-RteRC-cG.js";
4
+ import { Meter } from '@opentelemetry/api';
5
+ export { D as DiskStorage, a as DiskStorageWithChecksum } from "./packem_shared/disk-storage-with-checksum.d-mHcg2uLw.js";
6
+ export { L as LocalMetaStorage } from "./packem_shared/local-meta-storage.d-B11vHYNm.js";
7
+ export { type AnyWebReadableByteStreamWithFileType, type AnyWebReadableStream, type Detector, type FileTypeOptions, type FileTypeParser, type FileTypeResult, type StreamOptions, type TokenizerPositionError, fileTypeFromBlob, fileTypeFromBuffer, fileTypeFromTokenizer, supportedExtensions, supportedMimeTypes } from 'file-type';
8
+ import 'node:stream';
9
+ import 'node:crypto';
10
+ import 'node:http';
11
+ import 'lru-cache';
12
+ /**
13
+ * Wait for storage to be ready before handling requests.
14
+ * This ensures storage initialization (e.g., AWS S3, GCS) completes before processing uploads.
15
+ * @param storage Storage instance with isReady property
16
+ * @param timeoutMs Maximum time to wait in milliseconds (default: 5000)
17
+ * @throws Error if storage doesn't become ready within timeout
18
+ */
19
+ declare const waitForStorage: (storage: {
20
+ isReady: boolean;
21
+ }, timeoutMs?: number) => Promise<void>;
22
+ /**
23
+ * No-op metrics that does nothing.
24
+ * Used as a default when metrics are not provided.
25
+ */
26
+ declare class NoOpMetrics implements Metrics {
27
+ increment(_name: string, _value?: number, _attributes?: Record<string, string | number>): void;
28
+ timing(_name: string, _duration: number, _attributes?: Record<string, string | number>): void;
29
+ gauge(_name: string, _value: number, _attributes?: Record<string, string | number>): void;
30
+ }
31
+ /**
32
+ * OpenTelemetry-based metrics implementation.
33
+ */
34
+ declare class OpenTelemetryMetrics implements Metrics {
35
+ private readonly meter;
36
+ private readonly counters;
37
+ private readonly histograms;
38
+ private readonly gauges;
39
+ /**
40
+ * Creates a new OpenTelemetryMetrics instance.
41
+ * @param meter OpenTelemetry Meter instance. If not provided, uses the default meter.
42
+ * @throws {Error} If \@opentelemetry/api is not installed
43
+ */
44
+ constructor(meter?: Meter);
45
+ /**
46
+ * Increment a counter metric.
47
+ */
48
+ increment(name: string, value?: number, attributes?: Record<string, string | number>): void;
49
+ /**
50
+ * Record a duration/timing metric in milliseconds.
51
+ */
52
+ timing(name: string, duration: number, attributes?: Record<string, string | number>): void;
53
+ /**
54
+ * Set a gauge metric value.
55
+ */
56
+ gauge(name: string, value: number, attributes?: Record<string, string | number>): void;
57
+ }
58
+ export { type Metrics, NoOpMetrics, OpenTelemetryMetrics, waitForStorage };
package/dist/index.js CHANGED
@@ -1,13 +1 @@
1
- export { waitForStorage } from './packem_shared/waitForStorage-Cscw85sx.js';
2
- export { D as DiskStorage } from './packem_shared/disk-storage-Bh2wy3YW.js';
3
- export { default as DiskStorageWithChecksum } from './packem_shared/DiskStorageWithChecksum-BJTmMklc.js';
4
- export { L as LocalMetaStorage } from './packem_shared/local-meta-storage-By-3SNBI.js';
5
- export { default as MetaStorage } from './packem_shared/MetaStorage-pECeFOad.js';
6
- export { B as AbstractBaseStorage, d as defaultCloudStorageFileNameValidation, a as defaultFilesystemFileNameValidation } from './packem_shared/storage-C6NSXb8h.js';
7
- export { ERRORS, ErrorMap, UploadError, isUploadError, throwErrorCode } from './packem_shared/ERRORS-D0apMqnc.js';
8
- export { createRetryWrapper, isRetryableError, retry } from './packem_shared/isRetryableError-Dycp7127.js';
9
- export { fileTypeFromBlob, fileTypeFromBuffer, fileTypeFromTokenizer, supportedExtensions, supportedMimeTypes } from 'file-type';
10
- export { default as NoOpMetrics } from './packem_shared/NoOpMetrics-DhAk5rXc.js';
11
- export { default as OpenTelemetryMetrics } from './packem_shared/OpenTelemetryMetrics-BnxhqIaH.js';
12
- export { default as File } from './packem_shared/File-Bb3P23dr.js';
13
- export { Metadata } from './packem_shared/Metadata-DRLXeJ0F.js';
1
+ import{Files as o}from"./packem_shared/Files-CJh9_N-9.js";import{waitForStorage as a}from"./packem_shared/waitForStorage-ChSBLhLc.js";import{f as s}from"./packem_shared/disk-storage-CKAJvhcj.js";import{default as l}from"./packem_shared/DiskStorageWithChecksum-BvUTn7O-.js";import{v as i}from"./packem_shared/local-meta-storage-Bi0mK6gD.js";import{default as x}from"./packem_shared/MetaStorage-Y4m1dWgd.js";import{B as S,d as y,a as E}from"./packem_shared/storage-Dh0tJh7j.js";import{ERRORS as g,ErrorMap as c,UploadError as M,extractHttpStatus as T,isUploadError as n,mapStatusToErrorCode as R,throwErrorCode as k,wrapStorageError as B}from"./packem_shared/ERRORS-CyOuSMLY.js";import{createRetryWrapper as b,isRetryableError as h,retry as w}from"./packem_shared/isRetryableError-BhizNeAz.js";import{fileTypeFromBlob as O,fileTypeFromBuffer as D,fileTypeFromTokenizer as U,supportedExtensions as V,supportedMimeTypes as W}from"file-type";import{default as z}from"./packem_shared/File-BhfUgJjs.js";import{default as H}from"./packem_shared/NoOpMetrics-Dky06sf1.js";import{default as j}from"./packem_shared/OpenTelemetryMetrics-9uxQMSlg.js";import{Metadata as G}from"./packem_shared/Metadata-B6Ir0KO7.js";export{S as AbstractBaseStorage,s as DiskStorage,l as DiskStorageWithChecksum,g as ERRORS,c as ErrorMap,z as File,o as Files,i as LocalMetaStorage,x as MetaStorage,G as Metadata,H as NoOpMetrics,j as OpenTelemetryMetrics,M as UploadError,b as createRetryWrapper,y as defaultCloudStorageFileNameValidation,E as defaultFilesystemFileNameValidation,T as extractHttpStatus,O as fileTypeFromBlob,D as fileTypeFromBuffer,U as fileTypeFromTokenizer,h as isRetryableError,n as isUploadError,R as mapStatusToErrorCode,w as retry,V as supportedExtensions,W as supportedMimeTypes,k as throwErrorCode,a as waitForStorage,B as wrapStorageError};