@visulima/storage 1.0.0-alpha.28 → 1.0.0-alpha.29

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 (190) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +2 -2
  3. package/dist/adapter/nuxt/module.d.ts +4 -4
  4. package/dist/adapter/nuxt/node_modules/.bin/nuxi +2 -2
  5. package/dist/adapter/nuxt/node_modules/.bin/nuxt +2 -2
  6. package/dist/ai/ai-sdk/index.d.ts +3 -3
  7. package/dist/ai/claude/index.d.ts +2 -2
  8. package/dist/ai/openai/index.d.ts +3 -3
  9. package/dist/ai/tanstack/index.d.ts +2 -2
  10. package/dist/handler/http/fetch/index.d.ts +7 -7
  11. package/dist/handler/http/fetch/index.js +1 -1
  12. package/dist/handler/http/hono/index.d.ts +4 -4
  13. package/dist/handler/http/hono/index.js +1 -1
  14. package/dist/handler/http/nextjs/index.d.ts +4 -4
  15. package/dist/handler/http/nextjs/index.js +1 -1
  16. package/dist/handler/http/node/index.d.ts +7 -7
  17. package/dist/handler/http/node/index.js +1 -1
  18. package/dist/handler/http/solid-start/index.d.ts +4 -4
  19. package/dist/handler/http/solid-start/index.js +1 -1
  20. package/dist/index.d.ts +5 -5
  21. package/dist/index.js +1 -1
  22. package/dist/packem_shared/{AwsLightMetaStorage-DHz1nf_H.js → AwsLightMetaStorage-B-iQbToR.js} +1 -1
  23. package/dist/packem_shared/AwsLightStorage-w21RxjUm.js +1 -0
  24. package/dist/packem_shared/AzureSMetaStorage-CR-lfQNQ.js +1 -0
  25. package/dist/packem_shared/AzureStorage-2kl7JDXs.js +1 -0
  26. package/dist/packem_shared/BoxMetaStorage-DLdXbZaV.js +1 -0
  27. package/dist/packem_shared/BoxStorage-BUeEJoGL.js +1 -0
  28. package/dist/packem_shared/BunS3File-D-SRiyrm.js +1 -0
  29. package/dist/packem_shared/BunS3MetaStorage-Bv_CTTMz.js +1 -0
  30. package/dist/packem_shared/BunS3Storage-WM3rF6Fw.js +1 -0
  31. package/dist/packem_shared/BunnyMetaStorage-DNMTSeoN.js +1 -0
  32. package/dist/packem_shared/BunnyStorage-D3s2fRB3.js +1 -0
  33. package/dist/packem_shared/CloudinaryFile-B5-m33eS.js +1 -0
  34. package/dist/packem_shared/CloudinaryMetaStorage-DEBk5eQy.js +1 -0
  35. package/dist/packem_shared/CloudinaryStorage-BBE2-aVz.js +1 -0
  36. package/dist/packem_shared/DiskStorage-DL0GiG6k.js +1 -0
  37. package/dist/packem_shared/{DiskStorageWithChecksum-CbXWpSOr.js → DiskStorageWithChecksum-BvUTn7O-.js} +1 -1
  38. package/dist/packem_shared/{DropboxMetaStorage-CICuUZ1n.js → DropboxMetaStorage-C6vj1QDA.js} +1 -1
  39. package/dist/packem_shared/DropboxStorage-BL3OIdE_.js +1 -0
  40. package/dist/packem_shared/{Files-BhvjnhTE.js → Files-CJh9_N-9.js} +1 -1
  41. package/dist/packem_shared/FirebaseFile-JEu3plMP.js +1 -0
  42. package/dist/packem_shared/FirebaseMetaStorage-CzyOim-J.js +1 -0
  43. package/dist/packem_shared/FirebaseStorage-lXMXy3Pm.js +2 -0
  44. package/dist/packem_shared/FtpFile-B8jaICTB.js +1 -0
  45. package/dist/packem_shared/FtpMetaStorage-1Njy0DpU.js +1 -0
  46. package/dist/packem_shared/FtpStorage-Dw94efNW.js +1 -0
  47. package/dist/packem_shared/{GCSMetaStorage-Cm_Pse62.js → GCSMetaStorage-DvRxZhmq.js} +1 -1
  48. package/dist/packem_shared/GCStorage-U4f4WsWC.js +1 -0
  49. package/dist/packem_shared/{GoogleDriveMetaStorage-rghGy3Fa.js → GoogleDriveMetaStorage-WGuUZPyx.js} +1 -1
  50. package/dist/packem_shared/GoogleDriveStorage-C0NhBBWH.js +1 -0
  51. package/dist/packem_shared/{LocalMetaStorage-B5uh1snG.js → LocalMetaStorage-QMKL7McF.js} +1 -1
  52. package/dist/packem_shared/{Multipart-7FSSy2n1.js → Multipart-CIFfQksD.js} +1 -1
  53. package/dist/packem_shared/{Multipart-DACQFsrn.js → Multipart-D9WIud9R.js} +1 -1
  54. package/dist/packem_shared/NetlifyBlobMetaStorage-ClIFdTkT.js +1 -0
  55. package/dist/packem_shared/NetlifyBlobStorage-CO89TGvF.js +1 -0
  56. package/dist/packem_shared/OneDriveMetaStorage-DS4f83X2.js +1 -0
  57. package/dist/packem_shared/OneDriveStorage-jAN46vRm.js +1 -0
  58. package/dist/packem_shared/PocketBaseFile-CkAiSBb0.js +1 -0
  59. package/dist/packem_shared/PocketBaseMetaStorage-B6utPncj.js +1 -0
  60. package/dist/packem_shared/PocketBaseStorage-DpOjOKAt.js +1 -0
  61. package/dist/packem_shared/{Rest-5NwM1xYj.js → Rest-BuD3ySAg.js} +1 -1
  62. package/dist/packem_shared/{Rest-y8Vz2Rt0.js → Rest-URrQ5FYM.js} +1 -1
  63. package/dist/packem_shared/S3Storage-n1ohEZj4.js +1 -0
  64. package/dist/packem_shared/SftpFile-CQCxZNVq.js +1 -0
  65. package/dist/packem_shared/SftpMetaStorage-DYqXwCdM.js +1 -0
  66. package/dist/packem_shared/SftpStorage-Ban-WN8v.js +1 -0
  67. package/dist/packem_shared/SharePointFile-BA6X9Sxr.js +1 -0
  68. package/dist/packem_shared/SharePointMetaStorage-DVM5-X6g.js +1 -0
  69. package/dist/packem_shared/SharePointStorage-BY90zh1c.js +1 -0
  70. package/dist/packem_shared/SupabaseMetaStorage-ivXoYVUu.js +1 -0
  71. package/dist/packem_shared/SupabaseStorage-pNbHAE1Y.js +1 -0
  72. package/dist/packem_shared/{Tus-CJMcygk7.js → Tus-Fp_hx5ug.js} +1 -1
  73. package/dist/packem_shared/{Tus-BCVAbJIi.js → Tus-TNG9HAY8.js} +1 -1
  74. package/dist/packem_shared/UploadThingMetaStorage-BvKNzgm7.js +1 -0
  75. package/dist/packem_shared/UploadThingStorage-BcmIE2dI.js +1 -0
  76. package/dist/packem_shared/{VercelBlobMetaStorage-Do9ZoKrl.js → VercelBlobMetaStorage-CwaqWucZ.js} +1 -1
  77. package/dist/packem_shared/VercelBlobStorage-C89IUiQ1.js +1 -0
  78. package/dist/packem_shared/alibaba-BJQ6ijoK.js +1 -0
  79. package/dist/packem_shared/aws-light-meta-storage-CstQBYXG.js +4 -0
  80. package/dist/packem_shared/azure-meta-storage-C4SrMtT2.js +1 -0
  81. package/dist/packem_shared/{base-handler-core-BfwZ1RS1.js → base-handler-core-BYDQditz.js} +1 -1
  82. package/dist/packem_shared/{base-handler-fetch-CLxqXTQf.js → base-handler-fetch-DWzsPkmV.js} +1 -1
  83. package/dist/packem_shared/{base-handler-node-DBZjcqsp.js → base-handler-node-Dety2rQB.js} +1 -1
  84. package/dist/packem_shared/defaultCloudStorageFileNameValidation-shIZX_7L.js +1 -0
  85. package/dist/packem_shared/disk-storage-CKAJvhcj.js +1 -0
  86. package/dist/packem_shared/{disk-storage-with-checksum.d-8gCPEZZC.d.ts → disk-storage-with-checksum.d-mHcg2uLw.d.ts} +1 -1
  87. package/dist/packem_shared/{executors.d-DgroC6pk.d.ts → executors.d-X4hz3zfu.d.ts} +1 -1
  88. package/dist/packem_shared/exoscale-O0HzxoDz.js +1 -0
  89. package/dist/packem_shared/filebase-D-urO4Ob.js +1 -0
  90. package/dist/packem_shared/{gcs-meta-storage-DibQBpU8.js → gcs-meta-storage-Br_I-m9X.js} +1 -1
  91. package/dist/packem_shared/ibmCos-Rx_yku4H.js +1 -0
  92. package/dist/packem_shared/idriveE2-BFhw0Vwy.js +1 -0
  93. package/dist/packem_shared/index-B4ETk0Lu.js +5 -0
  94. package/dist/packem_shared/{index.d-CKaAalRr.d.ts → index.d-C4Fivh4I.d.ts} +1 -1
  95. package/dist/packem_shared/isRetryableError-BhizNeAz.js +1 -0
  96. package/dist/packem_shared/{local-meta-storage-CT1audnK.js → local-meta-storage-Bi0mK6gD.js} +1 -1
  97. package/dist/packem_shared/{local-meta-storage.d-KWaPZTSN.d.ts → local-meta-storage.d-B11vHYNm.d.ts} +1 -1
  98. package/dist/packem_shared/{media-transformer.d-Dt9W_its.d.ts → media-transformer.d-j1W9HAXw.d.ts} +2 -2
  99. package/dist/packem_shared/oracleCloud-D5T9s4JV.js +1 -0
  100. package/dist/packem_shared/ovhCloud-DCwef2fe.js +1 -0
  101. package/dist/packem_shared/posix-dirname-CiHXPPnw.js +1 -0
  102. package/dist/packem_shared/{rest-base-CCv78k7h.js → rest-base-DI7xFXr5.js} +1 -1
  103. package/dist/packem_shared/s3-base-storage-Dbexfg7p.js +1 -0
  104. package/dist/packem_shared/{s3-base-storage.d-DTxJKx3M.d.ts → s3-base-storage.d-V3N2nKCt.d.ts} +31 -22
  105. package/dist/packem_shared/scaleway-ygRXOss9.js +1 -0
  106. package/dist/packem_shared/storage-Dh0tJh7j.js +1 -0
  107. package/dist/packem_shared/{storage.d-D9YA4MRs.d.ts → storage.d-RteRC-cG.d.ts} +131 -65
  108. package/dist/packem_shared/tencent-CAcAGaIW.js +1 -0
  109. package/dist/packem_shared/{tus-base.d-BeCT7hH6.d.ts → tus-base.d-wZsb3umJ.d.ts} +3 -3
  110. package/dist/packem_shared/{types.d-P2Kxr4cB.d.ts → types.d-B5qPfCr5.d.ts} +2 -2
  111. package/dist/packem_shared/types.d-ChNXbbHG.d.ts +104 -0
  112. package/dist/packem_shared/{types.d-CBvMCJmv.d.ts → types.d-DzPvh74p.d.ts} +2 -2
  113. package/dist/packem_shared/vultr-lK9L-sFk.js +1 -0
  114. package/dist/packem_shared/yandex-ZwvE77v4.js +1 -0
  115. package/dist/storage/aws/clients/index.d.ts +372 -1
  116. package/dist/storage/aws/clients/index.js +1 -1
  117. package/dist/storage/aws/index.d.ts +13 -13
  118. package/dist/storage/aws/index.js +1 -1
  119. package/dist/storage/aws-light/index.d.ts +13 -13
  120. package/dist/storage/aws-light/index.js +1 -1
  121. package/dist/storage/azure/index.d.ts +82 -14
  122. package/dist/storage/azure/index.js +1 -1
  123. package/dist/storage/box/index.d.ts +12 -9
  124. package/dist/storage/box/index.js +1 -1
  125. package/dist/storage/bun-s3/index.d.ts +200 -0
  126. package/dist/storage/bun-s3/index.js +1 -0
  127. package/dist/storage/bunny/index.d.ts +12 -9
  128. package/dist/storage/bunny/index.js +1 -1
  129. package/dist/storage/cloudinary/index.d.ts +121 -0
  130. package/dist/storage/cloudinary/index.js +1 -0
  131. package/dist/storage/dropbox/index.d.ts +12 -9
  132. package/dist/storage/dropbox/index.js +1 -1
  133. package/dist/storage/firebase/index.d.ts +192 -0
  134. package/dist/storage/firebase/index.js +1 -0
  135. package/dist/storage/ftp/index.d.ts +85 -0
  136. package/dist/storage/ftp/index.js +1 -0
  137. package/dist/storage/gcs/index.d.ts +19 -10
  138. package/dist/storage/gcs/index.js +1 -1
  139. package/dist/storage/google-drive/index.d.ts +12 -9
  140. package/dist/storage/google-drive/index.js +1 -1
  141. package/dist/storage/local/index.d.ts +3 -3
  142. package/dist/storage/local/index.js +1 -1
  143. package/dist/storage/netlify-blob/index.d.ts +15 -12
  144. package/dist/storage/netlify-blob/index.js +1 -1
  145. package/dist/storage/onedrive/index.d.ts +22 -111
  146. package/dist/storage/onedrive/index.js +1 -1
  147. package/dist/storage/pocketbase/index.d.ts +172 -0
  148. package/dist/storage/pocketbase/index.js +1 -0
  149. package/dist/storage/sftp/index.d.ts +86 -0
  150. package/dist/storage/sftp/index.js +1 -0
  151. package/dist/storage/sharepoint/index.d.ts +180 -0
  152. package/dist/storage/sharepoint/index.js +1 -0
  153. package/dist/storage/supabase/index.d.ts +14 -10
  154. package/dist/storage/supabase/index.js +1 -1
  155. package/dist/storage/uploadthing/index.d.ts +13 -9
  156. package/dist/storage/uploadthing/index.js +1 -1
  157. package/dist/storage/vercel-blob/index.d.ts +13 -10
  158. package/dist/storage/vercel-blob/index.js +1 -1
  159. package/dist/transformer/audio-transformer.d.ts +2 -2
  160. package/dist/transformer/image-transformer.d.ts +2 -2
  161. package/dist/transformer/index.d.ts +3 -3
  162. package/dist/transformer/video-transformer.d.ts +2 -2
  163. package/package.json +55 -3
  164. package/dist/packem_shared/AwsLightStorage-SH7j-myh.js +0 -1
  165. package/dist/packem_shared/AzureSMetaStorage-DV2tNjKh.js +0 -1
  166. package/dist/packem_shared/AzureStorage-BVYMFEBP.js +0 -1
  167. package/dist/packem_shared/BoxMetaStorage-BUe5Qmqe.js +0 -1
  168. package/dist/packem_shared/BoxStorage-CgC81_So.js +0 -1
  169. package/dist/packem_shared/BunnyMetaStorage-D0mT6veJ.js +0 -1
  170. package/dist/packem_shared/BunnyStorage-Bl4usdVT.js +0 -1
  171. package/dist/packem_shared/DiskStorage-B5uIDVXr.js +0 -1
  172. package/dist/packem_shared/DropboxStorage-CPjhDN5B.js +0 -1
  173. package/dist/packem_shared/GCStorage-CNCPTaGF.js +0 -1
  174. package/dist/packem_shared/GoogleDriveStorage-DuB6glUk.js +0 -1
  175. package/dist/packem_shared/NetlifyBlobMetaStorage-BcRFPky8.js +0 -1
  176. package/dist/packem_shared/NetlifyBlobStorage-C4qkJv1R.js +0 -1
  177. package/dist/packem_shared/OneDriveMetaStorage-B_BkGLzW.js +0 -1
  178. package/dist/packem_shared/OneDriveStorage-Cu0cGcrh.js +0 -1
  179. package/dist/packem_shared/S3Storage-D8dopWoO.js +0 -1
  180. package/dist/packem_shared/SupabaseMetaStorage-BR1UGqnj.js +0 -1
  181. package/dist/packem_shared/SupabaseStorage-CCtMTiN5.js +0 -1
  182. package/dist/packem_shared/UploadThingMetaStorage-DyGNyaAq.js +0 -1
  183. package/dist/packem_shared/UploadThingStorage-B_fNzNFO.js +0 -1
  184. package/dist/packem_shared/VercelBlobStorage-D5zy4PPQ.js +0 -1
  185. package/dist/packem_shared/aws-light-meta-storage-TPyQwLvk.js +0 -4
  186. package/dist/packem_shared/defaultCloudStorageFileNameValidation-6URTv-Mp.js +0 -1
  187. package/dist/packem_shared/disk-storage-CbSSPnOf.js +0 -5
  188. package/dist/packem_shared/isRetryableError-B6ZS_-5I.js +0 -1
  189. package/dist/packem_shared/s3-base-storage-f_EyFAAt.js +0 -1
  190. package/dist/packem_shared/storage-CoyB2O-Y.js +0 -1
@@ -1,5 +1,6 @@
1
- import { F as File, t as MetaStorageOptions, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, e as FileInit, g as FileQuery, f as FilePart, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-D9YA4MRs.js";
1
+ import { F as File, t as MetaStorageOptions, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, R as RetryConfig, e as FileInit, O as OperationOptions, g as FileQuery, f as FilePart, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-RteRC-cG.js";
2
2
  import 'node:stream';
3
+ import { TokenCredential } from '@azure/core-auth';
3
4
  import { BlobServiceClient } from '@azure/storage-blob';
4
5
  import 'node:crypto';
5
6
  import 'node:http';
@@ -10,11 +11,11 @@ declare class AzureFile extends File {
10
11
  }
11
12
  interface ClientConfig {
12
13
  /**
13
- * Azure account key.
14
+ * Azure account key. Resolved from `AZURE_STORAGE_ACCOUNT_KEY` when omitted.
14
15
  */
15
16
  accountKey?: string;
16
17
  /**
17
- * Azure account name.
18
+ * Azure account name. Resolved from `AZURE_STORAGE_ACCOUNT` when omitted.
18
19
  */
19
20
  accountName?: string;
20
21
  /**
@@ -22,6 +23,17 @@ interface ClientConfig {
22
23
  */
23
24
  containerName: string;
24
25
  /**
26
+ * Microsoft Entra credential for Azure AD / Managed Identity workloads
27
+ * (e.g. `DefaultAzureCredential` from `@azure/identity`). When supplied
28
+ * without a shared key, SDK operations use token auth and signed URLs are
29
+ * minted via User Delegation SAS.
30
+ *
31
+ * The principal must be allowed to access blob data and to call
32
+ * `Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action`
33
+ * (for example via Storage Blob Data Contributor + Storage Blob Delegator).
34
+ */
35
+ credential?: TokenCredential;
36
+ /**
25
37
  * Azure endpoint.
26
38
  */
27
39
  endpoint?: string;
@@ -29,6 +41,18 @@ interface ClientConfig {
29
41
  * Azure root path.
30
42
  */
31
43
  root?: string;
44
+ /**
45
+ * Pre-issued SAS token (with or without a leading `?`). Resolved from
46
+ * `AZURE_STORAGE_SAS_TOKEN` when omitted. SAS-token adapters can use their
47
+ * configured access but cannot mint fresh signed URLs.
48
+ */
49
+ sasToken?: string;
50
+ /**
51
+ * Controls whether a `credential`-backed adapter mints User Delegation SAS
52
+ * URLs. Defaults to `true` when `credential` is supplied; set `false` for
53
+ * token-authenticated SDK operations without signed-URL support.
54
+ */
55
+ useUserDelegationSas?: boolean;
32
56
  }
33
57
  interface ClientConfig {
34
58
  connectionString?: string;
@@ -84,8 +108,10 @@ declare class AzureMetaStorage<T extends File = File> extends MetaStorage<T> {
84
108
  * - ✅ Batch operations: deleteBatch, copyBatch, moveBatch (inherited from BaseStorage)
85
109
  * - ✅ exists: Implemented (checks metadata and Azure blob)
86
110
  * - ❌ getStream: Not implemented (use get() for file retrieval)
87
- * - ❌ getUrl: Not implemented (Azure Blob URLs not supported)
88
- * - ❌ getUploadUrl: Not implemented (Azure Blob upload URLs handled internally)
111
+ * - ✅ getReadUrl / getUploadUrl: service SAS (shared key / connection string) or User Delegation SAS (Microsoft Entra credential). SAS-token adapters append the pre-issued token. Anonymous (public-container) adapters serve unsigned read URLs only — uploads are rejected.
112
+ *
113
+ * ## Authentication
114
+ * Precedence: connection string, then account key + name, then Microsoft Entra `credential` (Azure AD / Managed Identity), then a pre-issued `sasToken`, then anonymous (public-container) access.
89
115
  */
90
116
  declare class AzureStorage extends BaseStorage {
91
117
  static override readonly name: string;
@@ -95,9 +121,15 @@ declare class AzureStorage extends BaseStorage {
95
121
  private client;
96
122
  private readonly containerClient;
97
123
  private readonly root;
98
- private readonly retry;
124
+ private readonly resolvedRetryConfig;
125
+ private readonly signer?;
126
+ /** Pre-issued SAS token (leading `?` stripped) when in SAS-token mode. */
127
+ private readonly sasToken?;
128
+ /** True only for genuine anonymous (public-container) access. */
129
+ private readonly anonymous?;
99
130
  constructor(config: AzureStorageOptions);
100
- create(config: FileInit): Promise<AzureFile>;
131
+ protected override getRetryConfig(): RetryConfig;
132
+ create(config: FileInit, options?: OperationOptions): Promise<AzureFile>;
101
133
  /**
102
134
  * Deletes an upload and its metadata.
103
135
  * @param query File query containing the file ID to delete.
@@ -107,7 +139,7 @@ declare class AzureStorage extends BaseStorage {
107
139
  */
108
140
  delete({
109
141
  id
110
- }: FileQuery): Promise<AzureFile>;
142
+ }: FileQuery, options?: OperationOptions): Promise<AzureFile>;
111
143
  /**
112
144
  * Moves an upload file to a new location.
113
145
  * @param name Source file name/ID.
@@ -115,11 +147,11 @@ declare class AzureStorage extends BaseStorage {
115
147
  * @returns Promise resolving to the moved file object.
116
148
  * @throws {UploadError} If the source file cannot be found.
117
149
  */
118
- move(name: string, destination: string): Promise<AzureFile>;
119
- write(part: FilePart | FileQuery | AzureFile): Promise<AzureFile>;
150
+ move(name: string, destination: string, options?: OperationOptions): Promise<AzureFile>;
151
+ write(part: FilePart | FileQuery | AzureFile, options?: OperationOptions): Promise<AzureFile>;
120
152
  get({
121
153
  id
122
- }: FileQuery): Promise<FileReturn>;
154
+ }: FileQuery, options?: OperationOptions): Promise<FileReturn>;
123
155
  /**
124
156
  * Checks if a file exists by verifying both metadata and the actual Azure blob.
125
157
  * Returns true only if both the metadata and the blob exist.
@@ -128,7 +160,7 @@ declare class AzureStorage extends BaseStorage {
128
160
  */
129
161
  override exists({
130
162
  id
131
- }: FileQuery): Promise<boolean>;
163
+ }: FileQuery, options?: OperationOptions): Promise<boolean>;
132
164
  /**
133
165
  * Copies an upload file to a new location.
134
166
  * @param name Source file name/ID.
@@ -136,8 +168,44 @@ declare class AzureStorage extends BaseStorage {
136
168
  * @returns Promise resolving to the copied file object.
137
169
  * @throws {UploadError} If the source file cannot be found.
138
170
  */
139
- copy(name: string, destination: string): Promise<AzureFile>;
140
- override list(limit?: number): Promise<AzureFile[]>;
171
+ copy(name: string, destination: string, options?: OperationOptions & {
172
+ storageClass?: string;
173
+ }): Promise<AzureFile>;
174
+ override list(limit?: number, options?: OperationOptions): Promise<AzureFile[]>;
175
+ /**
176
+ * Returns a download URL for the blob at `key`.
177
+ *
178
+ * Shared-key / connection-string and Microsoft Entra adapters mint a fresh
179
+ * SAS. SAS-token adapters append the pre-issued token. Genuine anonymous
180
+ * (public-container) adapters return the unsigned blob URL.
181
+ * @param key Storage key.
182
+ * @param options Optional expiry and response content overrides. Response
183
+ * content overrides only apply when the adapter mints a fresh SAS.
184
+ * @throws {UploadError} When the adapter has no way to authorise reads.
185
+ */
186
+ override getReadUrl(key: string, options?: {
187
+ expiresIn?: number;
188
+ responseContentDisposition?: string;
189
+ responseContentType?: string;
190
+ }): Promise<string>;
191
+ /**
192
+ * Returns an upload URL (HTTP PUT, `x-ms-blob-type: BlockBlob`) for `key`.
193
+ *
194
+ * Shared-key / connection-string and Microsoft Entra adapters mint a fresh
195
+ * SAS. SAS-token adapters append the pre-issued token. Anonymous adapters
196
+ * cannot upload. The caller must send the desired `x-ms-blob-content-type`
197
+ * header on the PUT — a SAS cannot pin the stored content type.
198
+ * @param key Storage key.
199
+ * @param options Optional expiry. `contentLength` and `contentType` are
200
+ * accepted for interface parity but a SAS cannot enforce a size limit or
201
+ * pin the content type.
202
+ * @throws {UploadError} When the adapter cannot authorise writes.
203
+ */
204
+ override getUploadUrl(key: string, options?: {
205
+ contentLength?: number;
206
+ contentType?: string;
207
+ expiresIn?: number;
208
+ }): Promise<string>;
141
209
  /**
142
210
  * Prefixes the given filePath with the storage root location (assetFolder if configured).
143
211
  * @param filePath Relative file path to prefix.
@@ -1 +1 @@
1
- import{default as a}from"../../packem_shared/AzureFile-Dgj2Tef4.js";import{default as o}from"../../packem_shared/AzureSMetaStorage-DV2tNjKh.js";import{default as u}from"../../packem_shared/AzureStorage-BVYMFEBP.js";export{a as AzureFile,o as AzureSMetaStorage,u as AzureStorage};
1
+ import{default as a}from"../../packem_shared/AzureFile-Dgj2Tef4.js";import{b as t}from"../../packem_shared/azure-meta-storage-C4SrMtT2.js";import{default as u}from"../../packem_shared/AzureStorage-2kl7JDXs.js";export{a as AzureFile,t as AzureSMetaStorage,u as AzureStorage};
@@ -1,6 +1,6 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, e as FileInit, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-D9YA4MRs.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, e as FileInit, O as OperationOptions, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-RteRC-cG.js";
2
2
  import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-KWaPZTSN.js";
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-B11vHYNm.js";
4
4
  import { BoxClient } from 'box-typescript-sdk-gen';
5
5
  import 'node:crypto';
6
6
  import 'node:http';
@@ -139,6 +139,7 @@ interface BoxStorageOptions extends BaseStorageOptions {
139
139
  * the simple-upload and chunked-upload paths. Each request handler runs
140
140
  * independently, so concurrent multi-GB writes are bounded by the host's
141
141
  * available memory.
142
+ * - ⚠️ Per-operation `signal`/`timeout` are best-effort: the underlying SDK does not support request cancellation, so an in-flight call may complete server-side even after abort. `retries` is honored.
142
143
  */
143
144
  declare class BoxStorage extends BaseStorage<BoxFile> {
144
145
  static override readonly name: string;
@@ -152,17 +153,19 @@ declare class BoxStorage extends BaseStorage<BoxFile> {
152
153
  private readonly rootFolderId;
153
154
  constructor(config: BoxStorageOptions);
154
155
  override get raw(): BoxClient;
155
- create(config: FileInit): Promise<BoxFile>;
156
- write(part: FilePart | FileQuery | BoxFile): Promise<BoxFile>;
156
+ create(config: FileInit, _options?: OperationOptions): Promise<BoxFile>;
157
+ write(part: FilePart | FileQuery | BoxFile, options?: OperationOptions): Promise<BoxFile>;
157
158
  delete({
158
159
  id
159
- }: FileQuery): Promise<BoxFile>;
160
+ }: FileQuery, options?: OperationOptions): Promise<BoxFile>;
160
161
  get({
161
162
  id
162
- }: FileQuery): Promise<FileReturn>;
163
- copy(name: string, destination: string): Promise<BoxFile>;
164
- move(name: string, destination: string): Promise<BoxFile>;
165
- override list(limit?: number): Promise<BoxFile[]>;
163
+ }: FileQuery, options?: OperationOptions): Promise<FileReturn>;
164
+ copy(name: string, destination: string, options?: OperationOptions & {
165
+ storageClass?: string;
166
+ }): Promise<BoxFile>;
167
+ move(name: string, destination: string, options?: OperationOptions): Promise<BoxFile>;
168
+ override list(limit?: number, options?: OperationOptions): Promise<BoxFile[]>;
166
169
  override getReadUrl(key: string, options?: {
167
170
  expiresIn?: number;
168
171
  responseContentDisposition?: string;
@@ -1 +1 @@
1
- import{default as a}from"../../packem_shared/BoxFile-Be0S4N1L.js";import{default as r}from"../../packem_shared/BoxMetaStorage-BUe5Qmqe.js";import{default as x}from"../../packem_shared/BoxStorage-CgC81_So.js";export{a as BoxFile,r as BoxMetaStorage,x as BoxStorage};
1
+ import{default as a}from"../../packem_shared/BoxFile-Be0S4N1L.js";import{default as r}from"../../packem_shared/BoxMetaStorage-DLdXbZaV.js";import{default as x}from"../../packem_shared/BoxStorage-BUeEJoGL.js";export{a as BoxFile,r as BoxMetaStorage,x as BoxStorage};
@@ -0,0 +1,200 @@
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, e as FileInit, O as OperationOptions, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-RteRC-cG.js";
2
+ import { Readable } from 'node:stream';
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-B11vHYNm.js";
4
+ import 'node:crypto';
5
+ import 'node:http';
6
+ import 'lru-cache';
7
+ declare class BunS3File extends File {
8
+ /**
9
+ * ETag reported by the S3-compatible backend (when present on the
10
+ * stored object).
11
+ */
12
+ bunS3ETag?: string;
13
+ /**
14
+ * Object key within the bucket.
15
+ */
16
+ bunS3Key?: string;
17
+ }
18
+ declare class BunS3MetaStorage extends LocalMetaStorage<BunS3File> {
19
+ constructor(config?: LocalMetaStorageOptions);
20
+ }
21
+ /**
22
+ * Object metadata returned by `Bun.S3Client.stat` / `S3File.stat`.
23
+ */
24
+ interface BunS3Stat {
25
+ etag?: string;
26
+ lastModified?: Date;
27
+ size: number;
28
+ type?: string;
29
+ }
30
+ /**
31
+ * Options accepted by `S3File.presign` / `S3Client.presign`.
32
+ */
33
+ interface BunS3PresignOptions {
34
+ acl?: string;
35
+ contentDisposition?: string;
36
+ expiresIn?: number;
37
+ method?: "DELETE" | "GET" | "HEAD" | "POST" | "PUT";
38
+ type?: string;
39
+ }
40
+ /**
41
+ * Acceptable upload bodies for `Bun.S3Client.write` / `S3File.write`.
42
+ */
43
+ type BunS3WriteData = ArrayBuffer | Blob | ReadableStream | Response | string | Uint8Array;
44
+ /**
45
+ * Structural view of a Bun `S3File` reference. Declared locally so the
46
+ * adapter type-checks under Node (where the `Bun` global is absent) while
47
+ * still binding to the real runtime object.
48
+ */
49
+ interface BunS3FileRef {
50
+ arrayBuffer: () => Promise<ArrayBuffer>;
51
+ delete: () => Promise<void>;
52
+ exists: () => Promise<boolean>;
53
+ presign: (options?: BunS3PresignOptions) => string;
54
+ slice: (start: number, end?: number) => BunS3FileRef;
55
+ stat: () => Promise<BunS3Stat>;
56
+ stream: () => ReadableStream<Uint8Array>;
57
+ write: (data: BunS3WriteData, options?: {
58
+ type?: string;
59
+ }) => Promise<number>;
60
+ }
61
+ /**
62
+ * One entry of a `Bun.S3Client.list` response.
63
+ */
64
+ interface BunS3ListEntry {
65
+ eTag?: string;
66
+ key?: string;
67
+ lastModified?: Date | string;
68
+ size?: number;
69
+ }
70
+ /**
71
+ * Structural view of `Bun.S3Client`. Either pass a real instance via
72
+ * `client`, or run under Bun and let the adapter construct one.
73
+ */
74
+ interface BunS3ClientLike {
75
+ delete: (key: string) => Promise<void>;
76
+ exists: (key: string) => Promise<boolean>;
77
+ file: (key: string) => BunS3FileRef;
78
+ list: (input?: {
79
+ continuationToken?: string;
80
+ maxKeys?: number;
81
+ prefix?: string;
82
+ startAfter?: string;
83
+ }) => Promise<{
84
+ contents?: BunS3ListEntry[];
85
+ isTruncated?: boolean;
86
+ nextContinuationToken?: string;
87
+ }>;
88
+ presign: (key: string, options?: BunS3PresignOptions) => string;
89
+ stat: (key: string) => Promise<BunS3Stat>;
90
+ write: (key: string, data: BunS3WriteData, options?: {
91
+ type?: string;
92
+ }) => Promise<number>;
93
+ }
94
+ interface BunS3StorageOptions extends BaseStorageOptions {
95
+ /**
96
+ * S3 access key ID. Falls back to Bun's own env resolution
97
+ * (`S3_ACCESS_KEY_ID`, then `AWS_ACCESS_KEY_ID`). Ignored when `client`
98
+ * is supplied.
99
+ */
100
+ accessKeyId?: string;
101
+ /**
102
+ * Canned ACL applied to uploads (e.g. `"public-read"`). Passed through
103
+ * to Bun's S3 client.
104
+ */
105
+ acl?: string;
106
+ /**
107
+ * S3 bucket name. Falls back to Bun's env resolution (`S3_BUCKET`, then
108
+ * `AWS_BUCKET`). Ignored when `client` is supplied.
109
+ */
110
+ bucket?: string;
111
+ /**
112
+ * Pre-built `Bun.S3Client` (or `Bun.s3` singleton). Use this to share an
113
+ * instance or inject a test stub. Mutually exclusive with the inline
114
+ * credential options.
115
+ */
116
+ client?: BunS3ClientLike;
117
+ /**
118
+ * Custom S3-compatible endpoint. Falls back to Bun's env resolution
119
+ * (`S3_ENDPOINT`, then `AWS_ENDPOINT`). Ignored when `client` is
120
+ * supplied.
121
+ */
122
+ endpoint?: string;
123
+ /**
124
+ * Configure metafiles storage for resumable-upload bookkeeping.
125
+ */
126
+ metaStorageConfig?: LocalMetaStorageOptions;
127
+ /**
128
+ * S3 region. Falls back to Bun's env resolution (`S3_REGION`, then
129
+ * `AWS_REGION`). Ignored when `client` is supplied.
130
+ */
131
+ region?: string;
132
+ /**
133
+ * S3 secret access key. Falls back to Bun's env resolution
134
+ * (`S3_SECRET_ACCESS_KEY`, then `AWS_SECRET_ACCESS_KEY`). Ignored when
135
+ * `client` is supplied.
136
+ */
137
+ secretAccessKey?: string;
138
+ /**
139
+ * Temporary session token for STS credentials. Ignored when `client` is
140
+ * supplied.
141
+ */
142
+ sessionToken?: string;
143
+ /**
144
+ * Use virtual-hosted-style addressing (`https://&lt;bucket>.&lt;host>/...`).
145
+ * Ignored when `client` is supplied.
146
+ */
147
+ virtualHostedStyle?: boolean;
148
+ }
149
+ /**
150
+ * Bun-native S3 storage backend, backed by `Bun.S3Client` instead of the AWS
151
+ * SDK. Use this when you are already running on Bun and want to skip the AWS
152
+ * SDK dependency.
153
+ *
154
+ * Limitations (inherent to `Bun.S3Client`, which exposes no low-level
155
+ * multipart or server-side copy primitives):
156
+ *
157
+ * - No resumable / TUS multipart protocol. Each `write` uploads the supplied body in one shot (Bun handles large-object chunking internally). For resumable uploads use the `aws` or `aws-light` provider.
158
+ * - `copy` / `move` are client-side read-then-write — Bun has no server-side `CopyObject`.
159
+ * - `getUploadUrl` returns a presigned `PUT`; a `contentLength` cap cannot be enforced (Bun presign has no max-size policy) and is ignored.
160
+ * - ⚠️ Per-operation `signal`/`timeout` are best-effort: the underlying SDK does not support request cancellation, so an in-flight call may complete server-side even after abort. `retries` is honored.
161
+ */
162
+ declare class BunS3Storage extends BaseStorage<BunS3File> {
163
+ static override readonly name: string;
164
+ protected meta: MetaStorage<BunS3File>;
165
+ private readonly client;
166
+ constructor(config: BunS3StorageOptions);
167
+ override get raw(): BunS3ClientLike;
168
+ create(config: FileInit, _options?: OperationOptions): Promise<BunS3File>;
169
+ write(part: BunS3File | FilePart | FileQuery, options?: OperationOptions): Promise<BunS3File>;
170
+ delete({
171
+ id
172
+ }: FileQuery, options?: OperationOptions): Promise<BunS3File>;
173
+ get({
174
+ id
175
+ }: FileQuery, options?: OperationOptions): Promise<FileReturn>;
176
+ override getStream({
177
+ id
178
+ }: FileQuery, options?: OperationOptions): Promise<{
179
+ headers?: Record<string, string>;
180
+ size?: number;
181
+ stream: Readable;
182
+ }>;
183
+ copy(name: string, destination: string, options?: OperationOptions & {
184
+ storageClass?: string;
185
+ }): Promise<BunS3File>;
186
+ move(name: string, destination: string, options?: OperationOptions): Promise<BunS3File>;
187
+ override list(limit?: number, options?: OperationOptions): Promise<BunS3File[]>;
188
+ override getReadUrl(key: string, options?: {
189
+ expiresIn?: number;
190
+ responseContentDisposition?: string;
191
+ responseContentType?: string;
192
+ }): Promise<string>;
193
+ override getUploadUrl(key: string, options?: {
194
+ contentLength?: number;
195
+ contentType?: string;
196
+ expiresIn?: number;
197
+ }): Promise<string>;
198
+ private internalOnComplete;
199
+ }
200
+ export { type BunS3ClientLike, BunS3File, BunS3MetaStorage, BunS3Storage, type BunS3StorageOptions };
@@ -0,0 +1 @@
1
+ import{default as t}from"../../packem_shared/BunS3File-D-SRiyrm.js";import{default as r}from"../../packem_shared/BunS3MetaStorage-Bv_CTTMz.js";import{default as u}from"../../packem_shared/BunS3Storage-WM3rF6Fw.js";export{t as BunS3File,r as BunS3MetaStorage,u as BunS3Storage};
@@ -1,6 +1,6 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, e as FileInit, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-D9YA4MRs.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, e as FileInit, O as OperationOptions, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-RteRC-cG.js";
2
2
  import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-KWaPZTSN.js";
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-B11vHYNm.js";
4
4
  import * as BunnyStorageSDK from '@bunny.net/storage-sdk';
5
5
  import 'node:crypto';
6
6
  import 'node:http';
@@ -78,6 +78,7 @@ interface BunnyStorageOptions extends BaseStorageOptions {
78
78
  * - `getReadUrl` requires `publicBaseUrl` (Pull Zone / CDN hostname) and returns an unsigned URL — Bunny has no signed-read URL primitive, so `expiresIn` is accepted for parity with other adapters but ignored.
79
79
  * - `getReadUrl` rejects `responseContentDisposition` — no override exists on Bunny Storage / Pull Zone URLs.
80
80
  * - `list` is non-recursive: `BunnyStorageSDK.file.list(client, "/")` returns only the immediate children of the zone root. Directory entries are filtered out client-side; the adapter does not descend.
81
+ * - ⚠️ Per-operation `signal`/`timeout` are best-effort: the underlying SDK does not support request cancellation, so an in-flight call may complete server-side even after abort. `retries` is honored.
81
82
  */
82
83
  declare class BunnyStorage extends BaseStorage<BunnyFile> {
83
84
  static override readonly name: string;
@@ -90,17 +91,19 @@ declare class BunnyStorage extends BaseStorage<BunnyFile> {
90
91
  override get raw(): BunnyStorageClient;
91
92
  /** Name of the connected Bunny Storage zone. */
92
93
  get zone(): string;
93
- create(config: FileInit): Promise<BunnyFile>;
94
- write(part: FilePart | FileQuery | BunnyFile): Promise<BunnyFile>;
94
+ create(config: FileInit, _options?: OperationOptions): Promise<BunnyFile>;
95
+ write(part: FilePart | FileQuery | BunnyFile, options?: OperationOptions): Promise<BunnyFile>;
95
96
  delete({
96
97
  id
97
- }: FileQuery): Promise<BunnyFile>;
98
+ }: FileQuery, options?: OperationOptions): Promise<BunnyFile>;
98
99
  get({
99
100
  id
100
- }: FileQuery): Promise<FileReturn>;
101
- copy(name: string, destination: string): Promise<BunnyFile>;
102
- move(name: string, destination: string): Promise<BunnyFile>;
103
- override list(limit?: number): Promise<BunnyFile[]>;
101
+ }: FileQuery, options?: OperationOptions): Promise<FileReturn>;
102
+ copy(name: string, destination: string, options?: OperationOptions & {
103
+ storageClass?: string;
104
+ }): Promise<BunnyFile>;
105
+ move(name: string, destination: string, options?: OperationOptions): Promise<BunnyFile>;
106
+ override list(limit?: number, options?: OperationOptions): Promise<BunnyFile[]>;
104
107
  override getReadUrl(key: string, options?: {
105
108
  expiresIn?: number;
106
109
  responseContentDisposition?: string;
@@ -1 +1 @@
1
- import{default as t}from"../../packem_shared/BunnyFile-Dotl-lO9.js";import{default as r}from"../../packem_shared/BunnyMetaStorage-D0mT6veJ.js";import{default as n}from"../../packem_shared/BunnyStorage-Bl4usdVT.js";export{t as BunnyFile,r as BunnyMetaStorage,n as BunnyStorage};
1
+ import{default as t}from"../../packem_shared/BunnyFile-Dotl-lO9.js";import{default as r}from"../../packem_shared/BunnyMetaStorage-DNMTSeoN.js";import{default as n}from"../../packem_shared/BunnyStorage-D3s2fRB3.js";export{t as BunnyFile,r as BunnyMetaStorage,n as BunnyStorage};
@@ -0,0 +1,121 @@
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, e as FileInit, O as OperationOptions, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-RteRC-cG.js";
2
+ import 'node:stream';
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-B11vHYNm.js";
4
+ import { v2 } from 'cloudinary';
5
+ import 'node:crypto';
6
+ import 'node:http';
7
+ import 'lru-cache';
8
+ declare class CloudinaryFile extends File {
9
+ bucket?: string;
10
+ path?: string;
11
+ publicUrl?: string;
12
+ }
13
+ declare class CloudinaryMetaStorage extends LocalMetaStorage<CloudinaryFile> {
14
+ constructor(config?: LocalMetaStorageOptions);
15
+ }
16
+ interface CloudinaryStorageOptions extends BaseStorageOptions {
17
+ /**
18
+ * Cloudinary API key. Ignored when `client` is supplied. Falls back to
19
+ * `CLOUDINARY_API_KEY`, or the credentials encoded in `CLOUDINARY_URL`.
20
+ */
21
+ apiKey?: string;
22
+ /**
23
+ * Cloudinary API secret. Ignored when `client` is supplied. Falls back to
24
+ * `CLOUDINARY_API_SECRET`, or the credentials encoded in `CLOUDINARY_URL`.
25
+ */
26
+ apiSecret?: string;
27
+ /**
28
+ * Pre-configured `cloudinary` namespace (the `v2` export). Mutually
29
+ * exclusive with `cloudName` + `apiKey` + `apiSecret`. When supplied the
30
+ * adapter skips `cloudinary.config()` and uses the instance as-is.
31
+ */
32
+ client?: typeof v2;
33
+ /**
34
+ * Cloudinary cloud name. Ignored when `client` is supplied. Falls back to
35
+ * `CLOUDINARY_CLOUD_NAME`, or the host segment of `CLOUDINARY_URL`.
36
+ */
37
+ cloudName?: string;
38
+ /**
39
+ * Default expiry, in seconds, for `getReadUrl` signed URLs on private or
40
+ * authenticated assets. Defaults to 3600 (1 hour).
41
+ */
42
+ defaultUrlExpiresIn?: number;
43
+ /**
44
+ * Configure metafiles storage. Used for TUS-style resumable upload
45
+ * bookkeeping. Defaults to {@link LocalMetaStorage} under the OS tmp
46
+ * directory.
47
+ */
48
+ metaStorageConfig?: LocalMetaStorageOptions;
49
+ /**
50
+ * Cloudinary resource type. Use `"raw"` for arbitrary files, `"image"` or
51
+ * `"video"` for media that benefits from transformations. Defaults to
52
+ * `"raw"`.
53
+ */
54
+ resourceType?: "image" | "raw" | "video";
55
+ /**
56
+ * Generate `https://` delivery URLs. Defaults to `true`.
57
+ */
58
+ secure?: boolean;
59
+ /**
60
+ * Cloudinary delivery type. `"private"` and `"authenticated"` require a
61
+ * signed URL for delivery. Defaults to `"upload"`.
62
+ */
63
+ type?: "authenticated" | "private" | "upload";
64
+ }
65
+ /**
66
+ * Cloudinary Storage backend.
67
+ *
68
+ * Single-shot uploads only — the adapter buffers the part stream and uploads
69
+ * it in one request via `upload_stream`. Cloudinary has no simple presigned
70
+ * `PUT` endpoint, so `getUploadUrl` is not implemented (the base default
71
+ * throws `METHOD_NOT_ALLOWED`).
72
+ * @example
73
+ * ```ts
74
+ * import { CloudinaryStorage } from "@visulima/storage/provider/cloudinary";
75
+ *
76
+ * const storage = new CloudinaryStorage({
77
+ * cloudName: process.env.CLOUDINARY_CLOUD_NAME,
78
+ * apiKey: process.env.CLOUDINARY_API_KEY,
79
+ * apiSecret: process.env.CLOUDINARY_API_SECRET,
80
+ * });
81
+ * ```
82
+ * @remarks
83
+ * - ⚠️ Per-operation `signal`/`timeout` are best-effort: the underlying SDK does not support request cancellation, so an in-flight call may complete server-side even after abort. `retries` is honored.
84
+ */
85
+ declare class CloudinaryStorage extends BaseStorage<CloudinaryFile> {
86
+ static override readonly name: string;
87
+ override checksumTypes: string[];
88
+ protected meta: MetaStorage<CloudinaryFile>;
89
+ private readonly client;
90
+ private readonly defaultUrlExpiresIn;
91
+ private readonly deliveryType;
92
+ private readonly resourceType;
93
+ private readonly secure;
94
+ constructor(config: CloudinaryStorageOptions);
95
+ override get raw(): typeof v2;
96
+ create(config: FileInit, _options?: OperationOptions): Promise<CloudinaryFile>;
97
+ write(part: CloudinaryFile | FilePart | FileQuery, options?: OperationOptions): Promise<CloudinaryFile>;
98
+ delete({
99
+ id
100
+ }: FileQuery, options?: OperationOptions): Promise<CloudinaryFile>;
101
+ override exists({
102
+ id
103
+ }: FileQuery, options?: OperationOptions): Promise<boolean>;
104
+ get({
105
+ id
106
+ }: FileQuery, options?: OperationOptions): Promise<FileReturn>;
107
+ copy(name: string, destination: string, options?: OperationOptions & {
108
+ storageClass?: string;
109
+ }): Promise<CloudinaryFile>;
110
+ move(name: string, destination: string, options?: OperationOptions): Promise<CloudinaryFile>;
111
+ override list(limit?: number, options?: OperationOptions): Promise<CloudinaryFile[]>;
112
+ override getReadUrl(key: string, options?: {
113
+ expiresIn?: number;
114
+ responseContentDisposition?: string;
115
+ responseContentType?: string;
116
+ }): Promise<string>;
117
+ private uploadBuffer;
118
+ private getMetaSafe;
119
+ private internalOnComplete;
120
+ }
121
+ export { CloudinaryFile, CloudinaryMetaStorage, CloudinaryStorage, type CloudinaryStorageOptions };
@@ -0,0 +1 @@
1
+ import{default as r}from"../../packem_shared/CloudinaryFile-B5-m33eS.js";import{default as t}from"../../packem_shared/CloudinaryMetaStorage-DEBk5eQy.js";import{default as d}from"../../packem_shared/CloudinaryStorage-BBE2-aVz.js";export{r as CloudinaryFile,t as CloudinaryMetaStorage,d as CloudinaryStorage};
@@ -1,6 +1,6 @@
1
- import { F as File, L as LocalMetaStorageOptions, l as BaseStorageOptions, M as MetaStorage, e as FileInit, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-D9YA4MRs.js";
1
+ import { F as File, L as LocalMetaStorageOptions, i as BaseStorageOptions, M as MetaStorage, e as FileInit, O as OperationOptions, f as FilePart, g as FileQuery, a as FileReturn, B as BaseStorage } from "../../packem_shared/storage.d-RteRC-cG.js";
2
2
  import 'node:stream';
3
- import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-KWaPZTSN.js";
3
+ import { L as LocalMetaStorage } from "../../packem_shared/local-meta-storage.d-B11vHYNm.js";
4
4
  import { Dropbox } from 'dropbox';
5
5
  import 'node:crypto';
6
6
  import 'node:http';
@@ -86,6 +86,7 @@ interface DropboxStorageOptions extends BaseStorageOptions {
86
86
  * - `getUploadUrl` is not supported — Dropbox's `files/get_temporary_upload_link`
87
87
  * requires a `POST` with raw body, which doesn't fit a presigned-PUT contract.
88
88
  * - `responseContentDisposition` is not supported on signed URLs.
89
+ * - ⚠️ Per-operation `signal`/`timeout` are best-effort: the underlying SDK does not support request cancellation, so an in-flight call may complete server-side even after abort. `retries` is honored.
89
90
  */
90
91
  declare class DropboxStorage extends BaseStorage<DropboxFile> {
91
92
  static override readonly name: string;
@@ -98,17 +99,19 @@ declare class DropboxStorage extends BaseStorage<DropboxFile> {
98
99
  private readonly rootFolderPath;
99
100
  constructor(config: DropboxStorageOptions);
100
101
  override get raw(): Dropbox;
101
- create(config: FileInit): Promise<DropboxFile>;
102
- write(part: FilePart | FileQuery | DropboxFile): Promise<DropboxFile>;
102
+ create(config: FileInit, _options?: OperationOptions): Promise<DropboxFile>;
103
+ write(part: FilePart | FileQuery | DropboxFile, options?: OperationOptions): Promise<DropboxFile>;
103
104
  delete({
104
105
  id
105
- }: FileQuery): Promise<DropboxFile>;
106
+ }: FileQuery, options?: OperationOptions): Promise<DropboxFile>;
106
107
  get({
107
108
  id
108
- }: FileQuery): Promise<FileReturn>;
109
- copy(name: string, destination: string): Promise<DropboxFile>;
110
- move(name: string, destination: string): Promise<DropboxFile>;
111
- override list(limit?: number): Promise<DropboxFile[]>;
109
+ }: FileQuery, options?: OperationOptions): Promise<FileReturn>;
110
+ copy(name: string, destination: string, options?: OperationOptions & {
111
+ storageClass?: string;
112
+ }): Promise<DropboxFile>;
113
+ move(name: string, destination: string, options?: OperationOptions): Promise<DropboxFile>;
114
+ override list(limit?: number, options?: OperationOptions): Promise<DropboxFile[]>;
112
115
  override getReadUrl(key: string, options?: {
113
116
  expiresIn?: number;
114
117
  responseContentDisposition?: string;
@@ -1 +1 @@
1
- import{default as e}from"../../packem_shared/DropboxFile-BGVG2kXM.js";import{default as t}from"../../packem_shared/DropboxMetaStorage-CICuUZ1n.js";import{default as p}from"../../packem_shared/DropboxStorage-CPjhDN5B.js";export{e as DropboxFile,t as DropboxMetaStorage,p as DropboxStorage};
1
+ import{default as e}from"../../packem_shared/DropboxFile-BGVG2kXM.js";import{default as t}from"../../packem_shared/DropboxMetaStorage-C6vj1QDA.js";import{default as p}from"../../packem_shared/DropboxStorage-BL3OIdE_.js";export{e as DropboxFile,t as DropboxMetaStorage,p as DropboxStorage};