@visulima/storage 1.0.9 → 1.0.11

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 (174) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/adapter/nuxt/module.d.ts +9 -8
  3. package/dist/ai/ai-sdk/index.d.ts +52 -59
  4. package/dist/ai/claude/index.d.ts +105 -119
  5. package/dist/ai/openai/index.d.ts +87 -99
  6. package/dist/ai/tanstack/index.d.ts +54 -61
  7. package/dist/handler/http/fetch/index.d.ts +202 -201
  8. package/dist/handler/http/fetch/index.js +1 -1
  9. package/dist/handler/http/hono/index.d.ts +60 -59
  10. package/dist/handler/http/hono/index.js +1 -1
  11. package/dist/handler/http/nextjs/index.d.ts +55 -54
  12. package/dist/handler/http/nextjs/index.js +1 -1
  13. package/dist/handler/http/node/index.d.ts +234 -246
  14. package/dist/handler/http/node/index.js +1 -1
  15. package/dist/handler/http/solid-start/index.d.ts +55 -54
  16. package/dist/handler/http/solid-start/index.js +1 -1
  17. package/dist/index.d.ts +71 -70
  18. package/dist/index.js +1 -1
  19. package/dist/packem_shared/{AbstractBaseStorage-CiPEMcuo.js → AbstractBaseStorage-CLsYmMZg.js} +1 -1
  20. package/dist/packem_shared/AwsLightStorage-DGSPFUqr.js +1 -0
  21. package/dist/packem_shared/AzureStorage-DvKk_hhz.js +1 -0
  22. package/dist/packem_shared/BoxMetaStorage-CJsyeQ63.js +1 -0
  23. package/dist/packem_shared/{BoxStorage-DbGqBLux.js → BoxStorage-CmM95wi2.js} +1 -1
  24. package/dist/packem_shared/BunS3MetaStorage-CJsyeQ63.js +1 -0
  25. package/dist/packem_shared/{BunS3Storage-DNvimm9e.js → BunS3Storage-B_roVJ29.js} +1 -1
  26. package/dist/packem_shared/BunnyMetaStorage-CJsyeQ63.js +1 -0
  27. package/dist/packem_shared/{BunnyStorage-C7d0opLL.js → BunnyStorage-eZ1QDVaY.js} +1 -1
  28. package/dist/packem_shared/CloudinaryMetaStorage-Bv_YCZ0Q.js +1 -0
  29. package/dist/packem_shared/{CloudinaryStorage-Dc3XA2lP.js → CloudinaryStorage-CpH2f0Fv.js} +1 -1
  30. package/dist/packem_shared/DiskStorage-DzjjqCzo.js +1 -0
  31. package/dist/packem_shared/{DiskStorageWithChecksum-vFCubS6K.js → DiskStorageWithChecksum-MZkDEyts.js} +1 -1
  32. package/dist/packem_shared/DropboxMetaStorage-CJsyeQ63.js +1 -0
  33. package/dist/packem_shared/{DropboxStorage-CY9Ggu3m.js → DropboxStorage-BB9NoWK2.js} +1 -1
  34. package/dist/packem_shared/{Files-CpIcMjP0.js → Files-DyMJ9FPN.js} +1 -1
  35. package/dist/packem_shared/FirebaseMetaStorage-Bv_YCZ0Q.js +1 -0
  36. package/dist/packem_shared/{FirebaseStorage-D6O9CJXN.js → FirebaseStorage-BgbxzYNC.js} +1 -1
  37. package/dist/packem_shared/FtpMetaStorage-CJsyeQ63.js +1 -0
  38. package/dist/packem_shared/{FtpStorage-DbEjbq8z.js → FtpStorage-CNqXDz7P.js} +1 -1
  39. package/dist/packem_shared/{GCSMetaStorage-DT8K6zdm.js → GCSMetaStorage-gEhWlpfS.js} +1 -1
  40. package/dist/packem_shared/{GCStorage-6BHkFlEs.js → GCStorage-CRd5vjok.js} +1 -1
  41. package/dist/packem_shared/GoogleDriveMetaStorage-B0gLF7Io.js +1 -0
  42. package/dist/packem_shared/{GoogleDriveStorage-Bklsz7Bh.js → GoogleDriveStorage-Du7uBhSm.js} +1 -1
  43. package/dist/packem_shared/{LocalMetaStorage-BhicZnNl.js → LocalMetaStorage-CcGfFG39.js} +1 -1
  44. package/dist/packem_shared/{MemoryStorage-9gbWd09l.js → MemoryStorage-ChKyI6OY.js} +1 -1
  45. package/dist/packem_shared/{Multipart-D0ok6BBy.js → Multipart-C35TR2qL.js} +1 -1
  46. package/dist/packem_shared/{Multipart-CQjYqU--.js → Multipart-V64Bg5dt.js} +1 -1
  47. package/dist/packem_shared/NetlifyBlobMetaStorage-Bv_YCZ0Q.js +1 -0
  48. package/dist/packem_shared/NetlifyBlobStorage-CZsr_0DF.js +1 -0
  49. package/dist/packem_shared/OneDriveMetaStorage-B0gLF7Io.js +1 -0
  50. package/dist/packem_shared/{OneDriveStorage-CP6MvGAa.js → OneDriveStorage-B8qFgMq1.js} +1 -1
  51. package/dist/packem_shared/PocketBaseMetaStorage-Cm3v8g1-.js +1 -0
  52. package/dist/packem_shared/{PocketBaseStorage-2qhbI2PW.js → PocketBaseStorage-D2vMN-oY.js} +1 -1
  53. package/dist/packem_shared/{Rest-CI_BiZPv.js → Rest-B7g1sgkq.js} +1 -1
  54. package/dist/packem_shared/{Rest-DvfN4-kf.js → Rest-BrEMYgxZ.js} +1 -1
  55. package/dist/packem_shared/{S3Storage-YGeNk3Tt.js → S3Storage-CTe_BMDl.js} +1 -1
  56. package/dist/packem_shared/SftpMetaStorage-CJsyeQ63.js +1 -0
  57. package/dist/packem_shared/{SftpStorage-2Hz396Xr.js → SftpStorage-BKeAzuej.js} +1 -1
  58. package/dist/packem_shared/SharePointMetaStorage-CJsyeQ63.js +1 -0
  59. package/dist/packem_shared/{SharePointStorage-CrX2Pk6C.js → SharePointStorage-Dtnt5-wk.js} +1 -1
  60. package/dist/packem_shared/SupabaseMetaStorage-B0gLF7Io.js +1 -0
  61. package/dist/packem_shared/{SupabaseStorage-Dc_DBX29.js → SupabaseStorage-CmGQjqXf.js} +1 -1
  62. package/dist/packem_shared/{Tus-BlBZykIL.js → Tus-CJBgnJrn.js} +1 -1
  63. package/dist/packem_shared/{Tus-BBVt2ky3.js → Tus-D9c7KDnl.js} +1 -1
  64. package/dist/packem_shared/UploadThingMetaStorage-Bv_YCZ0Q.js +1 -0
  65. package/dist/packem_shared/{UploadThingStorage-BChykYSe.js → UploadThingStorage-DZ4zNvDH.js} +1 -1
  66. package/dist/packem_shared/VercelBlobMetaStorage-CJsyeQ63.js +1 -0
  67. package/dist/packem_shared/{VercelBlobStorage-CsRyPfw3.js → VercelBlobStorage-DDNEofR3.js} +1 -1
  68. package/dist/packem_shared/{approval.d-CMAYH9GF.d.ts → approval.d-C-d-t94D.d.ts} +6 -6
  69. package/dist/packem_shared/{base-handler-core-D-9Ku1h-.js → base-handler-core-BJP9jHCE.js} +1 -1
  70. package/dist/packem_shared/{base-handler-fetch-CfkNakv8.js → base-handler-fetch-yrYrukwL.js} +1 -1
  71. package/dist/packem_shared/base-handler-node-C8P9rkaH.js +1 -0
  72. package/dist/packem_shared/{createRetryWrapper-CxgiV_hH.js → createRetryWrapper-DgmeHPNF.js} +1 -1
  73. package/dist/packem_shared/disk-storage-DqnnFQAQ.js +1 -0
  74. package/dist/packem_shared/disk-storage-with-checksum.d-Dgwyza8a.d.ts +146 -0
  75. package/dist/packem_shared/{executors.d-BZP2rWo3.d.ts → executors.d-B9dIy3NT.d.ts} +3 -2
  76. package/dist/packem_shared/files.d-CmSZi3M0.d.ts +655 -0
  77. package/dist/packem_shared/gcs-meta-storage-C9F78Sqq.js +1 -0
  78. package/dist/packem_shared/local-meta-storage-BELb1YwO.js +11 -0
  79. package/dist/packem_shared/{local-meta-storage.d-D9PBfkn6.d.ts → local-meta-storage.d-cRTXr1kb.d.ts} +7 -7
  80. package/dist/packem_shared/media-transformer.d-C8tn4J2Z.d.ts +331 -0
  81. package/dist/packem_shared/{memory-storage.d-4EU1cMt1.d.ts → memory-storage.d-BNZvDG1b.d.ts} +32 -40
  82. package/dist/packem_shared/path-C-OWflAo-_mqb5p5d.js +1 -0
  83. package/dist/packem_shared/{rest-base-e0reNDE_.js → rest-base-BQ_dhWyV.js} +1 -1
  84. package/dist/packem_shared/s3-base-storage-CX94H-Za.js +1 -0
  85. package/dist/packem_shared/{s3-base-storage.d-BQgP5B-t.d.ts → s3-base-storage.d-ks99NSs-.d.ts} +64 -70
  86. package/dist/packem_shared/storage-DR7qdwBN.js +1 -0
  87. package/dist/packem_shared/storage.d-DwdJrArF.d.ts +1186 -0
  88. package/dist/packem_shared/tus-base.d-BKBoJVy0.d.ts +103 -0
  89. package/dist/packem_shared/types.d-B1_xZIhu.d.ts +104 -0
  90. package/dist/packem_shared/{types.d-CrUWY4On.d.ts → types.d-BEUv414z.d.ts} +134 -134
  91. package/dist/packem_shared/{types.d-CggTCgXr.d.ts → types.d-D7Zlz5RE.d.ts} +3 -3
  92. package/dist/storage/aws/clients/index.d.ts +388 -388
  93. package/dist/storage/aws/index.d.ts +110 -113
  94. package/dist/storage/aws/index.js +1 -1
  95. package/dist/storage/aws-light/index.d.ts +64 -67
  96. package/dist/storage/aws-light/index.js +1 -1
  97. package/dist/storage/azure/index.d.ts +134 -139
  98. package/dist/storage/azure/index.js +1 -1
  99. package/dist/storage/box/index.d.ts +89 -92
  100. package/dist/storage/box/index.js +1 -1
  101. package/dist/storage/bun-s3/index.d.ts +71 -76
  102. package/dist/storage/bun-s3/index.js +1 -1
  103. package/dist/storage/bunny/index.d.ts +52 -55
  104. package/dist/storage/bunny/index.js +1 -1
  105. package/dist/storage/cloudinary/index.d.ts +54 -59
  106. package/dist/storage/cloudinary/index.js +1 -1
  107. package/dist/storage/dropbox/index.d.ts +59 -62
  108. package/dist/storage/dropbox/index.js +1 -1
  109. package/dist/storage/firebase/index.d.ts +74 -79
  110. package/dist/storage/firebase/index.js +1 -1
  111. package/dist/storage/ftp/index.d.ts +38 -43
  112. package/dist/storage/ftp/index.js +1 -1
  113. package/dist/storage/gcs/index.d.ts +90 -95
  114. package/dist/storage/gcs/index.js +1 -1
  115. package/dist/storage/google-drive/index.d.ts +69 -72
  116. package/dist/storage/google-drive/index.js +1 -1
  117. package/dist/storage/local/index.d.ts +4 -3
  118. package/dist/storage/local/index.js +1 -1
  119. package/dist/storage/memory/index.d.ts +3 -2
  120. package/dist/storage/memory/index.js +1 -1
  121. package/dist/storage/netlify-blob/index.d.ts +86 -93
  122. package/dist/storage/netlify-blob/index.js +1 -1
  123. package/dist/storage/onedrive/index.d.ts +44 -53
  124. package/dist/storage/onedrive/index.js +1 -1
  125. package/dist/storage/pocketbase/index.d.ts +67 -72
  126. package/dist/storage/pocketbase/index.js +1 -1
  127. package/dist/storage/sftp/index.d.ts +40 -45
  128. package/dist/storage/sftp/index.js +1 -1
  129. package/dist/storage/sharepoint/index.d.ts +96 -95
  130. package/dist/storage/sharepoint/index.js +1 -1
  131. package/dist/storage/supabase/index.d.ts +50 -55
  132. package/dist/storage/supabase/index.js +1 -1
  133. package/dist/storage/uploadthing/index.d.ts +34 -37
  134. package/dist/storage/uploadthing/index.js +1 -1
  135. package/dist/storage/vercel-blob/index.d.ts +110 -115
  136. package/dist/storage/vercel-blob/index.js +1 -1
  137. package/dist/transformer/audio-transformer.d.ts +97 -96
  138. package/dist/transformer/image-transformer.d.ts +423 -422
  139. package/dist/transformer/index.d.ts +35 -34
  140. package/dist/transformer/video-transformer.d.ts +112 -111
  141. package/package.json +2 -2
  142. package/dist/packem_shared/AwsLightStorage-BK-WPL0h.js +0 -1
  143. package/dist/packem_shared/AzureStorage-1UvDIQZd.js +0 -1
  144. package/dist/packem_shared/BoxMetaStorage-BSn6Qfnf.js +0 -1
  145. package/dist/packem_shared/BunS3MetaStorage-BSn6Qfnf.js +0 -1
  146. package/dist/packem_shared/BunnyMetaStorage-BSn6Qfnf.js +0 -1
  147. package/dist/packem_shared/CloudinaryMetaStorage-DPVnmNe5.js +0 -1
  148. package/dist/packem_shared/DiskStorage-CI07TVNu.js +0 -1
  149. package/dist/packem_shared/DropboxMetaStorage-BSn6Qfnf.js +0 -1
  150. package/dist/packem_shared/FirebaseMetaStorage-DPVnmNe5.js +0 -1
  151. package/dist/packem_shared/FtpMetaStorage-BSn6Qfnf.js +0 -1
  152. package/dist/packem_shared/GoogleDriveMetaStorage-Cbwa1CHV.js +0 -1
  153. package/dist/packem_shared/NetlifyBlobMetaStorage-DPVnmNe5.js +0 -1
  154. package/dist/packem_shared/NetlifyBlobStorage-CkpCCoN1.js +0 -1
  155. package/dist/packem_shared/OneDriveMetaStorage-Cbwa1CHV.js +0 -1
  156. package/dist/packem_shared/PocketBaseMetaStorage-DOTLwVE7.js +0 -1
  157. package/dist/packem_shared/SftpMetaStorage-BSn6Qfnf.js +0 -1
  158. package/dist/packem_shared/SharePointMetaStorage-BSn6Qfnf.js +0 -1
  159. package/dist/packem_shared/SupabaseMetaStorage-Cbwa1CHV.js +0 -1
  160. package/dist/packem_shared/UploadThingMetaStorage-DPVnmNe5.js +0 -1
  161. package/dist/packem_shared/VercelBlobMetaStorage-BSn6Qfnf.js +0 -1
  162. package/dist/packem_shared/base-handler-node-BF1v1qDa.js +0 -1
  163. package/dist/packem_shared/disk-storage-CsQcYW3s.js +0 -1
  164. package/dist/packem_shared/disk-storage-with-checksum.d-B-VGEsfl.d.ts +0 -156
  165. package/dist/packem_shared/files.d-CH0iLBNC.d.ts +0 -655
  166. package/dist/packem_shared/gcs-meta-storage-B7BnctnV.js +0 -1
  167. package/dist/packem_shared/local-meta-storage-iuJnu90B.js +0 -11
  168. package/dist/packem_shared/media-transformer.d-Quf4ai47.d.ts +0 -331
  169. package/dist/packem_shared/path-0oTTdkvl-DvWvbDbh.js +0 -1
  170. package/dist/packem_shared/s3-base-storage-BoTyhuzO.js +0 -1
  171. package/dist/packem_shared/storage-0j5nCAUp.js +0 -1
  172. package/dist/packem_shared/storage.d-CEM1upWM.d.ts +0 -1176
  173. package/dist/packem_shared/tus-base.d-DLzKE54M.d.ts +0 -106
  174. package/dist/packem_shared/types.d-Bon9GVVe.d.ts +0 -104
@@ -1,303 +1,304 @@
1
- import { U as UploadFile, m as UploadResponse } from "../../../packem_shared/storage.d-CEM1upWM.js";
1
+ import { U as UploadFile, m as UploadResponse } from "../../../packem_shared/storage.d-DwdJrArF.js";
2
2
  import 'node:stream';
3
- import { H as Handlers, R as ResponseFile, a as ResponseList, U as UploadOptions } from "../../../packem_shared/types.d-CggTCgXr.js";
4
- export type { A as AsyncHandler, B as BaseHandler, M as MethodHandler, b as RequestEvent, c as UploadErrorEvent, d as UploadEvent } from "../../../packem_shared/types.d-CggTCgXr.js";
5
- import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-DLzKE54M.js";
6
- export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-DLzKE54M.js";
3
+ import { H as Handlers, R as ResponseFile, a as ResponseList, U as UploadOptions } from "../../../packem_shared/types.d-D7Zlz5RE.js";
4
+ export type { A as AsyncHandler, B as BaseHandler, M as MethodHandler, b as RequestEvent, c as UploadErrorEvent, d as UploadEvent } from "../../../packem_shared/types.d-D7Zlz5RE.js";
5
+ import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-BKBoJVy0.js";
6
+ export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-BKBoJVy0.js";
7
7
  import 'node:crypto';
8
8
  import 'node:http';
9
9
  import 'lru-cache';
10
+ import 'node:timers';
10
11
  import 'node:events';
11
12
  import '@visulima/pagination';
12
- import "../../../packem_shared/media-transformer.d-Quf4ai47.js";
13
- import "../../../packem_shared/types.d-CrUWY4On.js";
13
+ import "../../../packem_shared/media-transformer.d-C8tn4J2Z.js";
14
+ import "../../../packem_shared/types.d-BEUv414z.js";
14
15
  /**
15
- * Base handler for Web API Fetch platform (Request/Response).
16
- * Extends BaseHandlerCore with Fetch-specific request/response handling.
17
- * @template TFile The file type used by this handler.
18
- */
16
+ * Base handler for Web API Fetch platform (Request/Response).
17
+ * Extends BaseHandlerCore with Fetch-specific request/response handling.
18
+ * @template TFile The file type used by this handler.
19
+ */
19
20
  declare abstract class BaseHandlerFetch<TFile extends UploadFile> extends BaseHandlerCore<TFile> {
20
21
  /**
21
- * Limiting enabled HTTP method handler.
22
- */
22
+ * Limiting enabled HTTP method handler.
23
+ */
23
24
  static readonly methods: Handlers[];
24
25
  /**
25
- * Map of registered HTTP method handlers.
26
- */
26
+ * Map of registered HTTP method handlers.
27
+ */
27
28
  protected registeredHandlers: Map<string, (request: Request) => Promise<ResponseFile<TFile> | ResponseList<TFile>>>;
28
29
  constructor(options: UploadOptions<TFile>);
29
30
  /**
30
- * Gets the registered handlers map.
31
- * @returns Map of registered handlers.
32
- */
31
+ * Gets the registered handlers map.
32
+ * @returns Map of registered handlers.
33
+ */
33
34
  get handlers(): Map<string, (request: Request) => Promise<ResponseFile<TFile> | ResponseList<TFile>>>;
34
35
  /**
35
- * Handles Web API Fetch requests (for Hono, Cloudflare Workers, etc.).
36
- * @param request Web API Request object.
37
- * @returns Promise resolving to Web API Response.
38
- */
36
+ * Handles Web API Fetch requests (for Hono, Cloudflare Workers, etc.).
37
+ * @param request Web API Request object.
38
+ * @returns Promise resolving to Web API Response.
39
+ */
39
40
  fetch(request: Request): Promise<globalThis.Response>;
40
41
  /**
41
- * Compose and register HTTP method handlers.
42
- * Subclasses should override this to register their specific handlers.
43
- */
42
+ * Compose and register HTTP method handlers.
43
+ * Subclasses should override this to register their specific handlers.
44
+ */
44
45
  protected abstract compose(): void;
45
46
  /**
46
- * Handle the response from handlers for fetch requests and convert to Web API Response.
47
- * @param request Web API Request object
48
- * @param file Response file or list from handler
49
- * @returns Promise resolving to Web API Response object
50
- */
47
+ * Handle the response from handlers for fetch requests and convert to Web API Response.
48
+ * @param request Web API Request object
49
+ * @param file Response file or list from handler
50
+ * @returns Promise resolving to Web API Response object
51
+ */
51
52
  protected handleFetchResponse(request: Request, file: ResponseFile<TFile> | ResponseList<TFile>): Promise<globalThis.Response>;
52
53
  /**
53
- * Convert headers to Web API Headers format by flattening arrays and converting to strings.
54
- * @param headers Headers object with potentially array values
55
- * @returns Headers object with all values as strings
56
- */
54
+ * Convert headers to Web API Headers format by flattening arrays and converting to strings.
55
+ * @param headers Headers object with potentially array values
56
+ * @returns Headers object with all values as strings
57
+ */
57
58
  protected convertHeaders(headers: Record<string, number | string | string[]>): Record<string, string>;
58
59
  /**
59
- * Create Web API Response from UploadResponse object.
60
- * @param uploadResponse Upload response containing body, headers, and status code
61
- * @returns Web API Response object
62
- */
60
+ * Create Web API Response from UploadResponse object.
61
+ * @param uploadResponse Upload response containing body, headers, and status code
62
+ * @returns Web API Response object
63
+ */
63
64
  protected createResponse(uploadResponse: UploadResponse): globalThis.Response;
64
65
  /**
65
- * Create error Response from Error object with appropriate status code and message.
66
- * @param error Error object to convert to HTTP error response
67
- * @returns Web API Response object with error details
68
- */
66
+ * Create error Response from Error object with appropriate status code and message.
67
+ * @param error Error object to convert to HTTP error response
68
+ * @returns Web API Response object with error details
69
+ */
69
70
  protected createErrorResponse(error: Error): Promise<globalThis.Response>;
70
71
  /**
71
- * Build file URL from request and file data.
72
- * @param request Web API Request object
73
- * @param file File object containing ID and content type
74
- * @returns Constructed file URL with extension based on content type
75
- */
72
+ * Build file URL from request and file data.
73
+ * @param request Web API Request object
74
+ * @param file File object containing ID and content type
75
+ * @returns Constructed file URL with extension based on content type
76
+ */
76
77
  protected buildFileUrl(request: Request, file: TFile): string;
77
78
  /**
78
- * Negotiates content type based on Accept header and supported formats.
79
- * @param request Web API Request object containing Accept header.
80
- * @param supportedTypes Array of supported MIME types to match against.
81
- * @returns Best matching content type or undefined if no match found.
82
- */
79
+ * Negotiates content type based on Accept header and supported formats.
80
+ * @param request Web API Request object containing Accept header.
81
+ * @param supportedTypes Array of supported MIME types to match against.
82
+ * @returns Best matching content type or undefined if no match found.
83
+ */
83
84
  negotiateContentType(request: Request, supportedTypes: string[]): string | undefined;
84
85
  }
85
86
  /**
86
- * Multipart/form-data upload handler (Web API Fetch version).
87
- * @example
88
- * ```ts
89
- * const multipart = new MultipartFetch({
90
- * storage,
91
- * maxFileSize: 100 * 1024 * 1024, // 100MB
92
- * });
93
- *
94
- * // Use with Hono, Cloudflare Workers, etc.
95
- * app.all('/files/*', async (c) => {
96
- * return multipart.fetch(c.req.raw);
97
- * });
98
- * ```
99
- */
87
+ * Multipart/form-data upload handler (Web API Fetch version).
88
+ * @example
89
+ * ```ts
90
+ * const multipart = new MultipartFetch({
91
+ * storage,
92
+ * maxFileSize: 100 * 1024 * 1024, // 100MB
93
+ * });
94
+ *
95
+ * // Use with Hono, Cloudflare Workers, etc.
96
+ * app.all('/files/*', async (c) => {
97
+ * return multipart.fetch(c.req.raw);
98
+ * });
99
+ * ```
100
+ */
100
101
  declare class Multipart<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
101
102
  /**
102
- * Limiting enabled http method handler
103
- */
103
+ * Limiting enabled http method handler
104
+ */
104
105
  static override readonly methods: Handlers[];
105
106
  private readonly multipartBase;
106
107
  /**
107
- * Maximum file size allowed for multipart uploads
108
- */
108
+ * Maximum file size allowed for multipart uploads
109
+ */
109
110
  private maxFileSize;
110
111
  /**
111
- * Maximum header size allowed for multipart parser
112
- */
112
+ * Maximum header size allowed for multipart parser
113
+ */
113
114
  private maxHeaderSize;
114
115
  constructor(options: UploadOptions<TFile>);
115
116
  /**
116
- * Handles multipart/form-data POST requests for file uploads.
117
- * @param request Web API Request containing multipart data.
118
- * @returns Promise resolving to ResponseFile with upload result.
119
- */
117
+ * Handles multipart/form-data POST requests for file uploads.
118
+ * @param request Web API Request containing multipart data.
119
+ * @returns Promise resolving to ResponseFile with upload result.
120
+ */
120
121
  post(request: Request): Promise<ResponseFile<TFile>>;
121
122
  /**
122
- * Delete an uploaded file.
123
- * @param request Web API Request with file ID
124
- * @returns Promise resolving to ResponseFile with deletion result
125
- */
123
+ * Delete an uploaded file.
124
+ * @param request Web API Request with file ID
125
+ * @returns Promise resolving to ResponseFile with deletion result
126
+ */
126
127
  delete(request: Request): Promise<ResponseFile<TFile>>;
127
128
  /**
128
- * Handle OPTIONS requests with CORS headers.
129
- * @param _request Web API Request (unused)
130
- * @returns Promise resolving to ResponseFile with CORS headers
131
- */
129
+ * Handle OPTIONS requests with CORS headers.
130
+ * @param _request Web API Request (unused)
131
+ * @returns Promise resolving to ResponseFile with CORS headers
132
+ */
132
133
  options(_request: Request): Promise<ResponseFile<TFile>>;
133
134
  /**
134
- * Retrieves a file or list of files based on the request path.
135
- * Delegates to BaseHandlerFetch.fetch() method.
136
- * @param _request Web API Request
137
- * @returns Promise resolving to Web API Response
138
- */
135
+ * Retrieves a file or list of files based on the request path.
136
+ * Delegates to BaseHandlerFetch.fetch() method.
137
+ * @param _request Web API Request
138
+ * @returns Promise resolving to Web API Response
139
+ */
139
140
  get(_request: Request): Promise<ResponseFile<TFile>>;
140
141
  /**
141
- * Compose and register HTTP method handlers.
142
- */
142
+ * Compose and register HTTP method handlers.
143
+ */
143
144
  protected compose(): void;
144
145
  }
145
146
  /**
146
- * REST API handler for direct binary file uploads (Web API Fetch version).
147
- *
148
- * This handler provides a clean REST interface for file operations using Web API Request/Response:
149
- * - POST: Create a new file with raw binary data or initialize chunked upload
150
- * - PUT: Create or update a file (requires ID in URL)
151
- * - PATCH: Upload chunks for chunked uploads (requires ID in URL)
152
- * - GET: Retrieve a file or list files
153
- * - DELETE: Delete a file (single) or multiple files (via ?ids=id1,id2 or JSON body)
154
- * - HEAD: Get file metadata and upload progress
155
- * - OPTIONS: CORS preflight
156
- * @example
157
- * ```ts
158
- * const rest = new RestFetch({
159
- * storage,
160
- * });
161
- *
162
- * // Use with Hono, Cloudflare Workers, etc.
163
- * app.all('/files/*', async (c) => {
164
- * return rest.fetch(c.req.raw);
165
- * });
166
- * ```
167
- */
147
+ * REST API handler for direct binary file uploads (Web API Fetch version).
148
+ *
149
+ * This handler provides a clean REST interface for file operations using Web API Request/Response:
150
+ * - POST: Create a new file with raw binary data or initialize chunked upload
151
+ * - PUT: Create or update a file (requires ID in URL)
152
+ * - PATCH: Upload chunks for chunked uploads (requires ID in URL)
153
+ * - GET: Retrieve a file or list files
154
+ * - DELETE: Delete a file (single) or multiple files (via ?ids=id1,id2 or JSON body)
155
+ * - HEAD: Get file metadata and upload progress
156
+ * - OPTIONS: CORS preflight
157
+ * @example
158
+ * ```ts
159
+ * const rest = new RestFetch({
160
+ * storage,
161
+ * });
162
+ *
163
+ * // Use with Hono, Cloudflare Workers, etc.
164
+ * app.all('/files/*', async (c) => {
165
+ * return rest.fetch(c.req.raw);
166
+ * });
167
+ * ```
168
+ */
168
169
  declare class RestFetch<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
169
170
  /**
170
- * Limiting enabled http method handler
171
- */
171
+ * Limiting enabled http method handler
172
+ */
172
173
  static override readonly methods: Handlers[];
173
174
  private readonly restBase;
174
175
  constructor(options: UploadOptions<TFile>);
175
176
  /**
176
- * Compose and register HTTP method handlers.
177
- */
177
+ * Compose and register HTTP method handlers.
178
+ */
178
179
  protected compose(): void;
179
180
  /**
180
- * Creates a new file via POST request with raw binary data.
181
- * Supports both full file uploads and chunked upload initialization.
182
- * @param request Web API Request with file data.
183
- * @returns Promise resolving to ResponseFile with upload result.
184
- */
181
+ * Creates a new file via POST request with raw binary data.
182
+ * Supports both full file uploads and chunked upload initialization.
183
+ * @param request Web API Request with file data.
184
+ * @returns Promise resolving to ResponseFile with upload result.
185
+ */
185
186
  post(request: Request): Promise<ResponseFile<TFile>>;
186
187
  /**
187
- * Create or update a file via PUT request.
188
- * Requires file ID in the URL path.
189
- * @param request Web API Request with file ID and data
190
- * @returns Promise resolving to ResponseFile with upload result
191
- */
188
+ * Create or update a file via PUT request.
189
+ * Requires file ID in the URL path.
190
+ * @param request Web API Request with file ID and data
191
+ * @returns Promise resolving to ResponseFile with upload result
192
+ */
192
193
  put(request: Request): Promise<ResponseFile<TFile>>;
193
194
  /**
194
- * Delete an uploaded file or multiple files.
195
- * Supports single file (ID in URL) or batch delete (via ?ids=id1,id2 or JSON body).
196
- * @param request Web API Request with file ID(s)
197
- * @returns Promise resolving to ResponseFile (single) or ResponseList (batch) with deletion result
198
- */
195
+ * Delete an uploaded file or multiple files.
196
+ * Supports single file (ID in URL) or batch delete (via ?ids=id1,id2 or JSON body).
197
+ * @param request Web API Request with file ID(s)
198
+ * @returns Promise resolving to ResponseFile (single) or ResponseList (batch) with deletion result
199
+ */
199
200
  delete(request: Request): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
200
201
  /**
201
- * Uploads a chunk via PATCH request for chunked uploads.
202
- * Headers required: X-Chunk-Offset (byte offset), Content-Length (chunk size).
203
- * Optional: X-Chunk-Checksum (SHA256 checksum for validation).
204
- * @param request Web API Request with chunk data.
205
- * @returns Promise resolving to ResponseFile with upload progress.
206
- */
202
+ * Uploads a chunk via PATCH request for chunked uploads.
203
+ * Headers required: X-Chunk-Offset (byte offset), Content-Length (chunk size).
204
+ * Optional: X-Chunk-Checksum (SHA256 checksum for validation).
205
+ * @param request Web API Request with chunk data.
206
+ * @returns Promise resolving to ResponseFile with upload progress.
207
+ */
207
208
  patch(request: Request): Promise<ResponseFile<TFile>>;
208
209
  /**
209
- * Get file metadata via HEAD request.
210
- * For chunked uploads, also returns upload progress information.
211
- * @param request Web API Request with file ID
212
- * @returns Promise resolving to ResponseFile with metadata headers
213
- */
210
+ * Get file metadata via HEAD request.
211
+ * For chunked uploads, also returns upload progress information.
212
+ * @param request Web API Request with file ID
213
+ * @returns Promise resolving to ResponseFile with metadata headers
214
+ */
214
215
  head(request: Request): Promise<ResponseFile<TFile>>;
215
216
  /**
216
- * Handle OPTIONS requests with REST API capabilities.
217
- * @param _request Web API Request
218
- * @returns Promise resolving to ResponseFile with CORS headers
219
- */
217
+ * Handle OPTIONS requests with REST API capabilities.
218
+ * @param _request Web API Request
219
+ * @returns Promise resolving to ResponseFile with CORS headers
220
+ */
220
221
  options(_request: Request): Promise<ResponseFile<TFile>>;
221
222
  /**
222
- * Retrieves a file or list of files based on the request path.
223
- * Delegates to BaseHandlerFetch.fetch() method.
224
- * @param _request Web API Request
225
- * @returns Promise resolving to Web API Response
226
- */
223
+ * Retrieves a file or list of files based on the request path.
224
+ * Delegates to BaseHandlerFetch.fetch() method.
225
+ * @param _request Web API Request
226
+ * @returns Promise resolving to Web API Response
227
+ */
227
228
  get(_request: Request): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
228
229
  }
229
230
  /**
230
- * TUS resumable upload protocol handler (Web API Fetch version).
231
- *
232
- * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
233
- * @example
234
- * ```ts
235
- * const tus = new TusFetch({storage});
236
- *
237
- * // Use with Hono, Cloudflare Workers, etc.
238
- * app.all('/files/*', async (c) => {
239
- * return tus.fetch(c.req.raw);
240
- * });
241
- * ```
242
- */
231
+ * TUS resumable upload protocol handler (Web API Fetch version).
232
+ *
233
+ * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
234
+ * @example
235
+ * ```ts
236
+ * const tus = new TusFetch({storage});
237
+ *
238
+ * // Use with Hono, Cloudflare Workers, etc.
239
+ * app.all('/files/*', async (c) => {
240
+ * return tus.fetch(c.req.raw);
241
+ * });
242
+ * ```
243
+ */
243
244
  declare class Tus<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
244
245
  /**
245
- * Limiting enabled http method handler
246
- */
246
+ * Limiting enabled http method handler
247
+ */
247
248
  static override readonly methods: Handlers[];
248
249
  private readonly tusBase;
249
250
  constructor(options: UploadOptions<TFile>);
250
251
  /**
251
- * Web API fetch entrypoint. Wraps the base implementation to ensure every TUS
252
- * response — success and error alike — carries the `Tus-Resumable` header,
253
- * which the protocol requires on all responses.
254
- */
252
+ * Web API fetch entrypoint. Wraps the base implementation to ensure every TUS
253
+ * response — success and error alike — carries the `Tus-Resumable` header,
254
+ * which the protocol requires on all responses.
255
+ */
255
256
  override fetch(request: Request): Promise<globalThis.Response>;
256
257
  /**
257
- * Handle OPTIONS requests with TUS protocol capabilities.
258
- * @returns Promise resolving to ResponseFile with TUS headers
259
- */
258
+ * Handle OPTIONS requests with TUS protocol capabilities.
259
+ * @returns Promise resolving to ResponseFile with TUS headers
260
+ */
260
261
  options(): Promise<ResponseFile<TFile>>;
261
262
  /**
262
- * Creates a new TUS upload and optionally starts uploading data.
263
- * @param request Web API Request with TUS headers.
264
- * @returns Promise resolving to ResponseFile with upload location and offset.
265
- */
263
+ * Creates a new TUS upload and optionally starts uploading data.
264
+ * @param request Web API Request with TUS headers.
265
+ * @returns Promise resolving to ResponseFile with upload location and offset.
266
+ */
266
267
  post(request: Request): Promise<ResponseFile<TFile>>;
267
268
  /**
268
- * Write a chunk of data to an existing TUS upload.
269
- * @param request Web API Request with chunk data and TUS headers
270
- * @returns Promise resolving to ResponseFile with updated offset
271
- */
269
+ * Write a chunk of data to an existing TUS upload.
270
+ * @param request Web API Request with chunk data and TUS headers
271
+ * @returns Promise resolving to ResponseFile with updated offset
272
+ */
272
273
  patch(request: Request): Promise<ResponseFile<TFile>>;
273
274
  /**
274
- * Get current upload offset and metadata for TUS resumable uploads.
275
- * @param request Web API Request with upload ID
276
- * @returns Promise resolving to ResponseFile with upload-offset and metadata headers
277
- */
275
+ * Get current upload offset and metadata for TUS resumable uploads.
276
+ * @param request Web API Request with upload ID
277
+ * @returns Promise resolving to ResponseFile with upload-offset and metadata headers
278
+ */
278
279
  head(request: Request): Promise<ResponseFile<TFile>>;
279
280
  /**
280
- * Get TUS upload metadata and current status.
281
- * @param request Web API Request with upload ID
282
- * @returns Promise resolving to ResponseFile with file metadata as JSON
283
- */
281
+ * Get TUS upload metadata and current status.
282
+ * @param request Web API Request with upload ID
283
+ * @returns Promise resolving to ResponseFile with file metadata as JSON
284
+ */
284
285
  get(request: Request): Promise<ResponseFile<TFile>>;
285
286
  /**
286
- * Delete a TUS upload and its associated data.
287
- * @param request Web API Request with upload ID
288
- * @returns Promise resolving to ResponseFile with deletion confirmation
289
- */
287
+ * Delete a TUS upload and its associated data.
288
+ * @param request Web API Request with upload ID
289
+ * @returns Promise resolving to ResponseFile with deletion confirmation
290
+ */
290
291
  delete(request: Request): Promise<ResponseFile<TFile>>;
291
292
  /**
292
- * Compose and register HTTP method handlers.
293
- */
293
+ * Compose and register HTTP method handlers.
294
+ */
294
295
  protected compose(): void;
295
296
  /**
296
- * Build file URL for TUS uploads (without file extension).
297
- * @param requestUrl Request URL string
298
- * @param file File object containing ID
299
- * @returns Constructed file URL for TUS protocol
300
- */
297
+ * Build file URL for TUS uploads (without file extension).
298
+ * @param requestUrl Request URL string
299
+ * @param file File object containing ID
300
+ * @returns Constructed file URL for TUS protocol
301
+ */
301
302
  protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
302
303
  }
303
304
  export { type Handlers, Multipart, RestFetch as Rest, Tus, type UploadOptions };
@@ -1 +1 @@
1
- import{default as o}from"../../../packem_shared/Multipart-CQjYqU--.js";import{default as f}from"../../../packem_shared/Rest-CI_BiZPv.js";import{Tus as p}from"../../../packem_shared/Tus-BBVt2ky3.js";import{TUS_RESUMABLE as s,TUS_VERSION as u}from"../../../packem_shared/TUS_RESUMABLE-CyTSRvPU.js";export{o as Multipart,f as Rest,s as TUS_RESUMABLE,u as TUS_VERSION,p as Tus};
1
+ import{default as o}from"../../../packem_shared/Multipart-V64Bg5dt.js";import{default as f}from"../../../packem_shared/Rest-B7g1sgkq.js";import{Tus as p}from"../../../packem_shared/Tus-D9c7KDnl.js";import{TUS_RESUMABLE as s,TUS_VERSION as u}from"../../../packem_shared/TUS_RESUMABLE-CyTSRvPU.js";export{o as Multipart,f as Rest,s as TUS_RESUMABLE,u as TUS_VERSION,p as Tus};
@@ -1,72 +1,73 @@
1
1
  import { Hono } from 'hono';
2
- import { U as UploadFile } from "../../../packem_shared/storage.d-CEM1upWM.js";
2
+ import { U as UploadFile } from "../../../packem_shared/storage.d-DwdJrArF.js";
3
3
  import 'node:stream';
4
- import { U as UploadOptions } from "../../../packem_shared/types.d-CggTCgXr.js";
4
+ import { U as UploadOptions } from "../../../packem_shared/types.d-D7Zlz5RE.js";
5
+ import 'node:timers';
5
6
  import 'node:crypto';
6
7
  import 'node:http';
7
8
  import 'lru-cache';
8
9
  import 'node:events';
9
10
  import '@visulima/pagination';
10
- import "../../../packem_shared/media-transformer.d-Quf4ai47.js";
11
- import "../../../packem_shared/types.d-CrUWY4On.js";
11
+ import "../../../packem_shared/media-transformer.d-C8tn4J2Z.js";
12
+ import "../../../packem_shared/types.d-BEUv414z.js";
12
13
  /**
13
- * Registers upload handler routes on a Hono app instance.
14
- * Automatically registers all required HTTP methods for the specified handler type.
15
- * @param app Hono app instance to register routes on
16
- * @param config Handler configuration including storage, type, and path
17
- * @example
18
- * ```ts
19
- * import { Hono } from "hono";
20
- * import { DiskStorage } from "@visulima/storage";
21
- * import { createHonoHandler } from "@visulima/storage/handler/http/hono";
22
- *
23
- * const app = new Hono();
24
- * const storage = new DiskStorage({ directory: "./uploads" });
25
- *
26
- * // Multipart handler - automatically registers POST, GET, DELETE, OPTIONS
27
- * createHonoHandler(app, {
28
- * path: "/files",
29
- * storage,
30
- * type: "multipart"
31
- * });
32
- * ```
33
- * @example
34
- * ```ts
35
- * import { Hono } from "hono";
36
- * import { DiskStorage } from "@visulima/storage";
37
- * import { createHonoHandler } from "@visulima/storage/handler/http/hono";
38
- *
39
- * const app = new Hono();
40
- * const storage = new DiskStorage({ directory: "./uploads" });
41
- *
42
- * // REST handler - automatically registers POST, PUT, PATCH, GET, HEAD, DELETE, OPTIONS
43
- * createHonoHandler(app, {
44
- * path: "/files-rest",
45
- * storage,
46
- * type: "rest"
47
- * });
48
- * ```
49
- * @example
50
- * ```ts
51
- * import { Hono } from "hono";
52
- * import { DiskStorage } from "@visulima/storage";
53
- * import { createHonoHandler } from "@visulima/storage/handler/http/hono";
54
- *
55
- * const app = new Hono();
56
- * const storage = new DiskStorage({ directory: "./uploads" });
57
- *
58
- * // TUS handler - automatically registers POST, PATCH, HEAD, GET, DELETE, OPTIONS
59
- * createHonoHandler(app, {
60
- * path: "/files-tus",
61
- * storage,
62
- * type: "tus"
63
- * });
64
- * ```
65
- */
14
+ * Registers upload handler routes on a Hono app instance.
15
+ * Automatically registers all required HTTP methods for the specified handler type.
16
+ * @param app Hono app instance to register routes on
17
+ * @param config Handler configuration including storage, type, and path
18
+ * @example
19
+ * ```ts
20
+ * import { Hono } from "hono";
21
+ * import { DiskStorage } from "@visulima/storage";
22
+ * import { createHonoHandler } from "@visulima/storage/handler/http/hono";
23
+ *
24
+ * const app = new Hono();
25
+ * const storage = new DiskStorage({ directory: "./uploads" });
26
+ *
27
+ * // Multipart handler - automatically registers POST, GET, DELETE, OPTIONS
28
+ * createHonoHandler(app, {
29
+ * path: "/files",
30
+ * storage,
31
+ * type: "multipart"
32
+ * });
33
+ * ```
34
+ * @example
35
+ * ```ts
36
+ * import { Hono } from "hono";
37
+ * import { DiskStorage } from "@visulima/storage";
38
+ * import { createHonoHandler } from "@visulima/storage/handler/http/hono";
39
+ *
40
+ * const app = new Hono();
41
+ * const storage = new DiskStorage({ directory: "./uploads" });
42
+ *
43
+ * // REST handler - automatically registers POST, PUT, PATCH, GET, HEAD, DELETE, OPTIONS
44
+ * createHonoHandler(app, {
45
+ * path: "/files-rest",
46
+ * storage,
47
+ * type: "rest"
48
+ * });
49
+ * ```
50
+ * @example
51
+ * ```ts
52
+ * import { Hono } from "hono";
53
+ * import { DiskStorage } from "@visulima/storage";
54
+ * import { createHonoHandler } from "@visulima/storage/handler/http/hono";
55
+ *
56
+ * const app = new Hono();
57
+ * const storage = new DiskStorage({ directory: "./uploads" });
58
+ *
59
+ * // TUS handler - automatically registers POST, PATCH, HEAD, GET, DELETE, OPTIONS
60
+ * createHonoHandler(app, {
61
+ * path: "/files-tus",
62
+ * storage,
63
+ * type: "tus"
64
+ * });
65
+ * ```
66
+ */
66
67
  declare const createStorageHandler: <TFile extends UploadFile>(app: Hono, config: HonoHandlerConfig<TFile>) => void;
67
68
  /**
68
- * Configuration for Hono handler.
69
- */
69
+ * Configuration for Hono handler.
70
+ */
70
71
  interface HonoHandlerConfig<TFile extends UploadFile> extends UploadOptions<TFile> {
71
72
  /** Base path for the routes (e.g., "/files" or "/api/upload") */
72
73
  path: string;