@visulima/storage 1.0.0-alpha.18 → 1.0.0-alpha.19

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 (185) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE.md +30 -0
  3. package/dist/adapter/nuxt/module.d.ts +3 -3
  4. package/dist/adapter/nuxt/module.js +1 -93
  5. package/dist/handler/http/fetch/index.d.ts +6 -6
  6. package/dist/handler/http/fetch/index.js +1 -4
  7. package/dist/handler/http/hono/index.d.ts +3 -3
  8. package/dist/handler/http/hono/index.js +1 -65
  9. package/dist/handler/http/nextjs/index.d.ts +4 -4
  10. package/dist/handler/http/nextjs/index.js +1 -37
  11. package/dist/handler/http/node/index.d.ts +6 -6
  12. package/dist/handler/http/node/index.js +1 -8
  13. package/dist/handler/http/solid-start/index.d.ts +4 -4
  14. package/dist/handler/http/solid-start/index.js +1 -44
  15. package/dist/index.js +1 -13
  16. package/dist/openapi/index.js +1 -5
  17. package/dist/packem_shared/AwsLightFile-BTLiRxXj.js +1 -0
  18. package/dist/packem_shared/AwsLightMetaStorage-DHz1nf_H.js +1 -0
  19. package/dist/packem_shared/AwsLightStorage-CA9cdfJ6.js +1 -0
  20. package/dist/packem_shared/AzureFile-BKHru1zB.js +1 -0
  21. package/dist/packem_shared/AzureSMetaStorage-BqA4jUDJ.js +1 -0
  22. package/dist/packem_shared/AzureStorage-BKUjCymW.js +1 -0
  23. package/dist/packem_shared/BaseTransformer-D68eLyz1.js +1 -0
  24. package/dist/packem_shared/DiskStorage-DNjpDMX9.js +1 -0
  25. package/dist/packem_shared/DiskStorageWithChecksum-Bb6JX_tC.js +1 -0
  26. package/dist/packem_shared/ERRORS-B9jkvKwx.js +1 -0
  27. package/dist/packem_shared/File-alcSNpLq.js +1 -0
  28. package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
  29. package/dist/packem_shared/GCSFile-CHjX_fJk.js +1 -0
  30. package/dist/packem_shared/GCSMetaStorage-CpxQ8wM9.js +1 -0
  31. package/dist/packem_shared/GCStorage-DAg1V55T.js +1 -0
  32. package/dist/packem_shared/LocalMetaStorage-BWuFvWn4.js +1 -0
  33. package/dist/packem_shared/MediaTransformer-2C8MJeAg.js +1 -0
  34. package/dist/packem_shared/MetaStorage-Y4m1dWgd.js +1 -0
  35. package/dist/packem_shared/Metadata-B6Ir0KO7.js +1 -0
  36. package/dist/packem_shared/Multipart-Bd9YFFn0.js +1 -0
  37. package/dist/packem_shared/Multipart-D5bcEvga.js +1 -0
  38. package/dist/packem_shared/NetlifyBlobFile-CpzkMKng.js +1 -0
  39. package/dist/packem_shared/NetlifyBlobMetaStorage-dD0oBLom.js +1 -0
  40. package/dist/packem_shared/NetlifyBlobStorage-ByTwCN-h.js +1 -0
  41. package/dist/packem_shared/NoOpMetrics-Dky06sf1.js +1 -0
  42. package/dist/packem_shared/OpenTelemetryMetrics-9uxQMSlg.js +1 -0
  43. package/dist/packem_shared/Rest-CYEBbtCD.js +1 -0
  44. package/dist/packem_shared/Rest-DoonVU7B.js +1 -0
  45. package/dist/packem_shared/S3File-Du6wP0Sz.js +1 -0
  46. package/dist/packem_shared/S3MetaStorage-vcriiosn.js +1 -0
  47. package/dist/packem_shared/S3Storage-Fx6-OSc-.js +1 -0
  48. package/dist/packem_shared/TUS_RESUMABLE-B7KtPVeC.js +1 -0
  49. package/dist/packem_shared/Tus-Bd_2Ki2G.js +1 -0
  50. package/dist/packem_shared/Tus-CUBCkuPE.js +1 -0
  51. package/dist/packem_shared/ValidationError-D8KKJiKA.js +1 -0
  52. package/dist/packem_shared/VercelBlobFile-CL9MjKcY.js +1 -0
  53. package/dist/packem_shared/VercelBlobMetaStorage-BsOTx-Su.js +1 -0
  54. package/dist/packem_shared/VercelBlobStorage-kNkk5Cn4.js +1 -0
  55. package/dist/packem_shared/_commonjsHelpers-D6W6KoPK.js +1 -0
  56. package/dist/packem_shared/aws-light-meta-storage-TPyQwLvk.js +4 -0
  57. package/dist/packem_shared/backblaze-DEflv87m.js +1 -0
  58. package/dist/packem_shared/base-handler-core-DaggCVsq.js +1 -0
  59. package/dist/packem_shared/base-handler-fetch-DnarP64X.js +1 -0
  60. package/dist/packem_shared/base-handler-node-BTes6sql.js +1 -0
  61. package/dist/packem_shared/cache-qV_5Umeq.js +1 -0
  62. package/dist/packem_shared/cloudflare-DLAeQvgD.js +1 -0
  63. package/dist/packem_shared/defaultCloudStorageFileNameValidation-yiM9GxHr.js +1 -0
  64. package/dist/packem_shared/digitalOcean-nhZUds87.js +1 -0
  65. package/dist/packem_shared/disk-storage-BvdK4bqF.js +5 -0
  66. package/dist/packem_shared/gcs-meta-storage-CvGkpzVE.js +1 -0
  67. package/dist/packem_shared/has-content-Bx2p8Okx.js +1 -0
  68. package/dist/packem_shared/headers-DC2MEOrK.js +27 -0
  69. package/dist/packem_shared/is-expired-1JuZjDtb.js +1 -0
  70. package/dist/packem_shared/isRetryableError-DQNSZiBc.js +1 -0
  71. package/dist/packem_shared/isValidMediaType-B-2UKjZx.js +1 -0
  72. package/dist/packem_shared/local-meta-storage-Bkwqi_gi.js +1 -0
  73. package/dist/packem_shared/{media-transformer.d-DeHZkBVx.d.ts → media-transformer.d-CY9CsEOe.d.ts} +1 -1
  74. package/dist/packem_shared/minio-BWwgGXeE.js +1 -0
  75. package/dist/packem_shared/multipart-base-C6OjBwMS.js +1 -0
  76. package/dist/packem_shared/part-match-DqD5U7An.js +1 -0
  77. package/dist/packem_shared/path-D7rMc9nq-B718mbm6.js +1 -0
  78. package/dist/packem_shared/response-builder-Wdo_fvcF.js +1 -0
  79. package/dist/packem_shared/rest-base-B2Dv7esY.js +1 -0
  80. package/dist/packem_shared/restOpenApiSpec-PaIVbESh.js +1 -0
  81. package/dist/packem_shared/s3-base-storage-xHZNtsGe.js +1 -0
  82. package/dist/packem_shared/sharedGet-Ce7WGAsc.js +1 -0
  83. package/dist/packem_shared/storage-m_Cxgiih.js +1 -0
  84. package/dist/packem_shared/tigris-DZoyrMNd.js +1 -0
  85. package/dist/packem_shared/transformOpenApiSpec-C0vEbDTO.js +1 -0
  86. package/dist/packem_shared/{tus-base.d-BftIixIA.d.ts → tus-base.d-DNZRXR9X.d.ts} +2 -2
  87. package/dist/packem_shared/tusOpenApiSpec-DF0-hlWV.js +1 -0
  88. package/dist/packem_shared/{types.d-BPd_JkW1.d.ts → types.d-BCN94sB_.d.ts} +1 -1
  89. package/dist/packem_shared/{types.d-D-mlfmef.d.ts → types.d-D4caL2Fp.d.ts} +1 -1
  90. package/dist/packem_shared/update-size-DANV7aa2.js +1 -0
  91. package/dist/packem_shared/validator-DK41xp8N.js +1 -0
  92. package/dist/packem_shared/waitForStorage-ChSBLhLc.js +1 -0
  93. package/dist/packem_shared/wasabi-Dmce4x9s.js +1 -0
  94. package/dist/packem_shared/xhrOpenApiSpec-nyoboz83.js +1 -0
  95. package/dist/storage/aws/clients/index.js +1 -6
  96. package/dist/storage/aws/index.js +1 -3
  97. package/dist/storage/aws-light/index.js +1 -3
  98. package/dist/storage/azure/index.js +1 -3
  99. package/dist/storage/gcs/index.js +1 -4
  100. package/dist/storage/local/index.js +1 -3
  101. package/dist/storage/netlify-blob/index.js +1 -3
  102. package/dist/storage/vercel-blob/index.js +1 -3
  103. package/dist/transformer/audio-transformer.d.ts +1 -1
  104. package/dist/transformer/audio-transformer.js +1 -278
  105. package/dist/transformer/image-transformer.d.ts +1 -1
  106. package/dist/transformer/image-transformer.js +1 -1100
  107. package/dist/transformer/index.d.ts +2 -2
  108. package/dist/transformer/index.js +1 -4
  109. package/dist/transformer/video-transformer.d.ts +1 -1
  110. package/dist/transformer/video-transformer.js +1 -310
  111. package/package.json +17 -17
  112. package/dist/packem_shared/AwsLightFile-C-Nd5rtl.js +0 -11
  113. package/dist/packem_shared/AwsLightMetaStorage-BIDb5EPg.js +0 -4
  114. package/dist/packem_shared/AwsLightStorage-CMuKw4bI.js +0 -133
  115. package/dist/packem_shared/AzureFile-C0kug4w4.js +0 -8
  116. package/dist/packem_shared/AzureSMetaStorage-BEbXX9Uk.js +0 -89
  117. package/dist/packem_shared/AzureStorage-98-LRZ1e.js +0 -359
  118. package/dist/packem_shared/BaseTransformer-9965D4pb.js +0 -83
  119. package/dist/packem_shared/DiskStorage-COMe_G42.js +0 -12
  120. package/dist/packem_shared/DiskStorageWithChecksum-BVaaZiyS.js +0 -249
  121. package/dist/packem_shared/ERRORS-D0apMqnc.js +0 -97
  122. package/dist/packem_shared/File-CPUhj3DI.js +0 -69
  123. package/dist/packem_shared/GCSConfig-vPP22kN6.js +0 -11
  124. package/dist/packem_shared/GCSFile-DaDiCKE2.js +0 -8
  125. package/dist/packem_shared/GCSMetaStorage-w3c8c5ak.js +0 -7
  126. package/dist/packem_shared/GCStorage-DSktYrrp.js +0 -410
  127. package/dist/packem_shared/LocalMetaStorage-DvnZqf61.js +0 -7
  128. package/dist/packem_shared/MediaTransformer-BRRqYA0E.js +0 -1202
  129. package/dist/packem_shared/MetaStorage-pECeFOad.js +0 -46
  130. package/dist/packem_shared/Metadata-DRLXeJ0F.js +0 -89
  131. package/dist/packem_shared/Multipart-BzzvNxt4.js +0 -128
  132. package/dist/packem_shared/Multipart-DLtFLQ8s.js +0 -163
  133. package/dist/packem_shared/NetlifyBlobFile-CfyJtGWN.js +0 -14
  134. package/dist/packem_shared/NetlifyBlobMetaStorage-eJT6RFy9.js +0 -9
  135. package/dist/packem_shared/NetlifyBlobStorage-nPv7iIAG.js +0 -376
  136. package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +0 -10
  137. package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +0 -67
  138. package/dist/packem_shared/Rest-DEa7IA9R.js +0 -267
  139. package/dist/packem_shared/Rest-qhMbCn5a.js +0 -228
  140. package/dist/packem_shared/S3File-BXCuJaQZ.js +0 -11
  141. package/dist/packem_shared/S3MetaStorage-yT4CznlV.js +0 -77
  142. package/dist/packem_shared/S3Storage-wi5XT-yu.js +0 -317
  143. package/dist/packem_shared/TUS_RESUMABLE-Dtfsffnj.js +0 -434
  144. package/dist/packem_shared/Tus-Ck0Hdle5.js +0 -195
  145. package/dist/packem_shared/Tus-_0vCdHyB.js +0 -200
  146. package/dist/packem_shared/ValidationError-BfF1aE4h.js +0 -26
  147. package/dist/packem_shared/VercelBlobFile-DkFIIb9Q.js +0 -18
  148. package/dist/packem_shared/VercelBlobMetaStorage-DjFmi4vp.js +0 -9
  149. package/dist/packem_shared/VercelBlobStorage-CmMgiDgr.js +0 -261
  150. package/dist/packem_shared/_commonjsHelpers-BqLXS_qQ.js +0 -5
  151. package/dist/packem_shared/aws-light-meta-storage-BGZEiY3y.js +0 -447
  152. package/dist/packem_shared/backblaze-BlMnIcBC.js +0 -20
  153. package/dist/packem_shared/base-handler-core-lVB-D59L.js +0 -306
  154. package/dist/packem_shared/base-handler-fetch-CitgN-Aw.js +0 -291
  155. package/dist/packem_shared/base-handler-node-BiO2DF87.js +0 -731
  156. package/dist/packem_shared/cache-B88MXQ_2.js +0 -18
  157. package/dist/packem_shared/cloudflare-Bi1q8wXE.js +0 -21
  158. package/dist/packem_shared/defaultCloudStorageFileNameValidation-Brw40ZEP.js +0 -11
  159. package/dist/packem_shared/digitalOcean-CWQRJM3L.js +0 -21
  160. package/dist/packem_shared/disk-storage-D9RfoKjW.js +0 -832
  161. package/dist/packem_shared/gcs-meta-storage-CPSVL_a7.js +0 -159
  162. package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
  163. package/dist/packem_shared/headers-YLRp1dLo.js +0 -1318
  164. package/dist/packem_shared/is-expired-CTThU1q5.js +0 -8
  165. package/dist/packem_shared/isRetryableError-Dycp7127.js +0 -82
  166. package/dist/packem_shared/isValidMediaType-BeDgiObq.js +0 -35
  167. package/dist/packem_shared/local-meta-storage-D-pPc3FI.js +0 -658
  168. package/dist/packem_shared/minio-C2YBZQOw.js +0 -22
  169. package/dist/packem_shared/multipart-base-C994naBi.js +0 -102
  170. package/dist/packem_shared/part-match-Dt738Ddb.js +0 -96
  171. package/dist/packem_shared/path-aV9lMdcn-DMU5H1-h.js +0 -162
  172. package/dist/packem_shared/response-builder-BtnRiBUI.js +0 -45
  173. package/dist/packem_shared/rest-base-k1ory8uB.js +0 -457
  174. package/dist/packem_shared/restOpenApiSpec-BBJ_SiPE.js +0 -800
  175. package/dist/packem_shared/s3-base-storage-zUO8u8Cp.js +0 -510
  176. package/dist/packem_shared/sharedGet-CkSLSnMd.js +0 -1022
  177. package/dist/packem_shared/storage-5XW1E7XU.js +0 -1188
  178. package/dist/packem_shared/tigris-Hac8TKnX.js +0 -21
  179. package/dist/packem_shared/transformOpenApiSpec-BodFhFls.js +0 -975
  180. package/dist/packem_shared/tusOpenApiSpec-DzppyJTW.js +0 -740
  181. package/dist/packem_shared/update-size-CCGm6i1J.js +0 -8
  182. package/dist/packem_shared/validator-DuO17wFF.js +0 -79
  183. package/dist/packem_shared/waitForStorage-Cscw85sx.js +0 -18
  184. package/dist/packem_shared/wasabi-DIyflHSd.js +0 -21
  185. package/dist/packem_shared/xhrOpenApiSpec-CXz7BC5J.js +0 -264
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## @visulima/storage [1.0.0-alpha.19](https://github.com/visulima/visulima/compare/@visulima/storage@1.0.0-alpha.18...@visulima/storage@1.0.0-alpha.19) (2026-05-06)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * re-enable jsdoc/match-description in api-platform and tighten config docs ([4ecaa31](https://github.com/visulima/visulima/commit/4ecaa315064cdd798af1ea1296be1fe52967bf9a))
6
+ * **storage:** apply partial lint cleanup from agent batch ([ffcbea2](https://github.com/visulima/visulima/commit/ffcbea2a738fd2a116b26e58eda433109a944d85))
7
+ * **storage:** apply prettier and eslint quote-style auto-fix ([437aab6](https://github.com/visulima/visulima/commit/437aab6dc248a8ac058c2af3832bd898a2c51053))
8
+ * **storage:** clear lint and prettier diagnostics ([d6c05b1](https://github.com/visulima/visulima/commit/d6c05b11d278d844c872a6cd3364f95778381003))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.14
14
+
1
15
  ## @visulima/storage [1.0.0-alpha.18](https://github.com/visulima/visulima/compare/@visulima/storage@1.0.0-alpha.17...@visulima/storage@1.0.0-alpha.18) (2026-05-04)
2
16
 
3
17
 
package/LICENSE.md CHANGED
@@ -120,11 +120,14 @@ Repository: git+https://github.com/visulima/visulima.git
120
120
  > >
121
121
  > >
122
122
  > > # Licenses of bundled dependencies
123
+ > >
123
124
  > > The published @visulima/error artifact additionally contains code with the following licenses:
124
125
  > > MIT
125
126
  > >
126
127
  > > # Bundled dependencies:
128
+ > >
127
129
  > > ## is-plain-obj
130
+ > >
128
131
  > > License: MIT
129
132
  > > By: Sindre Sorhus
130
133
  > > Repository: sindresorhus/is-plain-obj
@@ -138,6 +141,33 @@ Repository: git+https://github.com/visulima/visulima.git
138
141
  > > > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
139
142
  > > >
140
143
  > > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
144
+ > >
145
+ > >
146
+ > >
147
+ > >
148
+ > >
149
+ > > # Licenses of bundled types
150
+ > > The published @visulima/error artifact additionally contains code with the following licenses:
151
+ > > Apache-2.0
152
+ > >
153
+ > > # Bundled types:
154
+ > > ## ai
155
+ > > License: Apache-2.0
156
+ > > Repository: https://github.com/vercel/ai
157
+ > >
158
+ > > > Copyright 2023 Vercel, Inc.
159
+ > > >
160
+ > > > Licensed under the Apache License, Version 2.0 (the "License");
161
+ > > > you may not use this file except in compliance with the License.
162
+ > > > You may obtain a copy of the License at
163
+ > > >
164
+ > > > http://www.apache.org/licenses/LICENSE-2.0
165
+ > > >
166
+ > > > Unless required by applicable law or agreed to in writing, software
167
+ > > > distributed under the License is distributed on an "AS IS" BASIS,
168
+ > > > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
169
+ > > > See the License for the specific language governing permissions and
170
+ > > > limitations under the License.
141
171
  >
142
172
  > ---------------------------------------
143
173
  >
@@ -1,11 +1,11 @@
1
- import { U as UploadOptions } from "../../packem_shared/types.d-D-mlfmef.js";
1
+ import { U as UploadOptions } from "../../packem_shared/types.d-D4caL2Fp.js";
2
2
  import { U as UploadFile, B as BaseStorage } from "../../packem_shared/storage.d-BOMUJD96.js";
3
3
  import 'node:stream';
4
4
  import 'node:events';
5
5
  import 'node:http';
6
6
  import '@visulima/pagination';
7
- import "../../packem_shared/media-transformer.d-DeHZkBVx.js";
8
- import "../../packem_shared/types.d-BPd_JkW1.js";
7
+ import "../../packem_shared/media-transformer.d-CY9CsEOe.js";
8
+ import "../../packem_shared/types.d-BCN94sB_.js";
9
9
  import 'node:crypto';
10
10
  import 'lru-cache';
11
11
  /**
@@ -1,93 +1 @@
1
- import { defineNuxtModule } from '@nuxt/kit';
2
-
3
- const handlerStorage = /* @__PURE__ */ new Map();
4
- const nuxtModule = defineNuxtModule({
5
- defaults: {
6
- basePath: "/api/upload",
7
- cors: {
8
- headers: ["Content-Type", "Upload-Offset", "Upload-Length", "Tus-Resumable"],
9
- methods: ["GET", "POST", "PATCH", "PUT", "HEAD", "DELETE", "OPTIONS"],
10
- origin: "*"
11
- },
12
- multipart: true,
13
- rest: true,
14
- tus: true
15
- },
16
- meta: {
17
- compatibility: {
18
- nuxt: ">=4.0.0"
19
- },
20
- configKey: "storage",
21
- name: "@visulima/storage"
22
- },
23
- async setup(options, nuxt) {
24
- const {
25
- basePath = "/api/upload",
26
- cors = {
27
- headers: ["Content-Type", "Upload-Offset", "Upload-Length", "Tus-Resumable"],
28
- methods: ["GET", "POST", "PATCH", "PUT", "HEAD", "DELETE", "OPTIONS"],
29
- origin: "*"
30
- },
31
- multipart = true,
32
- multipartOptions = {},
33
- rest = true,
34
- restOptions = {},
35
- storage,
36
- tus = true,
37
- tusOptions = {}
38
- } = options;
39
- if (!storage) {
40
- throw new Error("[@visulima/storage/nuxt] Storage instance is required");
41
- }
42
- const { Multipart, Rest, Tus } = await import('../../handler/http/node/index.js');
43
- const multipartHandler = multipart ? new Multipart({ storage, ...multipartOptions }) : void 0;
44
- const restHandler = rest ? new Rest({ storage, ...restOptions }) : void 0;
45
- const tusHandler = tus ? new Tus({ storage, ...tusOptions }) : void 0;
46
- const setCorsHeaders = (event) => {
47
- const origin = Array.isArray(cors.origin) ? cors.origin.join(", ") : cors.origin || "*";
48
- event.node.res.setHeader("Access-Control-Allow-Origin", origin);
49
- if (cors.methods) {
50
- event.node.res.setHeader("Access-Control-Allow-Methods", cors.methods.join(", "));
51
- }
52
- if (cors.headers) {
53
- event.node.res.setHeader("Access-Control-Allow-Headers", cors.headers.join(", "));
54
- }
55
- };
56
- if (multipartHandler) {
57
- handlerStorage.set(`${basePath}/multipart`, { handler: multipartHandler, setCorsHeaders });
58
- }
59
- if (restHandler) {
60
- handlerStorage.set(`${basePath}/rest`, { handler: restHandler, setCorsHeaders });
61
- }
62
- if (tusHandler) {
63
- handlerStorage.set(`${basePath}/tus`, { handler: tusHandler, setCorsHeaders });
64
- }
65
- nuxt.hook("nitro:config", (nitroConfig) => {
66
- const routeRules = nitroConfig.routeRules || {};
67
- if (multipartHandler) {
68
- routeRules[`${basePath}/multipart/**`] = { cors: true };
69
- }
70
- if (restHandler) {
71
- routeRules[`${basePath}/rest/**`] = { cors: true };
72
- }
73
- if (tusHandler) {
74
- routeRules[`${basePath}/tus/**`] = { cors: true };
75
- }
76
- nitroConfig.routeRules = routeRules;
77
- });
78
- nuxt.hook("nitro:init", (nitro) => {
79
- nitro.hooks.hook("request", async (event) => {
80
- const url = event.node.req.url || "";
81
- for (const [route, { handler, setCorsHeaders: setHeaders }] of handlerStorage.entries()) {
82
- if (url.startsWith(route)) {
83
- setHeaders(event);
84
- await handler.handle(event.node.req, event.node.res);
85
- return;
86
- }
87
- }
88
- });
89
- });
90
- }
91
- });
92
-
93
- export { nuxtModule as default };
1
+ var v=Object.defineProperty;var p=(a,r)=>v(a,"name",{value:r,configurable:!0});import{defineNuxtModule as b}from"@nuxt/kit";var U=Object.defineProperty,S=p((a,r)=>U(a,"name",{value:r,configurable:!0}),"g");const i=new Map,j=b({defaults:{basePath:"/api/upload",cors:{headers:["Content-Type","Upload-Offset","Upload-Length","Tus-Resumable"],methods:["GET","POST","PATCH","PUT","HEAD","DELETE","OPTIONS"],origin:"*"},multipart:!0,rest:!0,tus:!0},meta:{compatibility:{nuxt:">=4.0.0"},configKey:"storage",name:"@visulima/storage"},async setup(a,r){const{basePath:o="/api/upload",cors:s={headers:["Content-Type","Upload-Offset","Upload-Length","Tus-Resumable"],methods:["GET","POST","PATCH","PUT","HEAD","DELETE","OPTIONS"],origin:"*"},multipart:h=!0,multipartOptions:m={},rest:g=!0,restOptions:T={},storage:n,tus:f=!0,tusOptions:H={}}=a;if(!n)throw new Error("[@visulima/storage/nuxt] Storage instance is required");const{Multipart:O,Rest:A,Tus:C}=await import("../../handler/http/node/index.js"),u=h?new O({storage:n,...m}):void 0,d=g?new A({storage:n,...T}):void 0,l=f?new C({storage:n,...H}):void 0,c=S(t=>{const e=Array.isArray(s.origin)?s.origin.join(", "):s.origin||"*";t.node.res.setHeader("Access-Control-Allow-Origin",e),s.methods&&t.node.res.setHeader("Access-Control-Allow-Methods",s.methods.join(", ")),s.headers&&t.node.res.setHeader("Access-Control-Allow-Headers",s.headers.join(", "))},"setCorsHeaders");u&&i.set(`${o}/multipart`,{handler:u,setCorsHeaders:c}),d&&i.set(`${o}/rest`,{handler:d,setCorsHeaders:c}),l&&i.set(`${o}/tus`,{handler:l,setCorsHeaders:c}),r.hook("nitro:config",t=>{const e=t.routeRules||{};u&&(e[`${o}/multipart/**`]={cors:!0}),d&&(e[`${o}/rest/**`]={cors:!0}),l&&(e[`${o}/tus/**`]={cors:!0}),t.routeRules=e}),r.hook("nitro:init",t=>{t.hooks.hook("request",async e=>{const w=e.node.req.url||"";for(const[E,{handler:P,setCorsHeaders:y}]of i.entries())if(w.startsWith(E)){y(e),await P.handle(e.node.req,e.node.res);return}})})}});export{j as default};
@@ -1,16 +1,16 @@
1
1
  import { U as UploadFile, l as UploadResponse } from "../../../packem_shared/storage.d-BOMUJD96.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-D-mlfmef.js";
4
- export { type A as AsyncHandler, type B as BaseHandler, type M as MethodHandler, type b as RequestEvent, type c as UploadErrorEvent, type d as UploadEvent } from "../../../packem_shared/types.d-D-mlfmef.js";
5
- import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-BftIixIA.js";
6
- export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-BftIixIA.js";
3
+ import { H as Handlers, R as ResponseFile, a as ResponseList, U as UploadOptions } from "../../../packem_shared/types.d-D4caL2Fp.js";
4
+ export { type A as AsyncHandler, type B as BaseHandler, type M as MethodHandler, type b as RequestEvent, type c as UploadErrorEvent, type d as UploadEvent } from "../../../packem_shared/types.d-D4caL2Fp.js";
5
+ import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-DNZRXR9X.js";
6
+ export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-DNZRXR9X.js";
7
7
  import 'node:crypto';
8
8
  import 'node:http';
9
9
  import 'lru-cache';
10
10
  import 'node:events';
11
11
  import '@visulima/pagination';
12
- import "../../../packem_shared/media-transformer.d-DeHZkBVx.js";
13
- import "../../../packem_shared/types.d-BPd_JkW1.js";
12
+ import "../../../packem_shared/media-transformer.d-CY9CsEOe.js";
13
+ import "../../../packem_shared/types.d-BCN94sB_.js";
14
14
  /**
15
15
  * Base handler for Web API Fetch platform (Request/Response).
16
16
  * Extends BaseHandlerCore with Fetch-specific request/response handling.
@@ -1,4 +1 @@
1
- export { default as Multipart } from '../../../packem_shared/Multipart-DLtFLQ8s.js';
2
- export { default as Rest } from '../../../packem_shared/Rest-DEa7IA9R.js';
3
- export { Tus } from '../../../packem_shared/Tus-_0vCdHyB.js';
4
- export { TUS_RESUMABLE, TUS_VERSION } from '../../../packem_shared/TUS_RESUMABLE-Dtfsffnj.js';
1
+ import{default as o}from"../../../packem_shared/Multipart-Bd9YFFn0.js";import{default as f}from"../../../packem_shared/Rest-DoonVU7B.js";import{Tus as p}from"../../../packem_shared/Tus-Bd_2Ki2G.js";import{TUS_RESUMABLE as s,TUS_VERSION as u}from"../../../packem_shared/TUS_RESUMABLE-B7KtPVeC.js";export{o as Multipart,f as Rest,s as TUS_RESUMABLE,u as TUS_VERSION,p as Tus};
@@ -1,13 +1,13 @@
1
1
  import { U as UploadFile } from "../../../packem_shared/storage.d-BOMUJD96.js";
2
2
  import 'node:stream';
3
- import { U as UploadOptions } from "../../../packem_shared/types.d-D-mlfmef.js";
3
+ import { U as UploadOptions } from "../../../packem_shared/types.d-D4caL2Fp.js";
4
4
  import 'node:crypto';
5
5
  import 'node:http';
6
6
  import 'lru-cache';
7
7
  import 'node:events';
8
8
  import '@visulima/pagination';
9
- import "../../../packem_shared/media-transformer.d-DeHZkBVx.js";
10
- import "../../../packem_shared/types.d-BPd_JkW1.js";
9
+ import "../../../packem_shared/media-transformer.d-CY9CsEOe.js";
10
+ import "../../../packem_shared/types.d-BCN94sB_.js";
11
11
  declare const GET_MATCH_RESULT: unique symbol;
12
12
  /**
13
13
  * Interface representing a router.
@@ -1,65 +1 @@
1
- import Multipart from '../../../packem_shared/Multipart-DLtFLQ8s.js';
2
- import RestFetch from '../../../packem_shared/Rest-DEa7IA9R.js';
3
- import { Tus } from '../../../packem_shared/Tus-_0vCdHyB.js';
4
-
5
- const createHandlerFunction = (handler) => async (c) => {
6
- try {
7
- const request = c.req.raw;
8
- return await handler.fetch(request);
9
- } catch (error) {
10
- const errorObject = error;
11
- const statusCode = errorObject.statusCode || (errorObject.status ? Number.parseInt(errorObject.status, 10) : void 0) || 500;
12
- return Response.json({ error: errorObject.message || "Request failed" }, { status: statusCode });
13
- }
14
- };
15
- const createStorageHandler = (app, config) => {
16
- const { path, type, ...handlerConfig } = config;
17
- let handler;
18
- switch (type) {
19
- case "multipart": {
20
- handler = new Multipart(handlerConfig);
21
- break;
22
- }
23
- case "rest": {
24
- handler = new RestFetch(handlerConfig);
25
- break;
26
- }
27
- case "tus": {
28
- handler = new Tus(handlerConfig);
29
- break;
30
- }
31
- default: {
32
- throw new Error(`Unknown handler type: ${String(type ?? "unknown")}`);
33
- }
34
- }
35
- const handlerFunction = createHandlerFunction(handler);
36
- switch (type) {
37
- case "multipart": {
38
- app.post(path, handlerFunction);
39
- app.get(`${path}/:id?/:metadata?`, handlerFunction);
40
- app.delete(`${path}/:id`, handlerFunction);
41
- app.on("OPTIONS", path, handlerFunction);
42
- break;
43
- }
44
- case "rest": {
45
- app.post(path, handlerFunction);
46
- app.put(`${path}/:id`, handlerFunction);
47
- app.patch(`${path}/:id`, handlerFunction);
48
- app.get(`${path}/:id?`, handlerFunction);
49
- app.on("HEAD", `${path}/:id`, handlerFunction);
50
- app.delete(`${path}/:id?`, handlerFunction);
51
- app.on("OPTIONS", path, handlerFunction);
52
- break;
53
- }
54
- case "tus": {
55
- app.all(path, handlerFunction);
56
- app.all(`${path}/:id`, handlerFunction);
57
- break;
58
- }
59
- default: {
60
- throw new Error(`Unknown handler type: ${String(type)}`);
61
- }
62
- }
63
- };
64
-
65
- export { createStorageHandler };
1
+ var d=Object.defineProperty;var c=(t,n)=>d(t,"name",{value:n,configurable:!0});import u from"../../../packem_shared/Multipart-Bd9YFFn0.js";import l from"../../../packem_shared/Rest-DoonVU7B.js";import{Tus as p}from"../../../packem_shared/Tus-Bd_2Ki2G.js";var w=Object.defineProperty,i=c((t,n)=>w(t,"name",{value:n,configurable:!0}),"a");const m=i(t=>async n=>{try{const e=n.req.raw;return await t.fetch(e)}catch(e){const a=e,s=a.statusCode||(a.status?Number.parseInt(a.status,10):void 0)||500;return Response.json({error:a.message||"Request failed"},{status:s})}},"createHandlerFunction"),g=i((t,n)=>{const{path:e,type:a,...s}=n;let o;switch(a){case"multipart":{o=new u(s);break}case"rest":{o=new l(s);break}case"tus":{o=new p(s);break}default:throw new Error(`Unknown handler type: ${String(a??"unknown")}`)}const r=m(o);switch(a){case"multipart":{t.post(e,r),t.get(`${e}/:id?/:metadata?`,r),t.delete(`${e}/:id`,r),t.on("OPTIONS",e,r);break}case"rest":{t.post(e,r),t.put(`${e}/:id`,r),t.patch(`${e}/:id`,r),t.get(`${e}/:id?`,r),t.on("HEAD",`${e}/:id`,r),t.delete(`${e}/:id?`,r),t.on("OPTIONS",e,r);break}case"tus":{t.all(e,r),t.all(`${e}/:id`,r);break}default:throw new Error(`Unknown handler type: ${String(a)}`)}},"createStorageHandler");export{g as createStorageHandler};
@@ -1,14 +1,14 @@
1
1
  import { NextRequest, NextResponse } from 'next/server.js';
2
2
  import { U as UploadFile } from "../../../packem_shared/storage.d-BOMUJD96.js";
3
3
  import 'node:stream';
4
- import { U as UploadOptions } from "../../../packem_shared/types.d-D-mlfmef.js";
4
+ import { U as UploadOptions } from "../../../packem_shared/types.d-D4caL2Fp.js";
5
5
  import 'node:crypto';
6
6
  import 'node:http';
7
7
  import 'lru-cache';
8
8
  import 'node:events';
9
9
  import '@visulima/pagination';
10
- import "../../../packem_shared/media-transformer.d-DeHZkBVx.js";
11
- import "../../../packem_shared/types.d-BPd_JkW1.js";
10
+ import "../../../packem_shared/media-transformer.d-CY9CsEOe.js";
11
+ import "../../../packem_shared/types.d-BCN94sB_.js";
12
12
  /**
13
13
  * Configuration for Next.js handler.
14
14
  */
@@ -65,5 +65,5 @@ interface NextjsHandlerConfig<TFile extends UploadFile> extends UploadOptions<TF
65
65
  * export const OPTIONS = handler;
66
66
  * ```
67
67
  */
68
- declare const createHandler: <TFile extends UploadFile>(config: NextjsHandlerConfig<TFile>) => (request: NextRequest) => Promise<NextResponse>;
68
+ declare const createHandler: <TFile extends UploadFile>(config: NextjsHandlerConfig<TFile>) => ((request: NextRequest) => Promise<NextResponse>);
69
69
  export { NextjsHandlerConfig, createHandler };
@@ -1,37 +1 @@
1
- import { NextResponse } from 'next/server.js';
2
- import Multipart from '../../../packem_shared/Multipart-DLtFLQ8s.js';
3
- import RestFetch from '../../../packem_shared/Rest-DEa7IA9R.js';
4
- import { Tus } from '../../../packem_shared/Tus-_0vCdHyB.js';
5
-
6
- const createHandler = (config) => {
7
- let handler;
8
- switch (config.type) {
9
- case "multipart": {
10
- handler = new Multipart(config);
11
- break;
12
- }
13
- case "rest": {
14
- handler = new RestFetch(config);
15
- break;
16
- }
17
- case "tus": {
18
- handler = new Tus(config);
19
- break;
20
- }
21
- default: {
22
- throw new Error(`Unknown handler type: ${String(config.type ?? "unknown")}`);
23
- }
24
- }
25
- const nextjsHandler = async (request) => {
26
- try {
27
- return await handler.fetch(request);
28
- } catch (error) {
29
- const errorObject = error;
30
- const statusCode = errorObject.statusCode || (errorObject.status ? Number.parseInt(errorObject.status, 10) : void 0) || 500;
31
- return NextResponse.json({ error: errorObject.message || "Request failed" }, { status: statusCode });
32
- }
33
- };
34
- return nextjsHandler;
35
- };
36
-
37
- export { createHandler };
1
+ var c=Object.defineProperty;var a=(e,r)=>c(e,"name",{value:r,configurable:!0});import{NextResponse as i}from"next/server.js";import m from"../../../packem_shared/Multipart-Bd9YFFn0.js";import p from"../../../packem_shared/Rest-DoonVU7B.js";import{Tus as d}from"../../../packem_shared/Tus-Bd_2Ki2G.js";var l=Object.defineProperty,n=a((e,r)=>l(e,"name",{value:r,configurable:!0}),"r");const k=n(e=>{let r;switch(e.type){case"multipart":{r=new m(e);break}case"rest":{r=new p(e);break}case"tus":{r=new d(e);break}default:throw new Error(`Unknown handler type: ${String(e.type??"unknown")}`)}return n(async s=>{try{return await r.fetch(s)}catch(o){const t=o,u=t.statusCode||(t.status?Number.parseInt(t.status,10):void 0)||500;return i.json({error:t.message||"Request failed"},{status:u})}},"nextjsHandler")},"createHandler");export{k as createHandler};
@@ -1,16 +1,16 @@
1
1
  import { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import { U as UploadFile, l as UploadResponse } from "../../../packem_shared/storage.d-BOMUJD96.js";
3
3
  import { Readable } from 'node:stream';
4
- import { H as Handlers, A as AsyncHandler, U as UploadOptions, R as ResponseFile, a as ResponseList, M as MethodHandler } from "../../../packem_shared/types.d-D-mlfmef.js";
5
- export { type B as BaseHandler, type b as RequestEvent, type c as UploadErrorEvent, type d as UploadEvent } from "../../../packem_shared/types.d-D-mlfmef.js";
6
- import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-BftIixIA.js";
7
- export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-BftIixIA.js";
4
+ import { H as Handlers, A as AsyncHandler, U as UploadOptions, R as ResponseFile, a as ResponseList, M as MethodHandler } from "../../../packem_shared/types.d-D4caL2Fp.js";
5
+ export { type B as BaseHandler, type b as RequestEvent, type c as UploadErrorEvent, type d as UploadEvent } from "../../../packem_shared/types.d-D4caL2Fp.js";
6
+ import { B as BaseHandlerCore } from "../../../packem_shared/tus-base.d-DNZRXR9X.js";
7
+ export { T as TUS_RESUMABLE, a as TUS_VERSION } from "../../../packem_shared/tus-base.d-DNZRXR9X.js";
8
8
  import 'node:crypto';
9
9
  import 'lru-cache';
10
10
  import 'node:events';
11
11
  import '@visulima/pagination';
12
- import "../../../packem_shared/media-transformer.d-DeHZkBVx.js";
13
- import "../../../packem_shared/types.d-BPd_JkW1.js";
12
+ import "../../../packem_shared/media-transformer.d-CY9CsEOe.js";
13
+ import "../../../packem_shared/types.d-BCN94sB_.js";
14
14
  /**
15
15
  * Base handler for Node.js platform (IncomingMessage/ServerResponse).
16
16
  * Extends BaseHandlerCore with Node.js-specific request/response handling.
@@ -1,8 +1 @@
1
- import Multipart from '../../../packem_shared/Multipart-BzzvNxt4.js';
2
- import Rest from '../../../packem_shared/Rest-qhMbCn5a.js';
3
- import { Tus } from '../../../packem_shared/Tus-Ck0Hdle5.js';
4
- export { TUS_RESUMABLE, TUS_VERSION } from '../../../packem_shared/TUS_RESUMABLE-Dtfsffnj.js';
5
-
6
-
7
-
8
- export { Multipart, Rest, Tus };
1
+ import o from"../../../packem_shared/Multipart-D5bcEvga.js";import m from"../../../packem_shared/Rest-CYEBbtCD.js";import{Tus as f}from"../../../packem_shared/Tus-CUBCkuPE.js";import{TUS_RESUMABLE as S,TUS_VERSION as a}from"../../../packem_shared/TUS_RESUMABLE-B7KtPVeC.js";export{o as Multipart,m as Rest,S as TUS_RESUMABLE,a as TUS_VERSION,f as Tus};
@@ -1,14 +1,14 @@
1
1
  import { APIEvent } from '@solidjs/start/server';
2
2
  import { U as UploadFile } from "../../../packem_shared/storage.d-BOMUJD96.js";
3
3
  import 'node:stream';
4
- import { U as UploadOptions } from "../../../packem_shared/types.d-D-mlfmef.js";
4
+ import { U as UploadOptions } from "../../../packem_shared/types.d-D4caL2Fp.js";
5
5
  import 'node:crypto';
6
6
  import 'node:http';
7
7
  import 'lru-cache';
8
8
  import 'node:events';
9
9
  import '@visulima/pagination';
10
- import "../../../packem_shared/media-transformer.d-DeHZkBVx.js";
11
- import "../../../packem_shared/types.d-BPd_JkW1.js";
10
+ import "../../../packem_shared/media-transformer.d-CY9CsEOe.js";
11
+ import "../../../packem_shared/types.d-BCN94sB_.js";
12
12
  /**
13
13
  * Configuration for SolidStart handler.
14
14
  */
@@ -65,5 +65,5 @@ interface SolidStartHandlerConfig<TFile extends UploadFile> extends UploadOption
65
65
  * export const OPTIONS = handler;
66
66
  * ```
67
67
  */
68
- declare const createSolidStartHandler: <TFile extends UploadFile>(config: SolidStartHandlerConfig<TFile>) => (event: APIEvent) => Promise<Response>;
68
+ declare const createSolidStartHandler: <TFile extends UploadFile>(config: SolidStartHandlerConfig<TFile>) => ((event: APIEvent) => Promise<Response>);
69
69
  export { SolidStartHandlerConfig, createSolidStartHandler };
@@ -1,44 +1 @@
1
- import Multipart from '../../../packem_shared/Multipart-DLtFLQ8s.js';
2
- import RestFetch from '../../../packem_shared/Rest-DEa7IA9R.js';
3
- import { Tus } from '../../../packem_shared/Tus-_0vCdHyB.js';
4
-
5
- const createSolidStartHandler = (config) => {
6
- let handler;
7
- switch (config.type) {
8
- case "multipart": {
9
- handler = new Multipart(config);
10
- break;
11
- }
12
- case "rest": {
13
- handler = new RestFetch(config);
14
- break;
15
- }
16
- case "tus": {
17
- handler = new Tus(config);
18
- break;
19
- }
20
- default: {
21
- throw new Error(`Unknown handler type: ${String(config.type ?? "unknown")}`);
22
- }
23
- }
24
- const solidStartHandler = async (event) => {
25
- try {
26
- return await handler.fetch(event.request);
27
- } catch (error) {
28
- const errorObject = error;
29
- const statusCode = errorObject.statusCode || (errorObject.status ? Number.parseInt(errorObject.status, 10) : void 0) || 500;
30
- return Response.json(
31
- { error: errorObject.message || "Request failed" },
32
- {
33
- headers: {
34
- "Content-Type": "application/json"
35
- },
36
- status: statusCode
37
- }
38
- );
39
- }
40
- };
41
- return solidStartHandler;
42
- };
43
-
44
- export { createSolidStartHandler };
1
+ var i=Object.defineProperty;var a=(t,e)=>i(t,"name",{value:e,configurable:!0});import c from"../../../packem_shared/Multipart-Bd9YFFn0.js";import d from"../../../packem_shared/Rest-DoonVU7B.js";import{Tus as l}from"../../../packem_shared/Tus-Bd_2Ki2G.js";var p=Object.defineProperty,n=a((t,e)=>p(t,"name",{value:e,configurable:!0}),"s");const b=n(t=>{let e;switch(t.type){case"multipart":{e=new c(t);break}case"rest":{e=new d(t);break}case"tus":{e=new l(t);break}default:throw new Error(`Unknown handler type: ${String(t.type??"unknown")}`)}return n(async s=>{try{return await e.fetch(s.request)}catch(o){const r=o,u=r.statusCode||(r.status?Number.parseInt(r.status,10):void 0)||500;return Response.json({error:r.message||"Request failed"},{headers:{"Content-Type":"application/json"},status:u})}},"solidStartHandler")},"createSolidStartHandler");export{b as createSolidStartHandler};
package/dist/index.js CHANGED
@@ -1,13 +1 @@
1
- export { waitForStorage } from './packem_shared/waitForStorage-Cscw85sx.js';
2
- export { D as DiskStorage } from './packem_shared/disk-storage-D9RfoKjW.js';
3
- export { default as DiskStorageWithChecksum } from './packem_shared/DiskStorageWithChecksum-BVaaZiyS.js';
4
- export { L as LocalMetaStorage } from './packem_shared/local-meta-storage-D-pPc3FI.js';
5
- export { default as MetaStorage } from './packem_shared/MetaStorage-pECeFOad.js';
6
- export { B as AbstractBaseStorage, d as defaultCloudStorageFileNameValidation, a as defaultFilesystemFileNameValidation } from './packem_shared/storage-5XW1E7XU.js';
7
- export { ERRORS, ErrorMap, UploadError, isUploadError, throwErrorCode } from './packem_shared/ERRORS-D0apMqnc.js';
8
- export { createRetryWrapper, isRetryableError, retry } from './packem_shared/isRetryableError-Dycp7127.js';
9
- export { fileTypeFromBlob, fileTypeFromBuffer, fileTypeFromTokenizer, supportedExtensions, supportedMimeTypes } from 'file-type';
10
- export { default as File } from './packem_shared/File-CPUhj3DI.js';
11
- export { default as NoOpMetrics } from './packem_shared/NoOpMetrics-DhAk5rXc.js';
12
- export { default as OpenTelemetryMetrics } from './packem_shared/OpenTelemetryMetrics-BnxhqIaH.js';
13
- export { Metadata } from './packem_shared/Metadata-DRLXeJ0F.js';
1
+ import{waitForStorage as o}from"./packem_shared/waitForStorage-ChSBLhLc.js";import{q as a}from"./packem_shared/disk-storage-BvdK4bqF.js";import{default as s}from"./packem_shared/DiskStorageWithChecksum-Bb6JX_tC.js";import{O as l}from"./packem_shared/local-meta-storage-Bkwqi_gi.js";import{default as m}from"./packem_shared/MetaStorage-Y4m1dWgd.js";import{B as x,d as u,a as y}from"./packem_shared/storage-m_Cxgiih.js";import{ERRORS as S,ErrorMap as g,UploadError as E,isUploadError as M,throwErrorCode as c}from"./packem_shared/ERRORS-B9jkvKwx.js";import{createRetryWrapper as T,isRetryableError as R,retry as k}from"./packem_shared/isRetryableError-DQNSZiBc.js";import{fileTypeFromBlob as O,fileTypeFromBuffer as b,fileTypeFromTokenizer as h,supportedExtensions as C,supportedMimeTypes as N}from"file-type";import{default as D}from"./packem_shared/File-alcSNpLq.js";import{default as V}from"./packem_shared/NoOpMetrics-Dky06sf1.js";import{default as q}from"./packem_shared/OpenTelemetryMetrics-9uxQMSlg.js";import{Metadata as A}from"./packem_shared/Metadata-B6Ir0KO7.js";export{x as AbstractBaseStorage,a as DiskStorage,s as DiskStorageWithChecksum,S as ERRORS,g as ErrorMap,D as File,l as LocalMetaStorage,m as MetaStorage,A as Metadata,V as NoOpMetrics,q as OpenTelemetryMetrics,E as UploadError,T as createRetryWrapper,u as defaultCloudStorageFileNameValidation,y as defaultFilesystemFileNameValidation,O as fileTypeFromBlob,b as fileTypeFromBuffer,h as fileTypeFromTokenizer,R as isRetryableError,M as isUploadError,k as retry,C as supportedExtensions,N as supportedMimeTypes,c as throwErrorCode,o as waitForStorage};
@@ -1,5 +1 @@
1
- export { default as restOpenApiSpec } from '../packem_shared/restOpenApiSpec-BBJ_SiPE.js';
2
- export { sharedErrorSchemaObject, sharedFileMetaExampleObject, sharedFileMetaSchemaObject, sharedGet, sharedGetList } from '../packem_shared/sharedGet-CkSLSnMd.js';
3
- export { default as transformOpenApiSpec } from '../packem_shared/transformOpenApiSpec-BodFhFls.js';
4
- export { default as tusOpenApiSpec } from '../packem_shared/tusOpenApiSpec-DzppyJTW.js';
5
- export { default as xhrOpenApiSpec } from '../packem_shared/xhrOpenApiSpec-CXz7BC5J.js';
1
+ import{default as t}from"../packem_shared/restOpenApiSpec-PaIVbESh.js";import{sharedErrorSchemaObject as p,sharedFileMetaExampleObject as s,sharedFileMetaSchemaObject as o,sharedGet as f,sharedGetList as c}from"../packem_shared/sharedGet-Ce7WGAsc.js";import{default as m}from"../packem_shared/transformOpenApiSpec-C0vEbDTO.js";import{default as i}from"../packem_shared/tusOpenApiSpec-DF0-hlWV.js";import{default as x}from"../packem_shared/xhrOpenApiSpec-nyoboz83.js";export{t as restOpenApiSpec,p as sharedErrorSchemaObject,s as sharedFileMetaExampleObject,o as sharedFileMetaSchemaObject,f as sharedGet,c as sharedGetList,m as transformOpenApiSpec,i as tusOpenApiSpec,x as xhrOpenApiSpec};
@@ -0,0 +1 @@
1
+ var r=Object.defineProperty;var e=(t,a)=>r(t,"name",{value:a,configurable:!0});import s from"./File-alcSNpLq.js";var i=Object.defineProperty,l=e((t,a)=>i(t,"name",{value:a,configurable:!0}),"t");class d extends s{static{e(this,"a")}static{l(this,"AwsLightFile")}Parts;UploadId;uri;partsUrls;partSize}export{d as default};
@@ -0,0 +1 @@
1
+ import"./MetaStorage-Y4m1dWgd.js";import"./Metadata-B6Ir0KO7.js";import{l as i}from"./aws-light-meta-storage-TPyQwLvk.js";import"./is-expired-1JuZjDtb.js";export{i as default};
@@ -0,0 +1 @@
1
+ var l=Object.defineProperty;var u=(o,e)=>l(o,"name",{value:e,configurable:!0});import{Readable as p}from"node:stream";import{S as h}from"./s3-base-storage-xHZNtsGe.js";import{w as f,l as S}from"./aws-light-meta-storage-TPyQwLvk.js";import y from"./AwsLightFile-BTLiRxXj.js";var C=Object.defineProperty,w=u((o,e)=>C(o,"name",{value:e,configurable:!0}),"u");class K extends h{static name="aws-light";s3Api;constructor(e){const{bucket:t=process.env.S3_BUCKET||process.env.AWS_S3_BUCKET,region:r}=e;if(!t)throw new Error("S3 bucket is not defined");if(!r)throw new Error("S3 region is not defined");if(!e.accessKeyId)throw new Error("accessKeyId is required");if(!e.secretAccessKey)throw new Error("secretAccessKey is required");super({bucket:t,clientDirectUpload:e.clientDirectUpload,expiration:e.expiration?.maxAge?{maxAge:String(e.expiration.maxAge)}:void 0,filename:e.filename,logger:e.logger,metaStorage:e.metaStorage,metaStorageConfig:e.metaStorageConfig?{...e.metaStorageConfig,...e}:{...e},partSize:e.partSize,retryConfig:{...e.retryConfig,shouldRetry:w(i=>{const s=i;return s.statusCode&&[408,429,500,502,503,504].includes(s.statusCode)?!0:s.retryable??!1},"shouldRetry")}}),this.s3Api=new f({accessKeyId:e.accessKeyId,bucket:t,endpoint:e.endpoint,region:r,secretAccessKey:e.secretAccessKey,service:e.service,sessionToken:e.sessionToken});const{metaStorage:a,metaStorageConfig:n}=e;if(!a){const i={...e,...n,logger:this.logger};this.meta=new S(i)}}normalizeError(e){const t=e;return t.statusCode||t.code?{code:t.code||t.name,message:t.message,name:t.name,statusCode:t.statusCode||500}:super.normalizeError(e)}async update({id:e},t){if(this.config.clientDirectUpload){const r=await this.getMeta(e);return this.buildPresigned({...r,...t})}return super.update({id:e},t)}async getStream({id:e}){return this.instrumentOperation("getStream",async()=>{const t=this.getS3Api(),{Body:r,ContentLength:a,ContentType:n,ETag:i,Expires:s,LastModified:g}=await this.retry(()=>t.getObject({Bucket:this.bucket,Key:e}));await this.checkIfExpired({expiredAt:s});const c=r instanceof ReadableStream?p.fromWeb(r):r,m=new p({read(){c.on("data",d=>{this.push(d)}),c.on("end",()=>{this.push(null)}),c.on("error",d=>{this.destroy(d)})}});return{headers:{"Content-Length":a?.toString()??"0","Content-Type":n,...i&&{ETag:i},...s&&{"X-Upload-Expires":s.toString()},...g&&{"Last-Modified":g.toString()}},size:Number(a),stream:m}})}getS3Api(){return this.s3Api}getFileClass(){return y}getAcl(){}async accessCheck(e=30){await this.s3Api.checkBucketAccess({Bucket:this.bucket})}}export{K as default};
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var t=(e,r)=>a(e,"name",{value:r,configurable:!0});import i from"./File-alcSNpLq.js";var s=Object.defineProperty,u=t((e,r)=>s(e,"name",{value:r,configurable:!0}),"i");class c extends i{static{t(this,"s")}static{u(this,"AzureFile")}requestId;uri}export{c as default};
@@ -0,0 +1 @@
1
+ var h=Object.defineProperty;var r=(i,t)=>h(i,"name",{value:t,configurable:!0});import{BlobServiceClient as s,StorageSharedKeyCredential as p}from"@azure/storage-blob";import{throwErrorCode as c,ERRORS as l}from"./ERRORS-B9jkvKwx.js";import u from"./MetaStorage-Y4m1dWgd.js";import{parseMetadata as f,stringifyMetadata as g}from"./Metadata-B6Ir0KO7.js";var N=Object.defineProperty,C=r((i,t)=>N(i,"name",{value:t,configurable:!0}),"c");let v=class extends u{static{r(this,"N")}constructor(t){super(t),this.config=t;const{client:a,...e}=t;if(a===void 0){const n=e.connectionString||process.env.AZURE_STORAGE_CONNECTION_STRING||void 0;if(n)this.client=s.fromConnectionString(n);else{const d=e.accountKey||process.env.AZURE_STORAGE_ACCOUNT_KEY||void 0,o=e.accountName||process.env.AZURE_STORAGE_ACCOUNT||void 0;if(!e.accountKey)throw new Error("Missing required parameter: Azure blob storage account key.");if(!e.accountName)throw new Error("Missing required parameter: Azure blob storage account name.");const m=new p(o,d);this.client=new s(t.endpoint??`https://${o}.blob.core.windows.net`,m)}}else this.client=a;if(!(e.containerName||process.env.AZURE_STORAGE_CONTAINER))throw new Error("Missing required parameter: Azure container name.");this.containerClient=this.client.getContainerClient(e.containerName)}config;static{C(this,"AzureMetaStorage")}client;containerClient;async get(t){const a=this.containerClient.getAppendBlobClient(this.getMetaName(t));let e;try{e=await a.getProperties()}catch{throw c(l.UNKNOWN_ERROR)}if(!e.metadata)throw c(l.FILE_NOT_FOUND);const n=e.metadata;return n.metadata&&typeof n.metadata=="string"&&(n.metadata=f(n.metadata)),n}async touch(t,a){return this.save(t,a)}async delete(t){await this.containerClient.getBlockBlobClient(this.getMetaName(t)).deleteIfExists()}async save(t,a){const e={...a};return e.metadata&&(e.metadata=g(a.metadata)),await this.containerClient.getAppendBlobClient(this.getMetaName(t)).setMetadata(e,{}),a}async list(){const t=[],a=this.containerClient.listBlobsFlat({prefix:this.prefix});for await(const e of a)t.push(e);return t.filter(e=>e.name.endsWith(this.suffix)).map(e=>({createdAt:e.properties.createdOn,id:this.getIdFromMetaName(e.name)}))}};export{v as default};
@@ -0,0 +1 @@
1
+ var y=Object.defineProperty;var d=(l,t)=>y(l,"name",{value:t,configurable:!0});import{BlobServiceClient as m,StorageSharedKeyCredential as p}from"@azure/storage-blob";import{L as g}from"./path-D7rMc9nq-B718mbm6.js";import{r as f,d as w,o as b}from"./part-match-DqD5U7An.js";import{throwErrorCode as s,ERRORS as c}from"./ERRORS-B9jkvKwx.js";import{B as C,t as E}from"./storage-m_Cxgiih.js";import{createRetryWrapper as O}from"./isRetryableError-DQNSZiBc.js";import{O as T}from"./local-meta-storage-Bkwqi_gi.js";import N from"./AzureFile-BKHru1zB.js";import R from"./AzureSMetaStorage-BqA4jUDJ.js";import{o as S}from"./has-content-Bx2p8Okx.js";var F=Object.defineProperty,v=d((l,t)=>F(l,"name",{value:t,configurable:!0}),"m");class q extends C{static name="azure";checksumTypes=["md5"];meta;client;containerClient;root;retry;constructor(t){if(super(t),!t.containerName)throw new Error("Missing required parameter: Azure container name.");const e=t.connectionString||process.env.AZURE_STORAGE_CONNECTION_STRING||void 0;if(e)this.client=m.fromConnectionString(e);else{const i=t.accountKey||process.env.AZURE_STORAGE_ACCOUNT_KEY||void 0,n=t.accountName||process.env.AZURE_STORAGE_ACCOUNT||void 0;if(!t.accountKey)throw new Error("Missing required parameter: Azure blob storage account key.");if(!t.accountName)throw new Error("Missing required parameter: Azure blob storage account name.");const a=new p(n,i);this.client=new m(t.endpoint??`https://${n}.blob.core.windows.net`,a)}this.containerClient=this.client.getContainerClient(t.containerName),this.root=t.root?g(t.root).replace(/^\//,""):"";const r={backoffMultiplier:2,initialDelay:1e3,maxDelay:3e4,maxRetries:3,retryableStatusCodes:[408,429,500,502,503,504],shouldRetry:v(i=>{const n=i;if(n.statusCode&&[408,429,500,502,503,504].includes(n.statusCode))return!0;if(i instanceof Error){const a=n.code;if(a==="ECONNRESET"||a==="ETIMEDOUT"||a==="ENOTFOUND"||a==="ECONNREFUSED")return!0}return!1},"shouldRetry"),...t.retryConfig};if(this.retry=O(r),t.metaStorage)this.meta=t.metaStorage;else{let i={...t,...t.metaStorageConfig,logger:this.logger};"directory"in i?(this.logger?.debug("Using local meta storage"),this.meta=new T(i)):(e===i.connectionString&&(i={...i,client:this.client}),this.meta=new R(i))}this.isReady=!1,this.accessCheck().then(()=>{this.isReady=!0}).catch(i=>{this.logger?.error("Storage access check failed: %O",i)})}async create(t){return this.instrumentOperation("create",async()=>{const e={...t};if(t.ttl){const o=typeof t.ttl=="string"?E(t.ttl):t.ttl;o!==void 0&&(e.expiredAt=Date.now()+o)}const r=new N(e);r.name=this.namingFunction(r),await this.validate(r);try{const o=await this.getMeta(r.id);if(o.bytesWritten>=0)return o}catch{}const i=this.containerClient.getBlockBlobClient(this.getFullPath(r.name)),n={};for(const[o,h]of Object.entries(r.metadata||{}))n[o]=JSON.stringify(h);const a=await this.retry(()=>i.uploadData(Buffer.from(""),{blobHTTPHeaders:{blobContentType:r.contentType},metadata:{name:r.name,originalName:r.originalName,...n}}));return a.requestId===void 0?s(c.FILE_ERROR,"azure create upload error"):(r.requestId=a.requestId,r.uri=a._response.headers.get("location"),r.bytesWritten=0,await this.saveMeta(r),r.status="created",await this.onCreate(r),r)})}async delete({id:t}){return this.instrumentOperation("delete",async()=>{const e=await this.getMeta(t);e.status="deleted",await Promise.all([this.deleteMeta(e.id),this.retry(()=>this.containerClient.getBlockBlobClient(this.getFullPath(e.name)).deleteIfExists())]);const r={...e};return await this.onDelete(r),r})}async move(t,e){return this.instrumentOperation("move",async()=>{const r=await this.copy(t,e),i=this.getFullPath(t);return await this.retry(()=>this.containerClient.getBlockBlobClient(i).deleteIfExists()),r})}async write(t){return this.instrumentOperation("write",async()=>{let e;if("contentType"in t&&"metadata"in t&&!("body"in t)&&!("start"in t)?e=t:(e=await this.getMeta(t.id),await this.checkIfExpired(e)),e.status==="completed")return e;if(!f(t,e))return s(c.FILE_CONFLICT);await this.lock(t.id);try{if(S(t)){if((e.bytesWritten===0||Number.isNaN(e.bytesWritten))&&(!e.contentType||e.contentType==="application/octet-stream"))try{const{fileType:a,stream:o}=await w(t.body);a?.mime&&(e.contentType=a.mime),t.body=o}catch{}const r=this.containerClient.getBlockBlobClient(this.getFullPath(e.name)),i=new AbortController;t.body.on("error",()=>{i.abort()});const n=await this.retry(()=>r.uploadStream(t.body,void 0,void 0,{abortSignal:i.signal,blobHTTPHeaders:{blobContentType:e.contentType??"application/octet-stream"},metadata:e.metadata}));if(n.requestId===void 0)return s(c.FILE_ERROR,"azure write upload error");e.requestId=n.requestId,e.bytesWritten+=t.contentLength||0,e.status=b(e),e.status==="completed"&&(e.uri=n._response.headers.get("location"),await this.deleteMeta(e.id))}}finally{await this.unlock(t.id)}return e})}async get({id:t}){return this.instrumentOperation("get",async()=>{const e=this.containerClient.getBlockBlobClient(t);if(!await this.retry(()=>e.exists()))try{return await this.getMeta(t),s(c.GONE)}catch{return s(c.FILE_NOT_FOUND)}const r=await this.retry(()=>e.getProperties()),{contentLength:i,contentType:n,etag:a,expiresOn:o,lastModified:h,metadata:u}=r;return{content:await this.retry(()=>e.downloadToBuffer()),contentType:n,ETag:a,expiredAt:o,id:t,metadata:u||{},modifiedAt:h,name:u?.name||t,originalName:u?.originalName||"",size:i}})}async exists({id:t}){return this.instrumentOperation("exists",async()=>{try{await this.getMeta(t);const e=this.containerClient.getBlockBlobClient(t);return await this.retry(()=>e.exists())}catch{return!1}})}async copy(t,e){return this.instrumentOperation("copy",async()=>{const r=this.containerClient.getBlockBlobClient(this.getFullPath(t));if(!await this.retry(()=>r.exists()))try{return await this.getMeta(t),s(c.GONE)}catch{return s(c.FILE_NOT_FOUND)}const i=this.containerClient.getBlockBlobClient(this.getFullPath(e)),n=await this.retry(()=>i.beginCopyFromURL(r.url));return await this.retry(()=>n.pollUntilDone()),{...await this.getMeta(t),id:e,name:e}})}async list(t=1e3){return this.instrumentOperation("list",async()=>{const e=[];let r=!0,i;for(;r;)try{const n=this.containerClient.listBlobsFlat({includeMetadata:!0,prefix:this.root}).byPage({continuationToken:i,maxPageSize:t}),a=(await this.retry(()=>n.next())).value;a!==void 0&&"segment"in a&&a.segment.blobItems.forEach(o=>{o.deleted||e.push({createdAt:o.properties.createdOn,id:o.name,modifiedAt:o.properties.lastModified})}),r=a?.continuationToken!==void 0,r&&(i=a.continuationToken)}catch(n){const a=this.normalizeError(n instanceof Error?n:new Error(String(n)));throw await this.onError(a),n}return e},{limit:t})}getFullPath(t){return this.assetFolder!==void 0?`${this.assetFolder}/${t}`:t}async accessCheck(){await this.retry(()=>this.containerClient.getProperties())}}export{q as default};
@@ -0,0 +1 @@
1
+ var n=Object.defineProperty;var s=(a,t)=>n(a,"name",{value:t,configurable:!0});import{Readable as i}from"node:stream";import c from"mime";import{N as h}from"./cache-qV_5Umeq.js";var f=Object.defineProperty,m=s((a,t)=>f(a,"name",{value:t,configurable:!0}),"n");class C{static{s(this,"l")}constructor(t,e,r){this.storage=t,this.config=e,this.logger=r,this.cache=e.cache??new h}storage;static{m(this,"BaseTransformer")}config;logger;cache;async transformStream(t,e){const r=await this.transform(t,e);if(r&&"buffer"in r){const{buffer:o}=r;return{headers:{"Content-Length":o.length.toString(),"Content-Type":this.getContentTypeFromResult(r)},size:o.length,stream:i.from(o)}}throw new Error("Streaming transformation not supported for this transformer")}clearCache(t){t?this.cache?.delete(t):this.cache?.clear?.()}getCacheStats(){return{maxSize:-1,size:this.cache?.size??0}}getContentTypeFromResult(t){if(t?.format){const e=c.getType(t.format);if(e)return e}return"application/octet-stream"}}export{C as default};
@@ -0,0 +1 @@
1
+ import"node:fs";import"node:fs/promises";import"node:stream";import"./local-meta-storage-Bkwqi_gi.js";import{q as u}from"./disk-storage-BvdK4bqF.js";import"./path-D7rMc9nq-B718mbm6.js";import"./part-match-DqD5U7An.js";import"./ERRORS-B9jkvKwx.js";import"./storage-m_Cxgiih.js";import"./File-alcSNpLq.js";import"./update-size-DANV7aa2.js";import"./has-content-Bx2p8Okx.js";export{u as default};
@@ -0,0 +1 @@
1
+ var g=Object.defineProperty;var o=(i,t)=>g(i,"name",{value:t,configurable:!0});import{createReadStream as f,createWriteStream as b}from"node:fs";import{truncate as w}from"node:fs/promises";import{Transform as E,pipeline as F}from"node:stream";import{q as C,y as v,m as W,s as R}from"./disk-storage-BvdK4bqF.js";import{y as S}from"./local-meta-storage-Bkwqi_gi.js";import{r as T,d as N,o as O}from"./part-match-DqD5U7An.js";import{throwErrorCode as p,ERRORS as n}from"./ERRORS-B9jkvKwx.js";import{LRUCache as k}from"lru-cache";import{createHash as P}from"node:crypto";import{u as x}from"./update-size-DANV7aa2.js";import{o as M}from"./has-content-Bx2p8Okx.js";var _=Object.defineProperty,I=o((i,t)=>_(i,"name",{value:t,configurable:!0}),"a");class L extends E{static{o(this,"n")}constructor(t,e){super(),this.path=e,this.hashes=t,this.hash=this.hashes.get(e)||P(this.hashes.algorithm),this.hashCopy=this.hash.copy()}path;static{I(this,"RangeChecksum")}hash;hashCopy;hashes;reset(){this.hashes.set(this.path,this.hashCopy)}digest(t="hex"){return this.hash.copy().digest(t)}_transform(t,e,s){this.push(t),this.hash.update(t),s()}_flush(t){t()}}var z=Object.defineProperty,U=o((i,t)=>z(i,"name",{value:t,configurable:!0}),"h");class A extends k{static{o(this,"p")}constructor(t="sha1",e){super({ttl:1e3,ttlAutopurge:!0,...e}),this.algorithm=t}algorithm;static{U(this,"RangeHasher")}hex(t){return this.get(t)?.copy().digest("hex")||""}base64(t){return this.get(t)?.copy().digest("base64")||""}async init(t,e=0){return this.get(t)?.copy()||this.updateFromFs(t,e)}digester(t){return new L(this,t)}async updateFromFs(t,e=0,s){const r=await this.fromFs(t,e,s);return this.set(t,r),r}fromFs(t,e=0,s){return new Promise((r,a)=>{const h=this.digester(t);s!==void 0&&(h.hash=s),f(t,{start:e}).on("error",a).on("end",()=>{r(h.hash)}).pipe(h).resume()})}}var H=Object.defineProperty,l=o((i,t)=>H(i,"name",{value:t,configurable:!0}),"d");class Z extends C{static{o(this,"O")}static{l(this,"DiskStorageWithChecksum")}hashes;constructor(t){super(t),this.hashes=new A(t?.checksum==="sha1"?"sha1":"md5")}async delete({id:t}){try{const e=await this.getMeta(t),s=this.getFilePath(e.name);this.hashes.delete(s),await S(s),await this.deleteMeta(t);const r={...e,status:"deleted"};return await this.onDelete(r),r}catch(e){this.logger?.error("[error]: Could not delete file: %O",e);const s=this.normalizeError(e instanceof Error?e:new Error(String(e)));await this.onError(s)}return{id:t}}async write(t){let e;if("contentType"in t&&"metadata"in t&&!("body"in t)&&!("start"in t)?e=t:(e=await this.getMeta(t.id),await this.checkIfExpired(e)),e.status==="completed")return e;if(t.size!==void 0&&x(e,t.size),!T(t,e))return p(n.FILE_CONFLICT);const s=this.getFilePath(e.name);try{const r=t.start||0;if(await v(s),(e.bytesWritten===0||Number.isNaN(e.bytesWritten))&&(e.bytesWritten=r),await this.hashes.init(s),M(t)){if(this.isUnsupportedChecksum(t.checksumAlgorithm))return p(n.UNSUPPORTED_CHECKSUM_ALGORITHM);if((t.start===0||t.start===void 0)&&(e.bytesWritten===0||Number.isNaN(e.bytesWritten))&&(!e.contentType||e.contentType==="application/octet-stream"))try{const{fileType:m,stream:c}=await N(t.body);m?.mime&&(e.contentType=m.mime),t.body=c}catch{}const[a,h]=await this.lazyWrite({...t,...e});if(h)return await w(s,e.bytesWritten),p(h);typeof a!="number"&&await this.hashes.updateFromFs(s,e.bytesWritten),e.bytesWritten=a}return e.status=O(e),e.hash={algorithm:this.hashes.algorithm,value:this.hashes.hex(s)},e.status==="completed"&&this.hashes.delete(s),await this.saveMeta(e),e}catch(r){await this.hashes.updateFromFs(s,e.bytesWritten);const a=this.normalizeError(r instanceof Error?r:new Error(String(r)));return await this.onError(a),p(n.FILE_ERROR,(typeof a.message=="string"?a.message:String(r))||String(r))}}lazyWrite(t){return new Promise((e,s)=>{const r=this.getFilePath(t.name),a=b(r,{flags:"r+",start:t.start}),h=new W(t.contentLength||Number(t.size)-t.start),m=R(t.checksum,t.checksumAlgorithm),c=this.hashes.digester(r),y=!t.checksum,d=l(u=>{c.reset(),a.close(),e([Number.NaN,u])},"failWithCode");h.on("error",()=>{d(n.FILE_CONFLICT)}),m.on("error",()=>{d(n.CHECKSUM_MISMATCH)}),t.body.on("aborted",()=>{d(y?void 0:n.REQUEST_ABORTED)}),F(t.body,h,m,c,a,u=>{if(u){c.reset(),s(u);return}e([t.start+a.bytesWritten])})})}}export{Z as default};
@@ -0,0 +1 @@
1
+ var E=Object.defineProperty;var a=(e,o)=>E(e,"name",{value:o,configurable:!0});var c=Object.defineProperty,s=a((e,o)=>c(e,"name",{value:o,configurable:!0}),"s"),l=(e=>(e.BAD_REQUEST="BadRequest",e.CHECKSUM_MISMATCH="ChecksumMismatch",e.FILE_CONFLICT="FileConflict",e.FILE_ERROR="FileError",e.FILE_LOCKED="FileLocked",e.FILE_NOT_ALLOWED="FileNotAllowed",e.FILE_NOT_FOUND="FileNotFound",e.FORBIDDEN="Forbidden",e.GONE="Gone",e.INVALID_FILE_NAME="InvalidFileName",e.INVALID_FILE_SIZE="InvalidFileSize",e.INVALID_RANGE="InvalidRange",e.INVALID_TYPE="Invalidtype",e.METHOD_NOT_ALLOWED="MethodNotAllowed",e.REQUEST_ABORTED="RequestAborted",e.REQUEST_ENTITY_TOO_LARGE="RequestEntityTooLarge",e.STORAGE_BUSY="StorageBusy",e.STORAGE_ERROR="StorageError",e.TOO_MANY_REQUESTS="TooManyRequests",e.UNKNOWN_ERROR="UnknownError",e.UNPROCESSABLE_ENTITY="UnprocessableEntity",e.UNSUPPORTED_CHECKSUM_ALGORITHM="UnsupportedChecksumAlgorithm",e.UNSUPPORTED_MEDIA_TYPE="UnsupportedMediaType",e))(l||{});const d=(()=>{const e={BadRequest:[400,"Bad request"],ChecksumMismatch:[460,"Checksum mismatch"],FileConflict:[409,"File conflict"],FileError:[500,"Something went wrong writing the file"],FileLocked:[423,"File locked"],FileNotAllowed:[403,"File not allowed"],FileNotFound:[404,"Not found"],Forbidden:[403,"Authenticated user is not allowed access"],Gone:[410,"The file for this url no longer exists"],InvalidFileName:[400,"Invalid file name or it cannot be retrieved"],InvalidFileSize:[400,"File size cannot be retrieved"],InvalidRange:[400,"Invalid or missing content-range header"],Invalidtype:[400,'Invalid or missing "content-type" header'],MethodNotAllowed:[405,"Method not allowed"],RequestAborted:[499,"Request aborted"],RequestEntityTooLarge:[413,"Request entity too large"],StorageBusy:[503,"Storage is busy"],StorageError:[503,"Storage error"],TooManyRequests:[429,"Too many requests"],UnknownError:[500,"Something went wrong"],UnprocessableEntity:[422,"Validation failed"],UnsupportedChecksumAlgorithm:[400,"Unsupported checksum algorithm"],UnsupportedMediaType:[415,"Unsupported media type"]},o={};return Object.keys(e).forEach(r=>{const[t,n]=e[r];o[r]={code:r,message:n,statusCode:t}}),o})();class u extends Error{static{a(this,"UploadError")}static{s(this,"UploadError")}name="UploadError";UploadErrorCode="UnknownError";detail;constructor(o="UnknownError",r,t){super(r||o),this.name="UploadError",this.detail=t,Object.values(l).includes(o)&&(this.UploadErrorCode=o)}}const p=s(e=>!!e.UploadErrorCode,"isUploadError"),U=s((e,o)=>{const r=e;let t;r&&typeof r=="string"&&r in d&&(t=d[r]);const n=o||(t?.body&&typeof t.body=="object"&&"message"in t.body?t.body.message:void 0)||t?.message||"UnknownError",i=new u(r,n);throw i.UploadErrorCode=r,typeof o=="string"&&(i.detail=o),i},"throwErrorCode");export{l as ERRORS,d as ErrorMap,u as UploadError,p as isUploadError,U as throwErrorCode};
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var o=(t,i)=>m(t,"name",{value:i,configurable:!0});import p from"@sindresorhus/fnv1a";import{nanoid as f}from"nanoid";var y=Object.defineProperty,a=o((t,i)=>y(t,"name",{value:i,configurable:!0}),"t");const l=a(t=>p(t,{size:64}).toString(16),"hash"),g=a(t=>{if(typeof t.mimeType=="string")return t.mimeType;if(typeof t.type=="string")return t.type;if(typeof t.filetype=="string")return t.filetype},"extractMimeType"),u=a(t=>{if(typeof t.name=="string")return t.name;if(typeof t.title=="string")return t.title;if(typeof t.originalName=="string")return t.originalName;if(typeof t.filename=="string")return t.filename},"extractOriginalName"),d=a(t=>{const{metadata:i,originalName:n,size:e}=t,s=String(i.lastModified??Date.now());return[n,e,s].filter(Boolean).map(String).map(r=>l(r)).join("-")},"generateFileId");class N{static{o(this,"g")}static{a(this,"File")}bytesWritten=Number.NaN;contentType;originalName;id;metadata;name="";size;status;expiredAt;createdAt;modifiedAt;hash;content;ETag;constructor({contentType:i,expiredAt:n,metadata:e,originalName:s,size:r}){this.metadata=e,this.originalName=s||u(e)||(this.id=f()),this.contentType=i||g(e)||"application/octet-stream",this.expiredAt=n,typeof r=="string"||typeof r=="number"?this.size=Number(r):(typeof e.size=="string"||typeof e.size=="number")&&(this.size=Number(e.size)),typeof this.size=="number"&&this.size<=0&&(this.size=void 0),this.id||=d(this)}}export{N as default};
@@ -0,0 +1 @@
1
+ const o={authScopes:["https://www.googleapis.com/auth/iam","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/devstorage.full_control"],storageAPI:"https://storage.googleapis.com/storage/v1/b",uploadAPI:"https://storage.googleapis.com/upload/storage/v1/b"};export{o as default};
@@ -0,0 +1 @@
1
+ var t=Object.defineProperty;var a=(e,r)=>t(e,"name",{value:r,configurable:!0});import i from"./File-alcSNpLq.js";var l=Object.defineProperty,o=a((e,r)=>l(e,"name",{value:r,configurable:!0}),"l");class u extends i{static{a(this,"p")}static{o(this,"GCSFile")}GCSUploadURI;uri}export{u as default};
@@ -0,0 +1 @@
1
+ import"node:crypto";import"gaxios";import"google-auth-library";import{E as f}from"./gcs-meta-storage-CvGkpzVE.js";import"./MetaStorage-Y4m1dWgd.js";import"./Metadata-B6Ir0KO7.js";import"./GCSConfig-BQ0OpVhe.js";export{f as default};