@vendure/asset-server-plugin 2.0.0-beta.1 → 2.0.0-beta.3

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.
@@ -1,16 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
+ import { AwsCredentialIdentity, AwsCredentialIdentityProvider } from '@aws-sdk/types';
3
4
  import { AssetStorageStrategy } from '@vendure/core';
4
5
  import { Request } from 'express';
5
- import { Stream } from 'stream';
6
+ import { Readable } from 'node:stream';
6
7
  import { AssetServerOptions } from './types';
7
- export type S3Credentials = {
8
- accessKeyId: string;
9
- secretAccessKey: string;
10
- };
11
- export type S3CredentialsProfile = {
12
- profile: string;
13
- };
14
8
  /**
15
9
  * @description
16
10
  * Configuration for connecting to AWS S3.
@@ -21,12 +15,12 @@ export type S3CredentialsProfile = {
21
15
  export interface S3Config {
22
16
  /**
23
17
  * @description
24
- * The credentials used to access your s3 account. You can supply either the access key ID & secret,
25
- * or you can make use of a
18
+ * The credentials used to access your s3 account. You can supply either the access key ID & secret, or you can make use of a
26
19
  * [shared credentials file](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html)
27
- * and supply the profile name (e.g. `'default'`).
20
+ * To use a shared credentials file, import the `fromIni()` function from the "@aws-sdk/credential-provider-ini" or "@aws-sdk/credential-providers" package and supply
21
+ * the profile name (e.g. `{ profile: 'default' }`) as its argument.
28
22
  */
29
- credentials?: S3Credentials | S3CredentialsProfile;
23
+ credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider;
30
24
  /**
31
25
  * @description
32
26
  * The S3 bucket in which to store the assets. If it does not exist, it will be created on startup.
@@ -52,16 +46,17 @@ export interface S3Config {
52
46
  * Returns a configured instance of the {@link S3AssetStorageStrategy} which can then be passed to the {@link AssetServerOptions}
53
47
  * `storageStrategyFactory` property.
54
48
  *
55
- * Before using this strategy, make sure you have the `aws-sdk` package installed:
49
+ * Before using this strategy, make sure you have the `@aws-sdk/client-s3` and `@aws-sdk/lib-storage` package installed:
56
50
  *
57
51
  * ```sh
58
- * npm install aws-sdk
52
+ * npm install @aws-sdk/client-s3 @aws-sdk/lib-storage
59
53
  * ```
60
54
  *
61
55
  * @example
62
56
  * ```TypeScript
63
57
  * import { AssetServerPlugin, configureS3AssetStorage } from '\@vendure/asset-server-plugin';
64
58
  * import { DefaultAssetNamingStrategy } from '\@vendure/core';
59
+ * import { fromEnv } from '\@aws-sdk/credential-providers';
65
60
  *
66
61
  * // ...
67
62
  *
@@ -72,10 +67,7 @@ export interface S3Config {
72
67
  * namingStrategy: new DefaultAssetNamingStrategy(),
73
68
  * storageStrategyFactory: configureS3AssetStorage({
74
69
  * bucket: 'my-s3-bucket',
75
- * credentials: {
76
- * accessKeyId: process.env.AWS_ACCESS_KEY_ID,
77
- * secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
78
- * },
70
+ * credentials: fromEnv(), // or any other credential provider
79
71
  * }),
80
72
  * }),
81
73
  * ```
@@ -118,12 +110,12 @@ export declare function configureS3AssetStorage(s3Config: S3Config): (options: A
118
110
  * @description
119
111
  * An {@link AssetStorageStrategy} which uses [Amazon S3](https://aws.amazon.com/s3/) object storage service.
120
112
  * To us this strategy you must first have access to an AWS account.
121
- * See their [getting started guide](https://aws.amazon.com/s3/getting-started/?nc=sn&loc=5) for how to get set up.
113
+ * See their [getting started guide](https://aws.amazon.com/s3/getting-started/) for how to get set up.
122
114
  *
123
- * Before using this strategy, make sure you have the `aws-sdk` package installed:
115
+ * Before using this strategy, make sure you have the `@aws-sdk/client-s3` and `@aws-sdk/lib-storage` package installed:
124
116
  *
125
117
  * ```sh
126
- * npm install aws-sdk
118
+ * npm install @aws-sdk/client-s3 @aws-sdk/lib-storage
127
119
  * ```
128
120
  *
129
121
  * **Note:** Rather than instantiating this manually, use the {@link configureS3AssetStorage} function.
@@ -140,18 +132,21 @@ export declare class S3AssetStorageStrategy implements AssetStorageStrategy {
140
132
  private s3Config;
141
133
  readonly toAbsoluteUrl: (request: Request, identifier: string) => string;
142
134
  private AWS;
143
- private s3;
135
+ private libStorage;
136
+ private s3Client;
144
137
  constructor(s3Config: S3Config, toAbsoluteUrl: (request: Request, identifier: string) => string);
145
138
  init(): Promise<void>;
146
139
  destroy?: (() => void | Promise<void>) | undefined;
147
140
  writeFileFromBuffer(fileName: string, data: Buffer): Promise<string>;
148
- writeFileFromStream(fileName: string, data: Stream): Promise<string>;
141
+ writeFileFromStream(fileName: string, data: Readable): Promise<string>;
149
142
  readFileToBuffer(identifier: string): Promise<Buffer>;
150
- readFileToStream(identifier: string): Promise<Stream>;
143
+ readFileToStream(identifier: string): Promise<Readable>;
144
+ private readFile;
145
+ private writeFile;
151
146
  deleteFile(identifier: string): Promise<void>;
152
147
  fileExists(fileName: string): Promise<boolean>;
153
148
  private getObjectParams;
154
- private getS3Credentials;
155
149
  private ensureBucket;
150
+ private getCredentials;
156
151
  private isCredentialsProfile;
157
152
  }
@@ -22,11 +22,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
26
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
27
+ var m = o[Symbol.asyncIterator], i;
28
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
29
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
30
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
31
+ };
25
32
  Object.defineProperty(exports, "__esModule", { value: true });
26
33
  exports.S3AssetStorageStrategy = exports.configureS3AssetStorage = void 0;
27
34
  const core_1 = require("@vendure/core");
28
- const path = __importStar(require("path"));
29
- const stream_1 = require("stream");
35
+ const path = __importStar(require("node:path"));
36
+ const node_stream_1 = require("node:stream");
30
37
  const common_1 = require("./common");
31
38
  const constants_1 = require("./constants");
32
39
  /**
@@ -34,16 +41,17 @@ const constants_1 = require("./constants");
34
41
  * Returns a configured instance of the {@link S3AssetStorageStrategy} which can then be passed to the {@link AssetServerOptions}
35
42
  * `storageStrategyFactory` property.
36
43
  *
37
- * Before using this strategy, make sure you have the `aws-sdk` package installed:
44
+ * Before using this strategy, make sure you have the `@aws-sdk/client-s3` and `@aws-sdk/lib-storage` package installed:
38
45
  *
39
46
  * ```sh
40
- * npm install aws-sdk
47
+ * npm install @aws-sdk/client-s3 @aws-sdk/lib-storage
41
48
  * ```
42
49
  *
43
50
  * @example
44
51
  * ```TypeScript
45
52
  * import { AssetServerPlugin, configureS3AssetStorage } from '\@vendure/asset-server-plugin';
46
53
  * import { DefaultAssetNamingStrategy } from '\@vendure/core';
54
+ * import { fromEnv } from '\@aws-sdk/credential-providers';
47
55
  *
48
56
  * // ...
49
57
  *
@@ -54,10 +62,7 @@ const constants_1 = require("./constants");
54
62
  * namingStrategy: new DefaultAssetNamingStrategy(),
55
63
  * storageStrategyFactory: configureS3AssetStorage({
56
64
  * bucket: 'my-s3-bucket',
57
- * credentials: {
58
- * accessKeyId: process.env.AWS_ACCESS_KEY_ID,
59
- * secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
60
- * },
65
+ * credentials: fromEnv(), // or any other credential provider
61
66
  * }),
62
67
  * }),
63
68
  * ```
@@ -97,7 +102,6 @@ const constants_1 = require("./constants");
97
102
  */
98
103
  function configureS3AssetStorage(s3Config) {
99
104
  return (options) => {
100
- const { assetUrlPrefix, route } = options;
101
105
  const prefixFn = (0, common_1.getAssetUrlPrefixFn)(options);
102
106
  const toAbsoluteUrlFn = (request, identifier) => {
103
107
  if (!identifier) {
@@ -114,12 +118,12 @@ exports.configureS3AssetStorage = configureS3AssetStorage;
114
118
  * @description
115
119
  * An {@link AssetStorageStrategy} which uses [Amazon S3](https://aws.amazon.com/s3/) object storage service.
116
120
  * To us this strategy you must first have access to an AWS account.
117
- * See their [getting started guide](https://aws.amazon.com/s3/getting-started/?nc=sn&loc=5) for how to get set up.
121
+ * See their [getting started guide](https://aws.amazon.com/s3/getting-started/) for how to get set up.
118
122
  *
119
- * Before using this strategy, make sure you have the `aws-sdk` package installed:
123
+ * Before using this strategy, make sure you have the `@aws-sdk/client-s3` and `@aws-sdk/lib-storage` package installed:
120
124
  *
121
125
  * ```sh
122
- * npm install aws-sdk
126
+ * npm install @aws-sdk/client-s3 @aws-sdk/lib-storage
123
127
  * ```
124
128
  *
125
129
  * **Note:** Rather than instantiating this manually, use the {@link configureS3AssetStorage} function.
@@ -139,84 +143,95 @@ class S3AssetStorageStrategy {
139
143
  }
140
144
  async init() {
141
145
  try {
142
- this.AWS = await Promise.resolve().then(() => __importStar(require('aws-sdk')));
146
+ this.AWS = await Promise.resolve().then(() => __importStar(require('@aws-sdk/client-s3')));
143
147
  }
144
- catch (e) {
145
- core_1.Logger.error('Could not find the "aws-sdk" package. Make sure it is installed', constants_1.loggerCtx, e.stack);
148
+ catch (err) {
149
+ core_1.Logger.error('Could not find the "@aws-sdk/client-s3" package. Make sure it is installed', constants_1.loggerCtx, err.stack);
146
150
  }
147
- const config = Object.assign({ credentials: this.getS3Credentials() }, this.s3Config.nativeS3Configuration);
148
- this.s3 = new this.AWS.S3(config);
149
- await this.ensureBucket(this.s3Config.bucket);
151
+ try {
152
+ this.libStorage = await Promise.resolve().then(() => __importStar(require('@aws-sdk/lib-storage')));
153
+ }
154
+ catch (err) {
155
+ core_1.Logger.error('Could not find the "@aws-sdk/lib-storage" package. Make sure it is installed', constants_1.loggerCtx, err.stack);
156
+ }
157
+ const config = Object.assign(Object.assign({}, this.s3Config.nativeS3Configuration), { credentials: await this.getCredentials() // Avoid credentials overriden by nativeS3Configuration
158
+ });
159
+ this.s3Client = new this.AWS.S3Client(config);
160
+ await this.ensureBucket();
150
161
  }
151
162
  async writeFileFromBuffer(fileName, data) {
152
- const result = await this.s3
153
- .upload({
154
- Bucket: this.s3Config.bucket,
155
- Key: fileName,
156
- Body: data,
157
- }, this.s3Config.nativeS3UploadConfiguration)
158
- .promise();
159
- return result.Key;
163
+ return this.writeFile(fileName, data);
160
164
  }
161
165
  async writeFileFromStream(fileName, data) {
162
- const result = await this.s3
163
- .upload({
164
- Bucket: this.s3Config.bucket,
165
- Key: fileName,
166
- Body: data,
167
- }, this.s3Config.nativeS3UploadConfiguration)
168
- .promise();
169
- return result.Key;
166
+ return this.writeFile(fileName, data);
170
167
  }
171
168
  async readFileToBuffer(identifier) {
172
- const result = await this.s3.getObject(this.getObjectParams(identifier)).promise();
173
- const body = result.Body;
169
+ var _a, e_1, _b, _c;
170
+ const body = await this.readFile(identifier);
174
171
  if (!body) {
175
172
  core_1.Logger.error(`Got undefined Body for ${identifier}`, constants_1.loggerCtx);
176
173
  return Buffer.from('');
177
174
  }
178
- if (body instanceof Buffer) {
179
- return body;
180
- }
181
- if (body instanceof Uint8Array || typeof body === 'string') {
182
- return Buffer.from(body);
175
+ const chunks = [];
176
+ try {
177
+ for (var _d = true, body_1 = __asyncValues(body), body_1_1; body_1_1 = await body_1.next(), _a = body_1_1.done, !_a;) {
178
+ _c = body_1_1.value;
179
+ _d = false;
180
+ try {
181
+ const chunk = _c;
182
+ chunks.push(chunk);
183
+ }
184
+ finally {
185
+ _d = true;
186
+ }
187
+ }
183
188
  }
184
- if (body instanceof stream_1.Readable) {
185
- return new Promise((resolve, reject) => {
186
- const buf = [];
187
- body.on('data', data => buf.push(data));
188
- body.on('error', err => reject(err));
189
- body.on('end', () => {
190
- const intArray = Uint8Array.from(buf);
191
- resolve(Buffer.concat([intArray]));
192
- });
193
- });
189
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
190
+ finally {
191
+ try {
192
+ if (!_d && !_a && (_b = body_1.return)) await _b.call(body_1);
193
+ }
194
+ finally { if (e_1) throw e_1.error; }
194
195
  }
195
- return Buffer.from(body);
196
+ return Buffer.concat(chunks);
196
197
  }
197
198
  async readFileToStream(identifier) {
198
- const result = await this.s3.getObject(this.getObjectParams(identifier)).promise();
199
- const body = result.Body;
200
- if (!(body instanceof stream_1.Stream)) {
201
- const readable = new stream_1.Readable();
202
- readable._read = () => {
203
- /* noop */
204
- };
205
- readable.push(body);
206
- readable.push(null);
207
- return readable;
199
+ const body = await this.readFile(identifier);
200
+ if (!body) {
201
+ return new node_stream_1.Readable({ read() { this.push(null); } });
208
202
  }
209
203
  return body;
210
204
  }
205
+ async readFile(identifier) {
206
+ const { GetObjectCommand } = this.AWS;
207
+ const result = await this.s3Client.send(new GetObjectCommand(this.getObjectParams(identifier)));
208
+ return result.Body;
209
+ }
210
+ async writeFile(fileName, data) {
211
+ const { Upload } = this.libStorage;
212
+ const upload = new Upload({
213
+ client: this.s3Client,
214
+ params: Object.assign(Object.assign({}, this.s3Config.nativeS3UploadConfiguration), { Bucket: this.s3Config.bucket, Key: fileName, Body: data }),
215
+ });
216
+ return upload.done().then((result) => {
217
+ if (!('Key' in result) || !result.Key) {
218
+ core_1.Logger.error(`Got undefined Key for ${fileName}`, constants_1.loggerCtx);
219
+ throw new Error(`Got undefined Key for ${fileName}`);
220
+ }
221
+ return result.Key;
222
+ });
223
+ }
211
224
  async deleteFile(identifier) {
212
- await this.s3.deleteObject(this.getObjectParams(identifier)).promise();
225
+ const { DeleteObjectCommand } = this.AWS;
226
+ await this.s3Client.send(new DeleteObjectCommand(this.getObjectParams(identifier)));
213
227
  }
214
228
  async fileExists(fileName) {
229
+ const { HeadObjectCommand } = this.AWS;
215
230
  try {
216
- await this.s3.headObject(this.getObjectParams(fileName)).promise();
231
+ await this.s3Client.send(new HeadObjectCommand(this.getObjectParams(fileName)));
217
232
  return true;
218
233
  }
219
- catch (e) {
234
+ catch (err) {
220
235
  return false;
221
236
  }
222
237
  }
@@ -226,38 +241,37 @@ class S3AssetStorageStrategy {
226
241
  Key: path.join(identifier.replace(/^\//, '')),
227
242
  };
228
243
  }
229
- getS3Credentials() {
230
- const { credentials } = this.s3Config;
231
- if (credentials == null) {
232
- return null;
244
+ async ensureBucket(bucket = this.s3Config.bucket) {
245
+ const { HeadBucketCommand, CreateBucketCommand } = this.AWS;
246
+ try {
247
+ await this.s3Client.send(new HeadBucketCommand({ Bucket: bucket }));
248
+ core_1.Logger.verbose(`Found S3 bucket "${bucket}"`, constants_1.loggerCtx);
249
+ return;
233
250
  }
234
- else if (this.isCredentialsProfile(credentials)) {
235
- return new this.AWS.SharedIniFileCredentials(credentials);
251
+ catch (err) {
252
+ core_1.Logger.verbose(`Could not find bucket "${bucket}: ${JSON.stringify(err.message)}". Attempting to create...`);
236
253
  }
237
- return new this.AWS.Credentials(credentials);
238
- }
239
- async ensureBucket(bucket) {
240
- let bucketExists = false;
241
254
  try {
242
- await this.s3.headBucket({ Bucket: this.s3Config.bucket }).promise();
243
- bucketExists = true;
244
- core_1.Logger.verbose(`Found S3 bucket "${bucket}"`, constants_1.loggerCtx);
255
+ await this.s3Client.send(new CreateBucketCommand({ Bucket: bucket, ACL: 'private' }));
256
+ core_1.Logger.verbose(`Created S3 bucket "${bucket}"`, constants_1.loggerCtx);
245
257
  }
246
- catch (e) {
247
- core_1.Logger.verbose(`Could not find bucket "${bucket}: ${JSON.stringify(e.message)}". Attempting to create...`);
258
+ catch (err) {
259
+ core_1.Logger.error(`Could not find nor create the S3 bucket "${bucket}: ${JSON.stringify(err.message)}"`, constants_1.loggerCtx, err.stack);
248
260
  }
249
- if (!bucketExists) {
250
- try {
251
- await this.s3.createBucket({ Bucket: bucket, ACL: 'private' }).promise();
252
- core_1.Logger.verbose(`Created S3 bucket "${bucket}"`, constants_1.loggerCtx);
253
- }
254
- catch (e) {
255
- core_1.Logger.error(`Could not find nor create the S3 bucket "${bucket}: ${JSON.stringify(e.message)}"`, constants_1.loggerCtx, e.stack);
256
- }
261
+ }
262
+ async getCredentials() {
263
+ if (this.s3Config.credentials == null) {
264
+ return undefined;
265
+ }
266
+ if (this.isCredentialsProfile(this.s3Config.credentials)) {
267
+ core_1.Logger.warn('The "profile" property of the "s3Config.credentials" is deprecated. ' +
268
+ 'Please use the "fromIni()" function from the "@aws-sdk/credential-provider-ini" or "@aws-sdk/credential-providers" package instead.', constants_1.loggerCtx);
269
+ return (await Promise.resolve().then(() => __importStar(require('@aws-sdk/credential-provider-ini')))).fromIni({ profile: this.s3Config.credentials.profile });
257
270
  }
271
+ return this.s3Config.credentials;
258
272
  }
259
273
  isCredentialsProfile(credentials) {
260
- return credentials.hasOwnProperty('profile');
274
+ return credentials !== null && typeof credentials === 'object' && 'profile' in credentials && Object.keys(credentials).length === 1;
261
275
  }
262
276
  }
263
277
  exports.S3AssetStorageStrategy = S3AssetStorageStrategy;
@@ -1 +1 @@
1
- {"version":3,"file":"s3-asset-storage-strategy.js","sourceRoot":"","sources":["../../src/s3-asset-storage-strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3-asset-storage-strategy.js","sourceRoot":"","sources":["../../src/s3-asset-storage-strategy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/asset-server-plugin",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.3",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "files": [
@@ -21,13 +21,14 @@
21
21
  "access": "public"
22
22
  },
23
23
  "devDependencies": {
24
+ "@aws-sdk/client-s3": "^3.312.0",
25
+ "@aws-sdk/lib-storage": "^3.312.0",
24
26
  "@types/express": "^4.17.8",
25
27
  "@types/fs-extra": "^9.0.8",
26
28
  "@types/node-fetch": "^2.5.8",
27
29
  "@types/sharp": "^0.30.4",
28
- "@vendure/common": "^2.0.0-beta.1",
29
- "@vendure/core": "^2.0.0-beta.1",
30
- "aws-sdk": "^2.856.0",
30
+ "@vendure/common": "2.0.0-beta.3",
31
+ "@vendure/core": "2.0.0-beta.3",
31
32
  "express": "^4.17.1",
32
33
  "node-fetch": "^2.6.7",
33
34
  "rimraf": "^3.0.2",
@@ -38,5 +39,5 @@
38
39
  "fs-extra": "^10.0.0",
39
40
  "sharp": "~0.31.2"
40
41
  },
41
- "gitHead": "1283d87f0fe171a174507bfa1926520e1fbc97b1"
42
+ "gitHead": "609e2ed4a0f8b5101a5fa0824e2caca791efca66"
42
43
  }