@visulima/storage 1.0.0-alpha.1 → 1.0.0-alpha.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 (225) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/LICENSE.md +6 -6
  3. package/README.md +33 -14
  4. package/dist/adapter/nuxt/module.d.ts +39 -0
  5. package/dist/adapter/nuxt/module.js +93 -0
  6. package/dist/adapter/nuxt/package.json +20 -0
  7. package/dist/handler/base/base-handler-core.d.ts +91 -0
  8. package/dist/handler/base/base-handler-fetch.d.ts +76 -0
  9. package/dist/handler/base/base-handler-node.d.ts +137 -0
  10. package/dist/handler/http/fetch/index.d.ts +4 -0
  11. package/dist/handler/http/fetch/index.js +4 -0
  12. package/dist/handler/http/hono/index.d.ts +67 -0
  13. package/dist/handler/http/hono/index.js +65 -0
  14. package/dist/handler/http/nextjs/index.d.ts +61 -0
  15. package/dist/handler/http/nextjs/index.js +37 -0
  16. package/dist/handler/http/node/index.d.ts +4 -0
  17. package/dist/handler/http/node/index.js +8 -0
  18. package/dist/handler/http/solid-start/index.d.ts +60 -0
  19. package/dist/handler/http/solid-start/index.js +44 -0
  20. package/dist/handler/multipart/multipart-base.d.ts +84 -0
  21. package/dist/handler/multipart/multipart-fetch.d.ts +64 -0
  22. package/dist/handler/multipart/multipart.d.ts +49 -0
  23. package/dist/handler/rest/rest-base.d.ts +106 -0
  24. package/dist/handler/rest/rest-fetch.d.ts +88 -0
  25. package/dist/handler/rest/rest.d.ts +93 -0
  26. package/dist/handler/tus/tus-base.d.ts +152 -0
  27. package/dist/handler/tus/tus-fetch.d.ts +72 -0
  28. package/dist/handler/tus/tus.d.ts +78 -0
  29. package/dist/handler/types.d.ts +53 -0
  30. package/dist/handler/utils/request-parser.d.ts +72 -0
  31. package/dist/handler/utils/response-builder.d.ts +83 -0
  32. package/dist/handler/utils/storage-utils.d.ts +10 -0
  33. package/dist/handler/utils/stream-utils.d.ts +29 -0
  34. package/dist/handler/utils/upload-handlers.d.ts +76 -0
  35. package/dist/index.d.ts +17 -0
  36. package/dist/index.js +13 -0
  37. package/dist/metrics/index.d.ts +2 -0
  38. package/dist/metrics/no-op-metrics.d.ts +15 -0
  39. package/dist/metrics/opentelemetry-metrics.d.ts +55 -0
  40. package/dist/openapi/index.d.ts +5 -0
  41. package/dist/openapi/index.js +5 -0
  42. package/dist/openapi/rest.d.ts +7 -0
  43. package/dist/openapi/shared.d.ts +13 -0
  44. package/dist/openapi/transform.d.ts +3 -0
  45. package/dist/openapi/tus.d.ts +7 -0
  46. package/dist/openapi/xhr.d.ts +7 -0
  47. package/dist/packem_shared/AwsLightFile-tTneXZgG.js +11 -0
  48. package/dist/packem_shared/AwsLightMetaStorage-D9qWQt6q.js +4 -0
  49. package/dist/packem_shared/AwsLightStorage-CEJTYBVv.js +133 -0
  50. package/dist/packem_shared/AzureFile-CesgFzps.js +8 -0
  51. package/dist/packem_shared/AzureSMetaStorage-BEbXX9Uk.js +89 -0
  52. package/dist/packem_shared/AzureStorage-CH6nvQx8.js +357 -0
  53. package/dist/packem_shared/BaseTransformer-9965D4pb.js +83 -0
  54. package/dist/packem_shared/DiskStorage-DziI2mwX.js +12 -0
  55. package/dist/packem_shared/DiskStorageWithChecksum-B_XY8_cO.js +240 -0
  56. package/dist/packem_shared/ERRORS-D0apMqnc.js +97 -0
  57. package/dist/packem_shared/File-Bb3P23dr.js +69 -0
  58. package/dist/packem_shared/GCSConfig-vPP22kN6.js +11 -0
  59. package/dist/packem_shared/GCSFile-BIEunhAN.js +8 -0
  60. package/dist/packem_shared/GCSMetaStorage-FypK8Tn1.js +7 -0
  61. package/dist/packem_shared/GCStorage-CasTo9rF.js +408 -0
  62. package/dist/packem_shared/LocalMetaStorage-BnllcjV9.js +7 -0
  63. package/dist/packem_shared/MediaTransformer-BErvw2vE.js +1196 -0
  64. package/dist/packem_shared/MetaStorage-pECeFOad.js +46 -0
  65. package/dist/packem_shared/Metadata-DRLXeJ0F.js +89 -0
  66. package/dist/packem_shared/Multipart-CDDlDOs7.js +163 -0
  67. package/dist/packem_shared/Multipart-vxBL2VXm.js +128 -0
  68. package/dist/packem_shared/NetlifyBlobFile-CXzyjqrD.js +14 -0
  69. package/dist/packem_shared/NetlifyBlobMetaStorage-DIkZ2umW.js +9 -0
  70. package/dist/packem_shared/NetlifyBlobStorage-DEpx_4q-.js +376 -0
  71. package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +10 -0
  72. package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +67 -0
  73. package/dist/packem_shared/Rest-CEj3EhMj.js +228 -0
  74. package/dist/packem_shared/Rest-D14vM7aJ.js +267 -0
  75. package/dist/packem_shared/S3File-DZiyk9Qt.js +11 -0
  76. package/dist/packem_shared/S3MetaStorage-yT4CznlV.js +77 -0
  77. package/dist/packem_shared/S3Storage-B0scgwPa.js +317 -0
  78. package/dist/packem_shared/TUS_RESUMABLE-Dtfsffnj.js +434 -0
  79. package/dist/packem_shared/Tus-Cjz87bpz.js +200 -0
  80. package/dist/packem_shared/Tus-WOVg-YnB.js +195 -0
  81. package/dist/packem_shared/ValidationError-BfF1aE4h.js +26 -0
  82. package/dist/packem_shared/VercelBlobFile-BCg4aTEq.js +18 -0
  83. package/dist/packem_shared/VercelBlobMetaStorage-c0M-TvAR.js +9 -0
  84. package/dist/packem_shared/VercelBlobStorage-wOYxv8F7.js +261 -0
  85. package/dist/packem_shared/_commonjsHelpers-BqLXS_qQ.js +5 -0
  86. package/dist/packem_shared/aws-light-meta-storage-Ba2b_h-o.js +447 -0
  87. package/dist/packem_shared/backblaze-BlMnIcBC.js +20 -0
  88. package/dist/packem_shared/base-handler-core-BoAqTyz7.js +303 -0
  89. package/dist/packem_shared/base-handler-fetch-CinvR65S.js +291 -0
  90. package/dist/packem_shared/base-handler-node-c02H0AxN.js +731 -0
  91. package/dist/packem_shared/cache-B88MXQ_2.js +18 -0
  92. package/dist/packem_shared/cloudflare-Bi1q8wXE.js +21 -0
  93. package/dist/packem_shared/defaultCloudStorageFileNameValidation-CGoYrGB2.js +11 -0
  94. package/dist/packem_shared/digitalOcean-CWQRJM3L.js +21 -0
  95. package/dist/packem_shared/disk-storage-DeivH-J5.js +816 -0
  96. package/dist/packem_shared/gcs-meta-storage-B0Baj0Xr.js +159 -0
  97. package/dist/packem_shared/has-content-CY66ehMK.js +3 -0
  98. package/dist/packem_shared/headers-YLRp1dLo.js +1318 -0
  99. package/dist/packem_shared/is-expired-CTThU1q5.js +8 -0
  100. package/dist/packem_shared/isRetryableError-Dycp7127.js +82 -0
  101. package/dist/packem_shared/isValidMediaType-BeDgiObq.js +35 -0
  102. package/dist/packem_shared/local-meta-storage-BlOk6m7F.js +647 -0
  103. package/dist/packem_shared/minio-C2YBZQOw.js +22 -0
  104. package/dist/packem_shared/multipart-base-C994naBi.js +102 -0
  105. package/dist/packem_shared/part-match-BMNqHDYD.js +96 -0
  106. package/dist/packem_shared/path-aV9lMdcn-DMU5H1-h.js +162 -0
  107. package/dist/packem_shared/response-builder-BtnRiBUI.js +45 -0
  108. package/dist/packem_shared/rest-base-D9URIFkc.js +457 -0
  109. package/dist/packem_shared/restOpenApiSpec-D1zbmid7.js +800 -0
  110. package/dist/packem_shared/s3-base-storage-CG21uusd.js +513 -0
  111. package/dist/packem_shared/sharedGet-DAyJfjhl.js +1018 -0
  112. package/dist/packem_shared/storage-CpJpqLdn.js +1184 -0
  113. package/dist/packem_shared/tigris-Hac8TKnX.js +21 -0
  114. package/dist/packem_shared/transformOpenApiSpec-BC0r6PzI.js +975 -0
  115. package/dist/packem_shared/tusOpenApiSpec-BLIjKf0s.js +740 -0
  116. package/dist/packem_shared/update-size-CCGm6i1J.js +8 -0
  117. package/dist/packem_shared/validator-DuO17wFF.js +79 -0
  118. package/dist/packem_shared/waitForStorage-Cscw85sx.js +18 -0
  119. package/dist/packem_shared/wasabi-DIyflHSd.js +21 -0
  120. package/dist/packem_shared/xhrOpenApiSpec-kItrSAsc.js +264 -0
  121. package/dist/storage/aws/clients/backblaze.d.ts +12 -0
  122. package/dist/storage/aws/clients/cloudflare.d.ts +13 -0
  123. package/dist/storage/aws/clients/digital-ocean.d.ts +12 -0
  124. package/dist/storage/aws/clients/index.d.ts +6 -0
  125. package/dist/storage/aws/clients/index.js +6 -0
  126. package/dist/storage/aws/clients/minio.d.ts +13 -0
  127. package/dist/storage/aws/clients/tigris.d.ts +12 -0
  128. package/dist/storage/aws/clients/types.d.ts +95 -0
  129. package/dist/storage/aws/clients/wasabi.d.ts +12 -0
  130. package/dist/storage/aws/index.d.ts +4 -0
  131. package/dist/storage/aws/index.js +3 -0
  132. package/dist/storage/aws/s3-base-storage.d.ts +248 -0
  133. package/dist/storage/aws/s3-client-adapter.d.ts +110 -0
  134. package/dist/storage/aws/s3-file.d.ts +10 -0
  135. package/dist/storage/aws/s3-meta-storage.d.ts +15 -0
  136. package/dist/storage/aws/s3-storage.d.ts +70 -0
  137. package/dist/storage/aws/types.d.ts +119 -0
  138. package/dist/storage/aws-light/aws-light-api-adapter.d.ts +130 -0
  139. package/dist/storage/aws-light/aws-light-file.d.ts +10 -0
  140. package/dist/storage/aws-light/aws-light-meta-storage.d.ts +19 -0
  141. package/dist/storage/aws-light/aws-light-storage.d.ts +65 -0
  142. package/dist/storage/aws-light/index.d.ts +4 -0
  143. package/dist/storage/aws-light/index.js +3 -0
  144. package/dist/storage/aws-light/types.d.ts +37 -0
  145. package/dist/storage/azure/azure-file.d.ts +6 -0
  146. package/dist/storage/azure/azure-meta-storage.d.ts +15 -0
  147. package/dist/storage/azure/azure-storage.d.ts +69 -0
  148. package/dist/storage/azure/index.d.ts +4 -0
  149. package/dist/storage/azure/index.js +3 -0
  150. package/dist/storage/azure/types.d.ts +62 -0
  151. package/dist/storage/gcs/fetch-error.d.ts +11 -0
  152. package/dist/storage/gcs/gcs-config.d.ts +2 -0
  153. package/dist/storage/gcs/gcs-file.d.ts +6 -0
  154. package/dist/storage/gcs/gcs-meta-storage.d.ts +27 -0
  155. package/dist/storage/gcs/gcs-storage.d.ts +91 -0
  156. package/dist/storage/gcs/index.d.ts +5 -0
  157. package/dist/storage/gcs/index.js +4 -0
  158. package/dist/storage/gcs/types.d.ts +55 -0
  159. package/dist/storage/gcs/utils.d.ts +7 -0
  160. package/dist/storage/local/disk-storage-with-checksum.d.ts +15 -0
  161. package/dist/storage/local/disk-storage.d.ts +135 -0
  162. package/dist/storage/local/index.d.ts +4 -0
  163. package/dist/storage/local/index.js +3 -0
  164. package/dist/storage/local/local-meta-storage.d.ts +32 -0
  165. package/dist/storage/meta-storage.d.ts +30 -0
  166. package/dist/storage/netlify-blob/index.d.ts +4 -0
  167. package/dist/storage/netlify-blob/index.js +3 -0
  168. package/dist/storage/netlify-blob/netlify-blob-file.d.ts +12 -0
  169. package/dist/storage/netlify-blob/netlify-blob-meta-storage.d.ts +7 -0
  170. package/dist/storage/netlify-blob/netlify-blob-storage.d.ts +93 -0
  171. package/dist/storage/netlify-blob/types.d.ts +30 -0
  172. package/dist/storage/storage.d.ts +353 -0
  173. package/dist/storage/types.d.ts +221 -0
  174. package/dist/storage/utils/file/file.d.ts +25 -0
  175. package/dist/storage/utils/file/get-file-status.d.ts +9 -0
  176. package/dist/storage/utils/file/has-content.d.ts +9 -0
  177. package/dist/storage/utils/file/index.d.ts +10 -0
  178. package/dist/storage/utils/file/is-expired.d.ts +8 -0
  179. package/dist/storage/utils/file/metadata.d.ts +18 -0
  180. package/dist/storage/utils/file/part-match.d.ts +11 -0
  181. package/dist/storage/utils/file/types.d.ts +37 -0
  182. package/dist/storage/utils/file/update-metadata.d.ts +10 -0
  183. package/dist/storage/utils/file/update-size.d.ts +10 -0
  184. package/dist/storage/vercel-blob/index.d.ts +4 -0
  185. package/dist/storage/vercel-blob/index.js +3 -0
  186. package/dist/storage/vercel-blob/types.d.ts +32 -0
  187. package/dist/storage/vercel-blob/vercel-blob-file.d.ts +16 -0
  188. package/dist/storage/vercel-blob/vercel-blob-meta-storage.d.ts +7 -0
  189. package/dist/storage/vercel-blob/vercel-blob-storage.d.ts +76 -0
  190. package/dist/transformer/audio-transformer.d.ts +128 -0
  191. package/dist/transformer/audio-transformer.js +278 -0
  192. package/dist/transformer/base-transformer.d.ts +63 -0
  193. package/dist/transformer/image-transformer.d.ts +571 -0
  194. package/dist/transformer/image-transformer.js +1100 -0
  195. package/dist/transformer/index.d.ts +5 -0
  196. package/dist/transformer/index.js +4 -0
  197. package/dist/transformer/media-transformer.d.ts +332 -0
  198. package/dist/transformer/types.d.ts +652 -0
  199. package/dist/transformer/utils.d.ts +33 -0
  200. package/dist/transformer/validation-error.d.ts +23 -0
  201. package/dist/transformer/video-transformer.d.ts +145 -0
  202. package/dist/transformer/video-transformer.js +310 -0
  203. package/dist/utils/cache.d.ts +32 -0
  204. package/dist/utils/chunked-upload.d.ts +65 -0
  205. package/dist/utils/detect-file-type.d.ts +28 -0
  206. package/dist/utils/errors.d.ts +74 -0
  207. package/dist/utils/file-path-url-matcher.d.ts +18 -0
  208. package/dist/utils/headers.d.ts +111 -0
  209. package/dist/utils/http.d.ts +92 -0
  210. package/dist/utils/locker.d.ts +26 -0
  211. package/dist/utils/pipes/stream-checksum.d.ts +47 -0
  212. package/dist/utils/pipes/stream-length.d.ts +22 -0
  213. package/dist/utils/primitives/get-last-one.d.ts +3 -0
  214. package/dist/utils/primitives/is-record.d.ts +2 -0
  215. package/dist/utils/primitives/map-values.d.ts +9 -0
  216. package/dist/utils/primitives/pick.d.ts +2 -0
  217. package/dist/utils/primitives/to-milliseconds.d.ts +12 -0
  218. package/dist/utils/primitives/to-seconds.d.ts +12 -0
  219. package/dist/utils/range-checksum.d.ts +33 -0
  220. package/dist/utils/range-hasher.d.ts +46 -0
  221. package/dist/utils/retry.d.ts +64 -0
  222. package/dist/utils/types.d.ts +108 -0
  223. package/dist/utils/validation-error.d.ts +22 -0
  224. package/dist/utils/validator.d.ts +36 -0
  225. package/package.json +9 -9
@@ -0,0 +1,36 @@
1
+ import type { Validation } from "./types.d.ts";
2
+ import ValidationError from "./validation-error.d.ts";
3
+ /**
4
+ * Configurable validation system for file upload constraints.
5
+ * Supports multiple validation rules with custom error responses.
6
+ * @template T - The type being validated
7
+ */
8
+ export declare class Validator<T> {
9
+ private prefix;
10
+ private validators;
11
+ /**
12
+ * Creates a new Validator instance.
13
+ * @param prefix Prefix for generated error codes (default: "ValidationError")
14
+ */
15
+ constructor(prefix?: string);
16
+ /**
17
+ * Adds validation rules to the validator.
18
+ * Each rule must include an `isValid` function.
19
+ * @param config Validation configuration object
20
+ * @throws TypeError if any validator is missing the isValid function
21
+ */
22
+ add(config: Validation<T>): void;
23
+ /**
24
+ * Verifies an object against all configured validation rules.
25
+ * Throws ValidationError on first validation failure.
26
+ * @param t Object to validate
27
+ * @throws ValidationError if validation fails
28
+ */
29
+ verify(t: T): Promise<never | void>;
30
+ }
31
+ /**
32
+ * Type guard to check if an error is a ValidationError instance.
33
+ * @param error Error to check
34
+ * @returns True if the error is a ValidationError
35
+ */
36
+ export declare const isValidationError: (error: unknown) => error is ValidationError;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/storage",
3
- "version": "1.0.0-alpha.1",
3
+ "version": "1.0.0-alpha.11",
4
4
  "description": "Visulima upload - Store files in a web-accessible location via a simplified API. Can automatically scale and rotate images. Includes S3, Azure, GCS and local filesystem-based backends with the most convenient features of each.",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -61,7 +61,7 @@
61
61
  "repository": {
62
62
  "type": "git",
63
63
  "url": "https://github.com/visulima/visulima.git",
64
- "directory": "packages/uploads"
64
+ "directory": "packages/storage"
65
65
  },
66
66
  "funding": [
67
67
  {
@@ -186,14 +186,14 @@
186
186
  "LICENSE.md"
187
187
  ],
188
188
  "dependencies": {
189
- "@remix-run/multipart-parser": "^0.14.0",
189
+ "@remix-run/multipart-parser": "0.15.0",
190
190
  "@sindresorhus/fnv1a": "3.1.0",
191
- "@visulima/pagination": "4.0.5",
192
- "file-type": "21.1.1",
193
- "lru-cache": "^11.2.2",
191
+ "@visulima/pagination": "5.0.0-alpha.9",
192
+ "file-type": "22.0.0",
193
+ "lru-cache": "11.3.3",
194
194
  "mime": "^4.1.0",
195
- "nanoid": "5.1.6",
196
- "path-to-regexp": "8.3.0",
195
+ "nanoid": "5.1.7",
196
+ "path-to-regexp": "8.4.2",
197
197
  "type-is": "^2.0.1"
198
198
  },
199
199
  "peerDependencies": {
@@ -277,7 +277,7 @@
277
277
  }
278
278
  },
279
279
  "engines": {
280
- "node": ">=22.12 <=25.x"
280
+ "node": ">=22.13 <=25.x"
281
281
  },
282
282
  "publishConfig": {
283
283
  "access": "public",