@visulima/storage 1.0.0-alpha.27 → 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.
- package/CHANGELOG.md +29 -0
- package/README.md +2 -2
- package/dist/adapter/nuxt/module.d.ts +4 -4
- package/dist/adapter/nuxt/node_modules/.bin/nuxi +2 -2
- package/dist/adapter/nuxt/node_modules/.bin/nuxt +2 -2
- package/dist/ai/ai-sdk/index.d.ts +3 -3
- package/dist/ai/claude/index.d.ts +2 -2
- package/dist/ai/openai/index.d.ts +3 -3
- package/dist/ai/tanstack/index.d.ts +2 -2
- package/dist/handler/http/fetch/index.d.ts +7 -7
- package/dist/handler/http/fetch/index.js +1 -1
- package/dist/handler/http/hono/index.d.ts +4 -4
- package/dist/handler/http/hono/index.js +1 -1
- package/dist/handler/http/nextjs/index.d.ts +4 -4
- package/dist/handler/http/nextjs/index.js +1 -1
- package/dist/handler/http/node/index.d.ts +7 -7
- package/dist/handler/http/node/index.js +1 -1
- package/dist/handler/http/solid-start/index.d.ts +4 -4
- package/dist/handler/http/solid-start/index.js +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -1
- package/dist/packem_shared/{AwsLightMetaStorage-DHz1nf_H.js → AwsLightMetaStorage-B-iQbToR.js} +1 -1
- package/dist/packem_shared/AwsLightStorage-w21RxjUm.js +1 -0
- package/dist/packem_shared/AzureSMetaStorage-CR-lfQNQ.js +1 -0
- package/dist/packem_shared/AzureStorage-2kl7JDXs.js +1 -0
- package/dist/packem_shared/BoxMetaStorage-DLdXbZaV.js +1 -0
- package/dist/packem_shared/BoxStorage-BUeEJoGL.js +1 -0
- package/dist/packem_shared/BunS3File-D-SRiyrm.js +1 -0
- package/dist/packem_shared/BunS3MetaStorage-Bv_CTTMz.js +1 -0
- package/dist/packem_shared/BunS3Storage-WM3rF6Fw.js +1 -0
- package/dist/packem_shared/BunnyMetaStorage-DNMTSeoN.js +1 -0
- package/dist/packem_shared/BunnyStorage-D3s2fRB3.js +1 -0
- package/dist/packem_shared/CloudinaryFile-B5-m33eS.js +1 -0
- package/dist/packem_shared/CloudinaryMetaStorage-DEBk5eQy.js +1 -0
- package/dist/packem_shared/CloudinaryStorage-BBE2-aVz.js +1 -0
- package/dist/packem_shared/DiskStorage-DL0GiG6k.js +1 -0
- package/dist/packem_shared/{DiskStorageWithChecksum-CbXWpSOr.js → DiskStorageWithChecksum-BvUTn7O-.js} +1 -1
- package/dist/packem_shared/{DropboxMetaStorage-CICuUZ1n.js → DropboxMetaStorage-C6vj1QDA.js} +1 -1
- package/dist/packem_shared/DropboxStorage-BL3OIdE_.js +1 -0
- package/dist/packem_shared/{Files-B7hlJcB4.js → Files-CJh9_N-9.js} +1 -1
- package/dist/packem_shared/FirebaseFile-JEu3plMP.js +1 -0
- package/dist/packem_shared/FirebaseMetaStorage-CzyOim-J.js +1 -0
- package/dist/packem_shared/FirebaseStorage-lXMXy3Pm.js +2 -0
- package/dist/packem_shared/FtpFile-B8jaICTB.js +1 -0
- package/dist/packem_shared/FtpMetaStorage-1Njy0DpU.js +1 -0
- package/dist/packem_shared/FtpStorage-Dw94efNW.js +1 -0
- package/dist/packem_shared/{GCSMetaStorage-CqP9ifYB.js → GCSMetaStorage-DvRxZhmq.js} +1 -1
- package/dist/packem_shared/GCStorage-U4f4WsWC.js +1 -0
- package/dist/packem_shared/{GoogleDriveMetaStorage-rghGy3Fa.js → GoogleDriveMetaStorage-WGuUZPyx.js} +1 -1
- package/dist/packem_shared/GoogleDriveStorage-C0NhBBWH.js +1 -0
- package/dist/packem_shared/{LocalMetaStorage-B5uh1snG.js → LocalMetaStorage-QMKL7McF.js} +1 -1
- package/dist/packem_shared/{Multipart-7FSSy2n1.js → Multipart-CIFfQksD.js} +1 -1
- package/dist/packem_shared/{Multipart-DACQFsrn.js → Multipart-D9WIud9R.js} +1 -1
- package/dist/packem_shared/NetlifyBlobMetaStorage-ClIFdTkT.js +1 -0
- package/dist/packem_shared/NetlifyBlobStorage-CO89TGvF.js +1 -0
- package/dist/packem_shared/OneDriveMetaStorage-DS4f83X2.js +1 -0
- package/dist/packem_shared/OneDriveStorage-jAN46vRm.js +1 -0
- package/dist/packem_shared/PocketBaseFile-CkAiSBb0.js +1 -0
- package/dist/packem_shared/PocketBaseMetaStorage-B6utPncj.js +1 -0
- package/dist/packem_shared/PocketBaseStorage-DpOjOKAt.js +1 -0
- package/dist/packem_shared/{Rest-5NwM1xYj.js → Rest-BuD3ySAg.js} +1 -1
- package/dist/packem_shared/{Rest-y8Vz2Rt0.js → Rest-URrQ5FYM.js} +1 -1
- package/dist/packem_shared/S3Storage-n1ohEZj4.js +1 -0
- package/dist/packem_shared/SftpFile-CQCxZNVq.js +1 -0
- package/dist/packem_shared/SftpMetaStorage-DYqXwCdM.js +1 -0
- package/dist/packem_shared/SftpStorage-Ban-WN8v.js +1 -0
- package/dist/packem_shared/SharePointFile-BA6X9Sxr.js +1 -0
- package/dist/packem_shared/SharePointMetaStorage-DVM5-X6g.js +1 -0
- package/dist/packem_shared/SharePointStorage-BY90zh1c.js +1 -0
- package/dist/packem_shared/SupabaseMetaStorage-ivXoYVUu.js +1 -0
- package/dist/packem_shared/SupabaseStorage-pNbHAE1Y.js +1 -0
- package/dist/packem_shared/{Tus-CJMcygk7.js → Tus-Fp_hx5ug.js} +1 -1
- package/dist/packem_shared/{Tus-BCVAbJIi.js → Tus-TNG9HAY8.js} +1 -1
- package/dist/packem_shared/UploadThingMetaStorage-BvKNzgm7.js +1 -0
- package/dist/packem_shared/UploadThingStorage-BcmIE2dI.js +1 -0
- package/dist/packem_shared/{VercelBlobMetaStorage-Do9ZoKrl.js → VercelBlobMetaStorage-CwaqWucZ.js} +1 -1
- package/dist/packem_shared/VercelBlobStorage-C89IUiQ1.js +1 -0
- package/dist/packem_shared/alibaba-BJQ6ijoK.js +1 -0
- package/dist/packem_shared/aws-light-meta-storage-CstQBYXG.js +4 -0
- package/dist/packem_shared/azure-meta-storage-C4SrMtT2.js +1 -0
- package/dist/packem_shared/{base-handler-core-BfwZ1RS1.js → base-handler-core-BYDQditz.js} +1 -1
- package/dist/packem_shared/{base-handler-fetch-CLxqXTQf.js → base-handler-fetch-DWzsPkmV.js} +1 -1
- package/dist/packem_shared/{base-handler-node-DBZjcqsp.js → base-handler-node-Dety2rQB.js} +1 -1
- package/dist/packem_shared/defaultCloudStorageFileNameValidation-shIZX_7L.js +1 -0
- package/dist/packem_shared/disk-storage-CKAJvhcj.js +1 -0
- package/dist/packem_shared/{disk-storage-with-checksum.d-BQMXA4Wl.d.ts → disk-storage-with-checksum.d-mHcg2uLw.d.ts} +1 -1
- package/dist/packem_shared/{executors.d-UtkeCbk1.d.ts → executors.d-X4hz3zfu.d.ts} +1 -1
- package/dist/packem_shared/exoscale-O0HzxoDz.js +1 -0
- package/dist/packem_shared/filebase-D-urO4Ob.js +1 -0
- package/dist/packem_shared/{gcs-meta-storage-XB-UPJn6.js → gcs-meta-storage-Br_I-m9X.js} +1 -1
- package/dist/packem_shared/ibmCos-Rx_yku4H.js +1 -0
- package/dist/packem_shared/idriveE2-BFhw0Vwy.js +1 -0
- package/dist/packem_shared/index-B4ETk0Lu.js +5 -0
- package/dist/packem_shared/{index.d-DotjipuX.d.ts → index.d-C4Fivh4I.d.ts} +7 -2
- package/dist/packem_shared/isRetryableError-BhizNeAz.js +1 -0
- package/dist/packem_shared/{local-meta-storage-CT1audnK.js → local-meta-storage-Bi0mK6gD.js} +1 -1
- package/dist/packem_shared/{local-meta-storage.d-B5R1nswK.d.ts → local-meta-storage.d-B11vHYNm.d.ts} +1 -1
- package/dist/packem_shared/{media-transformer.d-DK7NJncf.d.ts → media-transformer.d-j1W9HAXw.d.ts} +2 -2
- package/dist/packem_shared/oracleCloud-D5T9s4JV.js +1 -0
- package/dist/packem_shared/ovhCloud-DCwef2fe.js +1 -0
- package/dist/packem_shared/posix-dirname-CiHXPPnw.js +1 -0
- package/dist/packem_shared/{rest-base-CCv78k7h.js → rest-base-DI7xFXr5.js} +1 -1
- package/dist/packem_shared/s3-base-storage-Dbexfg7p.js +1 -0
- package/dist/packem_shared/{s3-base-storage.d-BROGYJ4F.d.ts → s3-base-storage.d-V3N2nKCt.d.ts} +31 -22
- package/dist/packem_shared/scaleway-ygRXOss9.js +1 -0
- package/dist/packem_shared/storage-Dh0tJh7j.js +1 -0
- package/dist/packem_shared/{storage.d-Cr6f2lac.d.ts → storage.d-RteRC-cG.d.ts} +131 -65
- package/dist/packem_shared/tencent-CAcAGaIW.js +1 -0
- package/dist/packem_shared/{tus-base.d-4-ZfDQwl.d.ts → tus-base.d-wZsb3umJ.d.ts} +3 -3
- package/dist/packem_shared/{types.d-C8eSxqX9.d.ts → types.d-B5qPfCr5.d.ts} +2 -2
- package/dist/packem_shared/types.d-ChNXbbHG.d.ts +104 -0
- package/dist/packem_shared/{types.d-BgCmSE94.d.ts → types.d-DzPvh74p.d.ts} +2 -2
- package/dist/packem_shared/vultr-lK9L-sFk.js +1 -0
- package/dist/packem_shared/yandex-ZwvE77v4.js +1 -0
- package/dist/storage/aws/clients/index.d.ts +372 -1
- package/dist/storage/aws/clients/index.js +1 -1
- package/dist/storage/aws/index.d.ts +13 -13
- package/dist/storage/aws/index.js +1 -1
- package/dist/storage/aws-light/index.d.ts +13 -13
- package/dist/storage/aws-light/index.js +1 -1
- package/dist/storage/azure/index.d.ts +82 -14
- package/dist/storage/azure/index.js +1 -1
- package/dist/storage/box/index.d.ts +12 -9
- package/dist/storage/box/index.js +1 -1
- package/dist/storage/bun-s3/index.d.ts +200 -0
- package/dist/storage/bun-s3/index.js +1 -0
- package/dist/storage/bunny/index.d.ts +13 -10
- package/dist/storage/bunny/index.js +1 -1
- package/dist/storage/cloudinary/index.d.ts +121 -0
- package/dist/storage/cloudinary/index.js +1 -0
- package/dist/storage/dropbox/index.d.ts +13 -10
- package/dist/storage/dropbox/index.js +1 -1
- package/dist/storage/firebase/index.d.ts +192 -0
- package/dist/storage/firebase/index.js +1 -0
- package/dist/storage/ftp/index.d.ts +85 -0
- package/dist/storage/ftp/index.js +1 -0
- package/dist/storage/gcs/index.d.ts +19 -10
- package/dist/storage/gcs/index.js +1 -1
- package/dist/storage/google-drive/index.d.ts +12 -9
- package/dist/storage/google-drive/index.js +1 -1
- package/dist/storage/local/index.d.ts +3 -3
- package/dist/storage/local/index.js +1 -1
- package/dist/storage/netlify-blob/index.d.ts +15 -12
- package/dist/storage/netlify-blob/index.js +1 -1
- package/dist/storage/onedrive/index.d.ts +22 -111
- package/dist/storage/onedrive/index.js +1 -1
- package/dist/storage/pocketbase/index.d.ts +172 -0
- package/dist/storage/pocketbase/index.js +1 -0
- package/dist/storage/sftp/index.d.ts +86 -0
- package/dist/storage/sftp/index.js +1 -0
- package/dist/storage/sharepoint/index.d.ts +180 -0
- package/dist/storage/sharepoint/index.js +1 -0
- package/dist/storage/supabase/index.d.ts +14 -10
- package/dist/storage/supabase/index.js +1 -1
- package/dist/storage/uploadthing/index.d.ts +14 -10
- package/dist/storage/uploadthing/index.js +1 -1
- package/dist/storage/vercel-blob/index.d.ts +13 -10
- package/dist/storage/vercel-blob/index.js +1 -1
- package/dist/transformer/audio-transformer.d.ts +2 -2
- package/dist/transformer/image-transformer.d.ts +2 -2
- package/dist/transformer/index.d.ts +3 -3
- package/dist/transformer/video-transformer.d.ts +2 -2
- package/package.json +55 -3
- package/dist/packem_shared/AwsLightStorage-SH7j-myh.js +0 -1
- package/dist/packem_shared/AzureSMetaStorage-DV2tNjKh.js +0 -1
- package/dist/packem_shared/AzureStorage-BVYMFEBP.js +0 -1
- package/dist/packem_shared/BoxMetaStorage-BUe5Qmqe.js +0 -1
- package/dist/packem_shared/BoxStorage-CgC81_So.js +0 -1
- package/dist/packem_shared/BunnyMetaStorage-D0mT6veJ.js +0 -1
- package/dist/packem_shared/BunnyStorage-Bl4usdVT.js +0 -1
- package/dist/packem_shared/DiskStorage-B5uIDVXr.js +0 -1
- package/dist/packem_shared/DropboxStorage-CPjhDN5B.js +0 -1
- package/dist/packem_shared/GCStorage-XSBKVx90.js +0 -1
- package/dist/packem_shared/GoogleDriveStorage-DuB6glUk.js +0 -1
- package/dist/packem_shared/NetlifyBlobMetaStorage-BcRFPky8.js +0 -1
- package/dist/packem_shared/NetlifyBlobStorage-C4qkJv1R.js +0 -1
- package/dist/packem_shared/OneDriveMetaStorage-B_BkGLzW.js +0 -1
- package/dist/packem_shared/OneDriveStorage-Cu0cGcrh.js +0 -1
- package/dist/packem_shared/S3Storage-D8dopWoO.js +0 -1
- package/dist/packem_shared/SupabaseMetaStorage-BR1UGqnj.js +0 -1
- package/dist/packem_shared/SupabaseStorage-CCtMTiN5.js +0 -1
- package/dist/packem_shared/UploadThingMetaStorage-DyGNyaAq.js +0 -1
- package/dist/packem_shared/UploadThingStorage-B_fNzNFO.js +0 -1
- package/dist/packem_shared/VercelBlobStorage-D5zy4PPQ.js +0 -1
- package/dist/packem_shared/aws-light-meta-storage-TPyQwLvk.js +0 -4
- package/dist/packem_shared/defaultCloudStorageFileNameValidation-6URTv-Mp.js +0 -1
- package/dist/packem_shared/disk-storage-CbSSPnOf.js +0 -5
- package/dist/packem_shared/isRetryableError-B6ZS_-5I.js +0 -1
- package/dist/packem_shared/s3-base-storage-f_EyFAAt.js +0 -1
- 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,
|
|
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
|
-
* -
|
|
88
|
-
*
|
|
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
|
|
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
|
-
|
|
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
|
|
140
|
-
|
|
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{
|
|
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,
|
|
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-
|
|
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
|
|
164
|
-
|
|
165
|
-
|
|
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-
|
|
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://<bucket>.<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,
|
|
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-
|
|
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';
|
|
@@ -71,13 +71,14 @@ interface BunnyStorageOptions extends BaseStorageOptions {
|
|
|
71
71
|
*
|
|
72
72
|
* Uses `@bunny.net/storage-sdk`. Writes go through the Storage API with an `AccessKey` header; reads either go through `data()` (server-side fetch) or, when a public Pull Zone is configured, through `publicBaseUrl`.
|
|
73
73
|
*
|
|
74
|
-
* **Limitations
|
|
74
|
+
* **Limitations**:
|
|
75
75
|
*
|
|
76
76
|
* - No native server-side `copy` — implemented as download + re-upload.
|
|
77
77
|
* - No `signedUploadUrl` / presigned PUT — Bunny has no such primitive.
|
|
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
|
|
102
|
-
|
|
103
|
-
|
|
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-
|
|
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,
|
|
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-
|
|
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';
|
|
@@ -73,7 +73,7 @@ interface DropboxStorageOptions extends BaseStorageOptions {
|
|
|
73
73
|
* the simple `filesUpload` endpoint up to 150 MB and switch to chunked
|
|
74
74
|
* upload sessions above that threshold.
|
|
75
75
|
*
|
|
76
|
-
* **Auth precedence
|
|
76
|
+
* **Auth precedence**:
|
|
77
77
|
* 1. `client` (pre-built `Dropbox`)
|
|
78
78
|
* 2. `accessToken` (string or `() => string | Promise<string>`)
|
|
79
79
|
* 3. `refreshToken` + `appKey` (+ optional `appSecret`)
|
|
@@ -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
|
|
110
|
-
|
|
111
|
-
|
|
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-
|
|
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};
|