@od-oneapp/storage 2026.1.1301
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/README.md +854 -0
- package/dist/client-next.d.mts +61 -0
- package/dist/client-next.d.mts.map +1 -0
- package/dist/client-next.mjs +111 -0
- package/dist/client-next.mjs.map +1 -0
- package/dist/client-utils-Dx6W25iz.d.mts +43 -0
- package/dist/client-utils-Dx6W25iz.d.mts.map +1 -0
- package/dist/client.d.mts +28 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +183 -0
- package/dist/client.mjs.map +1 -0
- package/dist/env-BVHLmQdh.mjs +128 -0
- package/dist/env-BVHLmQdh.mjs.map +1 -0
- package/dist/env.mjs +3 -0
- package/dist/health-check-D7LnnDec.mjs +746 -0
- package/dist/health-check-D7LnnDec.mjs.map +1 -0
- package/dist/health-check-im_huJ59.d.mts +116 -0
- package/dist/health-check-im_huJ59.d.mts.map +1 -0
- package/dist/index.d.mts +60 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/keys.d.mts +37 -0
- package/dist/keys.d.mts.map +1 -0
- package/dist/keys.mjs +253 -0
- package/dist/keys.mjs.map +1 -0
- package/dist/server-edge.d.mts +28 -0
- package/dist/server-edge.d.mts.map +1 -0
- package/dist/server-edge.mjs +88 -0
- package/dist/server-edge.mjs.map +1 -0
- package/dist/server-next.d.mts +183 -0
- package/dist/server-next.d.mts.map +1 -0
- package/dist/server-next.mjs +1353 -0
- package/dist/server-next.mjs.map +1 -0
- package/dist/server.d.mts +70 -0
- package/dist/server.d.mts.map +1 -0
- package/dist/server.mjs +384 -0
- package/dist/server.mjs.map +1 -0
- package/dist/types.d.mts +321 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +3 -0
- package/dist/validation.d.mts +101 -0
- package/dist/validation.d.mts.map +1 -0
- package/dist/validation.mjs +590 -0
- package/dist/validation.mjs.map +1 -0
- package/dist/vercel-blob-07Sx0Akn.d.mts +31 -0
- package/dist/vercel-blob-07Sx0Akn.d.mts.map +1 -0
- package/dist/vercel-blob-DA8HaYuw.mjs +158 -0
- package/dist/vercel-blob-DA8HaYuw.mjs.map +1 -0
- package/package.json +111 -0
- package/src/actions/blob-upload.ts +171 -0
- package/src/actions/index.ts +23 -0
- package/src/actions/mediaActions.ts +1071 -0
- package/src/actions/productMediaActions.ts +538 -0
- package/src/auth-helpers.ts +386 -0
- package/src/capabilities.ts +225 -0
- package/src/client-next.ts +184 -0
- package/src/client-utils.ts +292 -0
- package/src/client.ts +102 -0
- package/src/constants.ts +88 -0
- package/src/health-check.ts +81 -0
- package/src/multi-storage.ts +230 -0
- package/src/multipart.ts +497 -0
- package/src/retry-utils.test.ts +118 -0
- package/src/retry-utils.ts +59 -0
- package/src/server-edge.ts +129 -0
- package/src/server-next.ts +14 -0
- package/src/server.ts +666 -0
- package/src/validation.test.ts +312 -0
- package/src/validation.ts +827 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { safeEnv } from "./index.mjs";
|
|
2
|
+
import { KeyGenerationOptions, KeyPattern, generateMultipleKeys, generateStorageKey, isKeyPattern, normalizeStorageKey, parseStorageKey, sanitizeStorageKey, validateStorageKey } from "./keys.mjs";
|
|
3
|
+
import { ListOptions, StorageObject, StorageProvider, StorageProviderType, UploadOptions } from "./types.mjs";
|
|
4
|
+
import "./client.mjs";
|
|
5
|
+
import { t as VercelBlobProvider } from "./vercel-blob-07Sx0Akn.mjs";
|
|
6
|
+
|
|
7
|
+
//#region src/server-edge.d.ts
|
|
8
|
+
declare function createEdgeStorageProvider(token: string): VercelBlobProvider;
|
|
9
|
+
declare function getEdgeStorage(): VercelBlobProvider;
|
|
10
|
+
declare const edgeStorage: {
|
|
11
|
+
delete: (key: string) => Promise<void>;
|
|
12
|
+
download: (key: string) => Promise<Blob>;
|
|
13
|
+
exists: (key: string) => Promise<boolean>;
|
|
14
|
+
getMetadata: (key: string) => Promise<StorageObject>;
|
|
15
|
+
getUrl: (key: string, options?: {
|
|
16
|
+
expiresIn?: number;
|
|
17
|
+
}) => Promise<string>;
|
|
18
|
+
list: (options?: ListOptions) => Promise<StorageObject[]>;
|
|
19
|
+
upload: (key: string, data: ArrayBuffer | Blob | Buffer | File | ReadableStream, options?: UploadOptions) => Promise<StorageObject>;
|
|
20
|
+
};
|
|
21
|
+
declare const EDGE_LIMITATIONS: {
|
|
22
|
+
readonly supportedProviders: readonly ["vercel-blob"];
|
|
23
|
+
readonly unsupportedFeatures: readonly ["Cloudflare R2 (requires Node.js APIs)", "Cloudflare Images (requires Node.js APIs)", "Custom multipart uploads (use Vercel Blob built-in)", "Presigned URL generation (use Vercel Blob direct upload)", "File system operations"];
|
|
24
|
+
readonly recommendedAlternative: "@od-oneapp/storage/server/next";
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
export { EDGE_LIMITATIONS, type KeyGenerationOptions, type KeyPattern, type ListOptions, type StorageObject, type StorageProvider, type StorageProviderType, type UploadOptions, VercelBlobProvider, createEdgeStorageProvider, edgeStorage, generateMultipleKeys, generateStorageKey, getEdgeStorage, isKeyPattern, normalizeStorageKey, parseStorageKey, safeEnv, sanitizeStorageKey, validateStorageKey };
|
|
28
|
+
//# sourceMappingURL=server-edge.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-edge.d.mts","names":[],"sources":["../src/server-edge.ts"],"mappings":";;;;;;;iBAuDgB,yBAAA,CAA0B,KAAA,WAAgB,kBAAA;AAAA,iBAqB1C,cAAA,CAAA,GAAkB,kBAAA;AAAA,cAgBrB,WAAA;2BACS,OAAA;6BACE,OAAA,CAAA,IAAA;2BACF,OAAA;gCACK,OAAA,CADL,aAAA;wBAEA,OAAA;IAAc,SAAA;EAAA,MAAoB,OAAA;mBACrC,WAAA,KAAW,OAAA,CAAA,aAAA;wBAEf,IAAA,EACL,WAAA,GAAc,IAAA,GAAO,MAAA,GAAS,IAAA,GAAO,cAAA,EAAc,OAAA,GAC/C,aAAA,KAAa,OAAA,CAAA,aAAA;AAAA;AAAA,cAgBd,gBAAA;EAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { r as safeEnv } from "./env-BVHLmQdh.mjs";
|
|
2
|
+
import { generateMultipleKeys, generateStorageKey, isKeyPattern, normalizeStorageKey, parseStorageKey, sanitizeStorageKey, validateStorageKey } from "./keys.mjs";
|
|
3
|
+
import { t as VercelBlobProvider } from "./vercel-blob-DA8HaYuw.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/server-edge.ts
|
|
6
|
+
/**
|
|
7
|
+
* @fileoverview Server-side storage exports for Edge Runtime
|
|
8
|
+
*
|
|
9
|
+
* This file provides server-side storage functionality specifically for Edge Runtime environments.
|
|
10
|
+
* Uses Web APIs only - no Node.js APIs allowed.
|
|
11
|
+
*
|
|
12
|
+
* Only Vercel Blob provider is supported in edge runtime.
|
|
13
|
+
*
|
|
14
|
+
* @module @od-oneapp/storage/server/edge
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Edge-compatible storage factory
|
|
18
|
+
* Only supports Vercel Blob in edge runtime
|
|
19
|
+
*
|
|
20
|
+
* @param token - Vercel Blob token
|
|
21
|
+
* @returns Vercel Blob provider instance
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { createEdgeStorageProvider } from '@od-oneapp/storage/server/edge';
|
|
26
|
+
*
|
|
27
|
+
* const storage = createEdgeStorageProvider(process.env.VERCEL_BLOB_READ_WRITE_TOKEN!);
|
|
28
|
+
* await storage.upload('file.jpg', fileData);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
function createEdgeStorageProvider(token) {
|
|
32
|
+
if (!token) throw new Error("VERCEL_BLOB_READ_WRITE_TOKEN is required for edge storage");
|
|
33
|
+
return new VercelBlobProvider(token);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get edge storage provider from environment
|
|
37
|
+
*
|
|
38
|
+
* @returns Vercel Blob provider instance
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import { getEdgeStorage } from '@od-oneapp/storage/server/edge';
|
|
43
|
+
*
|
|
44
|
+
* const storage = getEdgeStorage();
|
|
45
|
+
* await storage.upload('file.jpg', fileData);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
function getEdgeStorage() {
|
|
49
|
+
const env = safeEnv();
|
|
50
|
+
if (!env.VERCEL_BLOB_READ_WRITE_TOKEN) throw new Error("VERCEL_BLOB_READ_WRITE_TOKEN is required for edge storage");
|
|
51
|
+
return new VercelBlobProvider(env.VERCEL_BLOB_READ_WRITE_TOKEN);
|
|
52
|
+
}
|
|
53
|
+
const edgeStorage = {
|
|
54
|
+
delete: (key) => getEdgeStorage().delete(key),
|
|
55
|
+
download: (key) => getEdgeStorage().download(key),
|
|
56
|
+
exists: (key) => getEdgeStorage().exists(key),
|
|
57
|
+
getMetadata: (key) => getEdgeStorage().getMetadata(key),
|
|
58
|
+
getUrl: (key, options) => getEdgeStorage().getUrl(key, options),
|
|
59
|
+
list: (options) => getEdgeStorage().list(options),
|
|
60
|
+
upload: (key, data, options) => getEdgeStorage().upload(key, data, options)
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Edge runtime limitations notice
|
|
64
|
+
*
|
|
65
|
+
* Edge Runtime has the following limitations:
|
|
66
|
+
* - Only Vercel Blob is supported (R2 requires Node.js APIs)
|
|
67
|
+
* - No file system access
|
|
68
|
+
* - Limited to Web APIs only
|
|
69
|
+
* - No multipart uploads (use Vercel Blob's built-in multipart)
|
|
70
|
+
* - No presigned URLs (use Vercel Blob's direct upload)
|
|
71
|
+
*
|
|
72
|
+
* For full functionality, use @od-oneapp/storage/server/next instead.
|
|
73
|
+
*/
|
|
74
|
+
const EDGE_LIMITATIONS = {
|
|
75
|
+
supportedProviders: ["vercel-blob"],
|
|
76
|
+
unsupportedFeatures: [
|
|
77
|
+
"Cloudflare R2 (requires Node.js APIs)",
|
|
78
|
+
"Cloudflare Images (requires Node.js APIs)",
|
|
79
|
+
"Custom multipart uploads (use Vercel Blob built-in)",
|
|
80
|
+
"Presigned URL generation (use Vercel Blob direct upload)",
|
|
81
|
+
"File system operations"
|
|
82
|
+
],
|
|
83
|
+
recommendedAlternative: "@od-oneapp/storage/server/next"
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
export { EDGE_LIMITATIONS, VercelBlobProvider, createEdgeStorageProvider, edgeStorage, generateMultipleKeys, generateStorageKey, getEdgeStorage, isKeyPattern, normalizeStorageKey, parseStorageKey, safeEnv, sanitizeStorageKey, validateStorageKey };
|
|
88
|
+
//# sourceMappingURL=server-edge.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-edge.mjs","names":[],"sources":["../src/server-edge.ts"],"sourcesContent":["/**\n * @fileoverview Server-side storage exports for Edge Runtime\n *\n * This file provides server-side storage functionality specifically for Edge Runtime environments.\n * Uses Web APIs only - no Node.js APIs allowed.\n *\n * Only Vercel Blob provider is supported in edge runtime.\n *\n * @module @repo/storage/server/edge\n */\n\nimport { safeEnv } from '../env';\nimport { VercelBlobProvider } from '../providers/vercel-blob';\n\n// Re-export edge-compatible types\nexport type {\n ListOptions,\n StorageObject,\n StorageProvider,\n StorageProviderType,\n UploadOptions,\n} from '../types';\n\n// Re-export environment utilities (edge-safe)\nexport { safeEnv } from '../env';\nexport { VercelBlobProvider };\n\n// Re-export key utilities\nexport {\n generateMultipleKeys,\n generateStorageKey,\n isKeyPattern,\n normalizeStorageKey,\n parseStorageKey,\n sanitizeStorageKey,\n validateStorageKey,\n type KeyGenerationOptions,\n type KeyPattern,\n} from '../keys';\n\n/**\n * Edge-compatible storage factory\n * Only supports Vercel Blob in edge runtime\n *\n * @param token - Vercel Blob token\n * @returns Vercel Blob provider instance\n *\n * @example\n * ```typescript\n * import { createEdgeStorageProvider } from '@repo/storage/server/edge';\n *\n * const storage = createEdgeStorageProvider(process.env.VERCEL_BLOB_READ_WRITE_TOKEN!);\n * await storage.upload('file.jpg', fileData);\n * ```\n */\nexport function createEdgeStorageProvider(token: string): VercelBlobProvider {\n if (!token) {\n throw new Error('VERCEL_BLOB_READ_WRITE_TOKEN is required for edge storage');\n }\n\n return new VercelBlobProvider(token);\n}\n\n/**\n * Get edge storage provider from environment\n *\n * @returns Vercel Blob provider instance\n *\n * @example\n * ```typescript\n * import { getEdgeStorage } from '@repo/storage/server/edge';\n *\n * const storage = getEdgeStorage();\n * await storage.upload('file.jpg', fileData);\n * ```\n */\nexport function getEdgeStorage(): VercelBlobProvider {\n const env = safeEnv();\n\n if (!env.VERCEL_BLOB_READ_WRITE_TOKEN) {\n throw new Error('VERCEL_BLOB_READ_WRITE_TOKEN is required for edge storage');\n }\n\n return new VercelBlobProvider(env.VERCEL_BLOB_READ_WRITE_TOKEN);\n}\n\n/**\n * Edge storage helper functions\n * Direct access to Vercel Blob methods\n */\nimport type { ListOptions, UploadOptions } from '../types';\n\nexport const edgeStorage = {\n delete: (key: string) => getEdgeStorage().delete(key),\n download: (key: string) => getEdgeStorage().download(key),\n exists: (key: string) => getEdgeStorage().exists(key),\n getMetadata: (key: string) => getEdgeStorage().getMetadata(key),\n getUrl: (key: string, options?: { expiresIn?: number }) => getEdgeStorage().getUrl(key, options),\n list: (options?: ListOptions) => getEdgeStorage().list(options),\n upload: (\n key: string,\n data: ArrayBuffer | Blob | Buffer | File | ReadableStream,\n options?: UploadOptions,\n ) => getEdgeStorage().upload(key, data, options),\n};\n\n/**\n * Edge runtime limitations notice\n *\n * Edge Runtime has the following limitations:\n * - Only Vercel Blob is supported (R2 requires Node.js APIs)\n * - No file system access\n * - Limited to Web APIs only\n * - No multipart uploads (use Vercel Blob's built-in multipart)\n * - No presigned URLs (use Vercel Blob's direct upload)\n *\n * For full functionality, use @repo/storage/server/next instead.\n */\nexport const EDGE_LIMITATIONS = {\n supportedProviders: ['vercel-blob'] as const,\n unsupportedFeatures: [\n 'Cloudflare R2 (requires Node.js APIs)',\n 'Cloudflare Images (requires Node.js APIs)',\n 'Custom multipart uploads (use Vercel Blob built-in)',\n 'Presigned URL generation (use Vercel Blob direct upload)',\n 'File system operations',\n ],\n recommendedAlternative: '@repo/storage/server/next',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,SAAgB,0BAA0B,OAAmC;AAC3E,KAAI,CAAC,MACH,OAAM,IAAI,MAAM,4DAA4D;AAG9E,QAAO,IAAI,mBAAmB,MAAM;;;;;;;;;;;;;;;AAgBtC,SAAgB,iBAAqC;CACnD,MAAM,MAAM,SAAS;AAErB,KAAI,CAAC,IAAI,6BACP,OAAM,IAAI,MAAM,4DAA4D;AAG9E,QAAO,IAAI,mBAAmB,IAAI,6BAA6B;;AASjE,MAAa,cAAc;CACzB,SAAS,QAAgB,gBAAgB,CAAC,OAAO,IAAI;CACrD,WAAW,QAAgB,gBAAgB,CAAC,SAAS,IAAI;CACzD,SAAS,QAAgB,gBAAgB,CAAC,OAAO,IAAI;CACrD,cAAc,QAAgB,gBAAgB,CAAC,YAAY,IAAI;CAC/D,SAAS,KAAa,YAAqC,gBAAgB,CAAC,OAAO,KAAK,QAAQ;CAChG,OAAO,YAA0B,gBAAgB,CAAC,KAAK,QAAQ;CAC/D,SACE,KACA,MACA,YACG,gBAAgB,CAAC,OAAO,KAAK,MAAM,QAAQ;CACjD;;;;;;;;;;;;;AAcD,MAAa,mBAAmB;CAC9B,oBAAoB,CAAC,cAAc;CACnC,qBAAqB;EACnB;EACA;EACA;EACA;EACA;EACD;CACD,wBAAwB;CACzB"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { env, safeEnv } from "./index.mjs";
|
|
2
|
+
import { validateStorageKey } from "./keys.mjs";
|
|
3
|
+
import { ConfigError, DownloadError, NetworkError, ProviderError, QuotaInfo, StorageError, StorageErrorCode, UploadError, ValidationError, ValidationOptions, createStorageError, formatFileSize, getErrorCode, getQuotaInfo, isQuotaExceeded, isRetryableError, parseFileSize, validateFileSize, validateMimeType, validateUploadOptions } from "./validation.mjs";
|
|
4
|
+
import { BlobListResponse, BulkDeleteResponse, BulkMoveResponse, ClientUploadOptions, CloudflareImagesBatchToken, CloudflareImagesListOptions, CloudflareImagesSigningKey, CloudflareImagesStats, CloudflareImagesTransformOptions, CloudflareImagesVariant, DirectUploadResponse, EnhancedR2Credentials, HandleUploadConfig, ListOptions, MediaActionResponse, MultiStorageConfig, MultipartUploadOptions, OnBeforeGenerateTokenResult, PresignedUploadUrl, R2Credentials, StorageCapabilities, StorageConfig, StorageObject, StorageProvider, StorageProviderType, StreamUploadOptions, UploadOptions, UploadProgress, VercelBlobOptions } from "./types.mjs";
|
|
5
|
+
import { t as VercelBlobProvider } from "./vercel-blob-07Sx0Akn.mjs";
|
|
6
|
+
import { _ as getOptimalPartSize, a as describeProviderCapabilities, b as MultiStorageManager, c as getProviderCapabilities, d as hasCapability, f as validateProviderCapabilities, g as createMultipartUploadManager, h as MultipartUploadState, i as checkProviderSuitability, l as hasAllCapabilities, m as MultipartUploadResult, n as checkProviderHealth, o as getBestProvider, p as MultipartUploadManager, r as storageHealthCheck, s as getCapabilityMatrix, t as HealthCheckResult, u as hasAnyCapability, v as hasMultipartSupport, x as CloudflareImagesProvider, y as CloudflareR2Provider } from "./health-check-im_huJ59.mjs";
|
|
7
|
+
import { createStorageProvider, getMultiStorage, getProviderCapabilitiesFromConfig, getStorage, initializeMultiStorage, initializeStorage, multiStorage, resetStorageState, storage, validateStorageConfig } from "./server.mjs";
|
|
8
|
+
|
|
9
|
+
//#region src/actions/mediaActions.d.ts
|
|
10
|
+
declare function uploadMediaAction(key: string, data: ArrayBuffer | Blob | Buffer | File | ReadableStream, options?: UploadOptions & {
|
|
11
|
+
maxFileSize?: number;
|
|
12
|
+
allowedMimeTypes?: string[];
|
|
13
|
+
}): Promise<MediaActionResponse<StorageObject>>;
|
|
14
|
+
declare function getMediaAction(key: string): Promise<MediaActionResponse<StorageObject>>;
|
|
15
|
+
declare function listMediaAction(options?: ListOptions): Promise<MediaActionResponse<StorageObject[]>>;
|
|
16
|
+
declare function deleteMediaAction(key: string): Promise<MediaActionResponse<void>>;
|
|
17
|
+
declare function existsMediaAction(key: string): Promise<MediaActionResponse<boolean>>;
|
|
18
|
+
declare function getMediaUrlAction(key: string, options?: {
|
|
19
|
+
expiresIn?: number;
|
|
20
|
+
context?: 'product' | 'user' | 'admin' | 'public';
|
|
21
|
+
forceSign?: boolean;
|
|
22
|
+
}): Promise<MediaActionResponse<string>>;
|
|
23
|
+
declare function getProductMediaUrlsAction(keys: string[], options?: {
|
|
24
|
+
expiresIn?: number;
|
|
25
|
+
variant?: string;
|
|
26
|
+
}): Promise<MediaActionResponse<Array<{
|
|
27
|
+
key: string;
|
|
28
|
+
url: string;
|
|
29
|
+
}>>>;
|
|
30
|
+
declare function getProductUploadUrlAction(filename: string, productId: string, options?: {
|
|
31
|
+
expiresIn?: number;
|
|
32
|
+
contentType?: string;
|
|
33
|
+
maxSizeBytes?: number;
|
|
34
|
+
}): Promise<MediaActionResponse<{
|
|
35
|
+
uploadUrl: string;
|
|
36
|
+
key: string;
|
|
37
|
+
}>>;
|
|
38
|
+
declare function downloadMediaAction(key: string): Promise<MediaActionResponse<Blob>>;
|
|
39
|
+
declare function bulkDeleteMediaAction(keys: string[]): Promise<MediaActionResponse<BulkDeleteResponse>>;
|
|
40
|
+
declare function bulkMoveMediaAction(operations: Array<{
|
|
41
|
+
sourceKey: string;
|
|
42
|
+
destinationKey: string;
|
|
43
|
+
}>): Promise<MediaActionResponse<BulkMoveResponse>>;
|
|
44
|
+
declare function bulkImportFromUrlsAction(imports: Array<{
|
|
45
|
+
sourceUrl: string;
|
|
46
|
+
destinationKey?: string;
|
|
47
|
+
metadata?: {
|
|
48
|
+
altText?: string;
|
|
49
|
+
productId?: string;
|
|
50
|
+
userId?: string;
|
|
51
|
+
type?: 'IMAGE' | 'VIDEO' | 'DOCUMENT';
|
|
52
|
+
};
|
|
53
|
+
}>, options?: {
|
|
54
|
+
batchSize?: number;
|
|
55
|
+
provider?: string;
|
|
56
|
+
timeout?: number;
|
|
57
|
+
}): Promise<MediaActionResponse<{
|
|
58
|
+
succeeded: Array<{
|
|
59
|
+
sourceUrl: string;
|
|
60
|
+
destinationKey: string;
|
|
61
|
+
storageObject: StorageObject;
|
|
62
|
+
}>;
|
|
63
|
+
failed: Array<{
|
|
64
|
+
sourceUrl: string;
|
|
65
|
+
error: string;
|
|
66
|
+
}>;
|
|
67
|
+
totalProcessed: number;
|
|
68
|
+
}>>;
|
|
69
|
+
declare function importFromUrlAction(sourceUrl: string, destinationKey?: string, options?: {
|
|
70
|
+
metadata?: Record<string, any>;
|
|
71
|
+
onProgress?: (progress: number) => void;
|
|
72
|
+
}): Promise<MediaActionResponse<StorageObject>>;
|
|
73
|
+
declare function uploadToProviderAction(providerName: string, key: string, data: ArrayBuffer | Blob | Buffer | File | ReadableStream, options?: UploadOptions): Promise<MediaActionResponse<StorageObject>>;
|
|
74
|
+
declare function listProvidersAction(): Promise<MediaActionResponse<string[]>>;
|
|
75
|
+
declare function copyBetweenProvidersAction(sourceProvider: string, destinationProvider: string, key: string, options?: UploadOptions): Promise<MediaActionResponse<StorageObject>>;
|
|
76
|
+
declare function createFolderAction(key: string, options?: UploadOptions): Promise<MediaActionResponse<StorageObject>>;
|
|
77
|
+
declare function copyMediaAction(sourceKey: string, destinationKey: string, options?: UploadOptions): Promise<MediaActionResponse<StorageObject>>;
|
|
78
|
+
declare function getPresignedUploadUrlAction(key: string, options?: {
|
|
79
|
+
expiresIn?: number;
|
|
80
|
+
contentType?: string;
|
|
81
|
+
}): Promise<MediaActionResponse<{
|
|
82
|
+
url: string;
|
|
83
|
+
fields: Record<string, string>;
|
|
84
|
+
expiresAt: Date;
|
|
85
|
+
}>>;
|
|
86
|
+
declare function getStorageCapabilitiesAction(): Promise<MediaActionResponse<{
|
|
87
|
+
multipart: boolean;
|
|
88
|
+
presignedUrls: boolean;
|
|
89
|
+
progressTracking: boolean;
|
|
90
|
+
abortSignal: boolean;
|
|
91
|
+
metadata: boolean;
|
|
92
|
+
customDomains: boolean;
|
|
93
|
+
edgeCompatible: boolean;
|
|
94
|
+
}>>;
|
|
95
|
+
declare function validateFileAction(file: {
|
|
96
|
+
size: number;
|
|
97
|
+
type: string;
|
|
98
|
+
name: string;
|
|
99
|
+
}, options?: {
|
|
100
|
+
maxFileSize?: number;
|
|
101
|
+
allowedMimeTypes?: string[];
|
|
102
|
+
allowedExtensions?: string[];
|
|
103
|
+
}): Promise<MediaActionResponse<{
|
|
104
|
+
valid: boolean;
|
|
105
|
+
errors: string[];
|
|
106
|
+
}>>;
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/actions/productMediaActions.d.ts
|
|
109
|
+
declare function uploadProductMediaAction(productId: string, files: Array<{
|
|
110
|
+
filename: string;
|
|
111
|
+
contentType: string;
|
|
112
|
+
data: ArrayBuffer | Blob | Buffer | File;
|
|
113
|
+
}>, options?: {
|
|
114
|
+
context: 'admin' | 'vendor';
|
|
115
|
+
altText?: string;
|
|
116
|
+
description?: string;
|
|
117
|
+
tags?: string[];
|
|
118
|
+
}): Promise<MediaActionResponse<Array<{
|
|
119
|
+
key: string;
|
|
120
|
+
url: string;
|
|
121
|
+
mediaId: string;
|
|
122
|
+
}>>>;
|
|
123
|
+
declare function getProductMediaAction(productId: string, options?: {
|
|
124
|
+
context: 'admin' | 'customer' | 'vendor';
|
|
125
|
+
variant?: 'thumbnail' | 'gallery' | 'hero' | 'public';
|
|
126
|
+
expiresIn?: number;
|
|
127
|
+
}): Promise<MediaActionResponse<Array<{
|
|
128
|
+
id: string;
|
|
129
|
+
key: string;
|
|
130
|
+
url: string;
|
|
131
|
+
altText?: string;
|
|
132
|
+
sortOrder: number;
|
|
133
|
+
contentType: string;
|
|
134
|
+
size: number;
|
|
135
|
+
}>>>;
|
|
136
|
+
declare function deleteProductMediaAction(productId: string, mediaId: string, options?: {
|
|
137
|
+
context: 'admin' | 'vendor';
|
|
138
|
+
hardDelete?: boolean;
|
|
139
|
+
}): Promise<MediaActionResponse<void>>;
|
|
140
|
+
declare function reorderProductMediaAction(productId: string, _mediaOrder: Array<{
|
|
141
|
+
mediaId: string;
|
|
142
|
+
sortOrder: number;
|
|
143
|
+
}>, _options?: {
|
|
144
|
+
context: 'admin' | 'vendor';
|
|
145
|
+
}): Promise<MediaActionResponse<void>>;
|
|
146
|
+
declare function getProductUploadPresignedUrlsAction(productId: string, filenames: string[], options?: {
|
|
147
|
+
context: 'admin' | 'vendor';
|
|
148
|
+
expiresIn?: number;
|
|
149
|
+
maxSizeBytes?: number;
|
|
150
|
+
}): Promise<MediaActionResponse<Array<{
|
|
151
|
+
filename: string;
|
|
152
|
+
uploadUrl: string;
|
|
153
|
+
key: string;
|
|
154
|
+
fields?: Record<string, string>;
|
|
155
|
+
}>>>;
|
|
156
|
+
declare function bulkUpdateProductMediaAction(productId: string, _updates: Array<{
|
|
157
|
+
mediaId: string;
|
|
158
|
+
altText?: string;
|
|
159
|
+
description?: string;
|
|
160
|
+
tags?: string[];
|
|
161
|
+
}>, _options?: {
|
|
162
|
+
context: 'admin' | 'vendor';
|
|
163
|
+
}): Promise<MediaActionResponse<void>>;
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/actions/blob-upload.d.ts
|
|
166
|
+
type OnBeforeGenerateToken = (pathname: string, clientPayload?: string) => Promise<{
|
|
167
|
+
allowed: boolean;
|
|
168
|
+
token?: string;
|
|
169
|
+
allowedContentTypes?: string[];
|
|
170
|
+
maximumSizeInBytes?: number;
|
|
171
|
+
tokenPayload?: string | null;
|
|
172
|
+
}>;
|
|
173
|
+
type OnUploadCompleted = (blob: {
|
|
174
|
+
url: string;
|
|
175
|
+
pathname: string;
|
|
176
|
+
contentType?: string;
|
|
177
|
+
contentDisposition?: string;
|
|
178
|
+
size: number;
|
|
179
|
+
}, clientPayload?: string) => Promise<void>;
|
|
180
|
+
declare function handleBlobUpload(request: Request, config?: HandleUploadConfig): Promise<Response>;
|
|
181
|
+
//#endregion
|
|
182
|
+
export { BlobListResponse, BulkDeleteResponse, BulkMoveResponse, ClientUploadOptions, CloudflareImagesBatchToken, CloudflareImagesListOptions, CloudflareImagesProvider, CloudflareImagesSigningKey, CloudflareImagesStats, CloudflareImagesTransformOptions, CloudflareImagesVariant, CloudflareR2Provider, ConfigError, DirectUploadResponse, DownloadError, EnhancedR2Credentials, HandleUploadConfig, HealthCheckResult, ListOptions, MediaActionResponse, MultiStorageConfig, MultiStorageManager, MultipartUploadManager, MultipartUploadOptions, MultipartUploadResult, MultipartUploadState, NetworkError, OnBeforeGenerateToken, OnBeforeGenerateTokenResult, OnUploadCompleted, PresignedUploadUrl, ProviderError, QuotaInfo, R2Credentials, StorageCapabilities, StorageConfig, StorageError, StorageErrorCode, StorageObject, StorageProvider, StorageProviderType, StreamUploadOptions, UploadError, UploadOptions, UploadProgress, ValidationError, ValidationOptions, VercelBlobOptions, VercelBlobProvider, bulkDeleteMediaAction, bulkImportFromUrlsAction, bulkMoveMediaAction, bulkUpdateProductMediaAction, checkProviderHealth, checkProviderSuitability, copyBetweenProvidersAction, copyMediaAction, createFolderAction, createMultipartUploadManager, createStorageError, createStorageProvider, deleteMediaAction, deleteProductMediaAction, describeProviderCapabilities, downloadMediaAction, env, existsMediaAction, formatFileSize, getBestProvider, getCapabilityMatrix, getErrorCode, getMediaAction, getMediaUrlAction, getMultiStorage, getOptimalPartSize, getPresignedUploadUrlAction, getProductMediaAction, getProductMediaUrlsAction, getProductUploadPresignedUrlsAction, getProductUploadUrlAction, getProviderCapabilities, getProviderCapabilitiesFromConfig, getQuotaInfo, getStorage, getStorageCapabilitiesAction, handleBlobUpload, hasAllCapabilities, hasAnyCapability, hasCapability, hasMultipartSupport, importFromUrlAction, initializeMultiStorage, initializeStorage, isQuotaExceeded, isRetryableError, listMediaAction, listProvidersAction, multiStorage, parseFileSize, reorderProductMediaAction, resetStorageState, safeEnv, storage, storageHealthCheck, uploadMediaAction, uploadProductMediaAction, uploadToProviderAction, validateFileAction, validateFileSize, validateMimeType, validateProviderCapabilities, validateStorageConfig, validateStorageKey, validateUploadOptions };
|
|
183
|
+
//# sourceMappingURL=server-next.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-next.d.mts","names":[],"sources":["../src/actions/mediaActions.ts","../src/actions/productMediaActions.ts","../src/actions/blob-upload.ts"],"mappings":"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"}
|