@visulima/storage 2.0.0 → 2.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 (360) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE.md +130 -1
  3. package/dist/adapter/nuxt/module.d.ts +5 -5
  4. package/dist/adapter/nuxt/module.js +1 -1
  5. package/dist/ai/ai-sdk/index.d.ts +7 -7
  6. package/dist/ai/ai-sdk/index.js +1 -1
  7. package/dist/ai/claude/index.d.ts +5 -5
  8. package/dist/ai/claude/index.js +1 -1
  9. package/dist/ai/openai/index.d.ts +13 -5
  10. package/dist/ai/openai/index.js +1 -1
  11. package/dist/ai/tanstack/index.d.ts +6 -6
  12. package/dist/ai/tanstack/index.js +1 -1
  13. package/dist/handler/http/fetch/index.d.ts +8 -8
  14. package/dist/handler/http/fetch/index.js +1 -1
  15. package/dist/handler/http/hono/index.d.ts +7 -7
  16. package/dist/handler/http/hono/index.js +1 -1
  17. package/dist/handler/http/nextjs/index.d.ts +7 -7
  18. package/dist/handler/http/nextjs/index.js +1 -1
  19. package/dist/handler/http/node/index.d.ts +7 -7
  20. package/dist/handler/http/node/index.js +1 -1
  21. package/dist/handler/http/solid-start/index.d.ts +7 -7
  22. package/dist/handler/http/solid-start/index.js +1 -1
  23. package/dist/index.d.ts +8 -8
  24. package/dist/index.js +1 -1
  25. package/dist/openapi/index.js +1 -1
  26. package/dist/packem_shared/AbstractBaseStorage-CcIPoAES.js +1 -0
  27. package/dist/packem_shared/AwsLightFile-CqeZ6M7o.js +1 -0
  28. package/dist/packem_shared/AwsLightMetaStorage-Cb4xIpax.js +1 -0
  29. package/dist/packem_shared/AwsLightStorage-Bhg6C3fo.js +1 -0
  30. package/dist/packem_shared/AzureFile-DoUVXQMI.js +1 -0
  31. package/dist/packem_shared/AzureSMetaStorage-ByKDwgWo.js +1 -0
  32. package/dist/packem_shared/AzureStorage-BzYWVRnX.js +1 -0
  33. package/dist/packem_shared/BaseTransformer-ByIAKnn8.js +1 -0
  34. package/dist/packem_shared/BoxFile-CKKRYACc.js +1 -0
  35. package/dist/packem_shared/BoxMetaStorage-BI-G6aeO.js +1 -0
  36. package/dist/packem_shared/BoxStorage-Bmzt-OTx.js +1 -0
  37. package/dist/packem_shared/BunS3File-B2rczbY_.js +1 -0
  38. package/dist/packem_shared/BunS3MetaStorage-BI-G6aeO.js +1 -0
  39. package/dist/packem_shared/{BunS3Storage-B_roVJ29.js → BunS3Storage-uJ-u5wpg.js} +1 -1
  40. package/dist/packem_shared/BunnyFile-CBJdpNcB.js +1 -0
  41. package/dist/packem_shared/BunnyMetaStorage-BI-G6aeO.js +1 -0
  42. package/dist/packem_shared/BunnyStorage-9fw8VeuO.js +1 -0
  43. package/dist/packem_shared/CloudinaryFile-Dl8cnbJo.js +1 -0
  44. package/dist/packem_shared/CloudinaryMetaStorage-CYWznm7F.js +1 -0
  45. package/dist/packem_shared/CloudinaryStorage-CRVFUrEK.js +1 -0
  46. package/dist/packem_shared/DiskStorage-Wm6PC8Rc.js +1 -0
  47. package/dist/packem_shared/DiskStorageWithChecksum-CyhRDK5M.js +1 -0
  48. package/dist/packem_shared/DropboxFile-BUSubTWW.js +1 -0
  49. package/dist/packem_shared/DropboxMetaStorage-BYbJBJXr.js +1 -0
  50. package/dist/packem_shared/DropboxStorage-ZfgP7IMo.js +1 -0
  51. package/dist/packem_shared/{ERRORS-BIBxE2oR.js → ERRORS-olUcTqo2.js} +1 -1
  52. package/dist/packem_shared/File-DLAa0hBv.js +1 -0
  53. package/dist/packem_shared/Files-NF7wRh5C.js +1 -0
  54. package/dist/packem_shared/FirebaseFile-Dl8cnbJo.js +1 -0
  55. package/dist/packem_shared/FirebaseMetaStorage-DX1-58UY.js +1 -0
  56. package/dist/packem_shared/FirebaseStorage-D8NgHiZh.js +2 -0
  57. package/dist/packem_shared/FtpFile-H8EmE3S_.js +1 -0
  58. package/dist/packem_shared/FtpMetaStorage-BI-G6aeO.js +1 -0
  59. package/dist/packem_shared/FtpStorage-BjBdLfTV.js +1 -0
  60. package/dist/packem_shared/GCSFile-mFuZfcTW.js +1 -0
  61. package/dist/packem_shared/GCSMetaStorage-Dm8m-iJT.js +1 -0
  62. package/dist/packem_shared/GCStorage-BWV6QQqd.js +1 -0
  63. package/dist/packem_shared/GoogleDriveFile-fDYE1aaN.js +1 -0
  64. package/dist/packem_shared/GoogleDriveMetaStorage-CEleJNZZ.js +1 -0
  65. package/dist/packem_shared/{GoogleDriveStorage-Du7uBhSm.js → GoogleDriveStorage-CS9nWKP5.js} +1 -1
  66. package/dist/packem_shared/LocalMetaStorage-EnWCLyKq.js +1 -0
  67. package/dist/packem_shared/MediaTransformer-GqBUkOvz.js +1 -0
  68. package/dist/packem_shared/MemoryMetaStorage-DdAIGIVO.js +1 -0
  69. package/dist/packem_shared/{MemoryStorage-ChKyI6OY.js → MemoryStorage-CJw7SAlG.js} +1 -1
  70. package/dist/packem_shared/Metadata-BeQVDFer.js +1 -0
  71. package/dist/packem_shared/{Multipart-V64Bg5dt.js → Multipart-C3ve9Z0D.js} +1 -1
  72. package/dist/packem_shared/Multipart-PlMON60C.js +1 -0
  73. package/dist/packem_shared/NetlifyBlobFile-Br5HPqlC.js +1 -0
  74. package/dist/packem_shared/NetlifyBlobMetaStorage-DD5mbms5.js +1 -0
  75. package/dist/packem_shared/NetlifyBlobStorage-DVpJgN3v.js +1 -0
  76. package/dist/packem_shared/NoOpMetrics-CWqe9gwp.js +1 -0
  77. package/dist/packem_shared/OneDriveFile-Ccv5bkno.js +1 -0
  78. package/dist/packem_shared/OneDriveMetaStorage-D0GzJ0FC.js +1 -0
  79. package/dist/packem_shared/OneDriveStorage-CTYdWnnf.js +1 -0
  80. package/dist/packem_shared/OpenTelemetryMetrics-opDTaCRp.js +1 -0
  81. package/dist/packem_shared/PocketBaseFile-Dl8cnbJo.js +1 -0
  82. package/dist/packem_shared/PocketBaseMetaStorage-DgKNhi2j.js +1 -0
  83. package/dist/packem_shared/PocketBaseStorage-CHQVk7lR.js +1 -0
  84. package/dist/packem_shared/Rest-DQRxx8yQ.js +1 -0
  85. package/dist/packem_shared/Rest-DYXzbF-Q.js +1 -0
  86. package/dist/packem_shared/S3File-CyL0Q6Nx.js +1 -0
  87. package/dist/packem_shared/S3MetaStorage-DszTVQMa.js +1 -0
  88. package/dist/packem_shared/S3Storage-Bdns7a3N.js +1 -0
  89. package/dist/packem_shared/SftpFile-H8EmE3S_.js +1 -0
  90. package/dist/packem_shared/SftpMetaStorage-BI-G6aeO.js +1 -0
  91. package/dist/packem_shared/SftpStorage-D08to8f6.js +1 -0
  92. package/dist/packem_shared/SharePointFile-BWfd3Rel.js +1 -0
  93. package/dist/packem_shared/SharePointMetaStorage-BI-G6aeO.js +1 -0
  94. package/dist/packem_shared/{SharePointStorage-Dtnt5-wk.js → SharePointStorage-PtgEmyCY.js} +1 -1
  95. package/dist/packem_shared/SupabaseFile-CI0eFAyo.js +1 -0
  96. package/dist/packem_shared/SupabaseMetaStorage-CRw0xTXk.js +1 -0
  97. package/dist/packem_shared/SupabaseStorage-DJe4YZJD.js +1 -0
  98. package/dist/packem_shared/TUS_RESUMABLE-Dsxqcx-u.js +1 -0
  99. package/dist/packem_shared/{Tus-CJBgnJrn.js → Tus-C800fRBi.js} +1 -1
  100. package/dist/packem_shared/Tus-Vttn79I2.js +1 -0
  101. package/dist/packem_shared/UploadThingFile-DP4kNmpS.js +1 -0
  102. package/dist/packem_shared/UploadThingMetaStorage-CYWznm7F.js +1 -0
  103. package/dist/packem_shared/UploadThingStorage-S3iYzJ8Z.js +1 -0
  104. package/dist/packem_shared/ValidationError-SzFFFHiN.js +1 -0
  105. package/dist/packem_shared/VercelBlobFile-Censq2sD.js +1 -0
  106. package/dist/packem_shared/VercelBlobMetaStorage-DgKNhi2j.js +1 -0
  107. package/dist/packem_shared/VercelBlobStorage-D1eytZwU.js +1 -0
  108. package/dist/packem_shared/_commonjsHelpers-CqkleIqs.js +1 -0
  109. package/dist/packem_shared/agentsCopyFile-BMTcfVHg.js +1 -0
  110. package/dist/packem_shared/akamai-BPAk4688.js +1 -0
  111. package/dist/packem_shared/alibaba-CPhhkaQs.js +1 -0
  112. package/dist/packem_shared/approval-DcuhtQKs.js +1 -0
  113. package/dist/packem_shared/aws-light-meta-storage-CgGLgB8g.js +4 -0
  114. package/dist/packem_shared/azure-meta-storage-DmBO5MmP.js +1 -0
  115. package/dist/packem_shared/backblaze-CjeWkpeg.js +1 -0
  116. package/dist/packem_shared/base-handler-core-BvNgdV-9.js +1 -0
  117. package/dist/packem_shared/base-handler-fetch-DDSPIzWT.js +1 -0
  118. package/dist/packem_shared/base-handler-node-C83nCFpv.js +1 -0
  119. package/dist/packem_shared/claudeCopyFile-CMKFZHFh.js +1 -0
  120. package/dist/packem_shared/cloudflare-CijqmNaq.js +1 -0
  121. package/dist/packem_shared/copyFile-B7PNh9O7.js +1 -0
  122. package/dist/packem_shared/copyFile-Q5eYZIU5.js +1 -0
  123. package/dist/packem_shared/createResponsesFileTools-SU-K9JG4.js +1 -0
  124. package/dist/packem_shared/createRetryWrapper-BM8PL0cI.js +1 -0
  125. package/dist/packem_shared/detect-file-type-go3r-MOD.js +1 -0
  126. package/dist/packem_shared/digitalOcean-BE_d_CcF.js +1 -0
  127. package/dist/packem_shared/disk-storage-DEOi12bM.js +1 -0
  128. package/dist/packem_shared/{executors-BDzMjc4y.js → executors-DgKT6b1T.js} +1 -1
  129. package/dist/packem_shared/{executors.d-B9dIy3NT.d.ts → executors.d-HWHR3Ids.d.ts} +1 -6
  130. package/dist/packem_shared/exoscale-BzXbsZ3A.js +1 -0
  131. package/dist/packem_shared/{filebase-CsFYJIwB.js → filebase-pfolz904.js} +1 -1
  132. package/dist/packem_shared/{files.d-CmSZi3M0.d.ts → files.d-DuIceNg2.d.ts} +1 -1
  133. package/dist/packem_shared/gcs-meta-storage-A5uvIda3.js +1 -0
  134. package/dist/packem_shared/{get-file-status-y3wTtDQs.js → get-file-status-B8WmWzcM.js} +1 -1
  135. package/dist/packem_shared/getFormatFromContentType-BAVdaQ0o.js +1 -0
  136. package/dist/packem_shared/has-content-96mmyLn2.js +1 -0
  137. package/dist/packem_shared/headers-erjZrwbT.js +26 -0
  138. package/dist/packem_shared/hetzner-CaLW6ANw.js +1 -0
  139. package/dist/packem_shared/{ibmCos-j-3TfJ5p.js → ibmCos-Dbcs7XEJ.js} +1 -1
  140. package/dist/packem_shared/idriveE2-BiiGl7tr.js +1 -0
  141. package/dist/packem_shared/index-DKzU1HON.js +5 -0
  142. package/dist/packem_shared/internal-Zb__DDsV.js +1 -0
  143. package/dist/packem_shared/is-expired-CZlgTFFz.js +1 -0
  144. package/dist/packem_shared/local-meta-storage-Ca6WrUmN.js +1 -0
  145. package/dist/packem_shared/{local-meta-storage.d-cRTXr1kb.d.ts → local-meta-storage.d-CYWYyCUo.d.ts} +1 -2
  146. package/dist/packem_shared/{media-transformer.d-C8tn4J2Z.d.ts → media-transformer.d-Co37isNg.d.ts} +2 -2
  147. package/dist/packem_shared/minio-CC_RGR-q.js +1 -0
  148. package/dist/packem_shared/multipart-base-0AXqLN-B.js +1 -0
  149. package/dist/packem_shared/oauth-refresh-Cf1z47zf.js +1 -0
  150. package/dist/packem_shared/{oracleCloud-DslqNpn6.js → oracleCloud-eAWm6voZ.js} +1 -1
  151. package/dist/packem_shared/{ovhCloud-CMHE6uLV.js → ovhCloud-D00DprwO.js} +1 -1
  152. package/dist/packem_shared/part-match-Cb6xL9eN.js +1 -0
  153. package/dist/packem_shared/path-CxEa27Rz-DSh0_A5o.js +1 -0
  154. package/dist/packem_shared/posix-dirname-CSjB98Q5.js +1 -0
  155. package/dist/packem_shared/response-builder-tJ84C7n4.js +1 -0
  156. package/dist/packem_shared/rest-base-CzhSrUnH.js +1 -0
  157. package/dist/packem_shared/{restOpenApiSpec-Csv513qf.js → restOpenApiSpec-BNBrZFuE.js} +1 -1
  158. package/dist/packem_shared/s3-base-storage-DuHVKzSw.js +1 -0
  159. package/dist/packem_shared/{s3-base-storage.d-ks99NSs-.d.ts → s3-base-storage.d-BmuspwCF.d.ts} +1 -1
  160. package/dist/packem_shared/scaleway-Dms2IqTd.js +1 -0
  161. package/dist/packem_shared/{sharedErrorSchemaObject-YN65aAKj.js → sharedErrorSchemaObject-GTCM7U0s.js} +1 -1
  162. package/dist/packem_shared/{storage-DR7qdwBN.js → storage-uypoNkqu.js} +1 -1
  163. package/dist/packem_shared/{storage.d-DwdJrArF.d.ts → storage.d-C9EdfTf1.d.ts} +1 -1
  164. package/dist/packem_shared/storj-DzEePQoh.js +1 -0
  165. package/dist/packem_shared/sync-ClnPrYjk.js +1 -0
  166. package/dist/packem_shared/tencent-7P8z8AwE.js +1 -0
  167. package/dist/packem_shared/tigris-DlNWhmsM.js +1 -0
  168. package/dist/packem_shared/{transformOpenApiSpec-CIEAgpBD.js → transformOpenApiSpec-Bcnw9LVy.js} +1 -1
  169. package/dist/packem_shared/{tus-base.d-BKBoJVy0.d.ts → tus-base.d-Dgnbivbj.d.ts} +3 -8
  170. package/dist/packem_shared/{tusOpenApiSpec-D96B03t5.js → tusOpenApiSpec-BU8nhLH2.js} +1 -1
  171. package/dist/packem_shared/{types.d-BEUv414z.d.ts → types.d-D1TIRqKW.d.ts} +1 -1
  172. package/dist/packem_shared/{types.d-D7Zlz5RE.d.ts → types.d-D6Jkz0Sp.d.ts} +2 -2
  173. package/dist/packem_shared/{types.d-B1_xZIhu.d.ts → types.d-ZrDWKyVi.d.ts} +1 -2
  174. package/dist/packem_shared/update-size-Dxc1hvbI.js +1 -0
  175. package/dist/packem_shared/vultr-Crvmg314.js +1 -0
  176. package/dist/packem_shared/waitForStorage-afkqWeuz.js +1 -0
  177. package/dist/packem_shared/wasabi-CyCMxoUT.js +1 -0
  178. package/dist/packem_shared/{xhrOpenApiSpec-DQR4h6M8.js → xhrOpenApiSpec-xDSkxm2d.js} +1 -1
  179. package/dist/packem_shared/yandex-D1HwCz7g.js +1 -0
  180. package/dist/storage/aws/clients/index.js +1 -1
  181. package/dist/storage/aws/index.d.ts +3 -3
  182. package/dist/storage/aws/index.js +1 -1
  183. package/dist/storage/aws-light/index.d.ts +2 -2
  184. package/dist/storage/aws-light/index.js +1 -1
  185. package/dist/storage/azure/index.d.ts +2 -2
  186. package/dist/storage/azure/index.js +1 -1
  187. package/dist/storage/box/index.d.ts +3 -3
  188. package/dist/storage/box/index.js +1 -1
  189. package/dist/storage/bun-s3/index.d.ts +2 -2
  190. package/dist/storage/bun-s3/index.js +1 -1
  191. package/dist/storage/bunny/index.d.ts +3 -3
  192. package/dist/storage/bunny/index.js +1 -1
  193. package/dist/storage/cloudinary/index.d.ts +3 -3
  194. package/dist/storage/cloudinary/index.js +1 -1
  195. package/dist/storage/dropbox/index.d.ts +3 -3
  196. package/dist/storage/dropbox/index.js +1 -1
  197. package/dist/storage/firebase/index.d.ts +2 -2
  198. package/dist/storage/firebase/index.js +1 -1
  199. package/dist/storage/ftp/index.d.ts +3 -3
  200. package/dist/storage/ftp/index.js +1 -1
  201. package/dist/storage/gcs/index.d.ts +2 -2
  202. package/dist/storage/gcs/index.js +1 -1
  203. package/dist/storage/google-drive/index.d.ts +3 -3
  204. package/dist/storage/google-drive/index.js +1 -1
  205. package/dist/storage/local/index.d.ts +148 -4
  206. package/dist/storage/local/index.js +1 -1
  207. package/dist/storage/memory/index.d.ts +93 -3
  208. package/dist/storage/memory/index.js +1 -1
  209. package/dist/storage/netlify-blob/index.d.ts +3 -3
  210. package/dist/storage/netlify-blob/index.js +1 -1
  211. package/dist/storage/onedrive/index.d.ts +4 -4
  212. package/dist/storage/onedrive/index.js +1 -1
  213. package/dist/storage/pocketbase/index.d.ts +2 -2
  214. package/dist/storage/pocketbase/index.js +1 -1
  215. package/dist/storage/sftp/index.d.ts +3 -3
  216. package/dist/storage/sftp/index.js +1 -1
  217. package/dist/storage/sharepoint/index.d.ts +3 -3
  218. package/dist/storage/sharepoint/index.js +1 -1
  219. package/dist/storage/supabase/index.d.ts +3 -3
  220. package/dist/storage/supabase/index.js +1 -1
  221. package/dist/storage/uploadthing/index.d.ts +2 -2
  222. package/dist/storage/uploadthing/index.js +1 -1
  223. package/dist/storage/vercel-blob/index.d.ts +3 -3
  224. package/dist/storage/vercel-blob/index.js +1 -1
  225. package/dist/transformer/audio-transformer.d.ts +2 -2
  226. package/dist/transformer/audio-transformer.js +1 -1
  227. package/dist/transformer/image-transformer.d.ts +2 -2
  228. package/dist/transformer/image-transformer.js +1 -1
  229. package/dist/transformer/index.d.ts +3 -3
  230. package/dist/transformer/index.js +1 -1
  231. package/dist/transformer/video-transformer.d.ts +2 -2
  232. package/dist/transformer/video-transformer.js +1 -1
  233. package/package.json +19 -18
  234. package/dist/packem_shared/AbstractBaseStorage-CLsYmMZg.js +0 -1
  235. package/dist/packem_shared/AwsLightFile-CpZrubaV.js +0 -1
  236. package/dist/packem_shared/AwsLightMetaStorage-DPqJ9LTr.js +0 -1
  237. package/dist/packem_shared/AwsLightStorage-DGSPFUqr.js +0 -1
  238. package/dist/packem_shared/AzureFile-DFSaVe25.js +0 -1
  239. package/dist/packem_shared/AzureSMetaStorage-ByzM6Aix.js +0 -1
  240. package/dist/packem_shared/AzureStorage-DvKk_hhz.js +0 -1
  241. package/dist/packem_shared/BaseTransformer-Buw5lX_3.js +0 -1
  242. package/dist/packem_shared/BoxFile-CseIoPW1.js +0 -1
  243. package/dist/packem_shared/BoxMetaStorage-CJsyeQ63.js +0 -1
  244. package/dist/packem_shared/BoxStorage-CmM95wi2.js +0 -1
  245. package/dist/packem_shared/BunS3File-BcYmsz1n.js +0 -1
  246. package/dist/packem_shared/BunS3MetaStorage-CJsyeQ63.js +0 -1
  247. package/dist/packem_shared/BunnyFile-BgEOlcYI.js +0 -1
  248. package/dist/packem_shared/BunnyMetaStorage-CJsyeQ63.js +0 -1
  249. package/dist/packem_shared/BunnyStorage-eZ1QDVaY.js +0 -1
  250. package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +0 -1
  251. package/dist/packem_shared/CloudinaryMetaStorage-Bv_YCZ0Q.js +0 -1
  252. package/dist/packem_shared/CloudinaryStorage-CpH2f0Fv.js +0 -1
  253. package/dist/packem_shared/DiskStorage-DzjjqCzo.js +0 -1
  254. package/dist/packem_shared/DiskStorageWithChecksum-MZkDEyts.js +0 -1
  255. package/dist/packem_shared/DropboxFile-BFb7eOzy.js +0 -1
  256. package/dist/packem_shared/DropboxMetaStorage-CJsyeQ63.js +0 -1
  257. package/dist/packem_shared/DropboxStorage-BB9NoWK2.js +0 -1
  258. package/dist/packem_shared/File-W8aOo15X.js +0 -1
  259. package/dist/packem_shared/Files-DyMJ9FPN.js +0 -1
  260. package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +0 -1
  261. package/dist/packem_shared/FirebaseMetaStorage-Bv_YCZ0Q.js +0 -1
  262. package/dist/packem_shared/FirebaseStorage-BgbxzYNC.js +0 -2
  263. package/dist/packem_shared/FtpFile-ClWDYnt2.js +0 -1
  264. package/dist/packem_shared/FtpMetaStorage-CJsyeQ63.js +0 -1
  265. package/dist/packem_shared/FtpStorage-CNqXDz7P.js +0 -1
  266. package/dist/packem_shared/GCSFile-Cero7qZN.js +0 -1
  267. package/dist/packem_shared/GCSMetaStorage-Cm_XzR0C.js +0 -1
  268. package/dist/packem_shared/GCStorage-DcvsI7eu.js +0 -1
  269. package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +0 -1
  270. package/dist/packem_shared/GoogleDriveMetaStorage-B0gLF7Io.js +0 -1
  271. package/dist/packem_shared/LocalMetaStorage-CcGfFG39.js +0 -1
  272. package/dist/packem_shared/MediaTransformer-D2kUsklW.js +0 -1
  273. package/dist/packem_shared/MemoryMetaStorage-Ksgh9pe7.js +0 -1
  274. package/dist/packem_shared/Metadata-B7CcBueg.js +0 -1
  275. package/dist/packem_shared/Multipart-C35TR2qL.js +0 -1
  276. package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +0 -1
  277. package/dist/packem_shared/NetlifyBlobMetaStorage-Bv_YCZ0Q.js +0 -1
  278. package/dist/packem_shared/NetlifyBlobStorage-CZsr_0DF.js +0 -1
  279. package/dist/packem_shared/NoOpMetrics-BLo6u4NY.js +0 -1
  280. package/dist/packem_shared/OneDriveFile-CNNJYI43.js +0 -1
  281. package/dist/packem_shared/OneDriveMetaStorage-B0gLF7Io.js +0 -1
  282. package/dist/packem_shared/OneDriveStorage-B8qFgMq1.js +0 -1
  283. package/dist/packem_shared/OpenTelemetryMetrics-DJDQsNKp.js +0 -1
  284. package/dist/packem_shared/PocketBaseFile-DpJpxl3e.js +0 -1
  285. package/dist/packem_shared/PocketBaseMetaStorage-Cm3v8g1-.js +0 -1
  286. package/dist/packem_shared/PocketBaseStorage-D2vMN-oY.js +0 -1
  287. package/dist/packem_shared/Rest-BrEMYgxZ.js +0 -1
  288. package/dist/packem_shared/Rest-aPVP2ww1.js +0 -1
  289. package/dist/packem_shared/S3File-CpZrubaV.js +0 -1
  290. package/dist/packem_shared/S3MetaStorage-CMonflzp.js +0 -1
  291. package/dist/packem_shared/S3Storage-CTe_BMDl.js +0 -1
  292. package/dist/packem_shared/SftpFile-ClWDYnt2.js +0 -1
  293. package/dist/packem_shared/SftpMetaStorage-CJsyeQ63.js +0 -1
  294. package/dist/packem_shared/SftpStorage-BKeAzuej.js +0 -1
  295. package/dist/packem_shared/SharePointFile-Blz9FS4h.js +0 -1
  296. package/dist/packem_shared/SharePointMetaStorage-CJsyeQ63.js +0 -1
  297. package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +0 -1
  298. package/dist/packem_shared/SupabaseMetaStorage-B0gLF7Io.js +0 -1
  299. package/dist/packem_shared/SupabaseStorage-CmGQjqXf.js +0 -1
  300. package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +0 -1
  301. package/dist/packem_shared/Tus-D9c7KDnl.js +0 -1
  302. package/dist/packem_shared/UploadThingFile-BTFMpcIA.js +0 -1
  303. package/dist/packem_shared/UploadThingMetaStorage-Bv_YCZ0Q.js +0 -1
  304. package/dist/packem_shared/UploadThingStorage-DZ4zNvDH.js +0 -1
  305. package/dist/packem_shared/ValidationError-3B06DFyE.js +0 -1
  306. package/dist/packem_shared/VercelBlobFile-CVQwKlZk.js +0 -1
  307. package/dist/packem_shared/VercelBlobMetaStorage-CJsyeQ63.js +0 -1
  308. package/dist/packem_shared/VercelBlobStorage-DDNEofR3.js +0 -1
  309. package/dist/packem_shared/_commonjsHelpers-CWAkuNXM.js +0 -1
  310. package/dist/packem_shared/agentsCopyFile-Dl5iffdH.js +0 -1
  311. package/dist/packem_shared/akamai-DthkaFul.js +0 -1
  312. package/dist/packem_shared/alibaba-BEi25O1g.js +0 -1
  313. package/dist/packem_shared/approval-fVHwBp7u.js +0 -1
  314. package/dist/packem_shared/aws-light-meta-storage-DGrn72VJ.js +0 -4
  315. package/dist/packem_shared/azure-meta-storage-ClbEsfI4.js +0 -1
  316. package/dist/packem_shared/backblaze-m1N5NZ9q.js +0 -1
  317. package/dist/packem_shared/base-handler-core-BJP9jHCE.js +0 -1
  318. package/dist/packem_shared/base-handler-fetch-yrYrukwL.js +0 -1
  319. package/dist/packem_shared/base-handler-node-C8P9rkaH.js +0 -1
  320. package/dist/packem_shared/claudeCopyFile-BX9O4ORk.js +0 -1
  321. package/dist/packem_shared/cloudflare-CdUTErlo.js +0 -1
  322. package/dist/packem_shared/copyFile-49FtxXcm.js +0 -1
  323. package/dist/packem_shared/copyFile-BUPezT_c.js +0 -1
  324. package/dist/packem_shared/createResponsesFileTools-6Tvt2PNr.js +0 -1
  325. package/dist/packem_shared/createRetryWrapper-DgmeHPNF.js +0 -1
  326. package/dist/packem_shared/detect-file-type-BA7UBLKA.js +0 -1
  327. package/dist/packem_shared/digitalOcean-B2uB6pgz.js +0 -1
  328. package/dist/packem_shared/disk-storage-DqnnFQAQ.js +0 -1
  329. package/dist/packem_shared/disk-storage-with-checksum.d-Dgwyza8a.d.ts +0 -146
  330. package/dist/packem_shared/exoscale-BDa1Gjth.js +0 -1
  331. package/dist/packem_shared/gcs-meta-storage-Bu2upyHK.js +0 -1
  332. package/dist/packem_shared/getFormatFromContentType-DCTTPQHm.js +0 -1
  333. package/dist/packem_shared/has-content-50BsqrWw.js +0 -1
  334. package/dist/packem_shared/headers-BAiAKekR.js +0 -26
  335. package/dist/packem_shared/hetzner-BGGFiRGD.js +0 -1
  336. package/dist/packem_shared/idriveE2-C6pQ5pQ0.js +0 -1
  337. package/dist/packem_shared/index-nZWCQrSe.js +0 -5
  338. package/dist/packem_shared/internal-D_cZIFwI.js +0 -1
  339. package/dist/packem_shared/is-expired-CBEk6XBi.js +0 -1
  340. package/dist/packem_shared/local-meta-storage-BELb1YwO.js +0 -11
  341. package/dist/packem_shared/memory-storage.d-BNZvDG1b.d.ts +0 -93
  342. package/dist/packem_shared/minio-NKquuBfS.js +0 -1
  343. package/dist/packem_shared/multipart-base-BOzY19lb.js +0 -1
  344. package/dist/packem_shared/oauth-refresh-EdGzlcOZ.js +0 -1
  345. package/dist/packem_shared/part-match-D-9dGX42.js +0 -1
  346. package/dist/packem_shared/path-C-OWflAo-_mqb5p5d.js +0 -1
  347. package/dist/packem_shared/posix-dirname-CfpH5wZi.js +0 -1
  348. package/dist/packem_shared/response-builder-CbSA8qPa.js +0 -1
  349. package/dist/packem_shared/rest-base-BQ_dhWyV.js +0 -1
  350. package/dist/packem_shared/s3-base-storage-CX94H-Za.js +0 -1
  351. package/dist/packem_shared/scaleway-U1In3v70.js +0 -1
  352. package/dist/packem_shared/storj-Cb59q9kF.js +0 -1
  353. package/dist/packem_shared/sync-DhR3536K.js +0 -1
  354. package/dist/packem_shared/tencent-Q1y2GENc.js +0 -1
  355. package/dist/packem_shared/tigris-BELKoyyp.js +0 -1
  356. package/dist/packem_shared/update-size-DuNuLyxj.js +0 -1
  357. package/dist/packem_shared/vultr-B491cQ4e.js +0 -1
  358. package/dist/packem_shared/waitForStorage-ByQmG4xF.js +0 -1
  359. package/dist/packem_shared/wasabi-DFrwIoab.js +0 -1
  360. package/dist/packem_shared/yandex-CwzHuEKP.js +0 -1
@@ -1,7 +1,7 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { Dropbox } from 'dropbox';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as e}from"../../packem_shared/DropboxFile-BFb7eOzy.js";import{default as t}from"../../packem_shared/DropboxMetaStorage-CJsyeQ63.js";import{default as p}from"../../packem_shared/DropboxStorage-BB9NoWK2.js";export{e as DropboxFile,t as DropboxMetaStorage,p as DropboxStorage};
1
+ import{default as e}from"../../packem_shared/DropboxFile-BUSubTWW.js";import{default as t}from"../../packem_shared/DropboxMetaStorage-BYbJBJXr.js";import{default as p}from"../../packem_shared/DropboxStorage-ZfgP7IMo.js";export{e as DropboxFile,t as DropboxMetaStorage,p as DropboxStorage};
@@ -1,6 +1,6 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
2
3
  import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
4
4
  import 'node:timers';
5
5
  import 'node:crypto';
6
6
  import 'node:http';
@@ -1 +1 @@
1
- import{default as r}from"../../packem_shared/FirebaseFile-BLaBxa2A.js";import{default as o}from"../../packem_shared/FirebaseMetaStorage-Bv_YCZ0Q.js";import{default as s}from"../../packem_shared/FirebaseStorage-BgbxzYNC.js";export{r as FirebaseFile,o as FirebaseMetaStorage,s as FirebaseStorage};
1
+ import{default as r}from"../../packem_shared/FirebaseFile-Dl8cnbJo.js";import{default as o}from"../../packem_shared/FirebaseMetaStorage-DX1-58UY.js";import{default as s}from"../../packem_shared/FirebaseStorage-D8NgHiZh.js";export{r as FirebaseFile,o as FirebaseMetaStorage,s as FirebaseStorage};
@@ -1,7 +1,7 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { AccessOptions } from 'basic-ftp';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as a}from"../../packem_shared/FtpFile-ClWDYnt2.js";import{default as r}from"../../packem_shared/FtpMetaStorage-CJsyeQ63.js";import{default as p}from"../../packem_shared/FtpStorage-CNqXDz7P.js";export{a as FtpFile,r as FtpMetaStorage,p as FtpStorage};
1
+ import{default as a}from"../../packem_shared/FtpFile-H8EmE3S_.js";import{default as r}from"../../packem_shared/FtpMetaStorage-BI-G6aeO.js";import{default as p}from"../../packem_shared/FtpStorage-BjBdLfTV.js";export{a as FtpFile,r as FtpMetaStorage,p as FtpStorage};
@@ -1,7 +1,7 @@
1
- import { F as File, k as MetaStorageOptions, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, H as HttpError, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
1
+ import { F as File, u as MetaStorageOptions, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, s as HttpError, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
3
2
  import { RetryConfig } from 'gaxios';
4
3
  import { GoogleAuthOptions, GoogleAuth } from 'google-auth-library';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as a}from"../../packem_shared/GCSConfig-BQ0OpVhe.js";import{default as t}from"../../packem_shared/GCSFile-Cero7qZN.js";import{v as C}from"../../packem_shared/gcs-meta-storage-Bu2upyHK.js";import{default as l}from"../../packem_shared/GCStorage-DcvsI7eu.js";export{a as GCSConfig,t as GCSFile,C as GCSMetaStorage,l as GCStorage};
1
+ import{default as a}from"../../packem_shared/GCSConfig-BQ0OpVhe.js";import{default as t}from"../../packem_shared/GCSFile-mFuZfcTW.js";import{G as C}from"../../packem_shared/gcs-meta-storage-A5uvIda3.js";import{default as S}from"../../packem_shared/GCStorage-BWV6QQqd.js";export{a as GCSConfig,t as GCSFile,C as GCSMetaStorage,S as GCStorage};
@@ -1,7 +1,7 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { drive_v3 } from '@googleapis/drive';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as r}from"../../packem_shared/GoogleDriveFile-DHpLhzg9.js";import{default as t}from"../../packem_shared/GoogleDriveMetaStorage-B0gLF7Io.js";import{default as f}from"../../packem_shared/GoogleDriveStorage-Du7uBhSm.js";export{r as GoogleDriveFile,t as GoogleDriveMetaStorage,f as GoogleDriveStorage};
1
+ import{default as r}from"../../packem_shared/GoogleDriveFile-fDYE1aaN.js";import{default as t}from"../../packem_shared/GoogleDriveMetaStorage-CEleJNZZ.js";import{default as f}from"../../packem_shared/GoogleDriveStorage-CS9nWKP5.js";export{r as GoogleDriveFile,t as GoogleDriveMetaStorage,f as GoogleDriveStorage};
@@ -1,8 +1,152 @@
1
- export { D as DiskStorage, a as DiskStorageWithChecksum } from "../../packem_shared/disk-storage-with-checksum.d-Dgwyza8a.js";
2
- export { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
3
- export type { L as LocalMetaStorageOptions } from "../../packem_shared/storage.d-DwdJrArF.js";
4
- import 'node:stream';
1
+ import { Readable } from 'node:stream';
2
+ import { F as File, M as MetaStorage, D as DiskStorageOptions, s as HttpError, d as FileInit, e as FilePart, f as FileQuery, O as OperationOptions, g as FileReturn, o as ERRORS, B as BaseStorage, n as DiskStorageWithChecksumOptions } from "../../packem_shared/storage.d-C9EdfTf1.js";
3
+ export type { L as LocalMetaStorageOptions } from "../../packem_shared/storage.d-C9EdfTf1.js";
4
+ export { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
8
8
  import 'lru-cache';
9
+ /**
10
+ * Local disk-based storage implementation.
11
+ * @template TFile The file type used by this storage backend.
12
+ * @remarks
13
+ * ## Error Handling
14
+ * - Filesystem operations throw errors directly (no retry logic)
15
+ * - File not found errors are thrown immediately
16
+ * - Permission errors are propagated as-is
17
+ *
18
+ * ## Retry Behavior
19
+ * - No automatic retries (filesystem operations are typically immediate)
20
+ * - Errors are thrown directly for immediate feedback
21
+ *
22
+ * ## File Paths
23
+ * - Files are stored in the configured directory
24
+ * - Metadata files use the `.META` suffix by default
25
+ * - File paths are resolved relative to the storage directory
26
+ */
27
+ declare class DiskStorage<TFile extends File = File> extends BaseStorage<TFile> {
28
+ static override readonly name: string;
29
+ override checksumTypes: string[];
30
+ override readonly supportsRange: boolean;
31
+ override get raw(): {
32
+ directory: string;
33
+ };
34
+ directory: string;
35
+ meta: MetaStorage<TFile>;
36
+ constructor(config: DiskStorageOptions<TFile>);
37
+ /**
38
+ * Normalizes errors with disk storage context.
39
+ * @param error The error to normalize.
40
+ * @returns Normalized HTTP error.
41
+ */
42
+ override normalizeError(error: Error): HttpError;
43
+ /**
44
+ * Creates a new file upload and saves its metadata.
45
+ * @param fileInit File initialization configuration.
46
+ * @returns Promise resolving to the created file object.
47
+ * @throws {Error} If validation fails or file already exists and is completed.
48
+ * @remarks
49
+ * Supports TTL (time-to-live) option in fileInit.
50
+ * Creates the file on disk if it doesn't exist.
51
+ * Returns existing file if it's already completed.
52
+ */
53
+ create(fileInit: FileInit): Promise<TFile>;
54
+ /**
55
+ * Writes data to a file upload.
56
+ * @param part File part containing data to write, file query, or full file object.
57
+ * @returns Promise resolving to the updated file object.
58
+ * @throws {Error} If file is expired (ERRORS.GONE), locked (ERRORS.FILE_LOCKED), or conflicts occur (ERRORS.FILE_CONFLICT).
59
+ * @remarks
60
+ * Supports chunked uploads with start position.
61
+ * Automatically detects file type from stream on first chunk if contentType is not set.
62
+ * Validates checksum algorithms if provided.
63
+ * Uses file locking to prevent concurrent writes.
64
+ * Updates file status to "completed" when all bytes are written.
65
+ */
66
+ write(part: FilePart | FileQuery | TFile): Promise<TFile>;
67
+ /**
68
+ * Gets an uploaded file by ID.
69
+ * @param query File query containing the file ID to retrieve.
70
+ * @param query.id File ID to retrieve.
71
+ * @returns Promise resolving to the file data including content buffer.
72
+ * @throws {Error} If the file cannot be found (ERRORS.FILE_NOT_FOUND) or has expired (ERRORS.GONE).
73
+ * @remarks
74
+ * Loads the entire file content into memory as a Buffer.
75
+ * For large files, consider using getStream() instead.
76
+ * Includes ETag (MD5 hash) for content verification.
77
+ */
78
+ get({ id }: FileQuery, options?: OperationOptions & {
79
+ range?: {
80
+ end?: number;
81
+ start: number;
82
+ };
83
+ }): Promise<FileReturn>;
84
+ /**
85
+ * Checks if a file exists by verifying both metadata and the actual filesystem file.
86
+ * Returns true only if both the metadata and the file exist.
87
+ * @param query File query containing the file ID to check.
88
+ * @returns Promise resolving to true if both metadata and file exist, false otherwise.
89
+ */
90
+ override exists({ id }: FileQuery): Promise<boolean>;
91
+ /**
92
+ * Gets an uploaded file as a readable stream for efficient large file handling.
93
+ * @param query File query containing the file ID to stream.
94
+ * @param query.id File ID to stream.
95
+ * @returns Promise resolving to an object containing the stream, headers, and size.
96
+ * @throws {UploadError} If the file cannot be found (ERRORS.FILE_NOT_FOUND) or has expired (ERRORS.GONE).
97
+ * @remarks Creates a readable stream directly from the file system for efficient memory usage.
98
+ */
99
+ override getStream({ id }: FileQuery): Promise<{
100
+ headers?: Record<string, string>;
101
+ size?: number;
102
+ stream: Readable;
103
+ }>;
104
+ /**
105
+ * Deletes an upload and its metadata.
106
+ * @param query File query containing the file ID to delete.
107
+ * @param query.id File ID to delete.
108
+ * @returns Promise resolving to the deleted file object with status: "deleted".
109
+ * @throws {UploadError} If the file metadata cannot be found.
110
+ */
111
+ delete({ id }: FileQuery): Promise<TFile>;
112
+ /**
113
+ * Copies an upload file to a new location.
114
+ * @param name Source file name/ID.
115
+ * @param destination Destination file name/ID.
116
+ * @returns Promise resolving to the copied file object.
117
+ * @throws {UploadError} If the source file cannot be found.
118
+ */
119
+ copy(name: string, destination: string): Promise<TFile>;
120
+ /**
121
+ * Moves an upload file to a new location.
122
+ * @param name Source file name/ID.
123
+ * @param destination Destination file name/ID.
124
+ * @returns Promise resolving to the moved file object.
125
+ * @throws {Error} If the source file cannot be found.
126
+ */
127
+ move(name: string, destination: string): Promise<TFile>;
128
+ /**
129
+ * Retrieves a list of uploaded files.
130
+ * @returns Promise resolving to an array of file metadata objects.
131
+ * @remarks Walks the storage directory and returns all files, excluding metadata files.
132
+ */
133
+ override list(): Promise<TFile[]>;
134
+ /**
135
+ * Returns the absolute on-disk path for the uploaded file, always rooted at
136
+ * `this.directory`. Absolute inputs and `..` traversals are rejected.
137
+ */
138
+ protected getFilePath(filename: string): string;
139
+ protected lazyWrite(part: File & FilePart): Promise<[number, ERRORS?]>;
140
+ private accessCheck;
141
+ }
142
+ /**
143
+ * Additionally calculates checksum of the file/range.
144
+ */
145
+ declare class DiskStorageWithChecksum<TFile extends File = File> extends DiskStorage<TFile> {
146
+ private hashes;
147
+ constructor(config: DiskStorageWithChecksumOptions<TFile>);
148
+ override delete({ id }: FileQuery): Promise<TFile>;
149
+ override write(part: FilePart | FileQuery): Promise<TFile>;
150
+ protected override lazyWrite(part: File & FilePart): Promise<[number, ERRORS?]>;
151
+ }
152
+ export { DiskStorage, DiskStorageWithChecksum };
@@ -1 +1 @@
1
- import{w as e}from"../../packem_shared/disk-storage-DqnnFQAQ.js";import{default as t}from"../../packem_shared/DiskStorageWithChecksum-MZkDEyts.js";import{y as f}from"../../packem_shared/local-meta-storage-BELb1YwO.js";export{e as DiskStorage,t as DiskStorageWithChecksum,f as LocalMetaStorage};
1
+ import{D as e}from"../../packem_shared/disk-storage-DEOi12bM.js";import{default as t}from"../../packem_shared/DiskStorageWithChecksum-CyhRDK5M.js";import{L as f}from"../../packem_shared/local-meta-storage-Ca6WrUmN.js";export{e as DiskStorage,t as DiskStorageWithChecksum,f as LocalMetaStorage};
@@ -1,7 +1,97 @@
1
- export { M as MemoryMetaStorage, a as MemoryStorage, type b as MemoryStorageOptions, a as default } from "../../packem_shared/memory-storage.d-BNZvDG1b.js";
2
- import 'node:stream';
3
- import "../../packem_shared/storage.d-DwdJrArF.js";
1
+ import { F as File, u as MetaStorageOptions, M as MetaStorage, i as BaseStorageOptions, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { Readable } from 'node:stream';
4
3
  import 'node:timers';
5
4
  import 'node:crypto';
6
5
  import 'node:http';
7
6
  import 'lru-cache';
7
+ /**
8
+ * Map-backed metadata storage used by {@link MemoryStorage}. Holds a deep-copied
9
+ * snapshot of each `File` so callers can mutate the returned object without leaking
10
+ * back into the backing store.
11
+ */
12
+ declare class MemoryMetaStorage<T extends File = File> extends MetaStorage<T> {
13
+ private readonly store;
14
+ constructor(config?: MetaStorageOptions & {
15
+ store?: Map<string, T>;
16
+ });
17
+ override save(id: string, file: T): Promise<T>;
18
+ override get(id: string): Promise<T>;
19
+ override delete(id: string): Promise<void>;
20
+ override touch(id: string, file: T): Promise<T>;
21
+ /** Reset the in-memory metadata. Test/reset helper. */
22
+ clear(): void;
23
+ }
24
+ /**
25
+ * Public options for {@link MemoryStorage}. The `initial` record lets tests seed the
26
+ * store with a few key→bytes pairs; pass `metaStorage` to share metadata with another
27
+ * `Files` instance (rarely needed — the memory adapter is meant to be ephemeral).
28
+ */
29
+ interface MemoryStorageOptions<T extends File = File> extends BaseStorageOptions<T> {
30
+ /** Pre-populate the store with these key → bytes entries. */
31
+ initial?: Record<string, Buffer | Uint8Array | string>;
32
+ metaStorageConfig?: MetaStorageOptions;
33
+ }
34
+ /**
35
+ * Stored entry in the backing {@link Map}. `bytes` is the raw payload; `meta` is a
36
+ * lightweight per-key metadata snapshot so {@link MemoryStorage.list} and
37
+ * `head` can answer without dragging the file class around.
38
+ */
39
+ interface MemoryEntry {
40
+ bytes: Buffer;
41
+ contentType: string;
42
+ createdAt: string;
43
+ eTag: string;
44
+ metadata: Record<string, unknown>;
45
+ modifiedAt: string;
46
+ }
47
+ /**
48
+ * In-memory storage adapter backed by a {@link Map}.
49
+ *
50
+ * Implements the full {@link BaseStorage} surface without touching disk or any
51
+ * external service — useful for tests, ephemeral environments, and as a
52
+ * reference implementation. `raw` returns the backing map so tests can inspect
53
+ * or reset state directly:
54
+ *
55
+ * ```ts
56
+ * const storage = new MemoryStorage({ initial: { "users/1.json": '{"id":1}' } });
57
+ * storage.raw.clear();
58
+ * ```
59
+ *
60
+ * Metadata is shallow-cloned on both write and read so callers never share a
61
+ * mutable object with the store.
62
+ */
63
+ declare class MemoryStorage<TFile extends File = File> extends BaseStorage<TFile> {
64
+ static override readonly name: string;
65
+ override checksumTypes: string[];
66
+ override readonly supportsRange: boolean;
67
+ meta: MemoryMetaStorage<TFile>;
68
+ private readonly store;
69
+ constructor(config?: MemoryStorageOptions<TFile>);
70
+ override get raw(): Map<string, MemoryEntry>;
71
+ create(fileInit: FileInit, _options?: OperationOptions): Promise<TFile>;
72
+ write(part: FilePart | FileQuery, _options?: OperationOptions): Promise<TFile>;
73
+ get({ id }: FileQuery, _options?: OperationOptions & {
74
+ range?: {
75
+ end?: number;
76
+ start: number;
77
+ };
78
+ }): Promise<FileReturn>;
79
+ override getStream({ id }: FileQuery, _options?: OperationOptions & {
80
+ range?: {
81
+ end?: number;
82
+ start: number;
83
+ };
84
+ }): Promise<{
85
+ headers?: Record<string, string>;
86
+ size?: number;
87
+ stream: Readable;
88
+ }>;
89
+ override exists({ id }: FileQuery): Promise<boolean>;
90
+ delete({ id }: FileQuery): Promise<TFile>;
91
+ copy(source: string, destination: string): Promise<TFile>;
92
+ move(source: string, destination: string): Promise<TFile>;
93
+ override list(): Promise<TFile[]>;
94
+ override getReadUrl(key: string): Promise<string>;
95
+ override getUploadUrl(key: string): Promise<string>;
96
+ }
97
+ export { MemoryMetaStorage, MemoryStorage, type MemoryStorageOptions, MemoryStorage as default };
@@ -1 +1 @@
1
- import{default as o}from"../../packem_shared/MemoryMetaStorage-Ksgh9pe7.js";import{default as t,default as f}from"../../packem_shared/MemoryStorage-ChKyI6OY.js";export{o as MemoryMetaStorage,t as MemoryStorage,f as default};
1
+ import{default as o}from"../../packem_shared/MemoryMetaStorage-DdAIGIVO.js";import{default as t,default as f}from"../../packem_shared/MemoryStorage-CJw7SAlG.js";export{o as MemoryMetaStorage,t as MemoryStorage,f as default};
@@ -1,7 +1,7 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, R as RetryConfig, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, R as RetryConfig, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { getStore } from '@netlify/blobs';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as o}from"../../packem_shared/NetlifyBlobFile-DoFhkzaH.js";import{default as a}from"../../packem_shared/NetlifyBlobMetaStorage-Bv_YCZ0Q.js";import{default as r}from"../../packem_shared/NetlifyBlobStorage-CZsr_0DF.js";export{o as NetlifyBlobFile,a as NetlifyBlobMetaStorage,r as NetlifyBlobStorage};
1
+ import{default as o}from"../../packem_shared/NetlifyBlobFile-Br5HPqlC.js";import{default as a}from"../../packem_shared/NetlifyBlobMetaStorage-DD5mbms5.js";import{default as r}from"../../packem_shared/NetlifyBlobStorage-DVpJgN3v.js";export{o as NetlifyBlobFile,a as NetlifyBlobMetaStorage,r as NetlifyBlobStorage};
@@ -1,7 +1,7 @@
1
- import { O as OneDriveFile, a as OneDriveStorageOptions } from "../../packem_shared/types.d-B1_xZIhu.js";
2
- export type { b as OneDriveClientCredentialsAuth, c as OneDriveOAuthRefreshAuth } from "../../packem_shared/types.d-B1_xZIhu.js";
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
4
- import { L as LocalMetaStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
1
+ import { O as OneDriveFile, a as OneDriveStorageOptions } from "../../packem_shared/types.d-ZrDWKyVi.js";
2
+ export type { b as OneDriveClientCredentialsAuth, c as OneDriveOAuthRefreshAuth } from "../../packem_shared/types.d-ZrDWKyVi.js";
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
+ import { L as LocalMetaStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
5
5
  import { Client } from '@microsoft/microsoft-graph-client';
6
6
  import 'node:stream';
7
7
  import 'node:timers';
@@ -1 +1 @@
1
- import{default as a}from"../../packem_shared/OneDriveFile-CNNJYI43.js";import{default as o}from"../../packem_shared/OneDriveMetaStorage-B0gLF7Io.js";import{default as i}from"../../packem_shared/OneDriveStorage-B8qFgMq1.js";export{a as OneDriveFile,o as OneDriveMetaStorage,i as OneDriveStorage};
1
+ import{default as a}from"../../packem_shared/OneDriveFile-Ccv5bkno.js";import{default as o}from"../../packem_shared/OneDriveMetaStorage-D0GzJ0FC.js";import{default as i}from"../../packem_shared/OneDriveStorage-CTYdWnnf.js";export{a as OneDriveFile,o as OneDriveMetaStorage,i as OneDriveStorage};
@@ -1,6 +1,6 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
2
3
  import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
4
4
  import 'node:timers';
5
5
  import 'node:crypto';
6
6
  import 'node:http';
@@ -1 +1 @@
1
- import{default as t}from"../../packem_shared/PocketBaseFile-DpJpxl3e.js";import{default as r}from"../../packem_shared/PocketBaseMetaStorage-Cm3v8g1-.js";import{default as s}from"../../packem_shared/PocketBaseStorage-D2vMN-oY.js";export{t as PocketBaseFile,r as PocketBaseMetaStorage,s as PocketBaseStorage};
1
+ import{default as t}from"../../packem_shared/PocketBaseFile-Dl8cnbJo.js";import{default as r}from"../../packem_shared/PocketBaseMetaStorage-DgKNhi2j.js";import{default as s}from"../../packem_shared/PocketBaseStorage-CHQVk7lR.js";export{t as PocketBaseFile,r as PocketBaseMetaStorage,s as PocketBaseStorage};
@@ -1,7 +1,7 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { ConnectOptions } from 'ssh2-sftp-client';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as a}from"../../packem_shared/SftpFile-ClWDYnt2.js";import{default as o}from"../../packem_shared/SftpMetaStorage-CJsyeQ63.js";import{default as p}from"../../packem_shared/SftpStorage-BKeAzuej.js";export{a as SftpFile,o as SftpMetaStorage,p as SftpStorage};
1
+ import{default as a}from"../../packem_shared/SftpFile-H8EmE3S_.js";import{default as o}from"../../packem_shared/SftpMetaStorage-BI-G6aeO.js";import{default as p}from"../../packem_shared/SftpStorage-D08to8f6.js";export{a as SftpFile,o as SftpMetaStorage,p as SftpStorage};
@@ -1,6 +1,6 @@
1
- import { O as OneDriveFile, a as OneDriveStorageOptions } from "../../packem_shared/types.d-B1_xZIhu.js";
2
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
3
- import { L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
1
+ import { O as OneDriveFile, a as OneDriveStorageOptions } from "../../packem_shared/types.d-ZrDWKyVi.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
3
+ import { L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
4
4
  import { Readable } from 'node:stream';
5
5
  import { Client } from '@microsoft/microsoft-graph-client';
6
6
  import 'node:timers';
@@ -1 +1 @@
1
- import{default as t}from"../../packem_shared/SharePointFile-Blz9FS4h.js";import{default as r}from"../../packem_shared/SharePointMetaStorage-CJsyeQ63.js";import{default as S}from"../../packem_shared/SharePointStorage-Dtnt5-wk.js";export{t as SharePointFile,r as SharePointMetaStorage,S as SharePointStorage};
1
+ import{default as t}from"../../packem_shared/SharePointFile-BWfd3Rel.js";import{default as r}from"../../packem_shared/SharePointMetaStorage-BI-G6aeO.js";import{default as S}from"../../packem_shared/SharePointStorage-PtgEmyCY.js";export{t as SharePointFile,r as SharePointMetaStorage,S as SharePointStorage};
@@ -1,7 +1,7 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { StorageClient } from '@supabase/storage-js';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as t}from"../../packem_shared/SupabaseFile-Bo5B-vM1.js";import{default as r}from"../../packem_shared/SupabaseMetaStorage-B0gLF7Io.js";import{default as p}from"../../packem_shared/SupabaseStorage-CmGQjqXf.js";export{t as SupabaseFile,r as SupabaseMetaStorage,p as SupabaseStorage};
1
+ import{default as t}from"../../packem_shared/SupabaseFile-CI0eFAyo.js";import{default as r}from"../../packem_shared/SupabaseMetaStorage-CRw0xTXk.js";import{default as p}from"../../packem_shared/SupabaseStorage-DJe4YZJD.js";export{t as SupabaseFile,r as SupabaseMetaStorage,p as SupabaseStorage};
@@ -1,7 +1,7 @@
1
1
  import { UTApi } from 'uploadthing/server';
2
- import { L as LocalMetaStorageOptions, l as BaseStorageOptions, F as File, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
+ import { L as LocalMetaStorageOptions, i as BaseStorageOptions, F as File, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
3
4
  import 'node:stream';
4
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as e}from"../../packem_shared/UploadThingFile-BTFMpcIA.js";import{default as r}from"../../packem_shared/UploadThingMetaStorage-Bv_YCZ0Q.js";import{default as d}from"../../packem_shared/UploadThingStorage-DZ4zNvDH.js";export{e as UploadThingFile,r as UploadThingMetaStorage,d as UploadThingStorage};
1
+ import{default as e}from"../../packem_shared/UploadThingFile-DP4kNmpS.js";import{default as r}from"../../packem_shared/UploadThingMetaStorage-CYWznm7F.js";import{default as d}from"../../packem_shared/UploadThingStorage-S3iYzJ8Z.js";export{e as UploadThingFile,r as UploadThingMetaStorage,d as UploadThingStorage};
@@ -1,7 +1,7 @@
1
- import { L as LocalMetaStorageOptions, l as BaseStorageOptions, F as File, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-DwdJrArF.js";
2
- import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-cRTXr1kb.js";
1
+ import { L as LocalMetaStorageOptions, i as BaseStorageOptions, F as File, M as MetaStorage, d as FileInit, O as OperationOptions, e as FilePart, f as FileQuery, g as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-CYWYyCUo.js";
4
3
  import { copy, del, list, put } from '@vercel/blob';
4
+ import 'node:stream';
5
5
  import 'node:timers';
6
6
  import 'node:crypto';
7
7
  import 'node:http';
@@ -1 +1 @@
1
- import{default as r}from"../../packem_shared/VercelBlobFile-CVQwKlZk.js";import{default as a}from"../../packem_shared/VercelBlobMetaStorage-CJsyeQ63.js";import{default as f}from"../../packem_shared/VercelBlobStorage-DDNEofR3.js";export{r as VercelBlobFile,a as VercelBlobMetaStorage,f as VercelBlobStorage};
1
+ import{default as r}from"../../packem_shared/VercelBlobFile-Censq2sD.js";import{default as a}from"../../packem_shared/VercelBlobMetaStorage-DgKNhi2j.js";import{default as f}from"../../packem_shared/VercelBlobStorage-D1eytZwU.js";export{r as VercelBlobFile,a as VercelBlobMetaStorage,f as VercelBlobStorage};
@@ -1,5 +1,5 @@
1
- import { F as File, g as FileReturn, B as BaseStorage } from "../packem_shared/storage.d-DwdJrArF.js";
2
- import { A as AudioTransformerConfig, b as AudioTransformResult, c as AudioResampleOptions, d as AudioChannelMixOptions, e as AudioTransformOptions, f as AudioTransformationStep, B as BaseTransformer } from "../packem_shared/types.d-BEUv414z.js";
1
+ import { F as File, g as FileReturn, B as BaseStorage } from "../packem_shared/storage.d-C9EdfTf1.js";
2
+ import { A as AudioTransformerConfig, b as AudioTransformResult, c as AudioResampleOptions, d as AudioChannelMixOptions, e as AudioTransformOptions, f as AudioTransformationStep, B as BaseTransformer } from "../packem_shared/types.d-D1TIRqKW.js";
3
3
  import 'node:stream';
4
4
  import 'node:timers';
5
5
  import 'node:crypto';
@@ -1 +1 @@
1
- import{Input as c,BufferSource as u,ALL_FORMATS as m,Output as d,BufferTarget as h,Conversion as l,Mp3OutputFormat as f,WavOutputFormat as w,OggOutputFormat as g,FlacOutputFormat as y,AdtsOutputFormat as b}from"mediabunny";import O from"../packem_shared/BaseTransformer-Buw5lX_3.js";import{isValidMediaType as F,getFormatFromContentType as T}from"../packem_shared/getFormatFromContentType-DCTTPQHm.js";class R extends O{constructor(t,e={}){const a=e.logger||t.logger,r={cacheTtl:3600,defaultBitrate:128e3,defaultCodec:"aac",maxAudioSize:100*1024*1024,maxCacheSize:100,supportedFormats:["mp3","wav","ogg","aac","flac","m4a","wma","aiff"],...e};super(t,r,a)}async resample(t,e){return this.transform(t,[{options:e,type:"resample"}])}async mixChannels(t,e){return this.transform(t,[{options:e,type:"channels"}])}async convertFormat(t,e,a={}){return this.transform(t,[{options:{...a,format:e},type:"format"}])}async transcode(t,e,a={}){return this.transform(t,[{options:{...a,codec:e},type:"codec"}])}async transform(t,e){const a={id:t},r=this.generateCacheKey(t,e);if(this.cache){const s=await Promise.resolve(this.cache.get(r));if(s)return this.logger?.debug("Returning cached transformed audio for %s",t),s}const o=await this.storage.get(a);await this.validateAudio(o);const i=await this.applyTransformations(o.content,e),n=await this.createTransformResult(i,o);return this.cache&&this.cache.set(r,n),n}async applyTransformations(t,e){const a=new c({formats:m,source:new u(t)}),r=this.determineOutputFormat(e),o=new d({format:r,target:new h}),i=this.stepsToAudioOptions(e),n=await l.init({audio:i,input:a,output:o});if(!n.isValid){const s=n.discardedTracks.map(p=>p.reason).join(", ");throw new Error(`Audio transformation failed: ${s}`)}return await n.execute(),Buffer.from(o.target.buffer)}stepsToAudioOptions(t){const e={};for(const a of t)switch(a.type){case"bitrate":{const r=a.options;r.bitrate&&(e.bitrate=r.bitrate);break}case"channels":{const r=a.options;r.numberOfChannels&&(e.numberOfChannels=r.numberOfChannels);break}case"codec":{const r=a.options;r.codec&&(e.codec=r.codec),r.bitrate&&(e.bitrate=r.bitrate);break}case"resample":{const r=a.options;r.sampleRate&&(e.sampleRate=r.sampleRate);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 f}formatStringToOutputFormat(t){switch(t.toLowerCase()){case"aac":return new b;case"flac":return new y;case"mp3":return new f;case"ogg":return new g;case"wav":return new w;default:return new f}}async validateAudio(t){const e=typeof t.size=="string"?Number.parseInt(t.size,10):t.size;if(this.config?.maxAudioSize&&e>this.config.maxAudioSize)throw new Error(`Audio size ${e} exceeds maximum allowed size ${this.config.maxAudioSize}`);if(!F(t.contentType,"audio"))throw new Error(`File is not audio: ${t.contentType}`);const a=T(t.contentType);if(this.config?.supportedFormats&&a&&!this.config.supportedFormats.includes(a))throw new Error(`Unsupported audio format: ${a}`);try{if(!await new c({formats:m,source:new u(t.content)}).getPrimaryAudioTrack())throw new Error("No audio track found")}catch(r){throw new Error(`Invalid audio file: ${r}`)}}async createTransformResult(t,e){const a=new c({formats:m,source:new u(t)}),r=await a.getPrimaryAudioTrack(),o=await a.computeDuration();return{bitrate:this.config.defaultBitrate,buffer:t,duration:o,format:"mp3",numberOfChannels:r?.numberOfChannels||2,originalFile:e,sampleRate:r?.sampleRate||44100,size:t.length}}generateCacheKey(t,e){const a=e.map(r=>`${r.type}:${JSON.stringify(r.options)}`).join("|");return`${t}:${a}`}}export{R as default};
1
+ import{Input as c,BufferSource as u,ALL_FORMATS as m,Output as d,BufferTarget as h,Conversion as l,Mp3OutputFormat as p,WavOutputFormat as w,OggOutputFormat as g,FlacOutputFormat as y,AdtsOutputFormat as O}from"mediabunny";import T from"../packem_shared/BaseTransformer-ByIAKnn8.js";import{isValidMediaType as F,getFormatFromContentType as b}from"../packem_shared/getFormatFromContentType-BAVdaQ0o.js";class x extends T{constructor(t,e={}){const o=e.logger||t.logger,r={cacheTtl:3600,defaultBitrate:128e3,defaultCodec:"aac",maxAudioSize:100*1024*1024,maxCacheSize:100,supportedFormats:["mp3","wav","ogg","aac","flac","m4a","wma","aiff"],...e};super(t,r,o)}async resample(t,e){return this.transform(t,[{options:e,type:"resample"}])}async mixChannels(t,e){return this.transform(t,[{options:e,type:"channels"}])}async convertFormat(t,e,o={}){return this.transform(t,[{options:{...o,format:e},type:"format"}])}async transcode(t,e,o={}){return this.transform(t,[{options:{...o,codec:e},type:"codec"}])}async transform(t,e){const o={id:t},r=this.generateCacheKey(t,e);if(this.cache){const s=await Promise.resolve(this.cache.get(r));if(s)return this.logger?.debug("Returning cached transformed audio for %s",t),s}const a=await this.storage.get(o);await this.validateAudio(a);const i=await this.applyTransformations(a.content,e),n=await this.createTransformResult(i,a);return this.cache&&this.cache.set(r,n),n}async applyTransformations(t,e){const o=new c({formats:m,source:new u(t)}),r=this.determineOutputFormat(e),a=new d({format:r,target:new h}),i=this.stepsToAudioOptions(e),n=await l.init({audio:i,input:o,output:a});if(!n.isValid){const s=n.discardedTracks.map(f=>f.reason).join(", ");throw new Error(`Audio transformation failed: ${s}`)}return await n.execute(),Buffer.from(a.target.buffer)}stepsToAudioOptions(t){const e={};for(const o of t)switch(o.type){case"bitrate":{const r=o.options;r.bitrate&&(e.bitrate=r.bitrate);break}case"channels":{const r=o.options;r.numberOfChannels&&(e.numberOfChannels=r.numberOfChannels);break}case"codec":{const r=o.options;r.codec&&(e.codec=r.codec),r.bitrate&&(e.bitrate=r.bitrate);break}case"resample":{const r=o.options;r.sampleRate&&(e.sampleRate=r.sampleRate);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 p}formatStringToOutputFormat(t){switch(t.toLowerCase()){case"aac":return new O;case"flac":return new y;case"mp3":return new p;case"ogg":return new g;case"wav":return new w;default:return new p}}async validateAudio(t){const e=typeof t.size=="string"?Number.parseInt(t.size,10):t.size;if(this.config?.maxAudioSize&&e>this.config.maxAudioSize)throw new Error(`Audio size ${e} exceeds maximum allowed size ${this.config.maxAudioSize}`);if(!F(t.contentType,"audio"))throw new Error(`File is not audio: ${t.contentType}`);const o=b(t.contentType);if(this.config?.supportedFormats&&o&&!this.config.supportedFormats.includes(o))throw new Error(`Unsupported audio format: ${o}`);try{if(!await new c({formats:m,source:new u(t.content)}).getPrimaryAudioTrack())throw new Error("No audio track found")}catch(r){throw new Error(`Invalid audio file: ${r}`)}}async createTransformResult(t,e){const o=new c({formats:m,source:new u(t)}),r=await o.getPrimaryAudioTrack(),a=await o.computeDuration();return{bitrate:this.config.defaultBitrate,buffer:t,duration:a,format:"mp3",numberOfChannels:r?.numberOfChannels||2,originalFile:e,sampleRate:r?.sampleRate||44100,size:t.length}}generateCacheKey(t,e){const o=e.map(r=>`${r.type}:${JSON.stringify(r.options)}`).join("|");return`${t}:${o}`}}export{x as default};
@@ -1,6 +1,6 @@
1
1
  import { Readable } from 'node:stream';
2
- import { F as File, g as FileReturn, B as BaseStorage } from "../packem_shared/storage.d-DwdJrArF.js";
3
- import { I as ImageTransformerConfig, T as TransformResult, R as ResizeOptions, C as CropOptions, g as RotateOptions, h as ImageFormat, i as TransformOptions, S as SharpenOptions, j as BlurOptions, k as MedianOptions, l as CLAHEOptions, m as ConvolveOptions, n as ThresholdOptions, o as BooleanOptions, L as LinearOptions, p as RecombineOptions, q as ModulateOptions, r as TintOptions, G as GreyscaleOptions, s as ColourspaceOptions, E as ExtractChannelOptions, J as JoinChannelOptions, t as BandboolOptions, u as AffineOptions, D as DilateOptions, v as ErodeOptions, P as PipelineColourspaceOptions, w as ToColourspaceOptions, x as RemoveAlphaOptions, y as EnsureAlphaOptions, z as TransformationStep, B as BaseTransformer } from "../packem_shared/types.d-BEUv414z.js";
2
+ import { F as File, g as FileReturn, B as BaseStorage } from "../packem_shared/storage.d-C9EdfTf1.js";
3
+ import { I as ImageTransformerConfig, T as TransformResult, R as ResizeOptions, C as CropOptions, g as RotateOptions, h as ImageFormat, i as TransformOptions, S as SharpenOptions, j as BlurOptions, k as MedianOptions, l as CLAHEOptions, m as ConvolveOptions, n as ThresholdOptions, o as BooleanOptions, L as LinearOptions, p as RecombineOptions, q as ModulateOptions, r as TintOptions, G as GreyscaleOptions, s as ColourspaceOptions, E as ExtractChannelOptions, J as JoinChannelOptions, t as BandboolOptions, u as AffineOptions, D as DilateOptions, v as ErodeOptions, P as PipelineColourspaceOptions, w as ToColourspaceOptions, x as RemoveAlphaOptions, y as EnsureAlphaOptions, z as TransformationStep, B as BaseTransformer } from "../packem_shared/types.d-D1TIRqKW.js";
4
4
  import 'node:timers';
5
5
  import 'node:crypto';
6
6
  import 'node:http';
@@ -1 +1 @@
1
- import{Readable as u}from"node:stream";import y from"sharp";import g from"../packem_shared/BaseTransformer-Buw5lX_3.js";import{isValidMediaType as d,getFormatFromContentType as f}from"../packem_shared/getFormatFromContentType-DCTTPQHm.js";class C extends g{constructor(e,a={}){const t=a.logger||e.logger,n={cacheTtl:3600,failOn:"warning",limitInputPixels:268435456,maxCacheSize:100,maxImageSize:50*1024*1024,supportedFormats:["jpeg","png","webp","avif","tiff","gif","svg"],...a};super(e,n,t)}openImage(e){return y(e,{failOn:this.config?.failOn??"warning",limitInputPixels:this.config?.limitInputPixels??268435456})}async resize(e,a){return this.transform(e,[{options:a,type:"resize"}])}async crop(e,a){return this.transform(e,[{options:a,type:"crop"}])}async rotate(e,a){return this.transform(e,[{options:a,type:"rotate"}])}async convertFormat(e,a,t={}){return this.transform(e,[{options:{...t,format:a},type:"format"}])}async sharpen(e,a={}){return this.transform(e,[{options:a,type:"sharpen"}])}async blur(e,a={}){return this.transform(e,[{options:a,type:"blur"}])}async median(e,a={}){return this.transform(e,[{options:a,type:"median"}])}async clahe(e,a={}){return this.transform(e,[{options:a,type:"clahe"}])}async convolve(e,a){return this.transform(e,[{options:a,type:"convolve"}])}async threshold(e,a={}){return this.transform(e,[{options:a,type:"threshold"}])}async boolean(e,a){return this.transform(e,[{options:a,type:"boolean"}])}async linear(e,a){return this.transform(e,[{options:a,type:"linear"}])}async recombine(e,a){return this.transform(e,[{options:a,type:"recombine"}])}async modulate(e,a){return this.transform(e,[{options:a,type:"modulate"}])}async tint(e,a){return this.transform(e,[{options:a,type:"tint"}])}async greyscale(e,a={}){return this.transform(e,[{options:a,type:"greyscale"}])}async colourspace(e,a){return this.transform(e,[{options:a,type:"colourspace"}])}async extractChannel(e,a){return this.transform(e,[{options:a,type:"extractChannel"}])}async joinChannel(e,a){return this.transform(e,[{options:a,type:"joinChannel"}])}async bandbool(e,a){return this.transform(e,[{options:a,type:"bandbool"}])}async autoOrient(e,a={}){return this.transform(e,[{options:a,type:"autoOrient"}])}async flip(e,a={}){return this.transform(e,[{options:a,type:"flip"}])}async flop(e,a={}){return this.transform(e,[{options:a,type:"flop"}])}async flatten(e,a={}){return this.transform(e,[{options:a,type:"flatten"}])}async unflatten(e,a={}){return this.transform(e,[{options:a,type:"unflatten"}])}async gamma(e,a={}){return this.transform(e,[{options:a,type:"gamma"}])}async negate(e,a={}){return this.transform(e,[{options:a,type:"negate"}])}async normalise(e,a={}){return this.transform(e,[{options:a,type:"normalise"}])}async affine(e,a){return this.transform(e,[{options:a,type:"affine"}])}async dilate(e,a={}){return this.transform(e,[{options:a,type:"dilate"}])}async erode(e,a={}){return this.transform(e,[{options:a,type:"erode"}])}async pipelineColourspace(e,a){return this.transform(e,[{options:a,type:"pipelineColourspace"}])}async toColourspace(e,a){return this.transform(e,[{options:a,type:"toColourspace"}])}async removeAlpha(e,a={}){return this.transform(e,[{options:a,type:"removeAlpha"}])}async ensureAlpha(e,a={}){return this.transform(e,[{options:a,type:"ensureAlpha"}])}async transform(e,a){const t={id:e},n=this.generateCacheKey(e,a),o=this.cache?await Promise.resolve(this.cache.get(n)):void 0;if(o)return this.logger?.debug("Returning cached transformed image for %s",e),o;const r=await this.storage.get(t);await this.validateImage(r);const s=await this.applyTransformations(r.content,a),i=await this.createTransformResult(s,r);return this.cache&&this.cache.set(n,i),i}async transformStream(e,a){const t=await this.transform(e,a);return{headers:{"Content-Length":t.buffer.length.toString(),"Content-Type":this.getContentTypeFromResult(t),"X-Image-Height":t.height?.toString(),"X-Image-Width":t.width?.toString()},size:t.buffer.length,stream:u.from(t.buffer)}}async applyTransformations(e,a){let t=this.openImage(e);for(const n of a)switch(n.type){case"affine":{t=this.applyAffine(t,n.options);break}case"autoOrient":{t=t.rotate();break}case"bandbool":{t=this.applyBandbool(t,n.options);break}case"blur":{t=this.applyBlur(t,n.options);break}case"boolean":{t=this.applyBoolean(t,n.options);break}case"clahe":{t=this.applyCLAHE(t,n.options);break}case"colourspace":{t=this.applyColourspace(t,n.options);break}case"convolve":{t=this.applyConvolve(t,n.options);break}case"crop":{t=this.applyCrop(t,n.options);break}case"dilate":{t=this.applyDilate(t,n.options);break}case"ensureAlpha":{t=this.applyEnsureAlpha(t,n.options);break}case"erode":{t=this.applyErode(t,n.options);break}case"extractChannel":{t=this.applyExtractChannel(t,n.options);break}case"flatten":{t=t.flatten();break}case"flip":{t=t.flip();break}case"flop":{t=t.flop();break}case"format":case"quality":{t=this.applyFormatAndQuality(t,n.options);break}case"gamma":{t=t.gamma();break}case"greyscale":{t=this.applyGreyscale(t,n.options);break}case"joinChannel":{t=this.applyJoinChannel(t,n.options);break}case"linear":{t=this.applyLinear(t,n.options);break}case"median":{t=this.applyMedian(t,n.options);break}case"modulate":{t=this.applyModulate(t,n.options);break}case"negate":{t=t.negate();break}case"normalise":case"normalize":{t=t.normalise();break}case"pipelineColourspace":{t=this.applyPipelineColourspace(t,n.options);break}case"recombine":{t=this.applyRecombine(t,n.options);break}case"removeAlpha":{t=this.applyRemoveAlpha(t,n.options);break}case"resize":{t=this.applyResize(t,n.options);break}case"rotate":{t=this.applyRotate(t,n.options);break}case"sharpen":{t=this.applySharpen(t,n.options);break}case"threshold":{t=this.applyThreshold(t,n.options);break}case"tint":{t=this.applyTint(t,n.options);break}case"toColourspace":{t=this.applyToColourspace(t,n.options);break}case"unflatten":{t=t.unflatten();break}default:throw new Error(`Unknown transformation type: ${n.type}`)}return t.toBuffer()}applyResize(e,a){const{background:t,fastShrinkOnLoad:n,fit:o="cover",height:r,kernel:s,position:i,width:l,withoutEnlargement:p,withoutReduction:m,...c}=a;let h={background:t||"transparent",fastShrinkOnLoad:n,fit:o,height:r,kernel:s,position:i,width:l,withoutEnlargement:p,withoutReduction:m};return Object.keys(c).length>0&&(h={...h,...this.getFormatOptions(c)}),e.resize(h)}applyCrop(e,a){const{height:t,left:n,top:o,width:r,...s}=a;let i=e.extract({height:t,left:n,top:o,width:r});return Object.keys(s).length>0&&(i=this.applyFormatAndQuality(i,s)),i}applyRotate(e,a){const{angle:t,background:n,...o}=a;let r=e.rotate(t,{background:n||"transparent"});return Object.keys(o).length>0&&(r=this.applyFormatAndQuality(r,o)),r}applySharpen(e,a){const{sigma:t,...n}=a,o={};t!==void 0&&(o.sigma=t);let r=e.sharpen(o);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyBlur(e,a){const{sigma:t,...n}=a;let o=e.blur(t===void 0?!0:t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyMedian(e,a){const{size:t,...n}=a;let o=e.median(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyCLAHE(e,a){const{height:t,maxSlope:n,width:o,...r}=a;if(o===void 0||t===void 0)throw new Error("CLAHE transformation requires both `width` and `height`.");let s=e.clahe({height:t,maxSlope:n,width:o});return Object.keys(r).length>0&&(s=this.applyFormatAndQuality(s,r)),s}applyConvolve(e,a){const{height:t,kernel:n,offset:o,scale:r,width:s,...i}=a;if(s===void 0||t===void 0||n===void 0)throw new Error("Convolve transformation requires `width`, `height`, and `kernel`.");let l=e.convolve({height:t,kernel:n,offset:o,scale:r,width:s});return Object.keys(i).length>0&&(l=this.applyFormatAndQuality(l,i)),l}applyThreshold(e,a){const{grayscale:t,greyscale:n,threshold:o=128,...r}=a;let s=e.threshold(o,{greyscale:n||t});return Object.keys(r).length>0&&(s=this.applyFormatAndQuality(s,r)),s}applyBoolean(e,a){const{operand:t,operator:n,raw:o,...r}=a;let s=e.boolean(t,n,o);return Object.keys(r).length>0&&(s=this.applyFormatAndQuality(s,r)),s}applyLinear(e,a){const{a:t,b:n,...o}=a;let r=e.linear(t,n);return Object.keys(o).length>0&&(r=this.applyFormatAndQuality(r,o)),r}applyRecombine(e,a){const{matrix:t,...n}=a;let o=e.recomb(t.flat());return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyModulate(e,a){const{brightness:t,hue:n,lightness:o,saturation:r,...s}=a;let i=e.modulate({brightness:t,hue:n,lightness:o,saturation:r});return Object.keys(s).length>0&&(i=this.applyFormatAndQuality(i,s)),i}applyTint(e,a){const{rgb:t,...n}=a;let o=e.tint(Array.isArray(t)?{b:t[2],g:t[1],r:t[0]}:t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyGreyscale(e,a){const{grayscale:t,greyscale:n,...o}=a;let r=e.greyscale(n||t);return Object.keys(o).length>0&&(r=this.applyFormatAndQuality(r,o)),r}applyColourspace(e,a){const{colourspace:t,...n}=a;let o=e.toColourspace(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyExtractChannel(e,a){const{channel:t,...n}=a;let o=e.extractChannel(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyJoinChannel(e,a){const{images:t,...n}=a;let o=e.joinChannel(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyBandbool(e,a){const{operator:t,...n}=a;let o=e.bandbool(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyAffine(e,a){const{background:t,interpolation:n,matrix:o,...r}=a;let s=e.affine(o,{background:t||"transparent",interpolator:n||"bicubic"});return Object.keys(r).length>0&&(s=this.applyFormatAndQuality(s,r)),s}applyDilate(e,a){const{kernelSize:t,...n}=a;let o=t?e.dilate(t):e.dilate();return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyErode(e,a){const{kernelSize:t,...n}=a;let o=t?e.erode(t):e.erode();return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyPipelineColourspace(e,a){const{colourspace:t,...n}=a;let o=e.pipelineColourspace(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyToColourspace(e,a){const{colourspace:t,...n}=a;let o=e.toColourspace(t);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyRemoveAlpha(e,a){const{background:t,...n}=a;let o=e.removeAlpha();return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyEnsureAlpha(e,a){const{alpha:t,...n}=a;let o=e.ensureAlpha();return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyFormatAndQuality(e,a){const t=this.getFormatOptions(a);return a.format?e.toFormat(a.format,t):Object.keys(t).length>0?e.jpeg(t).png(t).webp(t):e}getFormatOptions(e){const{alphaQuality:a,compressionLevel:t,delay:n,effort:o,loop:r,lossless:s,progressive:i,quality:l}=e,p={};return l!==void 0&&(p.quality=l),i!==void 0&&(p.progressive=i),s!==void 0&&(p.lossless=s),t!==void 0&&(p.compressionLevel=t),o!==void 0&&(p.effort=o),a!==void 0&&(p.alphaQuality=a),r!==void 0&&(p.loop=r),n!==void 0&&(p.delay=n),p}async validateImage(e){const a=typeof e.size=="string"?Number.parseInt(e.size,10):e.size;if(this.config?.maxImageSize&&a>this.config.maxImageSize)throw new Error(`Image size ${a} exceeds maximum allowed size ${this.config.maxImageSize}`);if(!d(e.contentType,"image"))throw new Error(`File is not an image: ${e.contentType}`);const t=f(e.contentType);if(this.config?.supportedFormats&&t&&!this.config.supportedFormats.includes(t))throw new Error(`Unsupported image format: ${t}`);try{const n=await this.openImage(e.content).metadata();if(!n.width||!n.height)throw new Error("Invalid image: missing dimensions");const{maxImageHeight:o,maxImageWidth:r}=this.config??{};if(r!==void 0&&n.width>r)throw new Error(`Image width ${n.width}px exceeds maximum ${r}px`);if(o!==void 0&&n.height>o)throw new Error(`Image height ${n.height}px exceeds maximum ${o}px`)}catch(n){throw new Error(`Invalid image file: ${n}`)}}async createTransformResult(e,a){const t=await y(e).metadata();return{buffer:e,format:t.format||"unknown",height:t.height||0,originalFile:a,size:e.length,width:t.width||0}}generateCacheKey(e,a){const t=a.map(n=>`${n.type}:${JSON.stringify(n.options)}`).join("|");return`${e}:${t}`}}export{C as default};
1
+ import{Readable as f}from"node:stream";import y from"sharp";import u from"../packem_shared/BaseTransformer-ByIAKnn8.js";import{isValidMediaType as g,getFormatFromContentType as d}from"../packem_shared/getFormatFromContentType-BAVdaQ0o.js";class A extends u{constructor(e,a={}){const t=a.logger||e.logger,n={cacheTtl:3600,failOn:"warning",limitInputPixels:268435456,maxCacheSize:100,maxImageSize:50*1024*1024,supportedFormats:["jpeg","png","webp","avif","tiff","gif","svg"],...a};super(e,n,t)}openImage(e){return y(e,{failOn:this.config?.failOn??"warning",limitInputPixels:this.config?.limitInputPixels??268435456})}async resize(e,a){return this.transform(e,[{options:a,type:"resize"}])}async crop(e,a){return this.transform(e,[{options:a,type:"crop"}])}async rotate(e,a){return this.transform(e,[{options:a,type:"rotate"}])}async convertFormat(e,a,t={}){return this.transform(e,[{options:{...t,format:a},type:"format"}])}async sharpen(e,a={}){return this.transform(e,[{options:a,type:"sharpen"}])}async blur(e,a={}){return this.transform(e,[{options:a,type:"blur"}])}async median(e,a={}){return this.transform(e,[{options:a,type:"median"}])}async clahe(e,a={}){return this.transform(e,[{options:a,type:"clahe"}])}async convolve(e,a){return this.transform(e,[{options:a,type:"convolve"}])}async threshold(e,a={}){return this.transform(e,[{options:a,type:"threshold"}])}async boolean(e,a){return this.transform(e,[{options:a,type:"boolean"}])}async linear(e,a){return this.transform(e,[{options:a,type:"linear"}])}async recombine(e,a){return this.transform(e,[{options:a,type:"recombine"}])}async modulate(e,a){return this.transform(e,[{options:a,type:"modulate"}])}async tint(e,a){return this.transform(e,[{options:a,type:"tint"}])}async greyscale(e,a={}){return this.transform(e,[{options:a,type:"greyscale"}])}async colourspace(e,a){return this.transform(e,[{options:a,type:"colourspace"}])}async extractChannel(e,a){return this.transform(e,[{options:a,type:"extractChannel"}])}async joinChannel(e,a){return this.transform(e,[{options:a,type:"joinChannel"}])}async bandbool(e,a){return this.transform(e,[{options:a,type:"bandbool"}])}async autoOrient(e,a={}){return this.transform(e,[{options:a,type:"autoOrient"}])}async flip(e,a={}){return this.transform(e,[{options:a,type:"flip"}])}async flop(e,a={}){return this.transform(e,[{options:a,type:"flop"}])}async flatten(e,a={}){return this.transform(e,[{options:a,type:"flatten"}])}async unflatten(e,a={}){return this.transform(e,[{options:a,type:"unflatten"}])}async gamma(e,a={}){return this.transform(e,[{options:a,type:"gamma"}])}async negate(e,a={}){return this.transform(e,[{options:a,type:"negate"}])}async normalise(e,a={}){return this.transform(e,[{options:a,type:"normalise"}])}async affine(e,a){return this.transform(e,[{options:a,type:"affine"}])}async dilate(e,a={}){return this.transform(e,[{options:a,type:"dilate"}])}async erode(e,a={}){return this.transform(e,[{options:a,type:"erode"}])}async pipelineColourspace(e,a){return this.transform(e,[{options:a,type:"pipelineColourspace"}])}async toColourspace(e,a){return this.transform(e,[{options:a,type:"toColourspace"}])}async removeAlpha(e,a={}){return this.transform(e,[{options:a,type:"removeAlpha"}])}async ensureAlpha(e,a={}){return this.transform(e,[{options:a,type:"ensureAlpha"}])}async transform(e,a){const t={id:e},n=this.generateCacheKey(e,a),r=this.cache?await Promise.resolve(this.cache.get(n)):void 0;if(r)return this.logger?.debug("Returning cached transformed image for %s",e),r;const o=await this.storage.get(t);await this.validateImage(o);const s=await this.applyTransformations(o.content,a),i=await this.createTransformResult(s,o);return this.cache&&this.cache.set(n,i),i}async transformStream(e,a){const t=await this.transform(e,a);return{headers:{"Content-Length":t.buffer.length.toString(),"Content-Type":this.getContentTypeFromResult(t),"X-Image-Height":t.height?.toString(),"X-Image-Width":t.width?.toString()},size:t.buffer.length,stream:f.from(t.buffer)}}async applyTransformations(e,a){let t=this.openImage(e);for(const n of a)switch(n.type){case"affine":{t=this.applyAffine(t,n.options);break}case"autoOrient":{t=t.rotate();break}case"bandbool":{t=this.applyBandbool(t,n.options);break}case"blur":{t=this.applyBlur(t,n.options);break}case"boolean":{t=this.applyBoolean(t,n.options);break}case"clahe":{t=this.applyCLAHE(t,n.options);break}case"colourspace":{t=this.applyColourspace(t,n.options);break}case"convolve":{t=this.applyConvolve(t,n.options);break}case"crop":{t=this.applyCrop(t,n.options);break}case"dilate":{t=this.applyDilate(t,n.options);break}case"ensureAlpha":{t=this.applyEnsureAlpha(t,n.options);break}case"erode":{t=this.applyErode(t,n.options);break}case"extractChannel":{t=this.applyExtractChannel(t,n.options);break}case"flatten":{t=t.flatten();break}case"flip":{t=t.flip();break}case"flop":{t=t.flop();break}case"format":case"quality":{t=this.applyFormatAndQuality(t,n.options);break}case"gamma":{t=t.gamma();break}case"greyscale":{t=this.applyGreyscale(t,n.options);break}case"joinChannel":{t=this.applyJoinChannel(t,n.options);break}case"linear":{t=this.applyLinear(t,n.options);break}case"median":{t=this.applyMedian(t,n.options);break}case"modulate":{t=this.applyModulate(t,n.options);break}case"negate":{t=t.negate();break}case"normalise":case"normalize":{t=t.normalise();break}case"pipelineColourspace":{t=this.applyPipelineColourspace(t,n.options);break}case"recombine":{t=this.applyRecombine(t,n.options);break}case"removeAlpha":{t=this.applyRemoveAlpha(t,n.options);break}case"resize":{t=this.applyResize(t,n.options);break}case"rotate":{t=this.applyRotate(t,n.options);break}case"sharpen":{t=this.applySharpen(t,n.options);break}case"threshold":{t=this.applyThreshold(t,n.options);break}case"tint":{t=this.applyTint(t,n.options);break}case"toColourspace":{t=this.applyToColourspace(t,n.options);break}case"unflatten":{t=t.unflatten();break}default:throw new Error(`Unknown transformation type: ${n.type}`)}return t.toBuffer()}applyResize(e,a){const{background:t,fastShrinkOnLoad:n,fit:r="cover",height:o,kernel:s,position:i,width:l,withoutEnlargement:p,withoutReduction:m,...h}=a;let c={background:t||"transparent",fastShrinkOnLoad:n,fit:r,height:o,kernel:s,position:i,width:l,withoutEnlargement:p,withoutReduction:m};return Object.keys(h).length>0&&(c={...c,...this.getFormatOptions(h)}),e.resize(c)}applyCrop(e,a){const{height:t,left:n,top:r,width:o,...s}=a;let i=e.extract({height:t,left:n,top:r,width:o});return Object.keys(s).length>0&&(i=this.applyFormatAndQuality(i,s)),i}applyRotate(e,a){const{angle:t,background:n,...r}=a;let o=e.rotate(t,{background:n||"transparent"});return Object.keys(r).length>0&&(o=this.applyFormatAndQuality(o,r)),o}applySharpen(e,a){const{sigma:t,...n}=a,r={};t!==void 0&&(r.sigma=t);let o=e.sharpen(r);return Object.keys(n).length>0&&(o=this.applyFormatAndQuality(o,n)),o}applyBlur(e,a){const{sigma:t,...n}=a;let r=e.blur(t===void 0?!0:t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyMedian(e,a){const{size:t,...n}=a;let r=e.median(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyCLAHE(e,a){const{height:t,maxSlope:n,width:r,...o}=a;if(r===void 0||t===void 0)throw new Error("CLAHE transformation requires both `width` and `height`.");let s=e.clahe({height:t,maxSlope:n,width:r});return Object.keys(o).length>0&&(s=this.applyFormatAndQuality(s,o)),s}applyConvolve(e,a){const{height:t,kernel:n,offset:r,scale:o,width:s,...i}=a;if(s===void 0||t===void 0||n===void 0)throw new Error("Convolve transformation requires `width`, `height`, and `kernel`.");let l=e.convolve({height:t,kernel:n,offset:r,scale:o,width:s});return Object.keys(i).length>0&&(l=this.applyFormatAndQuality(l,i)),l}applyThreshold(e,a){const{grayscale:t,greyscale:n,threshold:r=128,...o}=a;let s=e.threshold(r,{greyscale:n||t});return Object.keys(o).length>0&&(s=this.applyFormatAndQuality(s,o)),s}applyBoolean(e,a){const{operand:t,operator:n,raw:r,...o}=a;let s=e.boolean(t,n,r);return Object.keys(o).length>0&&(s=this.applyFormatAndQuality(s,o)),s}applyLinear(e,a){const{a:t,b:n,...r}=a;let o=e.linear(t,n);return Object.keys(r).length>0&&(o=this.applyFormatAndQuality(o,r)),o}applyRecombine(e,a){const{matrix:t,...n}=a;let r=e.recomb(t.flat());return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyModulate(e,a){const{brightness:t,hue:n,lightness:r,saturation:o,...s}=a;let i=e.modulate({brightness:t,hue:n,lightness:r,saturation:o});return Object.keys(s).length>0&&(i=this.applyFormatAndQuality(i,s)),i}applyTint(e,a){const{rgb:t,...n}=a;let r=e.tint(Array.isArray(t)?{b:t[2],g:t[1],r:t[0]}:t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyGreyscale(e,a){const{grayscale:t,greyscale:n,...r}=a;let o=e.greyscale(n||t);return Object.keys(r).length>0&&(o=this.applyFormatAndQuality(o,r)),o}applyColourspace(e,a){const{colourspace:t,...n}=a;let r=e.toColourspace(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyExtractChannel(e,a){const{channel:t,...n}=a;let r=e.extractChannel(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyJoinChannel(e,a){const{images:t,...n}=a;let r=e.joinChannel(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyBandbool(e,a){const{operator:t,...n}=a;let r=e.bandbool(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyAffine(e,a){const{background:t,interpolation:n,matrix:r,...o}=a;let s=e.affine(r,{background:t||"transparent",interpolator:n||"bicubic"});return Object.keys(o).length>0&&(s=this.applyFormatAndQuality(s,o)),s}applyDilate(e,a){const{kernelSize:t,...n}=a;let r=t?e.dilate(t):e.dilate();return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyErode(e,a){const{kernelSize:t,...n}=a;let r=t?e.erode(t):e.erode();return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyPipelineColourspace(e,a){const{colourspace:t,...n}=a;let r=e.pipelineColourspace(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyToColourspace(e,a){const{colourspace:t,...n}=a;let r=e.toColourspace(t);return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyRemoveAlpha(e,a){const{background:t,...n}=a;let r=e.removeAlpha();return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyEnsureAlpha(e,a){const{alpha:t,...n}=a;let r=e.ensureAlpha();return Object.keys(n).length>0&&(r=this.applyFormatAndQuality(r,n)),r}applyFormatAndQuality(e,a){const t=this.getFormatOptions(a);return a.format?e.toFormat(a.format,t):Object.keys(t).length>0?e.jpeg(t).png(t).webp(t):e}getFormatOptions(e){const{alphaQuality:a,compressionLevel:t,delay:n,effort:r,loop:o,lossless:s,progressive:i,quality:l}=e,p={};return l!==void 0&&(p.quality=l),i!==void 0&&(p.progressive=i),s!==void 0&&(p.lossless=s),t!==void 0&&(p.compressionLevel=t),r!==void 0&&(p.effort=r),a!==void 0&&(p.alphaQuality=a),o!==void 0&&(p.loop=o),n!==void 0&&(p.delay=n),p}async validateImage(e){const a=typeof e.size=="string"?Number.parseInt(e.size,10):e.size;if(this.config?.maxImageSize&&a>this.config.maxImageSize)throw new Error(`Image size ${a} exceeds maximum allowed size ${this.config.maxImageSize}`);if(!g(e.contentType,"image"))throw new Error(`File is not an image: ${e.contentType}`);const t=d(e.contentType);if(this.config?.supportedFormats&&t&&!this.config.supportedFormats.includes(t))throw new Error(`Unsupported image format: ${t}`);try{const n=await this.openImage(e.content).metadata();if(!n.width||!n.height)throw new Error("Invalid image: missing dimensions");const{maxImageHeight:r,maxImageWidth:o}=this.config??{};if(o!==void 0&&n.width>o)throw new Error(`Image width ${n.width}px exceeds maximum ${o}px`);if(r!==void 0&&n.height>r)throw new Error(`Image height ${n.height}px exceeds maximum ${r}px`)}catch(n){throw new Error(`Invalid image file: ${n}`)}}async createTransformResult(e,a){const t=await y(e).metadata();return{buffer:e,format:t.format||"unknown",height:t.height||0,originalFile:a,size:e.length,width:t.width||0}}generateCacheKey(e,a){const t=a.map(n=>`${n.type}:${JSON.stringify(n.options)}`).join("|");return`${e}:${t}`}}export{A as default};