@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.
Files changed (69) hide show
  1. package/README.md +854 -0
  2. package/dist/client-next.d.mts +61 -0
  3. package/dist/client-next.d.mts.map +1 -0
  4. package/dist/client-next.mjs +111 -0
  5. package/dist/client-next.mjs.map +1 -0
  6. package/dist/client-utils-Dx6W25iz.d.mts +43 -0
  7. package/dist/client-utils-Dx6W25iz.d.mts.map +1 -0
  8. package/dist/client.d.mts +28 -0
  9. package/dist/client.d.mts.map +1 -0
  10. package/dist/client.mjs +183 -0
  11. package/dist/client.mjs.map +1 -0
  12. package/dist/env-BVHLmQdh.mjs +128 -0
  13. package/dist/env-BVHLmQdh.mjs.map +1 -0
  14. package/dist/env.mjs +3 -0
  15. package/dist/health-check-D7LnnDec.mjs +746 -0
  16. package/dist/health-check-D7LnnDec.mjs.map +1 -0
  17. package/dist/health-check-im_huJ59.d.mts +116 -0
  18. package/dist/health-check-im_huJ59.d.mts.map +1 -0
  19. package/dist/index.d.mts +60 -0
  20. package/dist/index.d.mts.map +1 -0
  21. package/dist/index.mjs +3 -0
  22. package/dist/keys.d.mts +37 -0
  23. package/dist/keys.d.mts.map +1 -0
  24. package/dist/keys.mjs +253 -0
  25. package/dist/keys.mjs.map +1 -0
  26. package/dist/server-edge.d.mts +28 -0
  27. package/dist/server-edge.d.mts.map +1 -0
  28. package/dist/server-edge.mjs +88 -0
  29. package/dist/server-edge.mjs.map +1 -0
  30. package/dist/server-next.d.mts +183 -0
  31. package/dist/server-next.d.mts.map +1 -0
  32. package/dist/server-next.mjs +1353 -0
  33. package/dist/server-next.mjs.map +1 -0
  34. package/dist/server.d.mts +70 -0
  35. package/dist/server.d.mts.map +1 -0
  36. package/dist/server.mjs +384 -0
  37. package/dist/server.mjs.map +1 -0
  38. package/dist/types.d.mts +321 -0
  39. package/dist/types.d.mts.map +1 -0
  40. package/dist/types.mjs +3 -0
  41. package/dist/validation.d.mts +101 -0
  42. package/dist/validation.d.mts.map +1 -0
  43. package/dist/validation.mjs +590 -0
  44. package/dist/validation.mjs.map +1 -0
  45. package/dist/vercel-blob-07Sx0Akn.d.mts +31 -0
  46. package/dist/vercel-blob-07Sx0Akn.d.mts.map +1 -0
  47. package/dist/vercel-blob-DA8HaYuw.mjs +158 -0
  48. package/dist/vercel-blob-DA8HaYuw.mjs.map +1 -0
  49. package/package.json +111 -0
  50. package/src/actions/blob-upload.ts +171 -0
  51. package/src/actions/index.ts +23 -0
  52. package/src/actions/mediaActions.ts +1071 -0
  53. package/src/actions/productMediaActions.ts +538 -0
  54. package/src/auth-helpers.ts +386 -0
  55. package/src/capabilities.ts +225 -0
  56. package/src/client-next.ts +184 -0
  57. package/src/client-utils.ts +292 -0
  58. package/src/client.ts +102 -0
  59. package/src/constants.ts +88 -0
  60. package/src/health-check.ts +81 -0
  61. package/src/multi-storage.ts +230 -0
  62. package/src/multipart.ts +497 -0
  63. package/src/retry-utils.test.ts +118 -0
  64. package/src/retry-utils.ts +59 -0
  65. package/src/server-edge.ts +129 -0
  66. package/src/server-next.ts +14 -0
  67. package/src/server.ts +666 -0
  68. package/src/validation.test.ts +312 -0
  69. 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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"}