@visulima/storage 1.0.0-alpha.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +578 -0
  2. package/LICENSE.md +237 -568
  3. package/README.md +82 -466
  4. package/dist/adapter/nuxt/module.d.ts +41 -34
  5. package/dist/adapter/nuxt/module.js +1 -93
  6. package/dist/adapter/nuxt/package.json +0 -6
  7. package/dist/ai/ai-sdk/index.d.ts +113 -0
  8. package/dist/ai/ai-sdk/index.js +1 -0
  9. package/dist/ai/claude/index.d.ts +177 -0
  10. package/dist/ai/claude/index.js +1 -0
  11. package/dist/ai/openai/index.d.ts +205 -0
  12. package/dist/ai/openai/index.js +1 -0
  13. package/dist/ai/tanstack/index.d.ts +115 -0
  14. package/dist/ai/tanstack/index.js +1 -0
  15. package/dist/handler/http/fetch/index.d.ts +303 -4
  16. package/dist/handler/http/fetch/index.js +1 -4
  17. package/dist/handler/http/hono/index.d.ts +73 -64
  18. package/dist/handler/http/hono/index.js +1 -65
  19. package/dist/handler/http/nextjs/index.d.ts +66 -58
  20. package/dist/handler/http/nextjs/index.js +1 -37
  21. package/dist/handler/http/node/index.d.ts +368 -4
  22. package/dist/handler/http/node/index.js +1 -8
  23. package/dist/handler/http/solid-start/index.d.ts +66 -57
  24. package/dist/handler/http/solid-start/index.js +1 -44
  25. package/dist/index.d.ts +106 -17
  26. package/dist/index.js +1 -13
  27. package/dist/openapi/index.d.ts +24 -5
  28. package/dist/openapi/index.js +1 -5
  29. package/dist/packem_shared/AbstractBaseStorage-Ba7cLu-t.js +1 -0
  30. package/dist/packem_shared/AwsLightFile-CpZrubaV.js +1 -0
  31. package/dist/packem_shared/AwsLightMetaStorage-DPqJ9LTr.js +1 -0
  32. package/dist/packem_shared/AwsLightStorage-DTBVxHXO.js +1 -0
  33. package/dist/packem_shared/AzureFile-DFSaVe25.js +1 -0
  34. package/dist/packem_shared/AzureSMetaStorage-ByzM6Aix.js +1 -0
  35. package/dist/packem_shared/AzureStorage-BFsD4qbF.js +1 -0
  36. package/dist/packem_shared/BaseTransformer-Buw5lX_3.js +1 -0
  37. package/dist/packem_shared/BoxFile-CseIoPW1.js +1 -0
  38. package/dist/packem_shared/BoxMetaStorage-DFwhEI9C.js +1 -0
  39. package/dist/packem_shared/BoxStorage-B_t-OVzf.js +1 -0
  40. package/dist/packem_shared/BunS3File-BcYmsz1n.js +1 -0
  41. package/dist/packem_shared/BunS3MetaStorage-DFwhEI9C.js +1 -0
  42. package/dist/packem_shared/BunS3Storage-CB_pZWlV.js +1 -0
  43. package/dist/packem_shared/BunnyFile-BgEOlcYI.js +1 -0
  44. package/dist/packem_shared/BunnyMetaStorage-DFwhEI9C.js +1 -0
  45. package/dist/packem_shared/BunnyStorage-CILSK4_Z.js +1 -0
  46. package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +1 -0
  47. package/dist/packem_shared/CloudinaryMetaStorage-D_vNzewL.js +1 -0
  48. package/dist/packem_shared/CloudinaryStorage-DiCbdAi_.js +1 -0
  49. package/dist/packem_shared/DiskStorage-Kp5t3vnF.js +1 -0
  50. package/dist/packem_shared/DiskStorageWithChecksum-Bh6w-Iu8.js +1 -0
  51. package/dist/packem_shared/DropboxFile-BFb7eOzy.js +1 -0
  52. package/dist/packem_shared/DropboxMetaStorage-DFwhEI9C.js +1 -0
  53. package/dist/packem_shared/DropboxStorage-H8bd8hEz.js +1 -0
  54. package/dist/packem_shared/ERRORS-BIBxE2oR.js +1 -0
  55. package/dist/packem_shared/File-W8aOo15X.js +1 -0
  56. package/dist/packem_shared/Files-BA3mpDwz.js +1 -0
  57. package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +1 -0
  58. package/dist/packem_shared/FirebaseMetaStorage-D_vNzewL.js +1 -0
  59. package/dist/packem_shared/FirebaseStorage-Dgk4XyMr.js +2 -0
  60. package/dist/packem_shared/FtpFile-ClWDYnt2.js +1 -0
  61. package/dist/packem_shared/FtpMetaStorage-DFwhEI9C.js +1 -0
  62. package/dist/packem_shared/FtpStorage-g_DjiR-C.js +1 -0
  63. package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
  64. package/dist/packem_shared/GCSFile-Cero7qZN.js +1 -0
  65. package/dist/packem_shared/GCSMetaStorage-3fLTlRd4.js +1 -0
  66. package/dist/packem_shared/GCStorage-DUfwVFd3.js +1 -0
  67. package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +1 -0
  68. package/dist/packem_shared/GoogleDriveMetaStorage-DqkgoE46.js +1 -0
  69. package/dist/packem_shared/GoogleDriveStorage-D0-5egHE.js +1 -0
  70. package/dist/packem_shared/LocalMetaStorage-Bp5mVc76.js +1 -0
  71. package/dist/packem_shared/MediaTransformer-D2kUsklW.js +1 -0
  72. package/dist/packem_shared/MemoryMetaStorage-Ksgh9pe7.js +1 -0
  73. package/dist/packem_shared/MemoryStorage-DzSTdlAq.js +1 -0
  74. package/dist/packem_shared/MetaStorage-DPEUyWgN.js +1 -0
  75. package/dist/packem_shared/Metadata-B7CcBueg.js +1 -0
  76. package/dist/packem_shared/Multipart-Btj2mo9r.js +1 -0
  77. package/dist/packem_shared/Multipart-C4GpuHMU.js +1 -0
  78. package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +1 -0
  79. package/dist/packem_shared/NetlifyBlobMetaStorage-D_vNzewL.js +1 -0
  80. package/dist/packem_shared/NetlifyBlobStorage-DZdCmOVW.js +1 -0
  81. package/dist/packem_shared/NoOpMetrics-BLo6u4NY.js +1 -0
  82. package/dist/packem_shared/OneDriveFile-CNNJYI43.js +1 -0
  83. package/dist/packem_shared/OneDriveMetaStorage-DqkgoE46.js +1 -0
  84. package/dist/packem_shared/OneDriveStorage-CvJetV7_.js +1 -0
  85. package/dist/packem_shared/OpenTelemetryMetrics-DJDQsNKp.js +1 -0
  86. package/dist/packem_shared/PocketBaseFile-DpJpxl3e.js +1 -0
  87. package/dist/packem_shared/PocketBaseMetaStorage-CpvDRnSu.js +1 -0
  88. package/dist/packem_shared/PocketBaseStorage-BPil-koe.js +1 -0
  89. package/dist/packem_shared/Rest-BehVaxbl.js +1 -0
  90. package/dist/packem_shared/Rest-ymPCZkKR.js +1 -0
  91. package/dist/packem_shared/S3File-CpZrubaV.js +1 -0
  92. package/dist/packem_shared/S3MetaStorage-CMonflzp.js +1 -0
  93. package/dist/packem_shared/S3Storage-wslqssvr.js +1 -0
  94. package/dist/packem_shared/SftpFile-ClWDYnt2.js +1 -0
  95. package/dist/packem_shared/SftpMetaStorage-DFwhEI9C.js +1 -0
  96. package/dist/packem_shared/SftpStorage-BVbMtS2b.js +1 -0
  97. package/dist/packem_shared/SharePointFile-Blz9FS4h.js +1 -0
  98. package/dist/packem_shared/SharePointMetaStorage-DFwhEI9C.js +1 -0
  99. package/dist/packem_shared/SharePointStorage-DWjvR5oZ.js +1 -0
  100. package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +1 -0
  101. package/dist/packem_shared/SupabaseMetaStorage-DqkgoE46.js +1 -0
  102. package/dist/packem_shared/SupabaseStorage-BiKmYKb6.js +1 -0
  103. package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +1 -0
  104. package/dist/packem_shared/Tus-BgbON_wQ.js +1 -0
  105. package/dist/packem_shared/Tus-v6jzkaIO.js +1 -0
  106. package/dist/packem_shared/UploadControl-DZJhI9Wh.js +1 -0
  107. package/dist/packem_shared/UploadThingFile-BTFMpcIA.js +1 -0
  108. package/dist/packem_shared/UploadThingMetaStorage-D_vNzewL.js +1 -0
  109. package/dist/packem_shared/UploadThingStorage-jrEnANC5.js +1 -0
  110. package/dist/packem_shared/ValidationError-3B06DFyE.js +1 -0
  111. package/dist/packem_shared/VercelBlobFile-CVQwKlZk.js +1 -0
  112. package/dist/packem_shared/VercelBlobMetaStorage-DFwhEI9C.js +1 -0
  113. package/dist/packem_shared/VercelBlobStorage-Y-cDgH30.js +1 -0
  114. package/dist/packem_shared/_commonjsHelpers-CWAkuNXM.js +1 -0
  115. package/dist/packem_shared/agentsCopyFile-Dl5iffdH.js +1 -0
  116. package/dist/packem_shared/akamai-DthkaFul.js +1 -0
  117. package/dist/packem_shared/alibaba-BEi25O1g.js +1 -0
  118. package/dist/packem_shared/approval-fVHwBp7u.js +1 -0
  119. package/dist/packem_shared/approval.d-CMAYH9GF.d.ts +75 -0
  120. package/dist/packem_shared/aws-light-meta-storage-DGrn72VJ.js +4 -0
  121. package/dist/packem_shared/azure-meta-storage-ClbEsfI4.js +1 -0
  122. package/dist/packem_shared/backblaze-m1N5NZ9q.js +1 -0
  123. package/dist/packem_shared/base-handler-core-EeV8gZck.js +1 -0
  124. package/dist/packem_shared/base-handler-fetch-CHzsgb7C.js +1 -0
  125. package/dist/packem_shared/base-handler-node-BjpW8pGi.js +1 -0
  126. package/dist/packem_shared/cache-Cw3QjoVN.js +1 -0
  127. package/dist/packem_shared/claudeCopyFile-BX9O4ORk.js +1 -0
  128. package/dist/packem_shared/cloudflare-CdUTErlo.js +1 -0
  129. package/dist/packem_shared/copyFile-49FtxXcm.js +1 -0
  130. package/dist/packem_shared/copyFile-BUPezT_c.js +1 -0
  131. package/dist/packem_shared/createResponsesFileTools-6Tvt2PNr.js +1 -0
  132. package/dist/packem_shared/createRetryWrapper-CxgiV_hH.js +1 -0
  133. package/dist/packem_shared/detect-file-type-BA7UBLKA.js +1 -0
  134. package/dist/packem_shared/digitalOcean-B2uB6pgz.js +1 -0
  135. package/dist/packem_shared/disk-storage-DIn-VnCh.js +1 -0
  136. package/dist/packem_shared/disk-storage-with-checksum.d-B-VGEsfl.d.ts +156 -0
  137. package/dist/packem_shared/executors-BDzMjc4y.js +1 -0
  138. package/dist/packem_shared/executors.d-BZP2rWo3.d.ts +69 -0
  139. package/dist/packem_shared/exoscale-BDa1Gjth.js +1 -0
  140. package/dist/packem_shared/filebase-CsFYJIwB.js +1 -0
  141. package/dist/packem_shared/files.d-CH0iLBNC.d.ts +655 -0
  142. package/dist/packem_shared/gcs-meta-storage-Dy37wCjI.js +1 -0
  143. package/dist/packem_shared/get-file-status-y3wTtDQs.js +1 -0
  144. package/dist/packem_shared/getFormatFromContentType-DCTTPQHm.js +1 -0
  145. package/dist/packem_shared/has-content-50BsqrWw.js +1 -0
  146. package/dist/packem_shared/headers-BAiAKekR.js +26 -0
  147. package/dist/packem_shared/hetzner-BGGFiRGD.js +1 -0
  148. package/dist/packem_shared/ibmCos-j-3TfJ5p.js +1 -0
  149. package/dist/packem_shared/idriveE2-C6pQ5pQ0.js +1 -0
  150. package/dist/packem_shared/index-nZWCQrSe.js +5 -0
  151. package/dist/packem_shared/internal-D_cZIFwI.js +1 -0
  152. package/dist/packem_shared/is-expired-CBEk6XBi.js +1 -0
  153. package/dist/packem_shared/local-meta-storage-C2T92TYb.js +11 -0
  154. package/dist/packem_shared/local-meta-storage.d-D9PBfkn6.d.ts +21 -0
  155. package/dist/packem_shared/media-transformer.d-Quf4ai47.d.ts +331 -0
  156. package/dist/packem_shared/memory-storage.d-4EU1cMt1.d.ts +101 -0
  157. package/dist/packem_shared/minio-NKquuBfS.js +1 -0
  158. package/dist/packem_shared/multipart-base-BOzY19lb.js +1 -0
  159. package/dist/packem_shared/oauth-refresh-EdGzlcOZ.js +1 -0
  160. package/dist/packem_shared/oracleCloud-DslqNpn6.js +1 -0
  161. package/dist/packem_shared/ovhCloud-CMHE6uLV.js +1 -0
  162. package/dist/packem_shared/part-match-D-9dGX42.js +1 -0
  163. package/dist/packem_shared/path-0oTTdkvl-BVg7lYf5.js +1 -0
  164. package/dist/packem_shared/posix-dirname-CfpH5wZi.js +1 -0
  165. package/dist/packem_shared/response-builder-CbSA8qPa.js +1 -0
  166. package/dist/packem_shared/rest-base-CynUg0mH.js +1 -0
  167. package/dist/packem_shared/restOpenApiSpec-Csv513qf.js +1 -0
  168. package/dist/packem_shared/s3-base-storage-DXZYN24h.js +1 -0
  169. package/dist/packem_shared/s3-base-storage.d-BQgP5B-t.d.ts +287 -0
  170. package/dist/packem_shared/scaleway-U1In3v70.js +1 -0
  171. package/dist/packem_shared/sharedErrorSchemaObject-YN65aAKj.js +1 -0
  172. package/dist/packem_shared/storage-Cyy73Y6r.js +1 -0
  173. package/dist/packem_shared/storage.d-CEM1upWM.d.ts +1176 -0
  174. package/dist/packem_shared/storj-Cb59q9kF.js +1 -0
  175. package/dist/packem_shared/sync-DhR3536K.js +1 -0
  176. package/dist/packem_shared/tencent-Q1y2GENc.js +1 -0
  177. package/dist/packem_shared/tigris-BELKoyyp.js +1 -0
  178. package/dist/packem_shared/transformOpenApiSpec-CIEAgpBD.js +1 -0
  179. package/dist/packem_shared/tus-base.d-DLzKE54M.d.ts +106 -0
  180. package/dist/packem_shared/tusOpenApiSpec-D96B03t5.js +1 -0
  181. package/dist/packem_shared/types.d-Bon9GVVe.d.ts +104 -0
  182. package/dist/packem_shared/types.d-CggTCgXr.d.ts +49 -0
  183. package/dist/packem_shared/types.d-CrUWY4On.d.ts +720 -0
  184. package/dist/packem_shared/update-size-DuNuLyxj.js +1 -0
  185. package/dist/packem_shared/vultr-B491cQ4e.js +1 -0
  186. package/dist/packem_shared/waitForStorage-ByQmG4xF.js +1 -0
  187. package/dist/packem_shared/wasabi-DFrwIoab.js +1 -0
  188. package/dist/packem_shared/xhrOpenApiSpec-DQR4h6M8.js +1 -0
  189. package/dist/packem_shared/yandex-CwzHuEKP.js +1 -0
  190. package/dist/storage/aws/clients/index.d.ts +612 -6
  191. package/dist/storage/aws/clients/index.js +1 -6
  192. package/dist/storage/aws/index.d.ts +332 -4
  193. package/dist/storage/aws/index.js +1 -3
  194. package/dist/storage/aws-light/index.d.ts +259 -4
  195. package/dist/storage/aws-light/index.js +1 -3
  196. package/dist/storage/azure/index.d.ts +236 -4
  197. package/dist/storage/azure/index.js +1 -3
  198. package/dist/storage/box/index.d.ts +189 -0
  199. package/dist/storage/box/index.js +1 -0
  200. package/dist/storage/bun-s3/index.d.ts +200 -0
  201. package/dist/storage/bun-s3/index.js +1 -0
  202. package/dist/storage/bunny/index.d.ts +119 -0
  203. package/dist/storage/bunny/index.js +1 -0
  204. package/dist/storage/cloudinary/index.d.ts +121 -0
  205. package/dist/storage/cloudinary/index.js +1 -0
  206. package/dist/storage/dropbox/index.d.ts +132 -0
  207. package/dist/storage/dropbox/index.js +1 -0
  208. package/dist/storage/firebase/index.d.ts +192 -0
  209. package/dist/storage/firebase/index.js +1 -0
  210. package/dist/storage/ftp/index.d.ts +91 -0
  211. package/dist/storage/ftp/index.js +1 -0
  212. package/dist/storage/gcs/index.d.ts +195 -5
  213. package/dist/storage/gcs/index.js +1 -4
  214. package/dist/storage/google-drive/index.d.ts +148 -0
  215. package/dist/storage/google-drive/index.js +1 -0
  216. package/dist/storage/local/index.d.ts +7 -4
  217. package/dist/storage/local/index.js +1 -3
  218. package/dist/storage/memory/index.d.ts +6 -0
  219. package/dist/storage/memory/index.js +1 -0
  220. package/dist/storage/netlify-blob/index.d.ts +147 -4
  221. package/dist/storage/netlify-blob/index.js +1 -3
  222. package/dist/storage/onedrive/index.d.ts +103 -0
  223. package/dist/storage/onedrive/index.js +1 -0
  224. package/dist/storage/pocketbase/index.d.ts +172 -0
  225. package/dist/storage/pocketbase/index.js +1 -0
  226. package/dist/storage/sftp/index.d.ts +92 -0
  227. package/dist/storage/sftp/index.js +1 -0
  228. package/dist/storage/sharepoint/index.d.ts +180 -0
  229. package/dist/storage/sharepoint/index.js +1 -0
  230. package/dist/storage/supabase/index.d.ts +115 -0
  231. package/dist/storage/supabase/index.js +1 -0
  232. package/dist/storage/uploadthing/index.d.ts +95 -0
  233. package/dist/storage/uploadthing/index.js +1 -0
  234. package/dist/storage/vercel-blob/index.d.ts +189 -4
  235. package/dist/storage/vercel-blob/index.js +1 -3
  236. package/dist/transformer/audio-transformer.d.ts +127 -125
  237. package/dist/transformer/audio-transformer.js +1 -278
  238. package/dist/transformer/image-transformer.d.ts +573 -568
  239. package/dist/transformer/image-transformer.js +1 -1100
  240. package/dist/transformer/index.d.ts +62 -5
  241. package/dist/transformer/index.js +1 -4
  242. package/dist/transformer/video-transformer.d.ts +144 -142
  243. package/dist/transformer/video-transformer.js +1 -310
  244. package/package.json +202 -50
  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-BlltBst6.js +0 -12
  279. package/dist/packem_shared/DiskStorageWithChecksum-BJTmMklc.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-BYhwecZl.js +0 -7
  285. package/dist/packem_shared/GCStorage-BmnoK7Rz.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-5Xpy7WhY.js +0 -163
  291. package/dist/packem_shared/Multipart-C-iU9LXj.js +0 -128
  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-DO7OslCs.js +0 -267
  298. package/dist/packem_shared/Rest-DTaszQ6n.js +0 -228
  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-BfguFdM1.js +0 -434
  303. package/dist/packem_shared/Tus-BQItPVAC.js +0 -200
  304. package/dist/packem_shared/Tus-BibjweWH.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-B85MJLTf.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-DLEVHemv.js +0 -303
  313. package/dist/packem_shared/base-handler-fetch-A7V0N6AJ.js +0 -291
  314. package/dist/packem_shared/base-handler-node-Dx7ce3sU.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-Bh2wy3YW.js +0 -810
  320. package/dist/packem_shared/gcs-meta-storage-DqNjM7DP.js +0 -158
  321. package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
  322. package/dist/packem_shared/headers-C9DasoT1.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-BY0rhkw5.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-Bt9Np3M8.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,205 @@
1
+ import { T as TOOL_SCHEMAS, F as FileToolName, A as ApprovalConfig, c as FileReadToolName } from "../../packem_shared/approval.d-CMAYH9GF.js";
2
+ export type { d as FileWriteToolName } from "../../packem_shared/approval.d-CMAYH9GF.js";
3
+ import { UnknownContext, FunctionTool } from '@openai/agents';
4
+ import { F as Files } from "../../packem_shared/files.d-CH0iLBNC.js";
5
+ import 'node:stream';
6
+ import 'node:crypto';
7
+ import 'node:http';
8
+ import 'lru-cache';
9
+ import { e as executors } from "../../packem_shared/executors.d-BZP2rWo3.js";
10
+ import 'zod';
11
+ import "../../packem_shared/storage.d-CEM1upWM.js";
12
+ /**
13
+ * Per-tool overrides for `createResponsesFileTools`. `name`, `parameters`, and
14
+ * `type` are intentionally not overridable — the contract that drives tool
15
+ * behavior should not be patched at this layer.
16
+ */
17
+ interface ResponsesToolOverrides {
18
+ description?: string;
19
+ strict?: boolean;
20
+ }
21
+ /**
22
+ * Per-tool overrides for `createAgentsFileTools`. `name`, `parameters`,
23
+ * `execute`, and `strict` are intentionally not overridable — the contract
24
+ * that drives tool behavior should not be patched at this layer.
25
+ */
26
+ interface AgentsToolOverrides {
27
+ description?: string;
28
+ needsApproval?: boolean;
29
+ }
30
+ type ListFilesOutput = Awaited<ReturnType<typeof executors.listFiles>>;
31
+ type GetFileMetadataOutput = Awaited<ReturnType<typeof executors.getFileMetadata>>;
32
+ type DownloadFileOutput = Awaited<ReturnType<typeof executors.downloadFile>>;
33
+ type GetFileUrlOutput = Awaited<ReturnType<typeof executors.getFileUrl>>;
34
+ type UploadFileOutput = Awaited<ReturnType<typeof executors.uploadFile>>;
35
+ type DeleteFileOutput = Awaited<ReturnType<typeof executors.deleteFile>>;
36
+ type CopyFileOutput = Awaited<ReturnType<typeof executors.copyFile>>;
37
+ type SignUploadUrlOutput = Awaited<ReturnType<typeof executors.signUploadUrl>>;
38
+ type ListFilesParameters = typeof TOOL_SCHEMAS.listFiles.input;
39
+ type GetFileMetadataParameters = typeof TOOL_SCHEMAS.getFileMetadata.input;
40
+ type DownloadFileParameters = typeof TOOL_SCHEMAS.downloadFile.input;
41
+ type GetFileUrlParameters = typeof TOOL_SCHEMAS.getFileUrl.input;
42
+ type UploadFileParameters = typeof TOOL_SCHEMAS.uploadFile.input;
43
+ type DeleteFileParameters = typeof TOOL_SCHEMAS.deleteFile.input;
44
+ type CopyFileParameters = typeof TOOL_SCHEMAS.copyFile.input;
45
+ type SignUploadUrlParameters = typeof TOOL_SCHEMAS.signUploadUrl.input;
46
+ declare const agentsListFiles: (files: Files) => FunctionTool<UnknownContext, ListFilesParameters, ListFilesOutput>;
47
+ declare const agentsGetFileMetadata: (files: Files) => FunctionTool<UnknownContext, GetFileMetadataParameters, GetFileMetadataOutput>;
48
+ declare const agentsDownloadFile: (files: Files) => FunctionTool<UnknownContext, DownloadFileParameters, DownloadFileOutput>;
49
+ declare const agentsGetFileUrl: (files: Files) => FunctionTool<UnknownContext, GetFileUrlParameters, GetFileUrlOutput>;
50
+ declare const agentsUploadFile: (files: Files, {
51
+ needsApproval
52
+ }?: {
53
+ needsApproval?: boolean;
54
+ }) => FunctionTool<UnknownContext, UploadFileParameters, UploadFileOutput>;
55
+ declare const agentsDeleteFile: (files: Files, {
56
+ needsApproval
57
+ }?: {
58
+ needsApproval?: boolean;
59
+ }) => FunctionTool<UnknownContext, DeleteFileParameters, DeleteFileOutput>;
60
+ declare const agentsCopyFile: (files: Files, {
61
+ needsApproval
62
+ }?: {
63
+ needsApproval?: boolean;
64
+ }) => FunctionTool<UnknownContext, CopyFileParameters, CopyFileOutput>;
65
+ declare const agentsSignUploadUrl: (files: Files, {
66
+ needsApproval
67
+ }?: {
68
+ needsApproval?: boolean;
69
+ }) => FunctionTool<UnknownContext, SignUploadUrlParameters, SignUploadUrlOutput>;
70
+ interface AgentsFileTools {
71
+ copyFile: ReturnType<typeof agentsCopyFile>;
72
+ deleteFile: ReturnType<typeof agentsDeleteFile>;
73
+ downloadFile: ReturnType<typeof agentsDownloadFile>;
74
+ getFileMetadata: ReturnType<typeof agentsGetFileMetadata>;
75
+ getFileUrl: ReturnType<typeof agentsGetFileUrl>;
76
+ listFiles: ReturnType<typeof agentsListFiles>;
77
+ signUploadUrl: ReturnType<typeof agentsSignUploadUrl>;
78
+ uploadFile: ReturnType<typeof agentsUploadFile>;
79
+ }
80
+ type ReadOnlyAgentsFileTools = Pick<AgentsFileTools, FileReadToolName>;
81
+ interface AgentsFileToolsOptions {
82
+ files: Files;
83
+ overrides?: Partial<Record<FileToolName, AgentsToolOverrides>>;
84
+ readOnly?: boolean;
85
+ requireApproval?: ApprovalConfig;
86
+ }
87
+ /**
88
+ * Create a set of storage tools shaped for the OpenAI Agents SDK (`@openai/agents`).
89
+ *
90
+ * Returns a record keyed by tool name — spread `Object.values()` into
91
+ * `new Agent({ tools })`. Write tools require approval by default.
92
+ * @example
93
+ * ```ts
94
+ * import { Agent, run } from "@openai/agents";
95
+ * import { Files } from "@visulima/storage";
96
+ * import { S3Storage } from "@visulima/storage/provider/aws";
97
+ * import { createAgentsFileTools } from "@visulima/storage/ai/openai";
98
+ *
99
+ * const files = new Files({ adapter: new S3Storage({ bucket: "uploads" }) });
100
+ * const tools = createAgentsFileTools({ files });
101
+ *
102
+ * const agent = new Agent({
103
+ * instructions: "Help the user manage their files.",
104
+ * name: "Files agent",
105
+ * tools: Object.values(tools),
106
+ * });
107
+ *
108
+ * const result = await run(agent, "List my files.");
109
+ * ```
110
+ */
111
+ declare function createAgentsFileTools(options: AgentsFileToolsOptions & {
112
+ readOnly: true;
113
+ }): ReadOnlyAgentsFileTools;
114
+ declare function createAgentsFileTools(options: AgentsFileToolsOptions & {
115
+ readOnly?: false | undefined;
116
+ }): AgentsFileTools;
117
+ declare function createAgentsFileTools(options: AgentsFileToolsOptions): AgentsFileTools | ReadOnlyAgentsFileTools;
118
+ /**
119
+ * A function-tool definition shaped for OpenAI's Responses API. Pass an
120
+ * array of these to `openai.responses.create({ tools })`.
121
+ */
122
+ interface ResponsesFunctionTool {
123
+ description: string;
124
+ name: string;
125
+ parameters: Record<string, unknown>;
126
+ strict: boolean;
127
+ type: "function";
128
+ }
129
+ /**
130
+ * A function call emitted by the Responses API in `response.output[]`.
131
+ */
132
+ interface FunctionCallItem {
133
+ arguments: string;
134
+ call_id: string;
135
+ name: string;
136
+ type: "function_call";
137
+ }
138
+ /**
139
+ * A function-call output item to append to the next `responses.create`
140
+ * input alongside the original `function_call` item.
141
+ */
142
+ interface FunctionCallOutputItem {
143
+ call_id: string;
144
+ output: string;
145
+ type: "function_call_output";
146
+ }
147
+ interface ResponsesFileTools {
148
+ /**
149
+ * Function tool definitions. Pass directly to `openai.responses.create({ tools })`.
150
+ */
151
+ definitions: ResponsesFunctionTool[];
152
+ /**
153
+ * Execute a `function_call` item from the model's `response.output[]`.
154
+ * Returns a `function_call_output` item ready to push into the next turn's input.
155
+ *
156
+ * Approval is **not** enforced. Check {@link ResponsesFileTools.needsApproval}
157
+ * first if you want a human-in-the-loop gate.
158
+ */
159
+ execute: (call: FunctionCallItem) => Promise<FunctionCallOutputItem>;
160
+ /**
161
+ * Returns whether the named tool is approval-gated under this config.
162
+ * Read tools always return `false`. Unknown names return `false`.
163
+ */
164
+ needsApproval: (name: string) => boolean;
165
+ }
166
+ interface ResponsesFileToolsOptions {
167
+ files: Files;
168
+ overrides?: Partial<Record<FileToolName, ResponsesToolOverrides>>;
169
+ readOnly?: boolean;
170
+ requireApproval?: ApprovalConfig;
171
+ }
172
+ /**
173
+ * Create a set of storage tools shaped for OpenAI's Responses API (`openai.responses.create`).
174
+ * @example
175
+ * ```ts
176
+ * import OpenAI from "openai";
177
+ * import { Files } from "@visulima/storage";
178
+ * import { S3Storage } from "@visulima/storage/provider/aws";
179
+ * import { createResponsesFileTools } from "@visulima/storage/ai/openai";
180
+ *
181
+ * const client = new OpenAI();
182
+ * const files = new Files({ adapter: new S3Storage({ bucket: "uploads" }) });
183
+ * const ft = createResponsesFileTools({ files });
184
+ *
185
+ * const input: any[] = [{ role: "user", content: "List my files." }];
186
+ * while (true) {
187
+ * const res = await client.responses.create({ model: "gpt-4.1", input, tools: ft.definitions });
188
+ * const calls = res.output.filter((o) => o.type === "function_call");
189
+ * if (calls.length === 0) break;
190
+ * for (const call of calls) {
191
+ * if (ft.needsApproval(call.name)) {
192
+ * // surface approval UX, then continue or break
193
+ * }
194
+ * input.push(call, await ft.execute(call));
195
+ * }
196
+ * }
197
+ * ```
198
+ */
199
+ declare const createResponsesFileTools: ({
200
+ files,
201
+ overrides,
202
+ readOnly,
203
+ requireApproval
204
+ }: ResponsesFileToolsOptions) => ResponsesFileTools;
205
+ export { type AgentsFileTools, type AgentsFileToolsOptions, type AgentsToolOverrides, type ApprovalConfig, type FileReadToolName, type FileToolName, type FunctionCallItem, type FunctionCallOutputItem, type ReadOnlyAgentsFileTools, type ResponsesFileTools, type ResponsesFileToolsOptions, type ResponsesFunctionTool, type ResponsesToolOverrides, agentsCopyFile, agentsDeleteFile, agentsDownloadFile, agentsGetFileMetadata, agentsGetFileUrl, agentsListFiles, agentsSignUploadUrl, agentsUploadFile, createAgentsFileTools, createResponsesFileTools };
@@ -0,0 +1 @@
1
+ import{agentsCopyFile as l,agentsDeleteFile as a,agentsDownloadFile as s,agentsGetFileMetadata as o,agentsGetFileUrl as n,agentsListFiles as i,agentsSignUploadUrl as g,agentsUploadFile as F,createAgentsFileTools as r}from"../../packem_shared/agentsCopyFile-Dl5iffdH.js";import{createResponsesFileTools as d}from"../../packem_shared/createResponsesFileTools-6Tvt2PNr.js";export{l as agentsCopyFile,a as agentsDeleteFile,s as agentsDownloadFile,o as agentsGetFileMetadata,n as agentsGetFileUrl,i as agentsListFiles,g as agentsSignUploadUrl,F as agentsUploadFile,r as createAgentsFileTools,d as createResponsesFileTools};
@@ -0,0 +1,115 @@
1
+ import { F as Files } from "../../packem_shared/files.d-CH0iLBNC.js";
2
+ import 'node:stream';
3
+ import 'node:crypto';
4
+ import 'node:http';
5
+ import 'lru-cache';
6
+ import { T as TOOL_SCHEMAS, c as FileReadToolName, F as FileToolName, A as ApprovalConfig } from "../../packem_shared/approval.d-CMAYH9GF.js";
7
+ export type { d as FileWriteToolName } from "../../packem_shared/approval.d-CMAYH9GF.js";
8
+ import { ServerTool } from '@tanstack/ai';
9
+ import "../../packem_shared/storage.d-CEM1upWM.js";
10
+ import 'zod';
11
+ /**
12
+ * Common options accepted by every write-tool factory.
13
+ */
14
+ interface ToolOptions {
15
+ needsApproval?: boolean;
16
+ }
17
+ /**
18
+ * Per-tool overrides for customizing TanStack AI `ServerTool` properties
19
+ * without changing the underlying implementation. Core properties
20
+ * (`execute`, `inputSchema`, `outputSchema`, `__toolSide`) are intentionally
21
+ * excluded — those drive the tool's behavior and contract.
22
+ */
23
+ type ToolOverrides = Partial<Pick<ServerTool, "description" | "lazy" | "metadata" | "needsApproval">>;
24
+ type ListFilesParameters = typeof TOOL_SCHEMAS.listFiles.input;
25
+ type GetFileMetadataParameters = typeof TOOL_SCHEMAS.getFileMetadata.input;
26
+ type DownloadFileParameters = typeof TOOL_SCHEMAS.downloadFile.input;
27
+ type GetFileUrlParameters = typeof TOOL_SCHEMAS.getFileUrl.input;
28
+ type UploadFileParameters = typeof TOOL_SCHEMAS.uploadFile.input;
29
+ type DeleteFileParameters = typeof TOOL_SCHEMAS.deleteFile.input;
30
+ type CopyFileParameters = typeof TOOL_SCHEMAS.copyFile.input;
31
+ type SignUploadUrlParameters = typeof TOOL_SCHEMAS.signUploadUrl.input;
32
+ declare const listFiles: (files: Files) => ServerTool<ListFilesParameters, never, "listFiles">;
33
+ declare const getFileMetadata: (files: Files) => ServerTool<GetFileMetadataParameters, never, "getFileMetadata">;
34
+ declare const downloadFile: (files: Files) => ServerTool<DownloadFileParameters, never, "downloadFile">;
35
+ declare const getFileUrl: (files: Files) => ServerTool<GetFileUrlParameters, never, "getFileUrl">;
36
+ declare const uploadFile: (files: Files, {
37
+ needsApproval
38
+ }?: ToolOptions) => ServerTool<UploadFileParameters, never, "uploadFile">;
39
+ declare const deleteFile: (files: Files, {
40
+ needsApproval
41
+ }?: ToolOptions) => ServerTool<DeleteFileParameters, never, "deleteFile">;
42
+ declare const copyFile: (files: Files, {
43
+ needsApproval
44
+ }?: ToolOptions) => ServerTool<CopyFileParameters, never, "copyFile">;
45
+ declare const signUploadUrl: (files: Files, {
46
+ needsApproval
47
+ }?: ToolOptions) => ServerTool<SignUploadUrlParameters, never, "signUploadUrl">;
48
+ interface TanstackFileToolsOptions {
49
+ /**
50
+ * The configured `Files` instance the tools will operate against.
51
+ * Each tool delegates to the methods on this instance.
52
+ */
53
+ files: Files;
54
+ /**
55
+ * Per-tool overrides for customizing tool behavior (description,
56
+ * needsApproval, metadata) without changing the underlying implementation.
57
+ * `execute` and `inputSchema` cannot be overridden.
58
+ */
59
+ overrides?: Partial<Record<FileToolName, ToolOverrides>>;
60
+ /**
61
+ * When `true`, write tools (`uploadFile`, `deleteFile`, `copyFile`,
62
+ * `signUploadUrl`) are omitted entirely. The model cannot mutate the
63
+ * bucket regardless of approval configuration.
64
+ */
65
+ readOnly?: boolean;
66
+ /**
67
+ * Approval gating for write tools. Defaults to `true` (all writes
68
+ * require approval). See {@link ApprovalConfig}.
69
+ */
70
+ requireApproval?: ApprovalConfig;
71
+ }
72
+ interface TanstackFileTools {
73
+ copyFile: ReturnType<typeof copyFile>;
74
+ deleteFile: ReturnType<typeof deleteFile>;
75
+ downloadFile: ReturnType<typeof downloadFile>;
76
+ getFileMetadata: ReturnType<typeof getFileMetadata>;
77
+ getFileUrl: ReturnType<typeof getFileUrl>;
78
+ listFiles: ReturnType<typeof listFiles>;
79
+ signUploadUrl: ReturnType<typeof signUploadUrl>;
80
+ uploadFile: ReturnType<typeof uploadFile>;
81
+ }
82
+ type ReadOnlyTanstackFileTools = Pick<TanstackFileTools, FileReadToolName>;
83
+ /**
84
+ * Create a set of visulima/storage tools for TanStack AI.
85
+ *
86
+ * Each entry is a `ServerTool` built via `toolDefinition(...).server(...)`,
87
+ * ready to be passed to `chat({ tools: [...] })` or registered with a
88
+ * `ToolRegistry`. Write operations require user approval by default;
89
+ * control globally or per-tool via `requireApproval`, or strip writes
90
+ * entirely with `readOnly: true`.
91
+ * @example
92
+ * ```ts
93
+ * import { Files } from "@visulima/storage";
94
+ * import { S3Storage } from "@visulima/storage/provider/aws";
95
+ * import { createTanstackFileTools } from "@visulima/storage/ai/tanstack";
96
+ * import { chat } from "@tanstack/ai";
97
+ *
98
+ * const files = new Files({ adapter: new S3Storage({ bucket: "uploads" }) });
99
+ * const tools = createTanstackFileTools({ files });
100
+ *
101
+ * const stream = chat({
102
+ * adapter,
103
+ * messages,
104
+ * tools: Object.values(tools),
105
+ * });
106
+ * ```
107
+ */
108
+ declare function createTanstackFileTools(options: TanstackFileToolsOptions & {
109
+ readOnly: true;
110
+ }): ReadOnlyTanstackFileTools;
111
+ declare function createTanstackFileTools(options: TanstackFileToolsOptions & {
112
+ readOnly?: false | undefined;
113
+ }): TanstackFileTools;
114
+ declare function createTanstackFileTools(options: TanstackFileToolsOptions): ReadOnlyTanstackFileTools | TanstackFileTools;
115
+ export { type ApprovalConfig, type FileReadToolName, type FileToolName, ReadOnlyTanstackFileTools, TanstackFileTools, TanstackFileToolsOptions, type ToolOptions, type ToolOverrides, copyFile, createTanstackFileTools, deleteFile, downloadFile, getFileMetadata, getFileUrl, listFiles, signUploadUrl, uploadFile };
@@ -0,0 +1 @@
1
+ import{r as p}from"../../packem_shared/approval-fVHwBp7u.js";import{W as d}from"../../packem_shared/executors-BDzMjc4y.js";import{uploadFile as F,signUploadUrl as c,listFiles as f,getFileUrl as g,getFileMetadata as U,downloadFile as m,deleteFile as u,copyFile as O}from"../../packem_shared/copyFile-BUPezT_c.js";function j({files:e,overrides:t,readOnly:s=!1,requireApproval:n=!0}){const o=l=>({needsApproval:p(l,n)}),i={copyFile:O(e,o("copyFile")),deleteFile:u(e,o("deleteFile")),downloadFile:m(e),getFileMetadata:U(e),getFileUrl:g(e),listFiles:f(e),signUploadUrl:c(e,o("signUploadUrl")),uploadFile:F(e,o("uploadFile"))};if(t){for(const[l,r]of Object.entries(t))if(l in i&&r){const a=l;Object.assign(i,{[a]:{...i[a],...r}})}}return s?Object.fromEntries(Object.entries(i).filter(([l])=>!d.has(l))):i}export{O as copyFile,j as createTanstackFileTools,u as deleteFile,m as downloadFile,U as getFileMetadata,g as getFileUrl,f as listFiles,c as signUploadUrl,F as uploadFile};
@@ -1,4 +1,303 @@
1
- export { default as Multipart } from "../../multipart/multipart-fetch.d.ts";
2
- export { default as Rest } from "../../rest/rest-fetch.d.ts";
3
- export { Tus, TUS_RESUMABLE, TUS_VERSION } from "../../tus/tus-fetch.d.ts";
4
- export type { AsyncHandler, BaseHandler, Handlers, MethodHandler, RequestEvent, UploadErrorEvent, UploadEvent, UploadOptions } from "../../types.d.ts";
1
+ import { U as UploadFile, m as UploadResponse } from "../../../packem_shared/storage.d-CEM1upWM.js";
2
+ import 'node:stream';
3
+ import { H as Handlers, R as ResponseFile, a as ResponseList, U as UploadOptions } from "../../../packem_shared/types.d-CggTCgXr.js";
4
+ export type { A as AsyncHandler, B as BaseHandler, M as MethodHandler, b as RequestEvent, c as UploadErrorEvent, d as UploadEvent } from "../../../packem_shared/types.d-CggTCgXr.js";
5
+ import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-DLzKE54M.js";
6
+ export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-DLzKE54M.js";
7
+ import 'node:crypto';
8
+ import 'node:http';
9
+ import 'lru-cache';
10
+ import 'node:events';
11
+ import '@visulima/pagination';
12
+ import "../../../packem_shared/media-transformer.d-Quf4ai47.js";
13
+ import "../../../packem_shared/types.d-CrUWY4On.js";
14
+ /**
15
+ * Base handler for Web API Fetch platform (Request/Response).
16
+ * Extends BaseHandlerCore with Fetch-specific request/response handling.
17
+ * @template TFile The file type used by this handler.
18
+ */
19
+ declare abstract class BaseHandlerFetch<TFile extends UploadFile> extends BaseHandlerCore<TFile> {
20
+ /**
21
+ * Limiting enabled HTTP method handler.
22
+ */
23
+ static readonly methods: Handlers[];
24
+ /**
25
+ * Map of registered HTTP method handlers.
26
+ */
27
+ protected registeredHandlers: Map<string, (request: Request) => Promise<ResponseFile<TFile> | ResponseList<TFile>>>;
28
+ constructor(options: UploadOptions<TFile>);
29
+ /**
30
+ * Gets the registered handlers map.
31
+ * @returns Map of registered handlers.
32
+ */
33
+ get handlers(): Map<string, (request: Request) => Promise<ResponseFile<TFile> | ResponseList<TFile>>>;
34
+ /**
35
+ * Handles Web API Fetch requests (for Hono, Cloudflare Workers, etc.).
36
+ * @param request Web API Request object.
37
+ * @returns Promise resolving to Web API Response.
38
+ */
39
+ fetch(request: Request): Promise<globalThis.Response>;
40
+ /**
41
+ * Compose and register HTTP method handlers.
42
+ * Subclasses should override this to register their specific handlers.
43
+ */
44
+ protected abstract compose(): void;
45
+ /**
46
+ * Handle the response from handlers for fetch requests and convert to Web API Response.
47
+ * @param request Web API Request object
48
+ * @param file Response file or list from handler
49
+ * @returns Promise resolving to Web API Response object
50
+ */
51
+ protected handleFetchResponse(request: Request, file: ResponseFile<TFile> | ResponseList<TFile>): Promise<globalThis.Response>;
52
+ /**
53
+ * Convert headers to Web API Headers format by flattening arrays and converting to strings.
54
+ * @param headers Headers object with potentially array values
55
+ * @returns Headers object with all values as strings
56
+ */
57
+ protected convertHeaders(headers: Record<string, number | string | string[]>): Record<string, string>;
58
+ /**
59
+ * Create Web API Response from UploadResponse object.
60
+ * @param uploadResponse Upload response containing body, headers, and status code
61
+ * @returns Web API Response object
62
+ */
63
+ protected createResponse(uploadResponse: UploadResponse): globalThis.Response;
64
+ /**
65
+ * Create error Response from Error object with appropriate status code and message.
66
+ * @param error Error object to convert to HTTP error response
67
+ * @returns Web API Response object with error details
68
+ */
69
+ protected createErrorResponse(error: Error): Promise<globalThis.Response>;
70
+ /**
71
+ * Build file URL from request and file data.
72
+ * @param request Web API Request object
73
+ * @param file File object containing ID and content type
74
+ * @returns Constructed file URL with extension based on content type
75
+ */
76
+ protected buildFileUrl(request: Request, file: TFile): string;
77
+ /**
78
+ * Negotiates content type based on Accept header and supported formats.
79
+ * @param request Web API Request object containing Accept header.
80
+ * @param supportedTypes Array of supported MIME types to match against.
81
+ * @returns Best matching content type or undefined if no match found.
82
+ */
83
+ negotiateContentType(request: Request, supportedTypes: string[]): string | undefined;
84
+ }
85
+ /**
86
+ * Multipart/form-data upload handler (Web API Fetch version).
87
+ * @example
88
+ * ```ts
89
+ * const multipart = new MultipartFetch({
90
+ * storage,
91
+ * maxFileSize: 100 * 1024 * 1024, // 100MB
92
+ * });
93
+ *
94
+ * // Use with Hono, Cloudflare Workers, etc.
95
+ * app.all('/files/*', async (c) => {
96
+ * return multipart.fetch(c.req.raw);
97
+ * });
98
+ * ```
99
+ */
100
+ declare class Multipart<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
101
+ /**
102
+ * Limiting enabled http method handler
103
+ */
104
+ static override readonly methods: Handlers[];
105
+ private readonly multipartBase;
106
+ /**
107
+ * Maximum file size allowed for multipart uploads
108
+ */
109
+ private maxFileSize;
110
+ /**
111
+ * Maximum header size allowed for multipart parser
112
+ */
113
+ private maxHeaderSize;
114
+ constructor(options: UploadOptions<TFile>);
115
+ /**
116
+ * Handles multipart/form-data POST requests for file uploads.
117
+ * @param request Web API Request containing multipart data.
118
+ * @returns Promise resolving to ResponseFile with upload result.
119
+ */
120
+ post(request: Request): Promise<ResponseFile<TFile>>;
121
+ /**
122
+ * Delete an uploaded file.
123
+ * @param request Web API Request with file ID
124
+ * @returns Promise resolving to ResponseFile with deletion result
125
+ */
126
+ delete(request: Request): Promise<ResponseFile<TFile>>;
127
+ /**
128
+ * Handle OPTIONS requests with CORS headers.
129
+ * @param _request Web API Request (unused)
130
+ * @returns Promise resolving to ResponseFile with CORS headers
131
+ */
132
+ options(_request: Request): Promise<ResponseFile<TFile>>;
133
+ /**
134
+ * Retrieves a file or list of files based on the request path.
135
+ * Delegates to BaseHandlerFetch.fetch() method.
136
+ * @param _request Web API Request
137
+ * @returns Promise resolving to Web API Response
138
+ */
139
+ get(_request: Request): Promise<ResponseFile<TFile>>;
140
+ /**
141
+ * Compose and register HTTP method handlers.
142
+ */
143
+ protected compose(): void;
144
+ }
145
+ /**
146
+ * REST API handler for direct binary file uploads (Web API Fetch version).
147
+ *
148
+ * This handler provides a clean REST interface for file operations using Web API Request/Response:
149
+ * - POST: Create a new file with raw binary data or initialize chunked upload
150
+ * - PUT: Create or update a file (requires ID in URL)
151
+ * - PATCH: Upload chunks for chunked uploads (requires ID in URL)
152
+ * - GET: Retrieve a file or list files
153
+ * - DELETE: Delete a file (single) or multiple files (via ?ids=id1,id2 or JSON body)
154
+ * - HEAD: Get file metadata and upload progress
155
+ * - OPTIONS: CORS preflight
156
+ * @example
157
+ * ```ts
158
+ * const rest = new RestFetch({
159
+ * storage,
160
+ * });
161
+ *
162
+ * // Use with Hono, Cloudflare Workers, etc.
163
+ * app.all('/files/*', async (c) => {
164
+ * return rest.fetch(c.req.raw);
165
+ * });
166
+ * ```
167
+ */
168
+ declare class RestFetch<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
169
+ /**
170
+ * Limiting enabled http method handler
171
+ */
172
+ static override readonly methods: Handlers[];
173
+ private readonly restBase;
174
+ constructor(options: UploadOptions<TFile>);
175
+ /**
176
+ * Compose and register HTTP method handlers.
177
+ */
178
+ protected compose(): void;
179
+ /**
180
+ * Creates a new file via POST request with raw binary data.
181
+ * Supports both full file uploads and chunked upload initialization.
182
+ * @param request Web API Request with file data.
183
+ * @returns Promise resolving to ResponseFile with upload result.
184
+ */
185
+ post(request: Request): Promise<ResponseFile<TFile>>;
186
+ /**
187
+ * Create or update a file via PUT request.
188
+ * Requires file ID in the URL path.
189
+ * @param request Web API Request with file ID and data
190
+ * @returns Promise resolving to ResponseFile with upload result
191
+ */
192
+ put(request: Request): Promise<ResponseFile<TFile>>;
193
+ /**
194
+ * Delete an uploaded file or multiple files.
195
+ * Supports single file (ID in URL) or batch delete (via ?ids=id1,id2 or JSON body).
196
+ * @param request Web API Request with file ID(s)
197
+ * @returns Promise resolving to ResponseFile (single) or ResponseList (batch) with deletion result
198
+ */
199
+ delete(request: Request): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
200
+ /**
201
+ * Uploads a chunk via PATCH request for chunked uploads.
202
+ * Headers required: X-Chunk-Offset (byte offset), Content-Length (chunk size).
203
+ * Optional: X-Chunk-Checksum (SHA256 checksum for validation).
204
+ * @param request Web API Request with chunk data.
205
+ * @returns Promise resolving to ResponseFile with upload progress.
206
+ */
207
+ patch(request: Request): Promise<ResponseFile<TFile>>;
208
+ /**
209
+ * Get file metadata via HEAD request.
210
+ * For chunked uploads, also returns upload progress information.
211
+ * @param request Web API Request with file ID
212
+ * @returns Promise resolving to ResponseFile with metadata headers
213
+ */
214
+ head(request: Request): Promise<ResponseFile<TFile>>;
215
+ /**
216
+ * Handle OPTIONS requests with REST API capabilities.
217
+ * @param _request Web API Request
218
+ * @returns Promise resolving to ResponseFile with CORS headers
219
+ */
220
+ options(_request: Request): Promise<ResponseFile<TFile>>;
221
+ /**
222
+ * Retrieves a file or list of files based on the request path.
223
+ * Delegates to BaseHandlerFetch.fetch() method.
224
+ * @param _request Web API Request
225
+ * @returns Promise resolving to Web API Response
226
+ */
227
+ get(_request: Request): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
228
+ }
229
+ /**
230
+ * TUS resumable upload protocol handler (Web API Fetch version).
231
+ *
232
+ * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
233
+ * @example
234
+ * ```ts
235
+ * const tus = new TusFetch({storage});
236
+ *
237
+ * // Use with Hono, Cloudflare Workers, etc.
238
+ * app.all('/files/*', async (c) => {
239
+ * return tus.fetch(c.req.raw);
240
+ * });
241
+ * ```
242
+ */
243
+ declare class Tus<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
244
+ /**
245
+ * Limiting enabled http method handler
246
+ */
247
+ static override readonly methods: Handlers[];
248
+ private readonly tusBase;
249
+ constructor(options: UploadOptions<TFile>);
250
+ /**
251
+ * Web API fetch entrypoint. Wraps the base implementation to ensure every TUS
252
+ * response — success and error alike — carries the `Tus-Resumable` header,
253
+ * which the protocol requires on all responses.
254
+ */
255
+ override fetch(request: Request): Promise<globalThis.Response>;
256
+ /**
257
+ * Handle OPTIONS requests with TUS protocol capabilities.
258
+ * @returns Promise resolving to ResponseFile with TUS headers
259
+ */
260
+ options(): Promise<ResponseFile<TFile>>;
261
+ /**
262
+ * Creates a new TUS upload and optionally starts uploading data.
263
+ * @param request Web API Request with TUS headers.
264
+ * @returns Promise resolving to ResponseFile with upload location and offset.
265
+ */
266
+ post(request: Request): Promise<ResponseFile<TFile>>;
267
+ /**
268
+ * Write a chunk of data to an existing TUS upload.
269
+ * @param request Web API Request with chunk data and TUS headers
270
+ * @returns Promise resolving to ResponseFile with updated offset
271
+ */
272
+ patch(request: Request): Promise<ResponseFile<TFile>>;
273
+ /**
274
+ * Get current upload offset and metadata for TUS resumable uploads.
275
+ * @param request Web API Request with upload ID
276
+ * @returns Promise resolving to ResponseFile with upload-offset and metadata headers
277
+ */
278
+ head(request: Request): Promise<ResponseFile<TFile>>;
279
+ /**
280
+ * Get TUS upload metadata and current status.
281
+ * @param request Web API Request with upload ID
282
+ * @returns Promise resolving to ResponseFile with file metadata as JSON
283
+ */
284
+ get(request: Request): Promise<ResponseFile<TFile>>;
285
+ /**
286
+ * Delete a TUS upload and its associated data.
287
+ * @param request Web API Request with upload ID
288
+ * @returns Promise resolving to ResponseFile with deletion confirmation
289
+ */
290
+ delete(request: Request): Promise<ResponseFile<TFile>>;
291
+ /**
292
+ * Compose and register HTTP method handlers.
293
+ */
294
+ protected compose(): void;
295
+ /**
296
+ * Build file URL for TUS uploads (without file extension).
297
+ * @param requestUrl Request URL string
298
+ * @param file File object containing ID
299
+ * @returns Constructed file URL for TUS protocol
300
+ */
301
+ protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
302
+ }
303
+ export { type Handlers, Multipart, RestFetch as Rest, Tus, type UploadOptions };
@@ -1,4 +1 @@
1
- export { default as Multipart } from '../../../packem_shared/Multipart-5Xpy7WhY.js';
2
- export { default as Rest } from '../../../packem_shared/Rest-DO7OslCs.js';
3
- export { Tus } from '../../../packem_shared/Tus-BQItPVAC.js';
4
- export { TUS_RESUMABLE, TUS_VERSION } from '../../../packem_shared/TUS_RESUMABLE-BfguFdM1.js';
1
+ import{default as o}from"../../../packem_shared/Multipart-C4GpuHMU.js";import{default as f}from"../../../packem_shared/Rest-ymPCZkKR.js";import{Tus as p}from"../../../packem_shared/Tus-v6jzkaIO.js";import{TUS_RESUMABLE as s,TUS_VERSION as u}from"../../../packem_shared/TUS_RESUMABLE-CyTSRvPU.js";export{o as Multipart,f as Rest,s as TUS_RESUMABLE,u as TUS_VERSION,p as Tus};