@visulima/storage 1.0.0-alpha.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +562 -0
  2. package/LICENSE.md +237 -568
  3. package/README.md +82 -466
  4. package/dist/adapter/nuxt/module.d.ts +41 -34
  5. package/dist/adapter/nuxt/module.js +1 -93
  6. package/dist/adapter/nuxt/package.json +0 -6
  7. package/dist/ai/ai-sdk/index.d.ts +113 -0
  8. package/dist/ai/ai-sdk/index.js +1 -0
  9. package/dist/ai/claude/index.d.ts +177 -0
  10. package/dist/ai/claude/index.js +1 -0
  11. package/dist/ai/openai/index.d.ts +205 -0
  12. package/dist/ai/openai/index.js +1 -0
  13. package/dist/ai/tanstack/index.d.ts +115 -0
  14. package/dist/ai/tanstack/index.js +1 -0
  15. package/dist/handler/http/fetch/index.d.ts +303 -4
  16. package/dist/handler/http/fetch/index.js +1 -4
  17. package/dist/handler/http/hono/index.d.ts +73 -64
  18. package/dist/handler/http/hono/index.js +1 -65
  19. package/dist/handler/http/nextjs/index.d.ts +66 -58
  20. package/dist/handler/http/nextjs/index.js +1 -37
  21. package/dist/handler/http/node/index.d.ts +368 -4
  22. package/dist/handler/http/node/index.js +1 -8
  23. package/dist/handler/http/solid-start/index.d.ts +66 -57
  24. package/dist/handler/http/solid-start/index.js +1 -44
  25. package/dist/index.d.ts +106 -17
  26. package/dist/index.js +1 -13
  27. package/dist/openapi/index.d.ts +24 -5
  28. package/dist/openapi/index.js +1 -5
  29. package/dist/packem_shared/AbstractBaseStorage-CiPEMcuo.js +1 -0
  30. package/dist/packem_shared/AwsLightFile-CpZrubaV.js +1 -0
  31. package/dist/packem_shared/AwsLightMetaStorage-DPqJ9LTr.js +1 -0
  32. package/dist/packem_shared/AwsLightStorage-BK-WPL0h.js +1 -0
  33. package/dist/packem_shared/AzureFile-DFSaVe25.js +1 -0
  34. package/dist/packem_shared/AzureSMetaStorage-ByzM6Aix.js +1 -0
  35. package/dist/packem_shared/AzureStorage-1UvDIQZd.js +1 -0
  36. package/dist/packem_shared/BaseTransformer-Buw5lX_3.js +1 -0
  37. package/dist/packem_shared/BoxFile-CseIoPW1.js +1 -0
  38. package/dist/packem_shared/BoxMetaStorage-BSn6Qfnf.js +1 -0
  39. package/dist/packem_shared/BoxStorage-DbGqBLux.js +1 -0
  40. package/dist/packem_shared/BunS3File-BcYmsz1n.js +1 -0
  41. package/dist/packem_shared/BunS3MetaStorage-BSn6Qfnf.js +1 -0
  42. package/dist/packem_shared/BunS3Storage-DNvimm9e.js +1 -0
  43. package/dist/packem_shared/BunnyFile-BgEOlcYI.js +1 -0
  44. package/dist/packem_shared/BunnyMetaStorage-BSn6Qfnf.js +1 -0
  45. package/dist/packem_shared/BunnyStorage-C7d0opLL.js +1 -0
  46. package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +1 -0
  47. package/dist/packem_shared/CloudinaryMetaStorage-DPVnmNe5.js +1 -0
  48. package/dist/packem_shared/CloudinaryStorage-Dc3XA2lP.js +1 -0
  49. package/dist/packem_shared/DiskStorage-CI07TVNu.js +1 -0
  50. package/dist/packem_shared/DiskStorageWithChecksum-vFCubS6K.js +1 -0
  51. package/dist/packem_shared/DropboxFile-BFb7eOzy.js +1 -0
  52. package/dist/packem_shared/DropboxMetaStorage-BSn6Qfnf.js +1 -0
  53. package/dist/packem_shared/DropboxStorage-CY9Ggu3m.js +1 -0
  54. package/dist/packem_shared/ERRORS-BIBxE2oR.js +1 -0
  55. package/dist/packem_shared/File-W8aOo15X.js +1 -0
  56. package/dist/packem_shared/Files-CpIcMjP0.js +1 -0
  57. package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +1 -0
  58. package/dist/packem_shared/FirebaseMetaStorage-DPVnmNe5.js +1 -0
  59. package/dist/packem_shared/FirebaseStorage-D6O9CJXN.js +2 -0
  60. package/dist/packem_shared/FtpFile-ClWDYnt2.js +1 -0
  61. package/dist/packem_shared/FtpMetaStorage-BSn6Qfnf.js +1 -0
  62. package/dist/packem_shared/FtpStorage-DbEjbq8z.js +1 -0
  63. package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
  64. package/dist/packem_shared/GCSFile-Cero7qZN.js +1 -0
  65. package/dist/packem_shared/GCSMetaStorage-BuPA0DDW.js +1 -0
  66. package/dist/packem_shared/GCStorage-i9t5TQc1.js +1 -0
  67. package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +1 -0
  68. package/dist/packem_shared/GoogleDriveMetaStorage-Cbwa1CHV.js +1 -0
  69. package/dist/packem_shared/GoogleDriveStorage-Bklsz7Bh.js +1 -0
  70. package/dist/packem_shared/LocalMetaStorage-BhicZnNl.js +1 -0
  71. package/dist/packem_shared/MediaTransformer-D2kUsklW.js +1 -0
  72. package/dist/packem_shared/MemoryMetaStorage-Ksgh9pe7.js +1 -0
  73. package/dist/packem_shared/MemoryStorage-9gbWd09l.js +1 -0
  74. package/dist/packem_shared/MetaStorage-DPEUyWgN.js +1 -0
  75. package/dist/packem_shared/Metadata-B7CcBueg.js +1 -0
  76. package/dist/packem_shared/Multipart-CQjYqU--.js +1 -0
  77. package/dist/packem_shared/Multipart-D0ok6BBy.js +1 -0
  78. package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +1 -0
  79. package/dist/packem_shared/NetlifyBlobMetaStorage-DPVnmNe5.js +1 -0
  80. package/dist/packem_shared/NetlifyBlobStorage-CkpCCoN1.js +1 -0
  81. package/dist/packem_shared/NoOpMetrics-BLo6u4NY.js +1 -0
  82. package/dist/packem_shared/OneDriveFile-CNNJYI43.js +1 -0
  83. package/dist/packem_shared/OneDriveMetaStorage-Cbwa1CHV.js +1 -0
  84. package/dist/packem_shared/OneDriveStorage-CP6MvGAa.js +1 -0
  85. package/dist/packem_shared/OpenTelemetryMetrics-DJDQsNKp.js +1 -0
  86. package/dist/packem_shared/PocketBaseFile-DpJpxl3e.js +1 -0
  87. package/dist/packem_shared/PocketBaseMetaStorage-DOTLwVE7.js +1 -0
  88. package/dist/packem_shared/PocketBaseStorage-2qhbI2PW.js +1 -0
  89. package/dist/packem_shared/Rest-CI_BiZPv.js +1 -0
  90. package/dist/packem_shared/Rest-DvfN4-kf.js +1 -0
  91. package/dist/packem_shared/S3File-CpZrubaV.js +1 -0
  92. package/dist/packem_shared/S3MetaStorage-CMonflzp.js +1 -0
  93. package/dist/packem_shared/S3Storage-YGeNk3Tt.js +1 -0
  94. package/dist/packem_shared/SftpFile-ClWDYnt2.js +1 -0
  95. package/dist/packem_shared/SftpMetaStorage-BSn6Qfnf.js +1 -0
  96. package/dist/packem_shared/SftpStorage-2Hz396Xr.js +1 -0
  97. package/dist/packem_shared/SharePointFile-Blz9FS4h.js +1 -0
  98. package/dist/packem_shared/SharePointMetaStorage-BSn6Qfnf.js +1 -0
  99. package/dist/packem_shared/SharePointStorage-CrX2Pk6C.js +1 -0
  100. package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +1 -0
  101. package/dist/packem_shared/SupabaseMetaStorage-Cbwa1CHV.js +1 -0
  102. package/dist/packem_shared/SupabaseStorage-Dc_DBX29.js +1 -0
  103. package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +1 -0
  104. package/dist/packem_shared/Tus-BBVt2ky3.js +1 -0
  105. package/dist/packem_shared/Tus-BlBZykIL.js +1 -0
  106. package/dist/packem_shared/UploadControl-DZJhI9Wh.js +1 -0
  107. package/dist/packem_shared/UploadThingFile-BTFMpcIA.js +1 -0
  108. package/dist/packem_shared/UploadThingMetaStorage-DPVnmNe5.js +1 -0
  109. package/dist/packem_shared/UploadThingStorage-BChykYSe.js +1 -0
  110. package/dist/packem_shared/ValidationError-3B06DFyE.js +1 -0
  111. package/dist/packem_shared/VercelBlobFile-CVQwKlZk.js +1 -0
  112. package/dist/packem_shared/VercelBlobMetaStorage-BSn6Qfnf.js +1 -0
  113. package/dist/packem_shared/VercelBlobStorage-CsRyPfw3.js +1 -0
  114. package/dist/packem_shared/_commonjsHelpers-CWAkuNXM.js +1 -0
  115. package/dist/packem_shared/agentsCopyFile-Dl5iffdH.js +1 -0
  116. package/dist/packem_shared/akamai-DthkaFul.js +1 -0
  117. package/dist/packem_shared/alibaba-BEi25O1g.js +1 -0
  118. package/dist/packem_shared/approval-fVHwBp7u.js +1 -0
  119. package/dist/packem_shared/approval.d-CMAYH9GF.d.ts +75 -0
  120. package/dist/packem_shared/aws-light-meta-storage-DGrn72VJ.js +4 -0
  121. package/dist/packem_shared/azure-meta-storage-ClbEsfI4.js +1 -0
  122. package/dist/packem_shared/backblaze-m1N5NZ9q.js +1 -0
  123. package/dist/packem_shared/base-handler-core-D-9Ku1h-.js +1 -0
  124. package/dist/packem_shared/base-handler-fetch-CfkNakv8.js +1 -0
  125. package/dist/packem_shared/base-handler-node-BF1v1qDa.js +1 -0
  126. package/dist/packem_shared/cache-Cw3QjoVN.js +1 -0
  127. package/dist/packem_shared/claudeCopyFile-BX9O4ORk.js +1 -0
  128. package/dist/packem_shared/cloudflare-CdUTErlo.js +1 -0
  129. package/dist/packem_shared/copyFile-49FtxXcm.js +1 -0
  130. package/dist/packem_shared/copyFile-BUPezT_c.js +1 -0
  131. package/dist/packem_shared/createResponsesFileTools-6Tvt2PNr.js +1 -0
  132. package/dist/packem_shared/createRetryWrapper-CxgiV_hH.js +1 -0
  133. package/dist/packem_shared/detect-file-type-BA7UBLKA.js +1 -0
  134. package/dist/packem_shared/digitalOcean-B2uB6pgz.js +1 -0
  135. package/dist/packem_shared/disk-storage-CsQcYW3s.js +1 -0
  136. package/dist/packem_shared/disk-storage-with-checksum.d-B-VGEsfl.d.ts +156 -0
  137. package/dist/packem_shared/executors-BDzMjc4y.js +1 -0
  138. package/dist/packem_shared/executors.d-BZP2rWo3.d.ts +69 -0
  139. package/dist/packem_shared/exoscale-BDa1Gjth.js +1 -0
  140. package/dist/packem_shared/filebase-CsFYJIwB.js +1 -0
  141. package/dist/packem_shared/files.d-CH0iLBNC.d.ts +655 -0
  142. package/dist/packem_shared/gcs-meta-storage-B1RrMqH3.js +1 -0
  143. package/dist/packem_shared/get-file-status-y3wTtDQs.js +1 -0
  144. package/dist/packem_shared/getFormatFromContentType-DCTTPQHm.js +1 -0
  145. package/dist/packem_shared/has-content-50BsqrWw.js +1 -0
  146. package/dist/packem_shared/headers-BAiAKekR.js +26 -0
  147. package/dist/packem_shared/hetzner-BGGFiRGD.js +1 -0
  148. package/dist/packem_shared/ibmCos-j-3TfJ5p.js +1 -0
  149. package/dist/packem_shared/idriveE2-C6pQ5pQ0.js +1 -0
  150. package/dist/packem_shared/index-nZWCQrSe.js +5 -0
  151. package/dist/packem_shared/internal-D_cZIFwI.js +1 -0
  152. package/dist/packem_shared/is-expired-CBEk6XBi.js +1 -0
  153. package/dist/packem_shared/local-meta-storage-iuJnu90B.js +11 -0
  154. package/dist/packem_shared/local-meta-storage.d-D9PBfkn6.d.ts +21 -0
  155. package/dist/packem_shared/media-transformer.d-Quf4ai47.d.ts +331 -0
  156. package/dist/packem_shared/memory-storage.d-4EU1cMt1.d.ts +101 -0
  157. package/dist/packem_shared/minio-NKquuBfS.js +1 -0
  158. package/dist/packem_shared/multipart-base-BOzY19lb.js +1 -0
  159. package/dist/packem_shared/oauth-refresh-EdGzlcOZ.js +1 -0
  160. package/dist/packem_shared/oracleCloud-DslqNpn6.js +1 -0
  161. package/dist/packem_shared/ovhCloud-CMHE6uLV.js +1 -0
  162. package/dist/packem_shared/part-match-D-9dGX42.js +1 -0
  163. package/dist/packem_shared/path-0oTTdkvl-DvWvbDbh.js +1 -0
  164. package/dist/packem_shared/posix-dirname-CfpH5wZi.js +1 -0
  165. package/dist/packem_shared/response-builder-CbSA8qPa.js +1 -0
  166. package/dist/packem_shared/rest-base-e0reNDE_.js +1 -0
  167. package/dist/packem_shared/restOpenApiSpec-Csv513qf.js +1 -0
  168. package/dist/packem_shared/s3-base-storage-BoTyhuzO.js +1 -0
  169. package/dist/packem_shared/s3-base-storage.d-BQgP5B-t.d.ts +287 -0
  170. package/dist/packem_shared/scaleway-U1In3v70.js +1 -0
  171. package/dist/packem_shared/sharedErrorSchemaObject-YN65aAKj.js +1 -0
  172. package/dist/packem_shared/storage-0j5nCAUp.js +1 -0
  173. package/dist/packem_shared/storage.d-CEM1upWM.d.ts +1176 -0
  174. package/dist/packem_shared/storj-Cb59q9kF.js +1 -0
  175. package/dist/packem_shared/sync-DhR3536K.js +1 -0
  176. package/dist/packem_shared/tencent-Q1y2GENc.js +1 -0
  177. package/dist/packem_shared/tigris-BELKoyyp.js +1 -0
  178. package/dist/packem_shared/transformOpenApiSpec-CIEAgpBD.js +1 -0
  179. package/dist/packem_shared/tus-base.d-DLzKE54M.d.ts +106 -0
  180. package/dist/packem_shared/tusOpenApiSpec-D96B03t5.js +1 -0
  181. package/dist/packem_shared/types.d-Bon9GVVe.d.ts +104 -0
  182. package/dist/packem_shared/types.d-CggTCgXr.d.ts +49 -0
  183. package/dist/packem_shared/types.d-CrUWY4On.d.ts +720 -0
  184. package/dist/packem_shared/update-size-DuNuLyxj.js +1 -0
  185. package/dist/packem_shared/vultr-B491cQ4e.js +1 -0
  186. package/dist/packem_shared/waitForStorage-ByQmG4xF.js +1 -0
  187. package/dist/packem_shared/wasabi-DFrwIoab.js +1 -0
  188. package/dist/packem_shared/xhrOpenApiSpec-DQR4h6M8.js +1 -0
  189. package/dist/packem_shared/yandex-CwzHuEKP.js +1 -0
  190. package/dist/storage/aws/clients/index.d.ts +612 -6
  191. package/dist/storage/aws/clients/index.js +1 -6
  192. package/dist/storage/aws/index.d.ts +332 -4
  193. package/dist/storage/aws/index.js +1 -3
  194. package/dist/storage/aws-light/index.d.ts +259 -4
  195. package/dist/storage/aws-light/index.js +1 -3
  196. package/dist/storage/azure/index.d.ts +236 -4
  197. package/dist/storage/azure/index.js +1 -3
  198. package/dist/storage/box/index.d.ts +189 -0
  199. package/dist/storage/box/index.js +1 -0
  200. package/dist/storage/bun-s3/index.d.ts +200 -0
  201. package/dist/storage/bun-s3/index.js +1 -0
  202. package/dist/storage/bunny/index.d.ts +119 -0
  203. package/dist/storage/bunny/index.js +1 -0
  204. package/dist/storage/cloudinary/index.d.ts +121 -0
  205. package/dist/storage/cloudinary/index.js +1 -0
  206. package/dist/storage/dropbox/index.d.ts +132 -0
  207. package/dist/storage/dropbox/index.js +1 -0
  208. package/dist/storage/firebase/index.d.ts +192 -0
  209. package/dist/storage/firebase/index.js +1 -0
  210. package/dist/storage/ftp/index.d.ts +91 -0
  211. package/dist/storage/ftp/index.js +1 -0
  212. package/dist/storage/gcs/index.d.ts +195 -5
  213. package/dist/storage/gcs/index.js +1 -4
  214. package/dist/storage/google-drive/index.d.ts +148 -0
  215. package/dist/storage/google-drive/index.js +1 -0
  216. package/dist/storage/local/index.d.ts +7 -4
  217. package/dist/storage/local/index.js +1 -3
  218. package/dist/storage/memory/index.d.ts +6 -0
  219. package/dist/storage/memory/index.js +1 -0
  220. package/dist/storage/netlify-blob/index.d.ts +147 -4
  221. package/dist/storage/netlify-blob/index.js +1 -3
  222. package/dist/storage/onedrive/index.d.ts +103 -0
  223. package/dist/storage/onedrive/index.js +1 -0
  224. package/dist/storage/pocketbase/index.d.ts +172 -0
  225. package/dist/storage/pocketbase/index.js +1 -0
  226. package/dist/storage/sftp/index.d.ts +92 -0
  227. package/dist/storage/sftp/index.js +1 -0
  228. package/dist/storage/sharepoint/index.d.ts +180 -0
  229. package/dist/storage/sharepoint/index.js +1 -0
  230. package/dist/storage/supabase/index.d.ts +115 -0
  231. package/dist/storage/supabase/index.js +1 -0
  232. package/dist/storage/uploadthing/index.d.ts +95 -0
  233. package/dist/storage/uploadthing/index.js +1 -0
  234. package/dist/storage/vercel-blob/index.d.ts +189 -4
  235. package/dist/storage/vercel-blob/index.js +1 -3
  236. package/dist/transformer/audio-transformer.d.ts +127 -125
  237. package/dist/transformer/audio-transformer.js +1 -278
  238. package/dist/transformer/image-transformer.d.ts +573 -568
  239. package/dist/transformer/image-transformer.js +1 -1100
  240. package/dist/transformer/index.d.ts +62 -5
  241. package/dist/transformer/index.js +1 -4
  242. package/dist/transformer/video-transformer.d.ts +144 -142
  243. package/dist/transformer/video-transformer.js +1 -310
  244. package/package.json +218 -67
  245. package/dist/handler/base/base-handler-core.d.ts +0 -91
  246. package/dist/handler/base/base-handler-fetch.d.ts +0 -76
  247. package/dist/handler/base/base-handler-node.d.ts +0 -137
  248. package/dist/handler/multipart/multipart-base.d.ts +0 -84
  249. package/dist/handler/multipart/multipart-fetch.d.ts +0 -64
  250. package/dist/handler/multipart/multipart.d.ts +0 -49
  251. package/dist/handler/rest/rest-base.d.ts +0 -106
  252. package/dist/handler/rest/rest-fetch.d.ts +0 -88
  253. package/dist/handler/rest/rest.d.ts +0 -93
  254. package/dist/handler/tus/tus-base.d.ts +0 -152
  255. package/dist/handler/tus/tus-fetch.d.ts +0 -72
  256. package/dist/handler/tus/tus.d.ts +0 -78
  257. package/dist/handler/types.d.ts +0 -53
  258. package/dist/handler/utils/request-parser.d.ts +0 -72
  259. package/dist/handler/utils/response-builder.d.ts +0 -83
  260. package/dist/handler/utils/storage-utils.d.ts +0 -10
  261. package/dist/handler/utils/stream-utils.d.ts +0 -29
  262. package/dist/handler/utils/upload-handlers.d.ts +0 -76
  263. package/dist/metrics/index.d.ts +0 -2
  264. package/dist/metrics/no-op-metrics.d.ts +0 -15
  265. package/dist/metrics/opentelemetry-metrics.d.ts +0 -55
  266. package/dist/openapi/rest.d.ts +0 -7
  267. package/dist/openapi/shared.d.ts +0 -13
  268. package/dist/openapi/transform.d.ts +0 -3
  269. package/dist/openapi/tus.d.ts +0 -7
  270. package/dist/openapi/xhr.d.ts +0 -7
  271. package/dist/packem_shared/AwsLightFile-tTneXZgG.js +0 -11
  272. package/dist/packem_shared/AwsLightMetaStorage-BWSOtVaN.js +0 -4
  273. package/dist/packem_shared/AwsLightStorage-Blv-GP4v.js +0 -133
  274. package/dist/packem_shared/AzureFile-CesgFzps.js +0 -8
  275. package/dist/packem_shared/AzureSMetaStorage-CFs-OYJT.js +0 -88
  276. package/dist/packem_shared/AzureStorage-B0v048hG.js +0 -357
  277. package/dist/packem_shared/BaseTransformer-C2gLib6v.js +0 -82
  278. package/dist/packem_shared/DiskStorage-Ck5yGQsq.js +0 -12
  279. package/dist/packem_shared/DiskStorageWithChecksum-BRl-V5x2.js +0 -238
  280. package/dist/packem_shared/ERRORS-D0apMqnc.js +0 -97
  281. package/dist/packem_shared/File-Bb3P23dr.js +0 -69
  282. package/dist/packem_shared/GCSConfig-vPP22kN6.js +0 -11
  283. package/dist/packem_shared/GCSFile-BIEunhAN.js +0 -8
  284. package/dist/packem_shared/GCSMetaStorage-CHZKMe7N.js +0 -7
  285. package/dist/packem_shared/GCStorage-C-gAuP0j.js +0 -406
  286. package/dist/packem_shared/LocalMetaStorage-CZHhKkMd.js +0 -7
  287. package/dist/packem_shared/MediaTransformer-D6658DL1.js +0 -1197
  288. package/dist/packem_shared/MetaStorage-pECeFOad.js +0 -46
  289. package/dist/packem_shared/Metadata-DRLXeJ0F.js +0 -89
  290. package/dist/packem_shared/Multipart-CRV21AUU.js +0 -128
  291. package/dist/packem_shared/Multipart-D2ryPMjD.js +0 -163
  292. package/dist/packem_shared/NetlifyBlobFile-CXzyjqrD.js +0 -14
  293. package/dist/packem_shared/NetlifyBlobMetaStorage-DxZ5aDvD.js +0 -9
  294. package/dist/packem_shared/NetlifyBlobStorage-CLPtjHqd.js +0 -376
  295. package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +0 -10
  296. package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +0 -67
  297. package/dist/packem_shared/Rest-DcxBMBjU.js +0 -228
  298. package/dist/packem_shared/Rest-DjwU3puo.js +0 -267
  299. package/dist/packem_shared/S3File-DZiyk9Qt.js +0 -11
  300. package/dist/packem_shared/S3MetaStorage-Dz9aDabA.js +0 -76
  301. package/dist/packem_shared/S3Storage-DHmTk-hU.js +0 -316
  302. package/dist/packem_shared/TUS_RESUMABLE-Dtfsffnj.js +0 -434
  303. package/dist/packem_shared/Tus-DFVlZHaX.js +0 -200
  304. package/dist/packem_shared/Tus-DaN0FmOy.js +0 -195
  305. package/dist/packem_shared/ValidationError-BfF1aE4h.js +0 -26
  306. package/dist/packem_shared/VercelBlobFile-BCg4aTEq.js +0 -18
  307. package/dist/packem_shared/VercelBlobMetaStorage-Bd9F-VFm.js +0 -9
  308. package/dist/packem_shared/VercelBlobStorage-DD9LMOS6.js +0 -261
  309. package/dist/packem_shared/_commonjsHelpers-BqLXS_qQ.js +0 -5
  310. package/dist/packem_shared/aws-light-meta-storage-DKJBgbR6.js +0 -446
  311. package/dist/packem_shared/backblaze-BlMnIcBC.js +0 -20
  312. package/dist/packem_shared/base-handler-core-BoAqTyz7.js +0 -303
  313. package/dist/packem_shared/base-handler-fetch-D4u2xits.js +0 -291
  314. package/dist/packem_shared/base-handler-node-DGzcHHAy.js +0 -730
  315. package/dist/packem_shared/cache-B88MXQ_2.js +0 -18
  316. package/dist/packem_shared/cloudflare-Bi1q8wXE.js +0 -21
  317. package/dist/packem_shared/defaultCloudStorageFileNameValidation-DUuacjWv.js +0 -11
  318. package/dist/packem_shared/digitalOcean-CWQRJM3L.js +0 -21
  319. package/dist/packem_shared/disk-storage-CD47QI30.js +0 -810
  320. package/dist/packem_shared/gcs-meta-storage-CJ8Uts_d.js +0 -158
  321. package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
  322. package/dist/packem_shared/headers-YLRp1dLo.js +0 -1318
  323. package/dist/packem_shared/is-expired-CTThU1q5.js +0 -8
  324. package/dist/packem_shared/isRetryableError-Dycp7127.js +0 -82
  325. package/dist/packem_shared/isValidMediaType-BeDgiObq.js +0 -35
  326. package/dist/packem_shared/local-meta-storage-By-3SNBI.js +0 -649
  327. package/dist/packem_shared/minio-C2YBZQOw.js +0 -22
  328. package/dist/packem_shared/multipart-base-C994naBi.js +0 -102
  329. package/dist/packem_shared/part-match-BMNqHDYD.js +0 -96
  330. package/dist/packem_shared/path-CR6YkPXX-7R1-9CMk.js +0 -161
  331. package/dist/packem_shared/response-builder-BtnRiBUI.js +0 -45
  332. package/dist/packem_shared/rest-base-D9URIFkc.js +0 -457
  333. package/dist/packem_shared/restOpenApiSpec-D1JC_Jto.js +0 -800
  334. package/dist/packem_shared/s3-base-storage-C1DIHTYY.js +0 -510
  335. package/dist/packem_shared/sharedGet-Cpo7QUyu.js +0 -1019
  336. package/dist/packem_shared/storage-C6NSXb8h.js +0 -1175
  337. package/dist/packem_shared/tigris-Hac8TKnX.js +0 -21
  338. package/dist/packem_shared/transformOpenApiSpec-DWM5WtnN.js +0 -975
  339. package/dist/packem_shared/tusOpenApiSpec-mBZkl7he.js +0 -740
  340. package/dist/packem_shared/update-size-CCGm6i1J.js +0 -8
  341. package/dist/packem_shared/validator-BeX_lJet.js +0 -78
  342. package/dist/packem_shared/waitForStorage-Cscw85sx.js +0 -18
  343. package/dist/packem_shared/wasabi-DIyflHSd.js +0 -21
  344. package/dist/packem_shared/xhrOpenApiSpec-B1V5Dxrj.js +0 -264
  345. package/dist/storage/aws/clients/backblaze.d.ts +0 -12
  346. package/dist/storage/aws/clients/cloudflare.d.ts +0 -13
  347. package/dist/storage/aws/clients/digital-ocean.d.ts +0 -12
  348. package/dist/storage/aws/clients/minio.d.ts +0 -13
  349. package/dist/storage/aws/clients/tigris.d.ts +0 -12
  350. package/dist/storage/aws/clients/types.d.ts +0 -95
  351. package/dist/storage/aws/clients/wasabi.d.ts +0 -12
  352. package/dist/storage/aws/s3-base-storage.d.ts +0 -248
  353. package/dist/storage/aws/s3-client-adapter.d.ts +0 -110
  354. package/dist/storage/aws/s3-file.d.ts +0 -10
  355. package/dist/storage/aws/s3-meta-storage.d.ts +0 -15
  356. package/dist/storage/aws/s3-storage.d.ts +0 -70
  357. package/dist/storage/aws/types.d.ts +0 -119
  358. package/dist/storage/aws-light/aws-light-api-adapter.d.ts +0 -130
  359. package/dist/storage/aws-light/aws-light-file.d.ts +0 -10
  360. package/dist/storage/aws-light/aws-light-meta-storage.d.ts +0 -19
  361. package/dist/storage/aws-light/aws-light-storage.d.ts +0 -65
  362. package/dist/storage/aws-light/types.d.ts +0 -37
  363. package/dist/storage/azure/azure-file.d.ts +0 -6
  364. package/dist/storage/azure/azure-meta-storage.d.ts +0 -15
  365. package/dist/storage/azure/azure-storage.d.ts +0 -69
  366. package/dist/storage/azure/types.d.ts +0 -62
  367. package/dist/storage/gcs/fetch-error.d.ts +0 -11
  368. package/dist/storage/gcs/gcs-config.d.ts +0 -2
  369. package/dist/storage/gcs/gcs-file.d.ts +0 -6
  370. package/dist/storage/gcs/gcs-meta-storage.d.ts +0 -27
  371. package/dist/storage/gcs/gcs-storage.d.ts +0 -91
  372. package/dist/storage/gcs/types.d.ts +0 -55
  373. package/dist/storage/gcs/utils.d.ts +0 -7
  374. package/dist/storage/local/disk-storage-with-checksum.d.ts +0 -15
  375. package/dist/storage/local/disk-storage.d.ts +0 -135
  376. package/dist/storage/local/local-meta-storage.d.ts +0 -32
  377. package/dist/storage/meta-storage.d.ts +0 -30
  378. package/dist/storage/netlify-blob/netlify-blob-file.d.ts +0 -12
  379. package/dist/storage/netlify-blob/netlify-blob-meta-storage.d.ts +0 -7
  380. package/dist/storage/netlify-blob/netlify-blob-storage.d.ts +0 -93
  381. package/dist/storage/netlify-blob/types.d.ts +0 -30
  382. package/dist/storage/storage.d.ts +0 -353
  383. package/dist/storage/types.d.ts +0 -221
  384. package/dist/storage/utils/file/file.d.ts +0 -25
  385. package/dist/storage/utils/file/get-file-status.d.ts +0 -9
  386. package/dist/storage/utils/file/has-content.d.ts +0 -9
  387. package/dist/storage/utils/file/index.d.ts +0 -10
  388. package/dist/storage/utils/file/is-expired.d.ts +0 -8
  389. package/dist/storage/utils/file/metadata.d.ts +0 -18
  390. package/dist/storage/utils/file/part-match.d.ts +0 -11
  391. package/dist/storage/utils/file/types.d.ts +0 -37
  392. package/dist/storage/utils/file/update-metadata.d.ts +0 -10
  393. package/dist/storage/utils/file/update-size.d.ts +0 -10
  394. package/dist/storage/vercel-blob/types.d.ts +0 -32
  395. package/dist/storage/vercel-blob/vercel-blob-file.d.ts +0 -16
  396. package/dist/storage/vercel-blob/vercel-blob-meta-storage.d.ts +0 -7
  397. package/dist/storage/vercel-blob/vercel-blob-storage.d.ts +0 -76
  398. package/dist/transformer/base-transformer.d.ts +0 -63
  399. package/dist/transformer/media-transformer.d.ts +0 -332
  400. package/dist/transformer/types.d.ts +0 -652
  401. package/dist/transformer/utils.d.ts +0 -33
  402. package/dist/transformer/validation-error.d.ts +0 -23
  403. package/dist/utils/cache.d.ts +0 -32
  404. package/dist/utils/chunked-upload.d.ts +0 -65
  405. package/dist/utils/detect-file-type.d.ts +0 -28
  406. package/dist/utils/errors.d.ts +0 -74
  407. package/dist/utils/file-path-url-matcher.d.ts +0 -18
  408. package/dist/utils/headers.d.ts +0 -111
  409. package/dist/utils/http.d.ts +0 -92
  410. package/dist/utils/locker.d.ts +0 -26
  411. package/dist/utils/pipes/stream-checksum.d.ts +0 -47
  412. package/dist/utils/pipes/stream-length.d.ts +0 -22
  413. package/dist/utils/primitives/get-last-one.d.ts +0 -3
  414. package/dist/utils/primitives/is-record.d.ts +0 -2
  415. package/dist/utils/primitives/map-values.d.ts +0 -9
  416. package/dist/utils/primitives/pick.d.ts +0 -2
  417. package/dist/utils/primitives/to-milliseconds.d.ts +0 -12
  418. package/dist/utils/primitives/to-seconds.d.ts +0 -12
  419. package/dist/utils/range-checksum.d.ts +0 -33
  420. package/dist/utils/range-hasher.d.ts +0 -46
  421. package/dist/utils/retry.d.ts +0 -64
  422. package/dist/utils/types.d.ts +0 -108
  423. package/dist/utils/validation-error.d.ts +0 -22
  424. package/dist/utils/validator.d.ts +0 -36
@@ -0,0 +1,720 @@
1
+ import { C as Cache, F as File, g as FileReturn, B as BaseStorage } from "./storage.d-CEM1upWM.js";
2
+ import { Readable } from 'node:stream';
3
+ /**
4
+ * Base transformer configuration with common properties
5
+ */
6
+ interface BaseTransformerConfig {
7
+ /** Cache instance to use for caching */
8
+ cache?: Cache;
9
+ /** Cache TTL in seconds */
10
+ cacheTtl?: number;
11
+ /** Logger instance */
12
+ logger?: Console;
13
+ /** Maximum number of cached items */
14
+ maxCacheSize?: number;
15
+ /** Supported input formats */
16
+ supportedFormats?: string[] | undefined;
17
+ }
18
+ /**
19
+ * Abstract base class for all media transformers.
20
+ *
21
+ * Provides a common interface and shared functionality for image, video, and audio transformers.
22
+ * All transformers must implement the abstract methods defined here.
23
+ */
24
+ declare abstract class BaseTransformer<Config extends BaseTransformerConfig, CacheValue extends object, TFile extends File = File, TFileReturn extends FileReturn = FileReturn> {
25
+ protected readonly storage: BaseStorage<TFile, TFileReturn>;
26
+ protected config: Config;
27
+ protected logger?: Console;
28
+ protected cache?: Cache<string, CacheValue>;
29
+ /**
30
+ * Creates a new BaseTransformer instance with common functionality.
31
+ * @param storage The storage backend for retrieving and storing files.
32
+ * @param config Configuration options for the transformer.
33
+ * @param logger Optional logger instance for logging operations.
34
+ * @protected
35
+ */
36
+ protected constructor(storage: BaseStorage<TFile, TFileReturn>, config: Config, logger?: Console);
37
+ /**
38
+ * Transforms a file with the given steps.
39
+ * @param fileId Unique identifier of the file to transform.
40
+ * @param steps Array of transformation steps to apply.
41
+ * @returns Promise resolving to transformation result.
42
+ */
43
+ abstract transform(fileId: string, steps: any[]): Promise<any>;
44
+ /**
45
+ * Streams transform of a file with the given steps (for large files).
46
+ * @param fileId Unique identifier of the file to transform.
47
+ * @param steps Array of transformation steps to apply.
48
+ * @returns Promise resolving to streaming result with headers, size, and stream.
49
+ */
50
+ transformStream?(fileId: string, steps: any[]): Promise<{
51
+ headers?: Record<string, string>;
52
+ size?: number;
53
+ stream: Readable;
54
+ }>;
55
+ /**
56
+ * Clears cache for a specific file or all files.
57
+ *
58
+ * Cache keys are `${fileId}:${stepsHash}` (see `generateCacheKey` in subclasses),
59
+ * so per-file invalidation must iterate keys to find every transform of `fileId`.
60
+ * Falls back to a full `clear()` when the underlying cache doesn't expose `keys()`.
61
+ * @param fileId Optional file identifier to clear cache for specific file.
62
+ */
63
+ clearCache(fileId?: string): void;
64
+ /**
65
+ * Gets cache statistics.
66
+ * @returns Cache statistics including max size and current size.
67
+ */
68
+ getCacheStats(): {
69
+ maxSize: number;
70
+ size: number;
71
+ };
72
+ /**
73
+ * Gets content type from transformation result based on format.
74
+ * @param result Transformation result object containing format information.
75
+ * @returns Content type string (MIME type).
76
+ */
77
+ protected getContentTypeFromResult(result: any): string;
78
+ }
79
+ /**
80
+ * Supported image formats for transformation
81
+ */
82
+ type ImageFormat = "jpeg" | "png" | "webp" | "avif" | "tiff" | "gif";
83
+ /**
84
+ * Image transformation options
85
+ */
86
+ interface TransformOptions {
87
+ /** Quality of alpha layer for WebP (0-100) */
88
+ alphaQuality?: number;
89
+ /** Compression level for PNG (0-9) */
90
+ compressionLevel?: number;
91
+ /** GIF delay(s) between animation frames (in milliseconds) */
92
+ delay?: number;
93
+ /** Effort for AVIF encoding (0-10) */
94
+ effort?: number;
95
+ /** Output format */
96
+ format?: ImageFormat;
97
+ /** GIF number of animation iterations, use 0 for infinite */
98
+ loop?: number;
99
+ /** Whether to use lossless compression for WebP */
100
+ lossless?: boolean;
101
+ /** Whether to use progressive encoding for JPEG */
102
+ progressive?: boolean;
103
+ /** Quality for JPEG/WebP images (1-100) */
104
+ quality?: number;
105
+ }
106
+ /**
107
+ * Sharpen transformation options
108
+ */
109
+ interface SharpenOptions extends TransformOptions {
110
+ /** M1 for sharpen formula */
111
+ m1?: number;
112
+ /** M2 for sharpen formula */
113
+ m2?: number;
114
+ /** Sigma for Gaussian blur */
115
+ sigma?: number;
116
+ /** X1 for sharpen formula */
117
+ x1?: number;
118
+ /** Y2 for sharpen formula */
119
+ y2?: number;
120
+ /** Y3 for sharpen formula */
121
+ y3?: number;
122
+ }
123
+ /**
124
+ * Blur transformation options
125
+ */
126
+ interface BlurOptions extends TransformOptions {
127
+ /** M1 for blur formula */
128
+ m1?: number;
129
+ /** M2 for blur formula */
130
+ m2?: number;
131
+ /** Sigma for Gaussian blur */
132
+ sigma?: number;
133
+ /** X1 for blur formula */
134
+ x1?: number;
135
+ /** Y2 for blur formula */
136
+ y2?: number;
137
+ /** Y3 for blur formula */
138
+ y3?: number;
139
+ }
140
+ /**
141
+ * Median transformation options
142
+ */
143
+ interface MedianOptions extends TransformOptions {
144
+ /** Size of the median filter */
145
+ size?: number;
146
+ }
147
+ /**
148
+ * CLAHE (Contrast Limited Adaptive Histogram Equalization) options
149
+ */
150
+ interface CLAHEOptions extends TransformOptions {
151
+ /** Height of the tile grid */
152
+ height?: number;
153
+ /** Maximum slope value for contrast limiting */
154
+ maxSlope?: number;
155
+ /** Width of the tile grid */
156
+ width?: number;
157
+ }
158
+ /**
159
+ * Convolve transformation options
160
+ */
161
+ interface ConvolveOptions extends TransformOptions {
162
+ /** Height of the kernel in pixels */
163
+ height?: number;
164
+ /** Kernel values as flat array */
165
+ kernel?: number[];
166
+ /** Offset value */
167
+ offset?: number;
168
+ /** Scale factor */
169
+ scale?: number;
170
+ /** Width of the kernel in pixels */
171
+ width?: number;
172
+ }
173
+ /**
174
+ * Threshold transformation options
175
+ */
176
+ interface ThresholdOptions extends TransformOptions {
177
+ /** Alternative spelling for greyscale */
178
+ grayscale?: boolean;
179
+ /** Convert to greyscale */
180
+ greyscale?: boolean;
181
+ /** Threshold value (0-255) */
182
+ threshold?: number;
183
+ }
184
+ /**
185
+ * Boolean operation options
186
+ */
187
+ interface BooleanOptions extends TransformOptions {
188
+ /** Operand image buffer or path */
189
+ operand: Buffer | string;
190
+ /** Boolean operation: and, or, eor */
191
+ operator: "and" | "or" | "eor";
192
+ /** Raw operand options */
193
+ raw?: {
194
+ channels: number;
195
+ height: number;
196
+ width: number;
197
+ };
198
+ }
199
+ /**
200
+ * Linear transformation options
201
+ */
202
+ interface LinearOptions extends TransformOptions {
203
+ /** Multiplier values (per channel or single value) */
204
+ a?: number | number[];
205
+ /** Offset values (per channel or single value) */
206
+ b?: number | number[];
207
+ }
208
+ /**
209
+ * Recombine transformation options
210
+ */
211
+ interface RecombineOptions extends TransformOptions {
212
+ /** 3x3 or 4x4 recombination matrix */
213
+ matrix: number[][];
214
+ }
215
+ /**
216
+ * Modulate transformation options
217
+ */
218
+ interface ModulateOptions extends TransformOptions {
219
+ /** Brightness multiplier */
220
+ brightness?: number;
221
+ /** Hue rotation in degrees */
222
+ hue?: number;
223
+ /** Lightness adjustment */
224
+ lightness?: number;
225
+ /** Saturation multiplier */
226
+ saturation?: number;
227
+ }
228
+ /**
229
+ * Tint transformation options
230
+ */
231
+ interface TintOptions extends TransformOptions {
232
+ /** RGB tint values */
233
+ rgb: [number, number, number] | string;
234
+ }
235
+ /**
236
+ * Greyscale transformation options
237
+ */
238
+ interface GreyscaleOptions extends TransformOptions {
239
+ /** Alternative spelling */
240
+ grayscale?: boolean;
241
+ /** Convert to greyscale */
242
+ greyscale?: boolean;
243
+ }
244
+ /**
245
+ * Colourspace transformation options
246
+ */
247
+ interface ColourspaceOptions extends TransformOptions {
248
+ /** Target colourspace */
249
+ colourspace: "srgb" | "rgb" | "cmyk" | "lab" | "b-w";
250
+ }
251
+ /**
252
+ * Channel extraction options
253
+ */
254
+ interface ExtractChannelOptions extends TransformOptions {
255
+ /** Channel to extract (0-3 for RGBA) */
256
+ channel: number;
257
+ }
258
+ /**
259
+ * Options for joining multiple images as color channels into a single image.
260
+ */
261
+ interface JoinChannelOptions extends TransformOptions {
262
+ /** Images to join as channels */
263
+ images: (Buffer | string)[];
264
+ }
265
+ /**
266
+ * Options for performing boolean operations on image bands.
267
+ */
268
+ interface BandboolOptions extends TransformOptions {
269
+ /** Boolean operation: and, or, eor */
270
+ operator: "and" | "or" | "eor";
271
+ }
272
+ /**
273
+ * Options for applying affine transformations (rotation, scaling, shearing, translation) to images.
274
+ */
275
+ interface AffineOptions extends TransformOptions {
276
+ /** Background color for areas outside the transformed image */
277
+ background?: string;
278
+ /** Interpolation method */
279
+ interpolation?: "nearest" | "bilinear" | "bicubic" | "nohalo" | "lbb" | "vsqbs";
280
+ /** 2x3 transformation matrix */
281
+ matrix: [number, number, number, number, number, number];
282
+ }
283
+ /**
284
+ * Options for applying morphological dilation operation to images.
285
+ */
286
+ interface DilateOptions extends TransformOptions {
287
+ /** Kernel size for dilation */
288
+ kernelSize?: number;
289
+ }
290
+ /**
291
+ * Options for applying morphological erosion operation to images.
292
+ */
293
+ interface ErodeOptions extends TransformOptions {
294
+ /** Kernel size for erosion */
295
+ kernelSize?: number;
296
+ }
297
+ /**
298
+ * Options for setting the colourspace used for internal processing pipeline operations.
299
+ */
300
+ interface PipelineColourspaceOptions extends TransformOptions {
301
+ /** Colourspace for internal operations */
302
+ colourspace: "rgb" | "srgb" | "cmyk" | "lab" | "b-w";
303
+ }
304
+ /**
305
+ * Options for converting images to a target colourspace.
306
+ */
307
+ interface ToColourspaceOptions extends TransformOptions {
308
+ /** Target colourspace */
309
+ colourspace: "srgb" | "rgb" | "cmyk" | "lab" | "b-w";
310
+ }
311
+ /**
312
+ * Remove alpha channel options
313
+ */
314
+ interface RemoveAlphaOptions extends TransformOptions {
315
+ /** Background color to composite over alpha channel */
316
+ background?: string;
317
+ }
318
+ /**
319
+ * Ensure alpha channel options
320
+ */
321
+ interface EnsureAlphaOptions extends TransformOptions {
322
+ /** Alpha channel value to add */
323
+ alpha?: number;
324
+ }
325
+ /**
326
+ * Resize transformation options
327
+ */
328
+ interface ResizeOptions extends TransformOptions {
329
+ /** Background color for fill fit */
330
+ background?: string;
331
+ /** Whether to skip enlargement during initial load */
332
+ fastShrinkOnLoad?: boolean;
333
+ /** Resize fit mode */
334
+ fit?: "cover" | "contain" | "fill" | "inside" | "outside";
335
+ /** Height in pixels */
336
+ height?: number;
337
+ /** Resize kernel */
338
+ kernel?: "nearest" | "cubic" | "mitchell" | "lanczos2" | "lanczos3";
339
+ /** Position for cover/contain fits */
340
+ position?: string | number;
341
+ /** Width in pixels */
342
+ width?: number;
343
+ /** Whether to avoid enlarging images smaller than specified dimensions */
344
+ withoutEnlargement?: boolean;
345
+ /** Whether to avoid reducing images larger than specified dimensions */
346
+ withoutReduction?: boolean;
347
+ }
348
+ /**
349
+ * Crop transformation options
350
+ */
351
+ interface CropOptions extends TransformOptions {
352
+ /** Crop area height */
353
+ height: number;
354
+ /** Crop area left offset */
355
+ left: number;
356
+ /** Crop area top offset */
357
+ top: number;
358
+ /** Crop area width */
359
+ width: number;
360
+ }
361
+ /**
362
+ * Rotate transformation options
363
+ */
364
+ interface RotateOptions extends TransformOptions {
365
+ /** Rotation angle in degrees. Note: angles other than 90°, 180°, and 270° require interpolation and may affect image quality */
366
+ angle: number;
367
+ /** Background color for rotation */
368
+ background?: string;
369
+ }
370
+ /**
371
+ * Transformation pipeline step
372
+ */
373
+ interface TransformationStep {
374
+ options: TransformOptions | ResizeOptions | CropOptions | RotateOptions | SharpenOptions | BlurOptions | MedianOptions | CLAHEOptions | ConvolveOptions | ThresholdOptions | BooleanOptions | LinearOptions | RecombineOptions | ModulateOptions | TintOptions | GreyscaleOptions | ColourspaceOptions | ExtractChannelOptions | JoinChannelOptions | BandboolOptions | AffineOptions | DilateOptions | ErodeOptions | PipelineColourspaceOptions | ToColourspaceOptions | RemoveAlphaOptions | EnsureAlphaOptions;
375
+ type: "resize" | "crop" | "rotate" | "format" | "quality" | "sharpen" | "blur" | "median" | "clahe" | "convolve" | "threshold" | "boolean" | "linear" | "recombine" | "modulate" | "tint" | "greyscale" | "colourspace" | "extractChannel" | "joinChannel" | "bandbool" | "autoOrient" | "flip" | "flop" | "affine" | "dilate" | "erode" | "pipelineColourspace" | "toColourspace" | "removeAlpha" | "ensureAlpha" | "flatten" | "unflatten" | "gamma" | "negate" | "normalise" | "normalize";
376
+ }
377
+ /**
378
+ * Generic transformation pipeline step (for any media type)
379
+ */
380
+ interface MediaTransformationStep {
381
+ options: TransformOptions | ResizeOptions | CropOptions | RotateOptions | SharpenOptions | BlurOptions | MedianOptions | CLAHEOptions | ConvolveOptions | ThresholdOptions | BooleanOptions | LinearOptions | RecombineOptions | ModulateOptions | TintOptions | GreyscaleOptions | ColourspaceOptions | ExtractChannelOptions | JoinChannelOptions | BandboolOptions | VideoTransformOptions | VideoResizeOptions | VideoCropOptions | VideoRotateOptions | AudioTransformOptions | AudioChannelMixOptions | AudioResampleOptions;
382
+ type: "resize" | "crop" | "rotate" | "format" | "quality" | "sharpen" | "blur" | "median" | "clahe" | "convolve" | "threshold" | "boolean" | "linear" | "recombine" | "modulate" | "tint" | "greyscale" | "colourspace" | "extractChannel" | "joinChannel" | "bandbool" | "autoOrient" | "flip" | "flop" | "affine" | "dilate" | "erode" | "flatten" | "unflatten" | "gamma" | "negate" | "normalise" | "normalize" | "codec" | "bitrate" | "frameRate" | "resample" | "channels";
383
+ }
384
+ /**
385
+ * Video transformation options
386
+ */
387
+ interface VideoTransformOptions extends TransformOptions {
388
+ /** Video bitrate */
389
+ bitrate?: number;
390
+ /** Video codec */
391
+ codec?: "avc" | "hevc" | "vp8" | "vp9" | "av1";
392
+ /** Frame rate in Hz */
393
+ frameRate?: number;
394
+ /** Key frame interval in seconds */
395
+ keyFrameInterval?: number;
396
+ }
397
+ /**
398
+ * Audio transformation options
399
+ */
400
+ interface AudioTransformOptions extends TransformOptions {
401
+ /** Audio bitrate */
402
+ bitrate?: number;
403
+ /** Audio codec */
404
+ codec?: "aac" | "opus" | "mp3" | "vorbis" | "flac";
405
+ /** Number of channels */
406
+ numberOfChannels?: number;
407
+ /** Sample rate in Hz */
408
+ sampleRate?: number;
409
+ }
410
+ /**
411
+ * Video resize transformation options
412
+ */
413
+ interface VideoResizeOptions extends VideoTransformOptions {
414
+ /** Resize fit mode */
415
+ fit?: "cover" | "contain" | "fill" | "inside" | "outside";
416
+ /** Height in pixels */
417
+ height?: number;
418
+ /** Position for cover/contain fits */
419
+ position?: string | number;
420
+ /** Width in pixels */
421
+ width?: number;
422
+ /** Whether to avoid enlarging videos smaller than specified dimensions */
423
+ withoutEnlargement?: boolean;
424
+ /** Whether to avoid reducing videos larger than specified dimensions */
425
+ withoutReduction?: boolean;
426
+ }
427
+ /**
428
+ * Video crop transformation options
429
+ */
430
+ interface VideoCropOptions extends VideoTransformOptions {
431
+ /** Crop area height */
432
+ height: number;
433
+ /** Crop area left offset */
434
+ left: number;
435
+ /** Crop area top offset */
436
+ top: number;
437
+ /** Crop area width */
438
+ width: number;
439
+ }
440
+ /**
441
+ * Video rotate transformation options
442
+ */
443
+ interface VideoRotateOptions extends VideoTransformOptions {
444
+ /** Rotation angle in degrees. Note: angles other than 90°, 180°, and 270° require interpolation and may affect video quality */
445
+ angle: number;
446
+ /** Background color for rotation */
447
+ background?: string;
448
+ }
449
+ /**
450
+ * Audio channel mix transformation options
451
+ */
452
+ interface AudioChannelMixOptions extends AudioTransformOptions {
453
+ /** Number of output channels */
454
+ numberOfChannels: number;
455
+ }
456
+ /**
457
+ * Audio resample transformation options
458
+ */
459
+ interface AudioResampleOptions extends AudioTransformOptions {
460
+ /** Output sample rate in Hz */
461
+ sampleRate: number;
462
+ }
463
+ /**
464
+ * Video transformation pipeline step
465
+ */
466
+ interface VideoTransformationStep {
467
+ options: VideoTransformOptions | VideoResizeOptions | VideoCropOptions | VideoRotateOptions;
468
+ type: "resize" | "crop" | "rotate" | "format" | "codec" | "bitrate" | "frameRate";
469
+ }
470
+ /**
471
+ * Audio transformation pipeline step
472
+ */
473
+ interface AudioTransformationStep {
474
+ options: AudioTransformOptions | AudioChannelMixOptions | AudioResampleOptions;
475
+ type: "resample" | "channels" | "format" | "codec" | "bitrate";
476
+ }
477
+ /**
478
+ * Image transformation result
479
+ */
480
+ interface TransformResult<TFileReturn extends FileReturn = FileReturn> {
481
+ /** Transformed image buffer */
482
+ buffer: Buffer;
483
+ /** Image format */
484
+ format: string;
485
+ /** Image height in pixels */
486
+ height: number;
487
+ /** Original file information */
488
+ originalFile: TFileReturn;
489
+ /** Image size in bytes */
490
+ size: number;
491
+ /** Image width in pixels */
492
+ width: number;
493
+ }
494
+ /**
495
+ * Video transformation result
496
+ */
497
+ interface VideoTransformResult<TFileReturn extends FileReturn = FileReturn> extends TransformResult<TFileReturn> {
498
+ /** Video bitrate */
499
+ bitrate?: number;
500
+ /** Video duration in seconds */
501
+ duration: number;
502
+ }
503
+ /**
504
+ * Audio transformation result
505
+ */
506
+ interface AudioTransformResult<TFileReturn extends FileReturn = FileReturn> extends Omit<TransformResult<TFileReturn>, "width" | "height"> {
507
+ /** Audio bitrate */
508
+ bitrate?: number;
509
+ /** Audio duration in seconds */
510
+ duration: number;
511
+ /** Number of channels */
512
+ numberOfChannels: number;
513
+ /** Sample rate in Hz */
514
+ sampleRate: number;
515
+ }
516
+ /**
517
+ * Media transformer configuration (unified config for all transformers)
518
+ */
519
+ interface MediaTransformerConfig<TFile extends File = File, TFileReturn extends FileReturn = FileReturn> {
520
+ /** Default audio bitrate */
521
+ audioBitrate?: number;
522
+ /** Default audio codec */
523
+ audioCodec?: "aac" | "opus" | "mp3" | "vorbis" | "flac";
524
+ /** Audio transformer class (optional, enables audio transformations) */
525
+ AudioTransformer?: new (storage: BaseStorage<TFile, TFileReturn>, config: AudioTransformerConfig) => BaseTransformer<AudioTransformerConfig, AudioTransformResult<TFileReturn>, TFile, TFileReturn>;
526
+ /** Cache instance to use for caching */
527
+ cache?: Cache;
528
+ /** Cache TTL in seconds */
529
+ cacheTtl?: number;
530
+ /** Image transformer class (optional, enables image transformations) */
531
+ ImageTransformer?: new (storage: BaseStorage<TFile, TFileReturn>, config: ImageTransformerConfig) => BaseTransformer<ImageTransformerConfig, TransformResult<TFileReturn>, TFile, TFileReturn>;
532
+ /** Logger instance */
533
+ logger?: Console;
534
+ /** Maximum audio size to process (in bytes) */
535
+ maxAudioSize?: number;
536
+ /** Maximum image size to process (in bytes) */
537
+ maxImageSize?: number;
538
+ /** Maximum video size to process (in bytes) */
539
+ maxVideoSize?: number;
540
+ /** Save transformed files to storage for reuse */
541
+ saveTransformedFiles?: boolean;
542
+ /** Supported audio input formats */
543
+ supportedAudioFormats?: string[];
544
+ /** Supported image input formats */
545
+ supportedImageFormats?: string[];
546
+ /** Supported video input formats */
547
+ supportedVideoFormats?: string[];
548
+ /** Default video bitrate */
549
+ videoBitrate?: number;
550
+ /** Default video codec */
551
+ videoCodec?: "avc" | "hevc" | "vp8" | "vp9" | "av1";
552
+ /** Video transformer class (optional, enables video transformations) */
553
+ VideoTransformer?: new (storage: BaseStorage<TFile, TFileReturn>, config: VideoTransformerConfig) => BaseTransformer<VideoTransformerConfig, VideoTransformResult<TFileReturn>, TFile, TFileReturn>;
554
+ }
555
+ /**
556
+ * Unified media transformation result
557
+ */
558
+ interface MediaTransformResult<TFileReturn extends FileReturn = FileReturn> {
559
+ /** Video-specific properties */
560
+ bitrate?: number;
561
+ /** Transformed media buffer */
562
+ buffer: Buffer;
563
+ /** Video/Audio-specific properties */
564
+ duration?: number;
565
+ /** Media format */
566
+ format: string;
567
+ /** Image/Video-specific properties */
568
+ height?: number;
569
+ /** Media type */
570
+ mediaType: "image" | "video" | "audio";
571
+ /** Audio-specific properties */
572
+ numberOfChannels?: number;
573
+ /** Original file information */
574
+ originalFile: TFileReturn;
575
+ /** Audio-specific properties */
576
+ sampleRate?: number;
577
+ /** Media size in bytes */
578
+ size: number;
579
+ /** Image-specific properties */
580
+ width?: number;
581
+ }
582
+ /**
583
+ * Query parameters for media transformation
584
+ */
585
+ interface MediaTransformQuery {
586
+ /** Apply affine transformation */
587
+ affine?: boolean;
588
+ /** Rotation angle in degrees. Note: angles other than 90°, 180°, and 270° require interpolation and may affect media quality */
589
+ angle?: number;
590
+ /** Background color for rotation */
591
+ background?: string;
592
+ /** Video bitrate in bits per second */
593
+ bitrate?: number;
594
+ /** Apply blur effect */
595
+ blur?: boolean;
596
+ /** Brightness multiplier for modulation */
597
+ brightness?: number;
598
+ /** Apply CLAHE (Contrast Limited Adaptive Histogram Equalization) */
599
+ clahe?: boolean;
600
+ /** Video codec */
601
+ codec?: "avc" | "hevc" | "vp8" | "vp9" | "av1" | "aac" | "opus" | "mp3" | "vorbis" | "flac";
602
+ /** Crop area height */
603
+ cropHeight?: number;
604
+ /** Crop area width */
605
+ cropWidth?: number;
606
+ /** Apply dilation */
607
+ dilate?: boolean;
608
+ /** Ensure alpha channel */
609
+ ensureAlpha?: boolean;
610
+ /** Apply erosion */
611
+ erode?: boolean;
612
+ /** Fast shrink on load */
613
+ fastShrinkOnLoad?: boolean;
614
+ /** Resize fit mode */
615
+ fit?: "cover" | "contain" | "fill" | "inside" | "outside";
616
+ /** Flatten alpha channel */
617
+ flatten?: boolean;
618
+ /** Flip image vertically */
619
+ flip?: boolean;
620
+ /** Flop image horizontally */
621
+ flop?: boolean;
622
+ /** Output format */
623
+ format?: string;
624
+ /** Frame rate in Hz */
625
+ frameRate?: number;
626
+ /** Apply gamma correction */
627
+ gamma?: boolean;
628
+ /** Convert to greyscale */
629
+ greyscale?: boolean;
630
+ /** Height in pixels */
631
+ height?: number;
632
+ /** Hue rotation in degrees for modulation */
633
+ hue?: number;
634
+ /** Resize kernel */
635
+ kernel?: string;
636
+ /** Key frame interval in seconds */
637
+ keyFrameInterval?: number;
638
+ /** Crop area left offset */
639
+ left?: number;
640
+ /** Lightness adjustment for modulation */
641
+ lightness?: number;
642
+ /** Apply median filter with specified size */
643
+ median?: number;
644
+ /** Apply modulation effects */
645
+ modulate?: boolean;
646
+ /** Negate (invert) the image */
647
+ negate?: boolean;
648
+ /** Normalise the image */
649
+ normalise?: boolean;
650
+ /** Number of channels */
651
+ numberOfChannels?: number;
652
+ /** Set pipeline colourspace */
653
+ pipelineColourspace?: boolean;
654
+ /** Position for cover/contain fits */
655
+ position?: string | number;
656
+ /** Quality (0-100 for images, bitrate for video/audio) */
657
+ quality?: number;
658
+ /** Remove alpha channel */
659
+ removeAlpha?: boolean;
660
+ /** Sample rate in Hz */
661
+ sampleRate?: number;
662
+ /** Saturation multiplier for modulation */
663
+ saturation?: number;
664
+ /** Apply sharpening */
665
+ sharpen?: boolean;
666
+ /** Apply thresholding with specified value */
667
+ threshold?: number;
668
+ /** Apply tinting */
669
+ tint?: boolean;
670
+ /** Convert to colourspace */
671
+ toColourspace?: boolean;
672
+ /** Crop area top offset */
673
+ top?: number;
674
+ /** Unflatten alpha channel */
675
+ unflatten?: boolean;
676
+ /** Width in pixels */
677
+ width?: number;
678
+ /** Whether to avoid enlarging smaller images */
679
+ withoutEnlargement?: boolean;
680
+ /** Whether to avoid reducing larger images */
681
+ withoutReduction?: boolean;
682
+ }
683
+ /**
684
+ * Image transformer configuration
685
+ */
686
+ interface ImageTransformerConfig extends BaseTransformerConfig {
687
+ /** Sharp `failOn` setting controlling which libvips warnings abort decoding. Defaults to `"warning"`. */
688
+ failOn?: "error" | "none" | "truncated" | "warning";
689
+ /** Maximum total pixels (width * height) Sharp will decode. Defaults to 268435456 (16k x 16k). */
690
+ limitInputPixels?: false | number;
691
+ /** Reject images taller than this many pixels (post-decode metadata check). */
692
+ maxImageHeight?: number;
693
+ /** Maximum image size to process (in bytes) */
694
+ maxImageSize?: number;
695
+ /** Reject images wider than this many pixels (post-decode metadata check). */
696
+ maxImageWidth?: number;
697
+ }
698
+ /**
699
+ * Video transformer configuration
700
+ */
701
+ interface VideoTransformerConfig extends BaseTransformerConfig {
702
+ /** Default video bitrate */
703
+ defaultBitrate?: number;
704
+ /** Default video codec */
705
+ defaultCodec?: "avc" | "hevc" | "vp8" | "vp9" | "av1";
706
+ /** Maximum video size to process (in bytes) */
707
+ maxVideoSize?: number;
708
+ }
709
+ /**
710
+ * Audio transformer configuration
711
+ */
712
+ interface AudioTransformerConfig extends BaseTransformerConfig {
713
+ /** Default audio bitrate */
714
+ defaultBitrate?: number;
715
+ /** Default audio codec */
716
+ defaultCodec?: "aac" | "opus" | "mp3" | "vorbis" | "flac";
717
+ /** Maximum audio size to process (in bytes) */
718
+ maxAudioSize?: number;
719
+ }
720
+ export { AudioTransformerConfig as A, BaseTransformer as B, CropOptions as C, DilateOptions as D, ExtractChannelOptions as E, VideoTransformResult as F, GreyscaleOptions as G, VideoResizeOptions as H, ImageTransformerConfig as I, JoinChannelOptions as J, VideoCropOptions as K, LinearOptions as L, MediaTransformerConfig as M, VideoRotateOptions as N, VideoTransformOptions as O, PipelineColourspaceOptions as P, VideoTransformationStep as Q, ResizeOptions as R, SharpenOptions as S, TransformResult as T, MediaTransformQuery as U, VideoTransformerConfig as V, MediaTransformationStep as W, MediaTransformResult as a, AudioTransformResult as b, AudioResampleOptions as c, AudioChannelMixOptions as d, AudioTransformOptions as e, AudioTransformationStep as f, RotateOptions as g, ImageFormat as h, TransformOptions as i, BlurOptions as j, MedianOptions as k, CLAHEOptions as l, ConvolveOptions as m, ThresholdOptions as n, BooleanOptions as o, RecombineOptions as p, ModulateOptions as q, TintOptions as r, ColourspaceOptions as s, BandboolOptions as t, AffineOptions as u, ErodeOptions as v, ToColourspaceOptions as w, RemoveAlphaOptions as x, EnsureAlphaOptions as y, TransformationStep as z };