@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,310 +1 @@
1
- import { Input, BufferSource, ALL_FORMATS, Output, BufferTarget, Conversion, Mp4OutputFormat, WebMOutputFormat, OggOutputFormat, MkvOutputFormat } from 'mediabunny';
2
- import BaseTransformer from '../packem_shared/BaseTransformer-C2gLib6v.js';
3
- import { isValidMediaType, getFormatFromContentType } from '../packem_shared/isValidMediaType-BeDgiObq.js';
4
-
5
- class VideoTransformer extends BaseTransformer {
6
- /**
7
- * Creates a new VideoTransformer instance.
8
- * @param storage The storage backend for retrieving and storing video files.
9
- * @param config Configuration options for video transformation including cache settings, codec defaults, and size limits.
10
- */
11
- constructor(storage, config = {}) {
12
- const logger = config.logger || storage.logger;
13
- const transformerConfig = {
14
- cacheTtl: 3600,
15
- // 1 hour
16
- defaultBitrate: 2e6,
17
- // 2 Mbps
18
- defaultCodec: "avc",
19
- // No cache provided - no caching
20
- maxCacheSize: 50,
21
- // Max 50 transformed videos in cache
22
- maxVideoSize: 500 * 1024 * 1024,
23
- // 500MB
24
- supportedFormats: ["mp4", "webm", "mkv", "avi", "mov", "flv", "wmv"],
25
- ...config
26
- };
27
- super(storage, transformerConfig, logger);
28
- }
29
- /**
30
- * Resizes a video to specified dimensions with optional fit mode.
31
- * @param fileId Unique identifier of the video file to resize.
32
- * @param options Resize options including width, height, and fit mode.
33
- * @returns Promise resolving to transformed video result.
34
- */
35
- async resize(fileId, options) {
36
- return this.transform(fileId, [{ options, type: "resize" }]);
37
- }
38
- /**
39
- * Crops a video to the specified region.
40
- * @param fileId Unique identifier of the video file to crop.
41
- * @param options Crop options including region coordinates.
42
- * @returns Promise resolving to transformed video result.
43
- */
44
- async crop(fileId, options) {
45
- return this.transform(fileId, [{ options, type: "crop" }]);
46
- }
47
- /**
48
- * Rotates a video by the specified angle.
49
- * @param fileId Unique identifier of the video file to rotate.
50
- * @param options Rotation configuration with angle in degrees and optional background color.
51
- * @returns Promise resolving to transformed video result.
52
- */
53
- async rotate(fileId, options) {
54
- return this.transform(fileId, [{ options, type: "rotate" }]);
55
- }
56
- /**
57
- * Converts video format or codec.
58
- * @param fileId Unique identifier of the video file to convert.
59
- * @param format Target video format (e.g., "mp4", "webm", "mkv").
60
- * @param options Video transformation options including quality, bitrate, and codec settings.
61
- * @returns Promise resolving to transformed video result with updated format metadata.
62
- */
63
- async convertFormat(fileId, format, options = {}) {
64
- return this.transform(fileId, [{ options: { ...options, format }, type: "format" }]);
65
- }
66
- /**
67
- * Transcodes video to different codec.
68
- * @param fileId Unique identifier of the video file to transcode.
69
- * @param codec Target video codec (e.g., "avc", "hevc", "vp9").
70
- * @param options Additional transform options.
71
- * @returns Promise resolving to transformed video result.
72
- */
73
- async transcode(fileId, codec, options = {}) {
74
- return this.transform(fileId, [{ options: { ...options, codec }, type: "codec" }]);
75
- }
76
- /**
77
- * Applies a custom transformation pipeline to a video.
78
- * @param fileId Unique identifier of the video file to transform.
79
- * @param steps Array of transformation steps to apply in sequence.
80
- * @returns Promise resolving to transformed video result.
81
- */
82
- async transform(fileId, steps) {
83
- const fileQuery = { id: fileId };
84
- const cacheKey = this.generateCacheKey(fileId, steps);
85
- if (this.cache) {
86
- const cached = await Promise.resolve(this.cache.get(cacheKey));
87
- if (cached) {
88
- this.logger?.debug("Returning cached transformed video for %s", fileId);
89
- return cached;
90
- }
91
- }
92
- const originalFile = await this.storage.get(fileQuery);
93
- await this.validateVideo(originalFile);
94
- const transformedBuffer = await this.applyTransformations(originalFile.content, steps);
95
- const result = await this.createTransformResult(transformedBuffer, originalFile);
96
- if (this.cache) {
97
- this.cache.set(cacheKey, result);
98
- }
99
- return result;
100
- }
101
- /**
102
- * Applies multiple transformations in sequence using Mediabunny.
103
- * @param buffer The original video buffer.
104
- * @param steps Array of video transformation steps to apply.
105
- * @returns Promise resolving to transformed video buffer.
106
- * @private
107
- */
108
- async applyTransformations(buffer, steps) {
109
- const input = new Input({
110
- formats: ALL_FORMATS,
111
- source: new BufferSource(buffer)
112
- });
113
- const outputFormat = this.determineOutputFormat(steps);
114
- const output = new Output({
115
- format: outputFormat,
116
- target: new BufferTarget()
117
- });
118
- const videoOptions = this.stepsToVideoOptions(steps);
119
- const conversion = await Conversion.init({
120
- input,
121
- output,
122
- video: videoOptions
123
- });
124
- if (!conversion.isValid) {
125
- const reasons = conversion.discardedTracks.map((track) => track.reason).join(", ");
126
- throw new Error(`Video transformation failed: ${reasons}`);
127
- }
128
- await conversion.execute();
129
- return Buffer.from(output.target.buffer);
130
- }
131
- /**
132
- * Converts transformation steps to Mediabunny video options.
133
- * @param steps Array of video transformation steps to convert.
134
- * @returns Mediabunny video options object for conversion.
135
- * @private
136
- */
137
- // eslint-disable-next-line class-methods-use-this
138
- stepsToVideoOptions(steps) {
139
- const options = {};
140
- for (const step of steps) {
141
- switch (step.type) {
142
- case "bitrate": {
143
- const bitrateOptions = step.options;
144
- if (bitrateOptions.bitrate) {
145
- options.bitrate = bitrateOptions.bitrate;
146
- }
147
- break;
148
- }
149
- case "codec": {
150
- const codecOptions = step.options;
151
- if (codecOptions.codec) {
152
- options.codec = codecOptions.codec;
153
- }
154
- if (codecOptions.bitrate) {
155
- options.bitrate = codecOptions.bitrate;
156
- }
157
- break;
158
- }
159
- case "crop": {
160
- const cropOptions = step.options;
161
- options.crop = {
162
- height: cropOptions.height,
163
- left: cropOptions.left,
164
- top: cropOptions.top,
165
- width: cropOptions.width
166
- };
167
- break;
168
- }
169
- case "frameRate": {
170
- const frameRateOptions = step.options;
171
- if (frameRateOptions.frameRate) {
172
- options.frameRate = frameRateOptions.frameRate;
173
- }
174
- break;
175
- }
176
- case "resize": {
177
- const resizeOptions = step.options;
178
- options.width = resizeOptions.width;
179
- options.height = resizeOptions.height;
180
- options.fit = resizeOptions.fit;
181
- if (resizeOptions.position !== void 0) {
182
- options.position = resizeOptions.position;
183
- }
184
- break;
185
- }
186
- case "rotate": {
187
- const rotateOptions = step.options;
188
- options.rotate = rotateOptions.angle;
189
- if (rotateOptions.background) {
190
- options.background = rotateOptions.background;
191
- }
192
- break;
193
- }
194
- }
195
- }
196
- return options;
197
- }
198
- /**
199
- * Determines output format based on transformation steps.
200
- * @param steps Array of video transformation steps.
201
- * @returns Mediabunny output format instance (defaults to MP4).
202
- * @private
203
- */
204
- determineOutputFormat(steps) {
205
- for (const step of steps) {
206
- if (step.type === "format" && step.options.format) {
207
- return this.formatStringToOutputFormat(step.options.format);
208
- }
209
- }
210
- return new Mp4OutputFormat();
211
- }
212
- /**
213
- * Converts format string to Mediabunny output format.
214
- * @param format Video format string (mp4, webm, mkv, ogg).
215
- * @returns Mediabunny output format instance.
216
- * @private
217
- */
218
- // eslint-disable-next-line class-methods-use-this
219
- formatStringToOutputFormat(format) {
220
- switch (format.toLowerCase()) {
221
- case "mkv": {
222
- return new MkvOutputFormat();
223
- }
224
- case "mp4": {
225
- return new Mp4OutputFormat();
226
- }
227
- case "ogg": {
228
- return new OggOutputFormat();
229
- }
230
- case "webm": {
231
- return new WebMOutputFormat();
232
- }
233
- default: {
234
- return new Mp4OutputFormat();
235
- }
236
- }
237
- }
238
- /**
239
- * Validates that the file is a supported video.
240
- * @param file The file to validate.
241
- * @returns Promise that resolves if validation passes.
242
- * @throws Error if file size exceeds limits, wrong content type, unsupported format, or invalid video.
243
- * @private
244
- */
245
- async validateVideo(file) {
246
- const fileSize = typeof file.size === "string" ? Number.parseInt(file.size, 10) : file.size;
247
- if (this.config?.maxVideoSize && fileSize > this.config.maxVideoSize) {
248
- throw new Error(`Video size ${fileSize} exceeds maximum allowed size ${this.config.maxVideoSize}`);
249
- }
250
- if (!isValidMediaType(file.contentType, "video")) {
251
- throw new Error(`File is not a video: ${file.contentType}`);
252
- }
253
- const format = getFormatFromContentType(file.contentType);
254
- if (this.config?.supportedFormats && format && !this.config.supportedFormats.includes(format)) {
255
- throw new Error(`Unsupported video format: ${format}`);
256
- }
257
- try {
258
- const input = new Input({
259
- formats: ALL_FORMATS,
260
- source: new BufferSource(file.content)
261
- });
262
- const primaryTrack = await input.getPrimaryVideoTrack();
263
- if (!primaryTrack) {
264
- throw new Error("No video track found");
265
- }
266
- } catch (error) {
267
- throw new Error(`Invalid video file: ${error}`);
268
- }
269
- }
270
- /**
271
- * Creates transformation result with metadata.
272
- * @param buffer The transformed video buffer.
273
- * @param originalFile The original file information.
274
- * @returns Video transformation result with metadata.
275
- * @private
276
- */
277
- async createTransformResult(buffer, originalFile) {
278
- const input = new Input({
279
- formats: ALL_FORMATS,
280
- source: new BufferSource(buffer)
281
- });
282
- const videoTrack = await input.getPrimaryVideoTrack();
283
- const duration = await input.computeDuration();
284
- return {
285
- bitrate: this.config.defaultBitrate,
286
- buffer,
287
- duration,
288
- format: "mp4",
289
- // Default, would need to detect actual format
290
- height: videoTrack?.displayHeight || 0,
291
- originalFile,
292
- size: buffer.length,
293
- width: videoTrack?.displayWidth || 0
294
- };
295
- }
296
- /**
297
- * Generates cache key for transformation.
298
- * @param fileId The file identifier.
299
- * @param steps Array of transformation steps.
300
- * @returns Unique cache key string.
301
- * @private
302
- */
303
- // eslint-disable-next-line class-methods-use-this
304
- generateCacheKey(fileId, steps) {
305
- const stepsKey = steps.map((step) => `${step.type}:${JSON.stringify(step.options)}`).join("|");
306
- return `${fileId}:${stepsKey}`;
307
- }
308
- }
309
-
310
- export { VideoTransformer as default };
1
+ var w=Object.defineProperty;var p=(n,t)=>w(n,"name",{value:t,configurable:!0});import{Input as f,BufferSource as m,ALL_FORMATS as u,Output as g,BufferTarget as l,Conversion as y,Mp4OutputFormat as d,WebMOutputFormat as b,OggOutputFormat as v,MkvOutputFormat as T}from"mediabunny";import F from"../packem_shared/BaseTransformer-Fpcuz4kj.js";import{isValidMediaType as k,getFormatFromContentType as O}from"../packem_shared/isValidMediaType-B-2UKjZx.js";var V=Object.defineProperty,z=p((n,t)=>V(n,"name",{value:t,configurable:!0}),"d");class C extends F{static{p(this,"b")}static{z(this,"VideoTransformer")}constructor(t,e={}){const r=e.logger||t.logger,o={cacheTtl:3600,defaultBitrate:2e6,defaultCodec:"avc",maxCacheSize:50,maxVideoSize:500*1024*1024,supportedFormats:["mp4","webm","mkv","avi","mov","flv","wmv"],...e};super(t,o,r)}async resize(t,e){return this.transform(t,[{options:e,type:"resize"}])}async crop(t,e){return this.transform(t,[{options:e,type:"crop"}])}async rotate(t,e){return this.transform(t,[{options:e,type:"rotate"}])}async convertFormat(t,e,r={}){return this.transform(t,[{options:{...r,format:e},type:"format"}])}async transcode(t,e,r={}){return this.transform(t,[{options:{...r,codec:e},type:"codec"}])}async transform(t,e){const r={id:t},o=this.generateCacheKey(t,e);if(this.cache){const s=await Promise.resolve(this.cache.get(o));if(s)return this.logger?.debug("Returning cached transformed video for %s",t),s}const a=await this.storage.get(r);await this.validateVideo(a);const c=await this.applyTransformations(a.content,e),i=await this.createTransformResult(c,a);return this.cache&&this.cache.set(o,i),i}async applyTransformations(t,e){const r=new f({formats:u,source:new m(t)}),o=this.determineOutputFormat(e),a=new g({format:o,target:new l}),c=this.stepsToVideoOptions(e),i=await y.init({input:r,output:a,video:c});if(!i.isValid){const s=i.discardedTracks.map(h=>h.reason).join(", ");throw new Error(`Video transformation failed: ${s}`)}return await i.execute(),Buffer.from(a.target.buffer)}stepsToVideoOptions(t){const e={};for(const r of t)switch(r.type){case"bitrate":{const o=r.options;o.bitrate&&(e.bitrate=o.bitrate);break}case"codec":{const o=r.options;o.codec&&(e.codec=o.codec),o.bitrate&&(e.bitrate=o.bitrate);break}case"crop":{const o=r.options;e.crop={height:o.height,left:o.left,top:o.top,width:o.width};break}case"frameRate":{const o=r.options;o.frameRate&&(e.frameRate=o.frameRate);break}case"resize":{const o=r.options;e.width=o.width,e.height=o.height,e.fit=o.fit,o.position!==void 0&&(e.position=o.position);break}case"rotate":{const o=r.options;e.rotate=o.angle,o.background&&(e.background=o.background);break}}return e}determineOutputFormat(t){for(const e of t)if(e.type==="format"&&e.options.format)return this.formatStringToOutputFormat(e.options.format);return new d}formatStringToOutputFormat(t){switch(t.toLowerCase()){case"mkv":return new T;case"mp4":return new d;case"ogg":return new v;case"webm":return new b;default:return new d}}async validateVideo(t){const e=typeof t.size=="string"?Number.parseInt(t.size,10):t.size;if(this.config?.maxVideoSize&&e>this.config.maxVideoSize)throw new Error(`Video size ${e} exceeds maximum allowed size ${this.config.maxVideoSize}`);if(!k(t.contentType,"video"))throw new Error(`File is not a video: ${t.contentType}`);const r=O(t.contentType);if(this.config?.supportedFormats&&r&&!this.config.supportedFormats.includes(r))throw new Error(`Unsupported video format: ${r}`);try{if(!await new f({formats:u,source:new m(t.content)}).getPrimaryVideoTrack())throw new Error("No video track found")}catch(o){throw new Error(`Invalid video file: ${o}`)}}async createTransformResult(t,e){const r=new f({formats:u,source:new m(t)}),o=await r.getPrimaryVideoTrack(),a=await r.computeDuration();return{bitrate:this.config.defaultBitrate,buffer:t,duration:a,format:"mp4",height:o?.displayHeight||0,originalFile:e,size:t.length,width:o?.displayWidth||0}}generateCacheKey(t,e){const r=e.map(o=>`${o.type}:${JSON.stringify(o.options)}`).join("|");return`${t}:${r}`}}export{C as default};
package/package.json CHANGED
@@ -1,61 +1,64 @@
1
1
  {
2
2
  "name": "@visulima/storage",
3
- "version": "1.0.0-alpha.3",
3
+ "version": "1.0.0-alpha.30",
4
4
  "description": "Visulima upload - Store files in a web-accessible location via a simplified API. Can automatically scale and rotate images. Includes S3, Azure, GCS and local filesystem-based backends with the most convenient features of each.",
5
5
  "keywords": [
6
6
  "anolilab",
7
- "visulima",
7
+ "astro",
8
+ "aws",
9
+ "aws-s3",
10
+ "azure",
11
+ "better-upload",
12
+ "better-uploads",
13
+ "chunk",
14
+ "chunked-upload",
15
+ "chunked-uploads",
16
+ "cloudflare-r2",
17
+ "cloudflare-workers",
18
+ "digitalocean-spaces",
19
+ "edge-runtime",
20
+ "elysia",
21
+ "enterprise-security",
8
22
  "express",
9
- "upload",
10
- "uploads",
23
+ "fastify",
11
24
  "file",
25
+ "file-upload",
12
26
  "files",
13
- "chunk",
14
- "resumable",
15
- "chunked-uploads",
16
- "tus",
17
27
  "form",
18
- "post",
19
- "multipart",
20
28
  "form-data",
21
29
  "formdata",
22
- "middleware",
23
- "better-upload",
24
- "better-uploads",
25
- "s3",
26
- "azure",
27
- "aws",
30
+ "framework-agnostic",
28
31
  "gcs",
29
32
  "google",
30
- "storage",
31
- "file-upload",
32
- "cloudflare-r2",
33
- "digitalocean-spaces",
34
33
  "google-cloud-storage",
34
+ "hetzner",
35
+ "hetzner-object-storage",
36
+ "hono",
37
+ "middleware",
35
38
  "minio",
36
- "presigned-urls",
39
+ "multipart",
40
+ "multipart-upload",
37
41
  "nextjs",
38
- "remix",
39
- "sveltekit",
40
42
  "nuxt",
41
- "astro",
43
+ "post",
44
+ "presigned-urls",
42
45
  "react",
43
- "aws-s3",
44
- "typescript",
45
- "hono",
46
- "fastify",
47
- "elysia",
48
- "framework-agnostic",
49
- "edge-runtime",
50
- "cloudflare-workers",
51
- "vercel-edge",
46
+ "remix",
47
+ "resumable",
48
+ "s3",
52
49
  "serverless",
50
+ "storage",
51
+ "storj",
52
+ "sveltekit",
53
+ "tus",
54
+ "typescript",
53
55
  "universal",
54
- "enterprise-security",
55
- "multipart-upload",
56
- "chunked-upload",
56
+ "upload",
57
57
  "upload-library",
58
- "uploadthing"
58
+ "uploads",
59
+ "uploadthing",
60
+ "vercel-edge",
61
+ "visulima"
59
62
  ],
60
63
  "homepage": "https://visulima.com/packages/uploads",
61
64
  "repository": {
@@ -117,6 +120,62 @@
117
120
  "types": "./dist/storage/local/index.d.ts",
118
121
  "import": "./dist/storage/local/index.js"
119
122
  },
123
+ "./provider/ftp": {
124
+ "types": "./dist/storage/ftp/index.d.ts",
125
+ "import": "./dist/storage/ftp/index.js"
126
+ },
127
+ "./provider/sftp": {
128
+ "types": "./dist/storage/sftp/index.d.ts",
129
+ "import": "./dist/storage/sftp/index.js"
130
+ },
131
+ "./provider/supabase": {
132
+ "types": "./dist/storage/supabase/index.d.ts",
133
+ "import": "./dist/storage/supabase/index.js"
134
+ },
135
+ "./provider/uploadthing": {
136
+ "types": "./dist/storage/uploadthing/index.d.ts",
137
+ "import": "./dist/storage/uploadthing/index.js"
138
+ },
139
+ "./provider/dropbox": {
140
+ "types": "./dist/storage/dropbox/index.d.ts",
141
+ "import": "./dist/storage/dropbox/index.js"
142
+ },
143
+ "./provider/google-drive": {
144
+ "types": "./dist/storage/google-drive/index.d.ts",
145
+ "import": "./dist/storage/google-drive/index.js"
146
+ },
147
+ "./provider/onedrive": {
148
+ "types": "./dist/storage/onedrive/index.d.ts",
149
+ "import": "./dist/storage/onedrive/index.js"
150
+ },
151
+ "./provider/box": {
152
+ "types": "./dist/storage/box/index.d.ts",
153
+ "import": "./dist/storage/box/index.js"
154
+ },
155
+ "./provider/bun-s3": {
156
+ "types": "./dist/storage/bun-s3/index.d.ts",
157
+ "import": "./dist/storage/bun-s3/index.js"
158
+ },
159
+ "./provider/bunny": {
160
+ "types": "./dist/storage/bunny/index.d.ts",
161
+ "import": "./dist/storage/bunny/index.js"
162
+ },
163
+ "./provider/cloudinary": {
164
+ "types": "./dist/storage/cloudinary/index.d.ts",
165
+ "import": "./dist/storage/cloudinary/index.js"
166
+ },
167
+ "./provider/firebase": {
168
+ "types": "./dist/storage/firebase/index.d.ts",
169
+ "import": "./dist/storage/firebase/index.js"
170
+ },
171
+ "./provider/pocketbase": {
172
+ "types": "./dist/storage/pocketbase/index.d.ts",
173
+ "import": "./dist/storage/pocketbase/index.js"
174
+ },
175
+ "./provider/sharepoint": {
176
+ "types": "./dist/storage/sharepoint/index.d.ts",
177
+ "import": "./dist/storage/sharepoint/index.js"
178
+ },
120
179
  "./openapi": {
121
180
  "types": "./dist/openapi/index.d.ts",
122
181
  "import": "./dist/openapi/index.js"
@@ -177,6 +236,22 @@
177
236
  "types": "./dist/adapter/nuxt/module.d.ts",
178
237
  "import": "./dist/adapter/nuxt/module.js"
179
238
  },
239
+ "./ai/sdk": {
240
+ "types": "./dist/ai/ai-sdk/index.d.ts",
241
+ "import": "./dist/ai/ai-sdk/index.js"
242
+ },
243
+ "./ai/openai": {
244
+ "types": "./dist/ai/openai/index.d.ts",
245
+ "import": "./dist/ai/openai/index.js"
246
+ },
247
+ "./ai/claude": {
248
+ "types": "./dist/ai/claude/index.d.ts",
249
+ "import": "./dist/ai/claude/index.js"
250
+ },
251
+ "./ai/tanstack": {
252
+ "types": "./dist/ai/tanstack/index.d.ts",
253
+ "import": "./dist/ai/tanstack/index.js"
254
+ },
180
255
  "./package.json": "./package.json"
181
256
  },
182
257
  "files": [
@@ -186,38 +261,60 @@
186
261
  "LICENSE.md"
187
262
  ],
188
263
  "dependencies": {
189
- "@remix-run/multipart-parser": "^0.14.0",
264
+ "@remix-run/multipart-parser": "0.16.0",
190
265
  "@sindresorhus/fnv1a": "3.1.0",
191
- "@visulima/pagination": "5.0.0-alpha.2",
192
- "file-type": "21.1.1",
193
- "lru-cache": "^11.2.4",
266
+ "@visulima/pagination": "5.0.0-alpha.11",
267
+ "file-type": "22.0.1",
268
+ "lru-cache": "11.4.0",
194
269
  "mime": "^4.1.0",
195
- "nanoid": "5.1.6",
196
- "path-to-regexp": "8.3.0",
197
- "type-is": "^2.0.1"
270
+ "nanoid": "5.1.11",
271
+ "path-to-regexp": "8.4.2",
272
+ "type-is": "^2.1.0",
273
+ "zod": "4.4.3"
198
274
  },
199
275
  "peerDependencies": {
276
+ "@anthropic-ai/claude-agent-sdk": ">=0.2.0",
200
277
  "@aws-sdk/client-s3": ">=3.901.0",
201
278
  "@aws-sdk/credential-providers": ">=3.901.0",
202
279
  "@aws-sdk/s3-request-presigner": ">=3.901.0",
203
280
  "@aws-sdk/signature-v4-crt": ">=3.901.0",
204
281
  "@aws-sdk/types": ">=3.930.0",
282
+ "@azure/core-auth": ">=1.9.0",
205
283
  "@azure/storage-blob": ">=12.28.0",
284
+ "@bunny.net/storage-sdk": ">=0.3.0",
285
+ "@googleapis/drive": ">=20.0.0",
286
+ "@microsoft/microsoft-graph-client": ">=3.0.0",
206
287
  "@netlify/blobs": ">=10.3.1",
207
288
  "@nuxt/kit": ">=4.2.1",
289
+ "@openai/agents": ">=0.11.0",
208
290
  "@opentelemetry/api": ">=1.9.0",
209
291
  "@solidjs/start": ">=1.1.0",
210
- "@vercel/blob": ">=2.0.0",
292
+ "@supabase/storage-js": ">=2.105.0",
293
+ "@tanstack/ai": ">=0.16.0",
294
+ "@vercel/blob": ">=2.4.0",
295
+ "ai": ">=5.0.0",
211
296
  "aws-crt": ">=1.27.3",
212
297
  "aws4fetch": ">=1.0.0",
298
+ "basic-ftp": ">=5.0.0",
299
+ "box-typescript-sdk-gen": ">=1.19.0",
300
+ "cloudinary": ">=2.0.0",
301
+ "dropbox": ">=10.34.0",
302
+ "firebase-admin": ">=10.0.0",
213
303
  "gaxios": ">=7.1.2",
214
304
  "google-auth-library": ">=10.4.0",
215
305
  "hono": ">=4.0.0",
216
306
  "mediabunny": ">=1.23.0",
217
307
  "next": ">=15",
218
- "sharp": ">=0.33.5"
308
+ "openai": ">=5.0.0",
309
+ "pocketbase": ">=0.23.0",
310
+ "sharp": ">=0.34.5",
311
+ "ssh2-sftp-client": ">=11.0.0",
312
+ "uploadthing": ">=7.0.0"
219
313
  },
220
314
  "peerDependenciesMeta": {
315
+ "@anthropic-ai/claude-agent-sdk": {
316
+ "optional": true
317
+ },
221
318
  "@aws-sdk/client-s3": {
222
319
  "optional": true
223
320
  },
@@ -233,30 +330,69 @@
233
330
  "@aws-sdk/types": {
234
331
  "optional": true
235
332
  },
333
+ "@azure/core-auth": {
334
+ "optional": true
335
+ },
236
336
  "@azure/storage-blob": {
237
337
  "optional": true
238
338
  },
339
+ "@bunny.net/storage-sdk": {
340
+ "optional": true
341
+ },
342
+ "@googleapis/drive": {
343
+ "optional": true
344
+ },
345
+ "@microsoft/microsoft-graph-client": {
346
+ "optional": true
347
+ },
239
348
  "@netlify/blobs": {
240
349
  "optional": true
241
350
  },
242
351
  "@nuxt/kit": {
243
352
  "optional": true
244
353
  },
354
+ "@openai/agents": {
355
+ "optional": true
356
+ },
245
357
  "@opentelemetry/api": {
246
358
  "optional": true
247
359
  },
248
360
  "@solidjs/start": {
249
361
  "optional": true
250
362
  },
363
+ "@supabase/storage-js": {
364
+ "optional": true
365
+ },
366
+ "@tanstack/ai": {
367
+ "optional": true
368
+ },
251
369
  "@vercel/blob": {
252
370
  "optional": true
253
371
  },
372
+ "ai": {
373
+ "optional": true
374
+ },
254
375
  "aws-crt": {
255
376
  "optional": true
256
377
  },
257
378
  "aws4fetch": {
258
379
  "optional": true
259
380
  },
381
+ "basic-ftp": {
382
+ "optional": true
383
+ },
384
+ "box-typescript-sdk-gen": {
385
+ "optional": true
386
+ },
387
+ "cloudinary": {
388
+ "optional": true
389
+ },
390
+ "dropbox": {
391
+ "optional": true
392
+ },
393
+ "firebase-admin": {
394
+ "optional": true
395
+ },
260
396
  "gaxios": {
261
397
  "optional": true
262
398
  },
@@ -272,12 +408,24 @@
272
408
  "next": {
273
409
  "optional": true
274
410
  },
411
+ "openai": {
412
+ "optional": true
413
+ },
414
+ "pocketbase": {
415
+ "optional": true
416
+ },
275
417
  "sharp": {
276
418
  "optional": true
419
+ },
420
+ "ssh2-sftp-client": {
421
+ "optional": true
422
+ },
423
+ "uploadthing": {
424
+ "optional": true
277
425
  }
278
426
  },
279
427
  "engines": {
280
- "node": ">=22.13 <=25.x"
428
+ "node": "^22.14.0 || >=24.10.0"
281
429
  },
282
430
  "publishConfig": {
283
431
  "access": "public",