@medusajs/file-s3 0.0.3-preview-20240510084332 → 0.0.3-preview-20240514180547

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var s3_file_1 = require("./services/s3-file");
4
- var services = [s3_file_1.S3FileService];
5
- var providerExport = {
6
- services: services,
3
+ const s3_file_1 = require("./services/s3-file");
4
+ const services = [s3_file_1.S3FileService];
5
+ const providerExport = {
6
+ services,
7
7
  };
8
8
  exports.default = providerExport;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw4Q0FBa0Q7QUFFbEQsSUFBTSxRQUFRLEdBQUcsQ0FBQyx1QkFBYSxDQUFDLENBQUE7QUFFaEMsSUFBTSxjQUFjLEdBQTBCO0lBQzVDLFFBQVEsVUFBQTtDQUNULENBQUE7QUFFRCxrQkFBZSxjQUFjLENBQUEifQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxnREFBa0Q7QUFFbEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyx1QkFBYSxDQUFDLENBQUE7QUFFaEMsTUFBTSxjQUFjLEdBQTBCO0lBQzVDLFFBQVE7Q0FDVCxDQUFBO0FBRUQsa0JBQWUsY0FBYyxDQUFBIn0=
@@ -1,206 +1,110 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
65
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
66
4
  };
67
5
  Object.defineProperty(exports, "__esModule", { value: true });
68
6
  exports.S3FileService = void 0;
69
- var client_s3_1 = require("@aws-sdk/client-s3");
70
- var s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
71
- var utils_1 = require("@medusajs/utils");
72
- var path_1 = __importDefault(require("path"));
73
- var ulid_1 = require("ulid");
7
+ const client_s3_1 = require("@aws-sdk/client-s3");
8
+ const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
9
+ const utils_1 = require("@medusajs/utils");
10
+ const path_1 = __importDefault(require("path"));
11
+ const ulid_1 = require("ulid");
74
12
  // FUTURE: At one point we will probably need to support authenticating with IAM roles instead.
75
- var S3FileService = /** @class */ (function (_super) {
76
- __extends(S3FileService, _super);
77
- function S3FileService(_a, options) {
78
- var logger = _a.logger;
79
- var _this = this;
80
- var _b, _c, _d, _e;
81
- _this = _super.call(this) || this;
82
- _this.config_ = {
13
+ class S3FileService extends utils_1.AbstractFileProviderService {
14
+ constructor({ logger }, options) {
15
+ super();
16
+ this.config_ = {
83
17
  fileUrl: options.file_url,
84
18
  accessKeyId: options.access_key_id,
85
19
  secretAccessKey: options.secret_access_key,
86
20
  region: options.region,
87
21
  bucket: options.bucket,
88
- prefix: (_b = options.prefix) !== null && _b !== void 0 ? _b : "",
22
+ prefix: options.prefix ?? "",
89
23
  endpoint: options.endpoint,
90
- cacheControl: (_c = options.cache_control) !== null && _c !== void 0 ? _c : "public, max-age=31536000",
91
- downloadFileDuration: (_d = options.download_file_duration) !== null && _d !== void 0 ? _d : 60 * 60,
92
- additionalClientConfig: (_e = options.additional_client_config) !== null && _e !== void 0 ? _e : {},
24
+ cacheControl: options.cache_control ?? "public, max-age=31536000",
25
+ downloadFileDuration: options.download_file_duration ?? 60 * 60,
26
+ additionalClientConfig: options.additional_client_config ?? {},
93
27
  };
94
- _this.logger_ = logger;
95
- _this.client_ = _this.getClient();
96
- return _this;
28
+ this.logger_ = logger;
29
+ this.client_ = this.getClient();
97
30
  }
98
- S3FileService.prototype.getClient = function () {
99
- var config = __assign({ credentials: {
31
+ getClient() {
32
+ const config = {
33
+ credentials: {
100
34
  accessKeyId: this.config_.accessKeyId,
101
35
  secretAccessKey: this.config_.secretAccessKey,
102
- }, region: this.config_.region, endpoint: this.config_.endpoint }, this.config_.additionalClientConfig);
36
+ },
37
+ region: this.config_.region,
38
+ endpoint: this.config_.endpoint,
39
+ ...this.config_.additionalClientConfig,
40
+ };
103
41
  return new client_s3_1.S3Client(config);
104
- };
105
- S3FileService.prototype.upload = function (file) {
106
- return __awaiter(this, void 0, void 0, function () {
107
- var parsedFilename, fileKey, content, command, e_1;
108
- return __generator(this, function (_a) {
109
- switch (_a.label) {
110
- case 0:
111
- if (!file) {
112
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No file provided");
113
- }
114
- if (!file.filename) {
115
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No filename provided");
116
- }
117
- parsedFilename = path_1.default.parse(file.filename);
118
- fileKey = "".concat(this.config_.prefix).concat(parsedFilename.name, "-").concat((0, ulid_1.ulid)()).concat(parsedFilename.ext);
119
- content = Buffer.from(file.content, "binary");
120
- command = new client_s3_1.PutObjectCommand({
121
- // TODO: Add support for private files
122
- // We probably also want to support a separate bucket altogether for private files
123
- // protected private_bucket_: string
124
- // protected private_access_key_id_: string
125
- // protected private_secret_access_key_: string
126
- // ACL: options.acl ?? (options.isProtected ? "private" : "public-read"),
127
- Bucket: this.config_.bucket,
128
- Body: content,
129
- Key: fileKey,
130
- ContentType: file.mimeType,
131
- CacheControl: this.config_.cacheControl,
132
- // Note: We could potentially set the content disposition when uploading,
133
- // but storing the original filename as metadata should suffice.
134
- Metadata: {
135
- "x-amz-meta-original-filename": file.filename,
136
- },
137
- });
138
- _a.label = 1;
139
- case 1:
140
- _a.trys.push([1, 3, , 4]);
141
- return [4 /*yield*/, this.client_.send(command)];
142
- case 2:
143
- _a.sent();
144
- return [3 /*break*/, 4];
145
- case 3:
146
- e_1 = _a.sent();
147
- this.logger_.error(e_1);
148
- throw e_1;
149
- case 4: return [2 /*return*/, {
150
- url: "".concat(this.config_.fileUrl, "/").concat(fileKey),
151
- key: fileKey,
152
- }];
153
- }
154
- });
42
+ }
43
+ async upload(file) {
44
+ if (!file) {
45
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `No file provided`);
46
+ }
47
+ if (!file.filename) {
48
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `No filename provided`);
49
+ }
50
+ const parsedFilename = path_1.default.parse(file.filename);
51
+ // TODO: Allow passing a full path for storage per request, not as a global config.
52
+ const fileKey = `${this.config_.prefix}${parsedFilename.name}-${(0, ulid_1.ulid)()}${parsedFilename.ext}`;
53
+ const content = Buffer.from(file.content, "binary");
54
+ const command = new client_s3_1.PutObjectCommand({
55
+ // TODO: Add support for private files
56
+ // We probably also want to support a separate bucket altogether for private files
57
+ // protected private_bucket_: string
58
+ // protected private_access_key_id_: string
59
+ // protected private_secret_access_key_: string
60
+ // ACL: options.acl ?? (options.isProtected ? "private" : "public-read"),
61
+ Bucket: this.config_.bucket,
62
+ Body: content,
63
+ Key: fileKey,
64
+ ContentType: file.mimeType,
65
+ CacheControl: this.config_.cacheControl,
66
+ // Note: We could potentially set the content disposition when uploading,
67
+ // but storing the original filename as metadata should suffice.
68
+ Metadata: {
69
+ "x-amz-meta-original-filename": file.filename,
70
+ },
155
71
  });
156
- };
157
- S3FileService.prototype.delete = function (file) {
158
- return __awaiter(this, void 0, void 0, function () {
159
- var command, e_2;
160
- return __generator(this, function (_a) {
161
- switch (_a.label) {
162
- case 0:
163
- command = new client_s3_1.DeleteObjectCommand({
164
- Bucket: this.config_.bucket,
165
- Key: file.fileKey,
166
- });
167
- _a.label = 1;
168
- case 1:
169
- _a.trys.push([1, 3, , 4]);
170
- return [4 /*yield*/, this.client_.send(command)];
171
- case 2:
172
- _a.sent();
173
- return [3 /*break*/, 4];
174
- case 3:
175
- e_2 = _a.sent();
176
- // TODO: Rethrow depending on the error (eg. a file not found error is fine, but a failed request should be rethrown)
177
- this.logger_.error(e_2);
178
- return [3 /*break*/, 4];
179
- case 4: return [2 /*return*/];
180
- }
181
- });
72
+ try {
73
+ await this.client_.send(command);
74
+ }
75
+ catch (e) {
76
+ this.logger_.error(e);
77
+ throw e;
78
+ }
79
+ return {
80
+ url: `${this.config_.fileUrl}/${fileKey}`,
81
+ key: fileKey,
82
+ };
83
+ }
84
+ async delete(file) {
85
+ const command = new client_s3_1.DeleteObjectCommand({
86
+ Bucket: this.config_.bucket,
87
+ Key: file.fileKey,
182
88
  });
183
- };
184
- S3FileService.prototype.getPresignedDownloadUrl = function (fileData) {
185
- return __awaiter(this, void 0, void 0, function () {
186
- var command;
187
- return __generator(this, function (_a) {
188
- switch (_a.label) {
189
- case 0:
190
- command = new client_s3_1.GetObjectCommand({
191
- Bucket: this.config_.bucket,
192
- Key: "".concat(fileData.fileKey),
193
- });
194
- return [4 /*yield*/, (0, s3_request_presigner_1.getSignedUrl)(this.client_, command, {
195
- expiresIn: this.config_.downloadFileDuration,
196
- })];
197
- case 1: return [2 /*return*/, _a.sent()];
198
- }
199
- });
89
+ try {
90
+ await this.client_.send(command);
91
+ }
92
+ catch (e) {
93
+ // TODO: Rethrow depending on the error (eg. a file not found error is fine, but a failed request should be rethrown)
94
+ this.logger_.error(e);
95
+ }
96
+ }
97
+ async getPresignedDownloadUrl(fileData) {
98
+ // TODO: Allow passing content disposition when getting a presigned URL
99
+ const command = new client_s3_1.GetObjectCommand({
100
+ Bucket: this.config_.bucket,
101
+ Key: `${fileData.fileKey}`,
200
102
  });
201
- };
202
- S3FileService.identifier = "s3";
203
- return S3FileService;
204
- }(utils_1.AbstractFileProviderService));
103
+ return await (0, s3_request_presigner_1.getSignedUrl)(this.client_, command, {
104
+ expiresIn: this.config_.downloadFileDuration,
105
+ });
106
+ }
107
+ }
205
108
  exports.S3FileService = S3FileService;
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9zMy1maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBTTJCO0FBQzNCLHNFQUE0RDtBQUU1RCx5Q0FBMEU7QUFDMUUsOENBQXVCO0FBQ3ZCLDZCQUEyQjtBQW9CM0IsK0ZBQStGO0FBQy9GO0lBQW1DLGlDQUEyQjtJQU01RCx1QkFBWSxFQUFnQyxFQUFFLE9BQTZCO1lBQTdELE1BQU0sWUFBQTtRQUFwQixpQkFpQkM7O2dCQWhCQyxpQkFBTztRQUVQLEtBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDekIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQ2xDLGVBQWUsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1lBQzFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsTUFBTSxFQUFFLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksRUFBRTtZQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDMUIsWUFBWSxFQUFFLE1BQUEsT0FBTyxDQUFDLGFBQWEsbUNBQUksMEJBQTBCO1lBQ2pFLG9CQUFvQixFQUFFLE1BQUEsT0FBTyxDQUFDLHNCQUFzQixtQ0FBSSxFQUFFLEdBQUcsRUFBRTtZQUMvRCxzQkFBc0IsRUFBRSxNQUFBLE9BQU8sQ0FBQyx3QkFBd0IsbUNBQUksRUFBRTtTQUMvRCxDQUFBO1FBQ0QsS0FBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsS0FBSSxDQUFDLE9BQU8sR0FBRyxLQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7O0lBQ2pDLENBQUM7SUFFUyxpQ0FBUyxHQUFuQjtR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
109
+ S3FileService.identifier = "s3";
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9zMy1maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQU0yQjtBQUMzQix3RUFBNEQ7QUFFNUQsMkNBQTBFO0FBQzFFLGdEQUF1QjtBQUN2QiwrQkFBMkI7QUFvQjNCLCtGQUErRjtBQUMvRixNQUFhLGFBQWMsU0FBUSxtQ0FBMkI7SUFNNUQsWUFBWSxFQUFFLE1BQU0sRUFBd0IsRUFBRSxPQUE2QjtRQUN6RSxLQUFLLEVBQUUsQ0FBQTtRQUVQLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDekIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQ2xDLGVBQWUsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1lBQzFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRTtZQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDMUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksMEJBQTBCO1lBQ2pFLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUMvRCxzQkFBc0IsRUFBRSxPQUFPLENBQUMsd0JBQXdCLElBQUksRUFBRTtTQUMvRCxDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVTLFNBQVM7UUFDakIsTUFBTSxNQUFNLEdBQXVCO1lBQ2pDLFdBQVcsRUFBRTtnQkFDWCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNyQyxlQUFlLEVBQUUsSUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medusajs/file-s3",
3
- "version": "0.0.3-preview-20240510084332",
3
+ "version": "0.0.3-preview-20240514180547",
4
4
  "description": "S3 protocol file storage for Medusa. Supports any S3-compatible storage provider",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "@aws-sdk/client-s3": "^3.556.0",
35
35
  "@aws-sdk/s3-request-presigner": "^3.556.0",
36
- "@medusajs/utils": "1.11.10-preview-20240510084332",
36
+ "@medusajs/utils": "1.12.0-preview-20240514180547",
37
37
  "ulid": "^2.3.0"
38
38
  },
39
39
  "keywords": [