@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.
- package/CHANGELOG.md +14 -0
- package/LICENSE.md +30 -0
- package/dist/adapter/nuxt/module.d.ts +3 -3
- package/dist/adapter/nuxt/module.js +1 -93
- package/dist/handler/http/fetch/index.d.ts +6 -6
- package/dist/handler/http/fetch/index.js +1 -4
- package/dist/handler/http/hono/index.d.ts +3 -3
- package/dist/handler/http/hono/index.js +1 -65
- package/dist/handler/http/nextjs/index.d.ts +4 -4
- package/dist/handler/http/nextjs/index.js +1 -37
- package/dist/handler/http/node/index.d.ts +6 -6
- package/dist/handler/http/node/index.js +1 -8
- package/dist/handler/http/solid-start/index.d.ts +4 -4
- package/dist/handler/http/solid-start/index.js +1 -44
- package/dist/index.js +1 -13
- package/dist/openapi/index.js +1 -5
- package/dist/packem_shared/AwsLightFile-BTLiRxXj.js +1 -0
- package/dist/packem_shared/AwsLightMetaStorage-DHz1nf_H.js +1 -0
- package/dist/packem_shared/AwsLightStorage-CA9cdfJ6.js +1 -0
- package/dist/packem_shared/AzureFile-BKHru1zB.js +1 -0
- package/dist/packem_shared/AzureSMetaStorage-BqA4jUDJ.js +1 -0
- package/dist/packem_shared/AzureStorage-BKUjCymW.js +1 -0
- package/dist/packem_shared/BaseTransformer-D68eLyz1.js +1 -0
- package/dist/packem_shared/DiskStorage-DNjpDMX9.js +1 -0
- package/dist/packem_shared/DiskStorageWithChecksum-Bb6JX_tC.js +1 -0
- package/dist/packem_shared/ERRORS-B9jkvKwx.js +1 -0
- package/dist/packem_shared/File-alcSNpLq.js +1 -0
- package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
- package/dist/packem_shared/GCSFile-CHjX_fJk.js +1 -0
- package/dist/packem_shared/GCSMetaStorage-CpxQ8wM9.js +1 -0
- package/dist/packem_shared/GCStorage-DAg1V55T.js +1 -0
- package/dist/packem_shared/LocalMetaStorage-BWuFvWn4.js +1 -0
- package/dist/packem_shared/MediaTransformer-2C8MJeAg.js +1 -0
- package/dist/packem_shared/MetaStorage-Y4m1dWgd.js +1 -0
- package/dist/packem_shared/Metadata-B6Ir0KO7.js +1 -0
- package/dist/packem_shared/Multipart-Bd9YFFn0.js +1 -0
- package/dist/packem_shared/Multipart-D5bcEvga.js +1 -0
- package/dist/packem_shared/NetlifyBlobFile-CpzkMKng.js +1 -0
- package/dist/packem_shared/NetlifyBlobMetaStorage-dD0oBLom.js +1 -0
- package/dist/packem_shared/NetlifyBlobStorage-ByTwCN-h.js +1 -0
- package/dist/packem_shared/NoOpMetrics-Dky06sf1.js +1 -0
- package/dist/packem_shared/OpenTelemetryMetrics-9uxQMSlg.js +1 -0
- package/dist/packem_shared/Rest-CYEBbtCD.js +1 -0
- package/dist/packem_shared/Rest-DoonVU7B.js +1 -0
- package/dist/packem_shared/S3File-Du6wP0Sz.js +1 -0
- package/dist/packem_shared/S3MetaStorage-vcriiosn.js +1 -0
- package/dist/packem_shared/S3Storage-Fx6-OSc-.js +1 -0
- package/dist/packem_shared/TUS_RESUMABLE-B7KtPVeC.js +1 -0
- package/dist/packem_shared/Tus-Bd_2Ki2G.js +1 -0
- package/dist/packem_shared/Tus-CUBCkuPE.js +1 -0
- package/dist/packem_shared/ValidationError-D8KKJiKA.js +1 -0
- package/dist/packem_shared/VercelBlobFile-CL9MjKcY.js +1 -0
- package/dist/packem_shared/VercelBlobMetaStorage-BsOTx-Su.js +1 -0
- package/dist/packem_shared/VercelBlobStorage-kNkk5Cn4.js +1 -0
- package/dist/packem_shared/_commonjsHelpers-D6W6KoPK.js +1 -0
- package/dist/packem_shared/aws-light-meta-storage-TPyQwLvk.js +4 -0
- package/dist/packem_shared/backblaze-DEflv87m.js +1 -0
- package/dist/packem_shared/base-handler-core-DaggCVsq.js +1 -0
- package/dist/packem_shared/base-handler-fetch-DnarP64X.js +1 -0
- package/dist/packem_shared/base-handler-node-BTes6sql.js +1 -0
- package/dist/packem_shared/cache-qV_5Umeq.js +1 -0
- package/dist/packem_shared/cloudflare-DLAeQvgD.js +1 -0
- package/dist/packem_shared/defaultCloudStorageFileNameValidation-yiM9GxHr.js +1 -0
- package/dist/packem_shared/digitalOcean-nhZUds87.js +1 -0
- package/dist/packem_shared/disk-storage-BvdK4bqF.js +5 -0
- package/dist/packem_shared/gcs-meta-storage-CvGkpzVE.js +1 -0
- package/dist/packem_shared/has-content-Bx2p8Okx.js +1 -0
- package/dist/packem_shared/headers-DC2MEOrK.js +27 -0
- package/dist/packem_shared/is-expired-1JuZjDtb.js +1 -0
- package/dist/packem_shared/isRetryableError-DQNSZiBc.js +1 -0
- package/dist/packem_shared/isValidMediaType-B-2UKjZx.js +1 -0
- package/dist/packem_shared/local-meta-storage-Bkwqi_gi.js +1 -0
- package/dist/packem_shared/{media-transformer.d-DeHZkBVx.d.ts → media-transformer.d-CY9CsEOe.d.ts} +1 -1
- package/dist/packem_shared/minio-BWwgGXeE.js +1 -0
- package/dist/packem_shared/multipart-base-C6OjBwMS.js +1 -0
- package/dist/packem_shared/part-match-DqD5U7An.js +1 -0
- package/dist/packem_shared/path-D7rMc9nq-B718mbm6.js +1 -0
- package/dist/packem_shared/response-builder-Wdo_fvcF.js +1 -0
- package/dist/packem_shared/rest-base-B2Dv7esY.js +1 -0
- package/dist/packem_shared/restOpenApiSpec-PaIVbESh.js +1 -0
- package/dist/packem_shared/s3-base-storage-xHZNtsGe.js +1 -0
- package/dist/packem_shared/sharedGet-Ce7WGAsc.js +1 -0
- package/dist/packem_shared/storage-m_Cxgiih.js +1 -0
- package/dist/packem_shared/tigris-DZoyrMNd.js +1 -0
- package/dist/packem_shared/transformOpenApiSpec-C0vEbDTO.js +1 -0
- package/dist/packem_shared/{tus-base.d-BftIixIA.d.ts → tus-base.d-DNZRXR9X.d.ts} +2 -2
- package/dist/packem_shared/tusOpenApiSpec-DF0-hlWV.js +1 -0
- package/dist/packem_shared/{types.d-BPd_JkW1.d.ts → types.d-BCN94sB_.d.ts} +1 -1
- package/dist/packem_shared/{types.d-D-mlfmef.d.ts → types.d-D4caL2Fp.d.ts} +1 -1
- package/dist/packem_shared/update-size-DANV7aa2.js +1 -0
- package/dist/packem_shared/validator-DK41xp8N.js +1 -0
- package/dist/packem_shared/waitForStorage-ChSBLhLc.js +1 -0
- package/dist/packem_shared/wasabi-Dmce4x9s.js +1 -0
- package/dist/packem_shared/xhrOpenApiSpec-nyoboz83.js +1 -0
- package/dist/storage/aws/clients/index.js +1 -6
- package/dist/storage/aws/index.js +1 -3
- package/dist/storage/aws-light/index.js +1 -3
- package/dist/storage/azure/index.js +1 -3
- package/dist/storage/gcs/index.js +1 -4
- package/dist/storage/local/index.js +1 -3
- package/dist/storage/netlify-blob/index.js +1 -3
- package/dist/storage/vercel-blob/index.js +1 -3
- package/dist/transformer/audio-transformer.d.ts +1 -1
- package/dist/transformer/audio-transformer.js +1 -278
- package/dist/transformer/image-transformer.d.ts +1 -1
- package/dist/transformer/image-transformer.js +1 -1100
- package/dist/transformer/index.d.ts +2 -2
- package/dist/transformer/index.js +1 -4
- package/dist/transformer/video-transformer.d.ts +1 -1
- package/dist/transformer/video-transformer.js +1 -310
- package/package.json +17 -17
- package/dist/packem_shared/AwsLightFile-C-Nd5rtl.js +0 -11
- package/dist/packem_shared/AwsLightMetaStorage-BIDb5EPg.js +0 -4
- package/dist/packem_shared/AwsLightStorage-CMuKw4bI.js +0 -133
- package/dist/packem_shared/AzureFile-C0kug4w4.js +0 -8
- package/dist/packem_shared/AzureSMetaStorage-BEbXX9Uk.js +0 -89
- package/dist/packem_shared/AzureStorage-98-LRZ1e.js +0 -359
- package/dist/packem_shared/BaseTransformer-9965D4pb.js +0 -83
- package/dist/packem_shared/DiskStorage-COMe_G42.js +0 -12
- package/dist/packem_shared/DiskStorageWithChecksum-BVaaZiyS.js +0 -249
- package/dist/packem_shared/ERRORS-D0apMqnc.js +0 -97
- package/dist/packem_shared/File-CPUhj3DI.js +0 -69
- package/dist/packem_shared/GCSConfig-vPP22kN6.js +0 -11
- package/dist/packem_shared/GCSFile-DaDiCKE2.js +0 -8
- package/dist/packem_shared/GCSMetaStorage-w3c8c5ak.js +0 -7
- package/dist/packem_shared/GCStorage-DSktYrrp.js +0 -410
- package/dist/packem_shared/LocalMetaStorage-DvnZqf61.js +0 -7
- package/dist/packem_shared/MediaTransformer-BRRqYA0E.js +0 -1202
- package/dist/packem_shared/MetaStorage-pECeFOad.js +0 -46
- package/dist/packem_shared/Metadata-DRLXeJ0F.js +0 -89
- package/dist/packem_shared/Multipart-BzzvNxt4.js +0 -128
- package/dist/packem_shared/Multipart-DLtFLQ8s.js +0 -163
- package/dist/packem_shared/NetlifyBlobFile-CfyJtGWN.js +0 -14
- package/dist/packem_shared/NetlifyBlobMetaStorage-eJT6RFy9.js +0 -9
- package/dist/packem_shared/NetlifyBlobStorage-nPv7iIAG.js +0 -376
- package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +0 -10
- package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +0 -67
- package/dist/packem_shared/Rest-DEa7IA9R.js +0 -267
- package/dist/packem_shared/Rest-qhMbCn5a.js +0 -228
- package/dist/packem_shared/S3File-BXCuJaQZ.js +0 -11
- package/dist/packem_shared/S3MetaStorage-yT4CznlV.js +0 -77
- package/dist/packem_shared/S3Storage-wi5XT-yu.js +0 -317
- package/dist/packem_shared/TUS_RESUMABLE-Dtfsffnj.js +0 -434
- package/dist/packem_shared/Tus-Ck0Hdle5.js +0 -195
- package/dist/packem_shared/Tus-_0vCdHyB.js +0 -200
- package/dist/packem_shared/ValidationError-BfF1aE4h.js +0 -26
- package/dist/packem_shared/VercelBlobFile-DkFIIb9Q.js +0 -18
- package/dist/packem_shared/VercelBlobMetaStorage-DjFmi4vp.js +0 -9
- package/dist/packem_shared/VercelBlobStorage-CmMgiDgr.js +0 -261
- package/dist/packem_shared/_commonjsHelpers-BqLXS_qQ.js +0 -5
- package/dist/packem_shared/aws-light-meta-storage-BGZEiY3y.js +0 -447
- package/dist/packem_shared/backblaze-BlMnIcBC.js +0 -20
- package/dist/packem_shared/base-handler-core-lVB-D59L.js +0 -306
- package/dist/packem_shared/base-handler-fetch-CitgN-Aw.js +0 -291
- package/dist/packem_shared/base-handler-node-BiO2DF87.js +0 -731
- package/dist/packem_shared/cache-B88MXQ_2.js +0 -18
- package/dist/packem_shared/cloudflare-Bi1q8wXE.js +0 -21
- package/dist/packem_shared/defaultCloudStorageFileNameValidation-Brw40ZEP.js +0 -11
- package/dist/packem_shared/digitalOcean-CWQRJM3L.js +0 -21
- package/dist/packem_shared/disk-storage-D9RfoKjW.js +0 -832
- package/dist/packem_shared/gcs-meta-storage-CPSVL_a7.js +0 -159
- package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
- package/dist/packem_shared/headers-YLRp1dLo.js +0 -1318
- package/dist/packem_shared/is-expired-CTThU1q5.js +0 -8
- package/dist/packem_shared/isRetryableError-Dycp7127.js +0 -82
- package/dist/packem_shared/isValidMediaType-BeDgiObq.js +0 -35
- package/dist/packem_shared/local-meta-storage-D-pPc3FI.js +0 -658
- package/dist/packem_shared/minio-C2YBZQOw.js +0 -22
- package/dist/packem_shared/multipart-base-C994naBi.js +0 -102
- package/dist/packem_shared/part-match-Dt738Ddb.js +0 -96
- package/dist/packem_shared/path-aV9lMdcn-DMU5H1-h.js +0 -162
- package/dist/packem_shared/response-builder-BtnRiBUI.js +0 -45
- package/dist/packem_shared/rest-base-k1ory8uB.js +0 -457
- package/dist/packem_shared/restOpenApiSpec-BBJ_SiPE.js +0 -800
- package/dist/packem_shared/s3-base-storage-zUO8u8Cp.js +0 -510
- package/dist/packem_shared/sharedGet-CkSLSnMd.js +0 -1022
- package/dist/packem_shared/storage-5XW1E7XU.js +0 -1188
- package/dist/packem_shared/tigris-Hac8TKnX.js +0 -21
- package/dist/packem_shared/transformOpenApiSpec-BodFhFls.js +0 -975
- package/dist/packem_shared/tusOpenApiSpec-DzppyJTW.js +0 -740
- package/dist/packem_shared/update-size-CCGm6i1J.js +0 -8
- package/dist/packem_shared/validator-DuO17wFF.js +0 -79
- package/dist/packem_shared/waitForStorage-Cscw85sx.js +0 -18
- package/dist/packem_shared/wasabi-DIyflHSd.js +0 -21
- package/dist/packem_shared/xhrOpenApiSpec-CXz7BC5J.js +0 -264
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { request } from 'gaxios';
|
|
3
|
-
import { GoogleAuth } from 'google-auth-library';
|
|
4
|
-
import MetaStorage from './MetaStorage-pECeFOad.js';
|
|
5
|
-
import { stringifyMetadata, parseMetadata } from './Metadata-DRLXeJ0F.js';
|
|
6
|
-
import GCSConfig from './GCSConfig-vPP22kN6.js';
|
|
7
|
-
import { h as hasContent } from './has-content-CY66ehMK.js';
|
|
8
|
-
|
|
9
|
-
var name = "@visulima/storage";
|
|
10
|
-
var version = "1.0.0-alpha.17";
|
|
11
|
-
const package_ = {
|
|
12
|
-
name: name,
|
|
13
|
-
version: version};
|
|
14
|
-
|
|
15
|
-
const getRangeEnd = (range) => {
|
|
16
|
-
const match = range.match(/(\d+)-(\d+)/);
|
|
17
|
-
const end = match?.[2] ? +match[2] : 0;
|
|
18
|
-
return end > 0 ? end + 1 : 0;
|
|
19
|
-
};
|
|
20
|
-
const buildContentRange = (part) => {
|
|
21
|
-
if (hasContent(part)) {
|
|
22
|
-
const end = part.contentLength ? part.start + part.contentLength - 1 : "*";
|
|
23
|
-
return `bytes ${part.start}-${end}/${part.size ?? "*"}`;
|
|
24
|
-
}
|
|
25
|
-
return `bytes */${part.size ?? "*"}`;
|
|
26
|
-
};
|
|
27
|
-
const shouldRetry = (error) => {
|
|
28
|
-
if (error.response !== void 0) {
|
|
29
|
-
const { response } = error;
|
|
30
|
-
return response?.data?.error?.errors?.map(({ reason = "" }) => {
|
|
31
|
-
if (reason === "rateLimitExceeded") {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
if (reason === "userRateLimitExceeded") {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
return !!(reason && reason.includes("EAI_AGAIN"));
|
|
38
|
-
}).includes(true);
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
};
|
|
42
|
-
const retryOptions = {
|
|
43
|
-
retry: 3,
|
|
44
|
-
shouldRetry,
|
|
45
|
-
statusCodesToRetry: [[408, 429, 500, 502, 503, 504], [100, 199], [429], [500, 599]]
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
class GCSMetaStorage extends MetaStorage {
|
|
49
|
-
constructor(config) {
|
|
50
|
-
super(config);
|
|
51
|
-
this.config = config;
|
|
52
|
-
const { authClient, ...metaConfig } = config;
|
|
53
|
-
const bucketName = metaConfig.bucket || process.env.GCS_BUCKET;
|
|
54
|
-
if (authClient === void 0) {
|
|
55
|
-
if (!bucketName) {
|
|
56
|
-
throw new Error("GCS bucket is not defined");
|
|
57
|
-
}
|
|
58
|
-
if (!metaConfig.projectId) {
|
|
59
|
-
throw new Error("Sorry, we cannot connect to Cloud Services without a project ID.");
|
|
60
|
-
}
|
|
61
|
-
metaConfig.scopes ||= GCSConfig.authScopes;
|
|
62
|
-
this.authClient = new GoogleAuth(metaConfig);
|
|
63
|
-
} else {
|
|
64
|
-
this.authClient = authClient;
|
|
65
|
-
}
|
|
66
|
-
this.storageBaseURI = `${metaConfig.storageAPI || GCSConfig.storageAPI}/${bucketName}/o`;
|
|
67
|
-
this.uploadBaseURI = `${metaConfig.uploadAPI || GCSConfig.uploadAPI}/${bucketName}/o`;
|
|
68
|
-
const allowedHosts = ["storage.googleapis.com"];
|
|
69
|
-
const storageBaseHost = new URL(this.storageBaseURI).hostname;
|
|
70
|
-
this.isCustomEndpoint = !allowedHosts.includes(storageBaseHost);
|
|
71
|
-
const { retryOptions: retryOptions$1, useAuthWithCustomEndpoint, userProject } = config;
|
|
72
|
-
this.userProject = userProject;
|
|
73
|
-
this.useAuthWithCustomEndpoint = useAuthWithCustomEndpoint || false;
|
|
74
|
-
this.retryOptions = {
|
|
75
|
-
...retryOptions,
|
|
76
|
-
...retryOptions$1
|
|
77
|
-
};
|
|
78
|
-
if (authClient === void 0) {
|
|
79
|
-
this.accessCheck().catch((error) => {
|
|
80
|
-
if (error.code === "404") {
|
|
81
|
-
throw new Error(`Bucket ${bucketName} does not exist`);
|
|
82
|
-
}
|
|
83
|
-
throw error;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
config;
|
|
88
|
-
authClient;
|
|
89
|
-
storageBaseURI;
|
|
90
|
-
uploadBaseURI;
|
|
91
|
-
isCustomEndpoint = false;
|
|
92
|
-
retryOptions = {};
|
|
93
|
-
useAuthWithCustomEndpoint;
|
|
94
|
-
userProject;
|
|
95
|
-
async save(id, file) {
|
|
96
|
-
const transformedMetadata = { ...file };
|
|
97
|
-
if (transformedMetadata.metadata) {
|
|
98
|
-
transformedMetadata.metadata = stringifyMetadata(file.metadata);
|
|
99
|
-
}
|
|
100
|
-
await this.makeRequest({
|
|
101
|
-
body: JSON.stringify(transformedMetadata),
|
|
102
|
-
headers: { "Content-Type": "application/json; charset=utf-8" },
|
|
103
|
-
method: "POST",
|
|
104
|
-
params: { name: encodeURIComponent(this.getMetaName(id)), uploadType: "media" },
|
|
105
|
-
url: this.uploadBaseURI
|
|
106
|
-
});
|
|
107
|
-
return file;
|
|
108
|
-
}
|
|
109
|
-
async delete(id) {
|
|
110
|
-
const url = this.getMetaPath(id);
|
|
111
|
-
await this.makeRequest({ method: "DELETE", url });
|
|
112
|
-
}
|
|
113
|
-
async get(id) {
|
|
114
|
-
const url = this.getMetaPath(id);
|
|
115
|
-
const { data } = await this.makeRequest({ params: { alt: "media" }, url });
|
|
116
|
-
if (data.metadata && typeof data.metadata === "string") {
|
|
117
|
-
data.metadata = parseMetadata(data.metadata);
|
|
118
|
-
}
|
|
119
|
-
return data;
|
|
120
|
-
}
|
|
121
|
-
async touch(id, file) {
|
|
122
|
-
return this.save(id, file);
|
|
123
|
-
}
|
|
124
|
-
async accessCheck() {
|
|
125
|
-
return this.makeRequest({ url: this.storageBaseURI.replace("/o", "") });
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Returns metafile URL path for the given upload ID.
|
|
129
|
-
* @param id Upload ID to get metafile path for
|
|
130
|
-
* @returns Full URL path to the metafile in GCS
|
|
131
|
-
*/
|
|
132
|
-
getMetaPath(id) {
|
|
133
|
-
return `${this.storageBaseURI}/${this.getMetaName(id)}`;
|
|
134
|
-
}
|
|
135
|
-
async makeRequest(data) {
|
|
136
|
-
if (typeof data.url === "string") {
|
|
137
|
-
data.url = data.url.replaceAll("/:", ":");
|
|
138
|
-
}
|
|
139
|
-
data = {
|
|
140
|
-
...data,
|
|
141
|
-
headers: {
|
|
142
|
-
"User-Agent": `${package_.name}/${package_.version}`,
|
|
143
|
-
"x-goog-api-client": `gl-node/${process.versions.node} gccl/${package_.version} gccl-invocation-id/${randomUUID()}`
|
|
144
|
-
},
|
|
145
|
-
params: {
|
|
146
|
-
...this.userProject === void 0 ? {} : { userProject: this.userProject }
|
|
147
|
-
},
|
|
148
|
-
retry: true,
|
|
149
|
-
retryConfig: this.retryOptions,
|
|
150
|
-
timeout: 6e4
|
|
151
|
-
};
|
|
152
|
-
if (this.isCustomEndpoint && !this.useAuthWithCustomEndpoint) {
|
|
153
|
-
return request(data);
|
|
154
|
-
}
|
|
155
|
-
return this.authClient.request(data);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export { GCSMetaStorage as G, buildContentRange as b, getRangeEnd as g, package_ as p, retryOptions as r };
|