@lodashventure/medusa-media-manager 0.2.11 → 0.2.13
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.
|
@@ -438,7 +438,20 @@ async function deleteMediaAsset(id, force) {
|
|
|
438
438
|
credentials: "include"
|
|
439
439
|
});
|
|
440
440
|
if (!res.ok) {
|
|
441
|
-
|
|
441
|
+
let message = "Failed to delete media asset";
|
|
442
|
+
try {
|
|
443
|
+
const body = await res.json();
|
|
444
|
+
message = (body == null ? void 0 : body.message) ?? (body == null ? void 0 : body.error) ?? message;
|
|
445
|
+
} catch {
|
|
446
|
+
try {
|
|
447
|
+
const text = await res.text();
|
|
448
|
+
if (text) {
|
|
449
|
+
message = text;
|
|
450
|
+
}
|
|
451
|
+
} catch {
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
throw new Error(message);
|
|
442
455
|
}
|
|
443
456
|
}
|
|
444
457
|
async function replaceMediaAsset(id, file) {
|
|
@@ -437,7 +437,20 @@ async function deleteMediaAsset(id, force) {
|
|
|
437
437
|
credentials: "include"
|
|
438
438
|
});
|
|
439
439
|
if (!res.ok) {
|
|
440
|
-
|
|
440
|
+
let message = "Failed to delete media asset";
|
|
441
|
+
try {
|
|
442
|
+
const body = await res.json();
|
|
443
|
+
message = (body == null ? void 0 : body.message) ?? (body == null ? void 0 : body.error) ?? message;
|
|
444
|
+
} catch {
|
|
445
|
+
try {
|
|
446
|
+
const text = await res.text();
|
|
447
|
+
if (text) {
|
|
448
|
+
message = text;
|
|
449
|
+
}
|
|
450
|
+
} catch {
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
throw new Error(message);
|
|
441
454
|
}
|
|
442
455
|
}
|
|
443
456
|
async function replaceMediaAsset(id, file) {
|
|
@@ -42,13 +42,23 @@ class GcsStorageDriver {
|
|
|
42
42
|
}
|
|
43
43
|
async upload(key, buffer, mimeType) {
|
|
44
44
|
const file = this.file(key);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
const shouldUsePublicAcl = this.shouldAttemptPublicAcl();
|
|
46
|
+
const primaryOptions = this.buildSaveOptions(mimeType, shouldUsePublicAcl);
|
|
47
|
+
try {
|
|
48
|
+
await file.save(buffer, primaryOptions);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
if (shouldUsePublicAcl && this.shouldRetryWithoutAcl(err)) {
|
|
52
|
+
await file.save(buffer, this.buildSaveOptions(mimeType, false));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
if (err instanceof Error) {
|
|
56
|
+
err.message = `Failed to upload asset to GCS: ${err.message}`;
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
throw new Error("Failed to upload asset to GCS.");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
52
62
|
return {
|
|
53
63
|
key,
|
|
54
64
|
url: this.getPublicUrl(key),
|
|
@@ -95,6 +105,47 @@ class GcsStorageDriver {
|
|
|
95
105
|
getConfig() {
|
|
96
106
|
return this.config;
|
|
97
107
|
}
|
|
108
|
+
shouldAttemptPublicAcl() {
|
|
109
|
+
if (this.config.forcePublicAcl === false) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
return this.config.signed?.enabled !== true;
|
|
113
|
+
}
|
|
114
|
+
buildSaveOptions(mimeType, forcePublicAcl) {
|
|
115
|
+
const options = {
|
|
116
|
+
contentType: mimeType,
|
|
117
|
+
resumable: false,
|
|
118
|
+
validation: this.config.validation ?? false,
|
|
119
|
+
};
|
|
120
|
+
if (forcePublicAcl) {
|
|
121
|
+
options.predefinedAcl = "publicRead";
|
|
122
|
+
}
|
|
123
|
+
return options;
|
|
124
|
+
}
|
|
125
|
+
shouldRetryWithoutAcl(error) {
|
|
126
|
+
if (!error) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
const code = error?.code;
|
|
130
|
+
const message = (typeof error?.message === "string"
|
|
131
|
+
? error.message
|
|
132
|
+
: "") || "";
|
|
133
|
+
const normalized = message.toLowerCase();
|
|
134
|
+
if (code === "ERR_STREAM_DESTROYED" ||
|
|
135
|
+
normalized.includes("stream was destroyed")) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
if (normalized.includes("uniform bucket-level access") ||
|
|
139
|
+
normalized.includes("legacy acl")) {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
if (typeof code === "number" &&
|
|
143
|
+
[400, 403].includes(code) &&
|
|
144
|
+
normalized.includes("acl")) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
98
149
|
}
|
|
99
150
|
exports.GcsStorageDriver = GcsStorageDriver;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2NzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL2djcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBNkQ7QUFRN0QsTUFBTSx1QkFBdUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUNuRSxNQUFNLHVCQUF1QixHQUFHO0lBQzlCLGdDQUFnQztJQUNoQywrQkFBK0I7Q0FDaEMsQ0FBQztBQUVGLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQTZCLE1BQWlDO1FBQWpDLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQztZQUN6QixTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDeEIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUM3QixDQUFDLENBQUM7b0JBQ0UsWUFBWSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVztvQkFDNUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVTtpQkFDM0M7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodashventure/medusa-media-manager",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
4
4
|
"description": "Medusa v2 plugin providing a Strapi-inspired media manager with storage adapters, variants, and admin UI",
|
|
5
5
|
"author": "StandUpCode",
|
|
6
6
|
"license": "MIT",
|