@haus-tech/product-import-export-plugin 3.2.0 → 3.3.0

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 (30) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.mdx +31 -11
  3. package/package.json +2 -1
  4. package/src/api/product-export.controller.d.ts +6 -7
  5. package/src/api/product-export.controller.js +39 -78
  6. package/src/api/product-export.controller.js.map +1 -1
  7. package/src/constants.d.ts +1 -0
  8. package/src/constants.js +2 -1
  9. package/src/constants.js.map +1 -1
  10. package/src/index.d.ts +4 -0
  11. package/src/index.js +3 -0
  12. package/src/index.js.map +1 -1
  13. package/src/product-import-export.plugin.js +23 -0
  14. package/src/product-import-export.plugin.js.map +1 -1
  15. package/src/services/export-storage/export-storage-strategy.d.ts +31 -0
  16. package/src/services/export-storage/export-storage-strategy.js +3 -0
  17. package/src/services/export-storage/export-storage-strategy.js.map +1 -0
  18. package/src/services/export-storage/local-export-storage-strategy.d.ts +20 -0
  19. package/src/services/export-storage/local-export-storage-strategy.js +106 -0
  20. package/src/services/export-storage/local-export-storage-strategy.js.map +1 -0
  21. package/src/services/export-storage/s3-export-storage-strategy.d.ts +15 -0
  22. package/src/services/export-storage/s3-export-storage-strategy.js +130 -0
  23. package/src/services/export-storage/s3-export-storage-strategy.js.map +1 -0
  24. package/src/services/export-storage.util.d.ts +18 -0
  25. package/src/services/export-storage.util.js +81 -0
  26. package/src/services/export-storage.util.js.map +1 -0
  27. package/src/services/product-export.service.d.ts +3 -1
  28. package/src/services/product-export.service.js +24 -9
  29. package/src/services/product-export.service.js.map +1 -1
  30. package/src/types.d.ts +13 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 3.2.1
2
+
3
+ This was a version bump only for product-import-export-plugin to align it with other projects, there were no code changes.
4
+
5
+ ## 3.2.0
6
+
7
+ This was a version bump only for product-import-export-plugin to align it with other projects, there were no code changes.
8
+
1
9
  ## 3.1.10
2
10
 
3
11
  This was a version bump only for product-import-export-plugin to align it with other projects, there were no code changes.
package/README.mdx CHANGED
@@ -19,9 +19,10 @@ A Vendure plugin for importing and exporting product data via CSV. Supports bulk
19
19
 
20
20
  ## Features
21
21
 
22
- - **Import** – Bulk upload products from CSV with validation, custom fields, assets, facets, and variants
23
- - **Export** – Export products to CSV with selected fields; export all products or a selection
24
- - **UI** – Admin UI and Dashboard integration for import and export
22
+ * **Import** – Bulk upload products from CSV with validation, custom fields, assets, facets, and variants
23
+ * **Export** – Export products to CSV with selected fields; export all products or a selection
24
+ * **Storage strategies** – Store exported files in S3 or locally on disk (with automatic fallback)
25
+ * **UI** – Admin UI and Dashboard integration for import and export
25
26
 
26
27
  ![Dashboard UI](assets/Screenshot-dashboard-ui.png)
27
28
 
@@ -44,7 +45,17 @@ export const config = {
44
45
  plugins: [
45
46
  ProductImportExportPlugin.init({
46
47
  importOptions: {}, // Configure import options
47
- exportOptions: {}, // Configure export options
48
+ exportOptions: {
49
+ storageStrategy: 's3', // 's3' | 'disk'
50
+ s3Options: {
51
+ bucket: 'your-bucket',
52
+ region: 'your-region',
53
+ credentials: {
54
+ accessKeyId: '...',
55
+ secretAccessKey: '...',
56
+ },
57
+ },
58
+ },
48
59
  }),
49
60
  ],
50
61
  }
@@ -61,13 +72,22 @@ export const config = {
61
72
 
62
73
  ### Export options
63
74
 
64
- | Option | Type | Default | Description |
65
- | ----------------------- | --------------------- | ----------------------- | ------------------------------------------------- |
66
- | `defaultFileName` | `string` | `'products_export.csv'` | Default filename for exports |
67
- | `exportAssetsAsOptions` | `('url' \| 'json')[]` | `['url', 'json']` | Available formats for asset export |
68
- | `defaultExportAssetsAs` | `'url' \| 'json'` | `'url'` | Default asset export format |
69
- | `defaultExportFields` | `string[]` | See above | Fields that will be pre-selected in the export UI |
70
- | `requiredExportFields` | `string[]` | `['name', 'sku']` | Fields that must always be included |
75
+ | Option | Type | Default | Description |
76
+ | ----------------------- | --------------------- | ----------------------- | ------------------------------------------------------------ |
77
+ | `defaultFileName` | `string` | `'products_export.csv'` | Default filename for exports |
78
+ | `exportAssetsAsOptions` | `('url' \| 'json')[]` | `['url', 'json']` | Available formats for asset export |
79
+ | `defaultExportAssetsAs` | `'url' \| 'json'` | `'url'` | Default asset export format |
80
+ | `defaultExportFields` | `string[]` | See above | Fields that will be pre-selected in the export UI |
81
+ | `requiredExportFields` | `string[]` | `['name', 'sku']` | Fields that must always be included |
82
+ | `storageStrategy` | `'s3' \| 'disk'` | `'disk'` | Where exported files are stored |
83
+ | `s3Options` | `object` | `undefined` | S3 configuration (required when `storageStrategy` is `'s3'`) |
84
+
85
+ ### Storage strategy
86
+
87
+ The plugin supports configurable storage for exported files:
88
+
89
+ * **S3** – Stores export files in an S3-compatible bucket
90
+ * **Disk (default)** – Saves files locally on the server
71
91
 
72
92
  ## CSV Format for Import
73
93
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haus-tech/product-import-export-plugin",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "A Vendure plugin for importing and exporting products using a CSV file",
5
5
  "author": "Haus Tech",
6
6
  "repository": {
@@ -43,6 +43,7 @@
43
43
  "build": "yarn run -T rimraf dist && yarn run -T tsc && yarn run -T copyfiles -u 1 'src/ui/**/*' dist/"
44
44
  },
45
45
  "dependencies": {
46
+ "@aws-sdk/client-s3": "^3.744.0",
46
47
  "axios": "^1.7.0",
47
48
  "bottleneck": "^2.19.5",
48
49
  "fs-extra": "^11.2.0",
@@ -3,11 +3,14 @@ import { Response } from 'express';
3
3
  import { ProductExportService } from '../services/product-export.service';
4
4
  import { ProductExportQueueService } from '../services/product-export-queue.service';
5
5
  import { PluginInitOptions } from '../types';
6
+ import { ExportStorageStrategy } from '../services/export-storage/export-storage-strategy';
6
7
  export declare class ProductExportController {
7
8
  private options;
9
+ private exportStorageStrategy;
8
10
  private productExportService;
9
11
  private productExportQueueService;
10
- constructor(options: PluginInitOptions, productExportService: ProductExportService, productExportQueueService: ProductExportQueueService);
12
+ constructor(options: PluginInitOptions, exportStorageStrategy: ExportStorageStrategy, productExportService: ProductExportService, productExportQueueService: ProductExportQueueService);
13
+ private validateExportFileName;
11
14
  exportProducts(ctx: RequestContext, res: Response, fileName: string, customFields: string, exportAssetsAs: 'url' | 'json', selectedExportFields: string, selection: ID[]): Promise<void>;
12
15
  exportAllProducts(ctx: RequestContext, fileName: string, customFields: string, exportAssetsAs: 'url' | 'json', selectedExportFields: string): Promise<{
13
16
  success: boolean;
@@ -23,10 +26,6 @@ export declare class ProductExportController {
23
26
  name: string;
24
27
  type: string;
25
28
  }[]>;
26
- getExportFiles(ctx: RequestContext): Promise<{
27
- fileName: string;
28
- size: number;
29
- created: Date;
30
- modified: Date;
31
- }[]>;
29
+ getExportFiles(ctx: RequestContext): Promise<import("../services/export-storage/export-storage-strategy").ExportedFileMetadata[]>;
30
+ private sanitizeFileName;
32
31
  }
@@ -1,43 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
7
  };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
8
  var __metadata = (this && this.__metadata) || function (k, v) {
42
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
10
  };
@@ -50,18 +17,35 @@ const core_1 = require("@vendure/core");
50
17
  const common_1 = require("@nestjs/common");
51
18
  const product_export_service_1 = require("../services/product-export.service");
52
19
  const product_export_queue_service_1 = require("../services/product-export-queue.service");
53
- const fs_1 = require("fs");
54
- const path = __importStar(require("path"));
55
20
  const constants_1 = require("../constants");
56
21
  let ProductExportController = class ProductExportController {
57
22
  options;
23
+ exportStorageStrategy;
58
24
  productExportService;
59
25
  productExportQueueService;
60
- constructor(options, productExportService, productExportQueueService) {
26
+ constructor(options, exportStorageStrategy, productExportService, productExportQueueService) {
61
27
  this.options = options;
28
+ this.exportStorageStrategy = exportStorageStrategy;
62
29
  this.productExportService = productExportService;
63
30
  this.productExportQueueService = productExportQueueService;
64
31
  }
32
+ validateExportFileName(fileName) {
33
+ const trimmed = fileName.trim();
34
+ if (!trimmed) {
35
+ throw new Error('Invalid fileName');
36
+ }
37
+ if (trimmed.includes('/') || trimmed.includes('\\')) {
38
+ throw new Error('Invalid fileName');
39
+ }
40
+ if (trimmed.includes('..')) {
41
+ throw new Error('Invalid fileName');
42
+ }
43
+ // Prevent header injection in the download route.
44
+ if (/[\r\n"]/g.test(trimmed)) {
45
+ throw new Error('Invalid fileName');
46
+ }
47
+ return trimmed;
48
+ }
65
49
  async exportProducts(ctx, res, fileName, customFields, exportAssetsAs, selectedExportFields, selection) {
66
50
  try {
67
51
  if (!selection ||
@@ -82,6 +66,7 @@ let ProductExportController = class ProductExportController {
82
66
  else if (!fileName.endsWith('.csv')) {
83
67
  fileName += '.csv';
84
68
  }
69
+ fileName = this.validateExportFileName(fileName);
85
70
  if (!customFields) {
86
71
  customFields = '';
87
72
  }
@@ -110,6 +95,7 @@ let ProductExportController = class ProductExportController {
110
95
  if (!fileName.endsWith('.csv')) {
111
96
  fileName += '.csv';
112
97
  }
98
+ fileName = this.validateExportFileName(fileName);
113
99
  if (!customFields) {
114
100
  customFields = '';
115
101
  }
@@ -126,21 +112,14 @@ let ProductExportController = class ProductExportController {
126
112
  }
127
113
  async downloadExport(ctx, res, fileName) {
128
114
  try {
129
- const channelToken = ctx.channel.token;
130
- const exportsDir = path.join(process.cwd(), 'static', 'exports', channelToken);
131
- const filePath = path.join(exportsDir, fileName);
132
- if (!filePath.startsWith(exportsDir)) {
133
- throw new common_1.UnprocessableEntityException('Invalid file path');
134
- }
135
- if (!(0, fs_1.existsSync)(filePath)) {
136
- throw new common_1.UnprocessableEntityException('File not found');
137
- }
115
+ const validatedFileName = this.validateExportFileName(fileName);
116
+ const sanitizedFileName = this.sanitizeFileName(validatedFileName);
138
117
  res.set({
139
118
  'Content-Type': 'text/csv',
140
- 'Content-Disposition': `attachment; filename="${fileName}"`,
119
+ 'Content-Disposition': `attachment; filename="${sanitizedFileName}"`,
141
120
  });
142
- const fileStream = (0, fs_1.createReadStream)(filePath);
143
- fileStream.pipe(res);
121
+ const stream = await this.exportStorageStrategy.getExportFileStream(ctx, validatedFileName);
122
+ stream.pipe(res);
144
123
  }
145
124
  catch (e) {
146
125
  throw new common_1.UnprocessableEntityException(e.message);
@@ -148,16 +127,8 @@ let ProductExportController = class ProductExportController {
148
127
  }
149
128
  async deleteExport(ctx, fileName) {
150
129
  try {
151
- const channelToken = ctx.channel.token;
152
- const exportsDir = path.join(process.cwd(), 'static', 'exports', channelToken);
153
- const filePath = path.join(exportsDir, fileName);
154
- if (!filePath.startsWith(exportsDir)) {
155
- throw new common_1.UnprocessableEntityException('Invalid file path');
156
- }
157
- if (!(0, fs_1.existsSync)(filePath)) {
158
- throw new common_1.UnprocessableEntityException('File not found');
159
- }
160
- await fs_1.promises.unlink(filePath);
130
+ const validatedFileName = this.validateExportFileName(fileName);
131
+ await this.exportStorageStrategy.deleteExportFile(ctx, validatedFileName);
161
132
  return {
162
133
  success: true,
163
134
  message: 'File deleted successfully',
@@ -172,30 +143,19 @@ let ProductExportController = class ProductExportController {
172
143
  }
173
144
  async getExportFiles(ctx) {
174
145
  try {
175
- const channelToken = ctx.channel.token;
176
- const exportsDir = path.join(process.cwd(), 'static', 'exports', channelToken);
177
- if (!(0, fs_1.existsSync)(exportsDir)) {
178
- return [];
179
- }
180
- const files = await fs_1.promises.readdir(exportsDir);
181
- const fileList = await Promise.all(files
182
- .filter((file) => file.endsWith('.csv') && !file.endsWith('.tmp'))
183
- .map(async (file) => {
184
- const filePath = path.join(exportsDir, file);
185
- const stats = await fs_1.promises.stat(filePath);
186
- return {
187
- fileName: file,
188
- size: stats.size,
189
- created: stats.birthtime,
190
- modified: stats.mtime,
191
- };
192
- }));
193
- return fileList.sort((a, b) => b.created.getTime() - a.created.getTime());
146
+ return await this.exportStorageStrategy.listExportFiles(ctx);
194
147
  }
195
148
  catch (e) {
196
149
  throw new common_1.UnprocessableEntityException(e.message);
197
150
  }
198
151
  }
152
+ sanitizeFileName(fileName) {
153
+ const cleaned = fileName.replace(/[\r\n"]/g, '');
154
+ if (!cleaned || cleaned.trim().length === 0) {
155
+ return 'export.csv';
156
+ }
157
+ return cleaned;
158
+ }
199
159
  };
200
160
  exports.ProductExportController = ProductExportController;
201
161
  __decorate([
@@ -257,7 +217,8 @@ __decorate([
257
217
  exports.ProductExportController = ProductExportController = __decorate([
258
218
  (0, common_1.Controller)('product-export'),
259
219
  __param(0, (0, common_1.Inject)(constants_1.PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS)),
260
- __metadata("design:paramtypes", [Object, product_export_service_1.ProductExportService,
220
+ __param(1, (0, common_1.Inject)(constants_1.EXPORT_STORAGE_STRATEGY)),
221
+ __metadata("design:paramtypes", [Object, Object, product_export_service_1.ProductExportService,
261
222
  product_export_queue_service_1.ProductExportQueueService])
262
223
  ], ProductExportController);
263
224
  //# sourceMappingURL=product-export.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-export.controller.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/api/product-export.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAuD;AACvD,2CAWuB;AAEvB,+EAAyE;AACzE,2FAAoF;AACpF,2BAA2D;AAC3D,2CAA4B;AAC5B,4CAAmE;AAI5D,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAEsB;IAC9C;IACA;IAHV,YACwD,OAA0B,EACxE,oBAA0C,EAC1C,yBAAoD;QAFN,YAAO,GAAP,OAAO,CAAmB;QACxE,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,8BAAyB,GAAzB,yBAAyB,CAA2B;IAC3D,CAAC;IAGE,AAAN,KAAK,CAAC,cAAc,CACX,GAAmB,EACnB,GAAa,EACD,QAAgB,EACZ,YAAoB,EAClB,cAA8B,EACxB,oBAA4B,EAE3D,SAAe;QAEf,IAAI,CAAC;YACH,IACE,CAAC,SAAS;gBACV,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,SAAS,CAAC,MAAM,KAAK,CAAC;gBACtB,CAAC,oBAAoB,EACrB,CAAC;gBACD,MAAM,IAAI,qCAA4B,CAAC,sBAAsB,CAAC,CAAA;YAChE,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe;oBAC1C,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5D,CAAC;oBACD,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,IAAI,MAAM,CAAA;gBACjE,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,IAAI,qBAAqB,CAAA;gBAChF,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,QAAQ,IAAI,MAAM,CAAA;YACpB,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,EAAE,CAAA;YACnB,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CACzE,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,SAAS,CACV,CAAA;YAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,IAAI,qCAA4B,CAAC,4BAA4B,CAAC,CAAA;YACtE,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,gCAAgC;gBACzC,KAAK,EAAE,GAAG,CAAC,EAAE;aACd,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CACd,GAAmB,EACP,QAAgB,EACZ,YAAoB,EAClB,cAA8B,EACxB,oBAA4B;QAE3D,IAAI,CAAC;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,IAAI,qCAA4B,CAAC,2BAA2B,CAAC,CAAA;YACrE,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,IAAI,yBAAyB,CAAA;YACpF,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,QAAQ,IAAI,MAAM,CAAA;YACpB,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,EAAE,CAAA;YACnB,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAC5D,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,IAAI,CACL,CAAA;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,gCAAgC;gBACzC,KAAK,EAAE,GAAG,CAAC,EAAE;aACd,CAAA;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CACX,GAAmB,EACnB,GAAa,EACD,QAAgB;QAEnC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAEhD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,qCAA4B,CAAC,mBAAmB,CAAC,CAAA;YAC7D,CAAC;YAED,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,qCAA4B,CAAC,gBAAgB,CAAC,CAAA;YAC1D,CAAC;YAED,GAAG,CAAC,GAAG,CAAC;gBACN,cAAc,EAAE,UAAU;gBAC1B,qBAAqB,EAAE,yBAAyB,QAAQ,GAAG;aAC5D,CAAC,CAAA;YAEF,MAAM,UAAU,GAAG,IAAA,qBAAgB,EAAC,QAAQ,CAAC,CAAA;YAC7C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY,CAAQ,GAAmB,EAAqB,QAAgB;QAChF,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAEhD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,qCAA4B,CAAC,mBAAmB,CAAC,CAAA;YAC7D,CAAC;YAED,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,qCAA4B,CAAC,gBAAgB,CAAC,CAAA;YAC1D,CAAC;YAED,MAAM,aAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAE/B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,2BAA2B;aACrC,CAAA;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAQ,GAAmB,EAAU,GAAa;QACrE,OAAO,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5D,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAAQ,GAAmB;QAC7C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;YAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;YAC9E,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAA;YACX,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,aAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAEhD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK;iBACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBACjE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;gBAC5C,MAAM,KAAK,GAAG,MAAM,aAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC3C,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,SAAS;oBACxB,QAAQ,EAAE,KAAK,CAAC,KAAK;iBACtB,CAAA;YACH,CAAC,CAAC,CACL,CAAA;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;CACF,CAAA;AA5MY,0DAAuB;AAQ5B;IADL,IAAA,aAAI,EAAC,QAAQ,CAAC;IAEZ,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,cAAc,CAAC,CAAA;IACrB,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,sBAAsB,CAAC,CAAA;IAC7B,WAAA,IAAA,aAAI,GAAE,CAAA;;qCANK,qBAAc;;6DAyD3B;AAGK;IADL,IAAA,aAAI,EAAC,YAAY,CAAC;IAEhB,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,cAAc,CAAC,CAAA;IACrB,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,sBAAsB,CAAC,CAAA;;qCAJlB,qBAAc;;gEAuC3B;AAGK;IADL,IAAA,YAAG,EAAC,oBAAoB,CAAC;IAEvB,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;qCAFN,qBAAc;;6DA2B3B;AAGK;IADL,IAAA,eAAM,EAAC,kBAAkB,CAAC;IACP,WAAA,IAAA,UAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;qCAAlC,qBAAc;;2DAuB5C;AAGK;IADL,IAAA,aAAI,EAAC,eAAe,CAAC;IACC,WAAA,IAAA,UAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAvB,qBAAc;;8DAE/C;AAGK;IADL,IAAA,YAAG,EAAC,gBAAgB,CAAC;IACA,WAAA,IAAA,UAAG,GAAE,CAAA;;qCAAM,qBAAc;;6DA6B9C;kCA3MU,uBAAuB;IADnC,IAAA,mBAAU,EAAC,gBAAgB,CAAC;IAGxB,WAAA,IAAA,eAAM,EAAC,gDAAoC,CAAC,CAAA;6CACf,6CAAoB;QACf,wDAAyB;GAJnD,uBAAuB,CA4MnC"}
1
+ {"version":3,"file":"product-export.controller.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/api/product-export.controller.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare const PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS: unique symbol;
2
+ export declare const EXPORT_STORAGE_STRATEGY: unique symbol;
2
3
  export declare const loggerCtx = "ProductImportExportPlugin";
package/src/constants.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loggerCtx = exports.PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS = void 0;
3
+ exports.loggerCtx = exports.EXPORT_STORAGE_STRATEGY = exports.PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS = void 0;
4
4
  exports.PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS = Symbol('PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS');
5
+ exports.EXPORT_STORAGE_STRATEGY = Symbol('EXPORT_STORAGE_STRATEGY');
5
6
  exports.loggerCtx = 'ProductImportExportPlugin';
6
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/product-import-export-plugin/src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oCAAoC,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAA;AACrF,QAAA,SAAS,GAAG,2BAA2B,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/product-import-export-plugin/src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oCAAoC,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAA;AACrF,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAA;AAC3D,QAAA,SAAS,GAAG,2BAA2B,CAAA"}
package/src/index.d.ts CHANGED
@@ -1,2 +1,6 @@
1
1
  export * from './product-import-export.plugin';
2
2
  export type { PluginInitOptions, UpdatingStrategy, JsonAsset } from './types';
3
+ export * from './services/export-storage/export-storage-strategy';
4
+ export * from './services/export-storage/local-export-storage-strategy';
5
+ export * from './services/export-storage/s3-export-storage-strategy';
6
+ export type { S3ExportStorageConfig } from './services/export-storage.util';
package/src/index.js CHANGED
@@ -15,4 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./product-import-export.plugin"), exports);
18
+ __exportStar(require("./services/export-storage/export-storage-strategy"), exports);
19
+ __exportStar(require("./services/export-storage/local-export-storage-strategy"), exports);
20
+ __exportStar(require("./services/export-storage/s3-export-storage-strategy"), exports);
18
21
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/product-import-export-plugin/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/product-import-export-plugin/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA8C;AAG9C,oFAAiE;AACjE,0FAAuE;AACvE,uFAAoE"}
@@ -42,6 +42,7 @@ var ProductImportExportPlugin_1;
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.ProductImportExportPlugin = void 0;
44
44
  const core_1 = require("@vendure/core");
45
+ const core_2 = require("@nestjs/core");
45
46
  const path = __importStar(require("path"));
46
47
  const lodash_1 = require("lodash");
47
48
  const constants_1 = require("./constants");
@@ -58,6 +59,7 @@ const product_import_service_1 = require("./services/product-import.service");
58
59
  const extended_fast_importer_service_1 = require("./services/extended-fast-importer.service");
59
60
  const product_export_service_1 = require("./services/product-export.service");
60
61
  const product_export_queue_service_1 = require("./services/product-export-queue.service");
62
+ const local_export_storage_strategy_1 = require("./services/export-storage/local-export-storage-strategy");
61
63
  let ProductImportExportPlugin = class ProductImportExportPlugin {
62
64
  static { ProductImportExportPlugin_1 = this; }
63
65
  static options;
@@ -69,6 +71,10 @@ let ProductImportExportPlugin = class ProductImportExportPlugin {
69
71
  restoreSoftDeleted: true,
70
72
  };
71
73
  }
74
+ // Ensure exportOptions exists
75
+ if (!options.exportOptions) {
76
+ options.exportOptions = {};
77
+ }
72
78
  // Setup export options
73
79
  if (!options.exportOptions.defaultFileName) {
74
80
  options.exportOptions.defaultFileName = 'products_export.csv';
@@ -137,6 +143,23 @@ exports.ProductImportExportPlugin = ProductImportExportPlugin = ProductImportExp
137
143
  provide: constants_1.PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS,
138
144
  useFactory: () => ProductImportExportPlugin.options,
139
145
  },
146
+ {
147
+ provide: constants_1.EXPORT_STORAGE_STRATEGY,
148
+ useFactory: async (moduleRef) => {
149
+ const exportOptions = ProductImportExportPlugin.options?.exportOptions;
150
+ const injector = new core_1.Injector(moduleRef);
151
+ if (exportOptions?.storageStrategy) {
152
+ return exportOptions.storageStrategy;
153
+ }
154
+ if (exportOptions?.storageStrategyFactory) {
155
+ return await exportOptions.storageStrategyFactory(injector);
156
+ }
157
+ return new local_export_storage_strategy_1.LocalExportStorageStrategy({
158
+ baseDir: path.join(process.cwd(), 'static', 'exports'),
159
+ });
160
+ },
161
+ inject: [core_2.ModuleRef],
162
+ },
140
163
  product_import_service_1.ProductImportService,
141
164
  product_importer_1.ProductImporter,
142
165
  extended_fast_importer_service_1.ExtendedFastImporterService,
@@ -1 +1 @@
1
- {"version":3,"file":"product-import-export.plugin.js","sourceRoot":"","sources":["../../../../packages/product-import-export-plugin/src/product-import-export.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-import-export.plugin.js","sourceRoot":"","sources":["../../../../packages/product-import-export-plugin/src/product-import-export.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { RequestContext } from '@vendure/core';
2
+ import { Readable } from 'node:stream';
3
+ export type ExportedFileMetadata = {
4
+ fileName: string;
5
+ size: number;
6
+ created: Date;
7
+ modified: Date;
8
+ };
9
+ export interface ExportStorageStrategy {
10
+ /**
11
+ * @description
12
+ * Store the completed export file (already written on local disk) and make it retrievable
13
+ * via the `fileName` in the controller routes.
14
+ */
15
+ storeExportFile(ctx: RequestContext, fileName: string, localFilePath: string): Promise<void>;
16
+ /**
17
+ * @description
18
+ * Returns a readable stream for an exported file.
19
+ */
20
+ getExportFileStream(ctx: RequestContext, fileName: string): Promise<Readable>;
21
+ /**
22
+ * @description
23
+ * Lists all exported files for the current channel.
24
+ */
25
+ listExportFiles(ctx: RequestContext): Promise<ExportedFileMetadata[]>;
26
+ /**
27
+ * @description
28
+ * Deletes an exported file for the current channel.
29
+ */
30
+ deleteExportFile(ctx: RequestContext, fileName: string): Promise<void>;
31
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=export-storage-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-storage-strategy.js","sourceRoot":"","sources":["../../../../../../packages/product-import-export-plugin/src/services/export-storage/export-storage-strategy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { RequestContext } from '@vendure/core';
2
+ import { Readable } from 'node:stream';
3
+ import { ExportedFileMetadata, ExportStorageStrategy } from './export-storage-strategy';
4
+ export type LocalExportStorageStrategyOptions = {
5
+ /**
6
+ * @description
7
+ * Base directory in which exported files are stored.
8
+ * Files are stored under `<baseDir>/<channelToken>/`.
9
+ */
10
+ baseDir: string;
11
+ };
12
+ export declare class LocalExportStorageStrategy implements ExportStorageStrategy {
13
+ private options;
14
+ constructor(options: LocalExportStorageStrategyOptions);
15
+ storeExportFile(ctx: RequestContext, fileName: string, localFilePath: string): Promise<void>;
16
+ getExportFileStream(ctx: RequestContext, fileName: string): Promise<Readable>;
17
+ listExportFiles(ctx: RequestContext): Promise<ExportedFileMetadata[]>;
18
+ deleteExportFile(ctx: RequestContext, fileName: string): Promise<void>;
19
+ private getExportsDir;
20
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LocalExportStorageStrategy = void 0;
37
+ const node_fs_1 = require("node:fs");
38
+ const path = __importStar(require("node:path"));
39
+ class LocalExportStorageStrategy {
40
+ options;
41
+ constructor(options) {
42
+ this.options = options;
43
+ }
44
+ async storeExportFile(ctx, fileName, localFilePath) {
45
+ const exportsDir = this.getExportsDir(ctx);
46
+ await node_fs_1.promises.mkdir(exportsDir, { recursive: true });
47
+ const destinationPath = path.join(exportsDir, fileName);
48
+ // Move into final location. If rename fails (e.g. cross-device), fall back to copy+unlink.
49
+ try {
50
+ await node_fs_1.promises.rename(localFilePath, destinationPath);
51
+ return;
52
+ }
53
+ catch (e) {
54
+ // ignore, fall back below
55
+ }
56
+ await node_fs_1.promises.copyFile(localFilePath, destinationPath);
57
+ await node_fs_1.promises.unlink(localFilePath);
58
+ }
59
+ async getExportFileStream(ctx, fileName) {
60
+ const exportsDir = this.getExportsDir(ctx);
61
+ const filePath = path.join(exportsDir, fileName);
62
+ if (!filePath.startsWith(exportsDir)) {
63
+ throw new Error('Invalid file path');
64
+ }
65
+ if (!(0, node_fs_1.existsSync)(filePath)) {
66
+ throw new Error('File not found');
67
+ }
68
+ return (0, node_fs_1.createReadStream)(filePath);
69
+ }
70
+ async listExportFiles(ctx) {
71
+ const exportsDir = this.getExportsDir(ctx);
72
+ if (!(0, node_fs_1.existsSync)(exportsDir)) {
73
+ return [];
74
+ }
75
+ const files = await node_fs_1.promises.readdir(exportsDir);
76
+ const csvFiles = files.filter((file) => file.endsWith('.csv') && !file.endsWith('.tmp'));
77
+ const fileList = await Promise.all(csvFiles.map(async (file) => {
78
+ const filePath = path.join(exportsDir, file);
79
+ const stats = await node_fs_1.promises.stat(filePath);
80
+ return {
81
+ fileName: file,
82
+ size: stats.size,
83
+ created: stats.birthtime,
84
+ modified: stats.mtime,
85
+ };
86
+ }));
87
+ return fileList.sort((a, b) => b.created.getTime() - a.created.getTime());
88
+ }
89
+ async deleteExportFile(ctx, fileName) {
90
+ const exportsDir = this.getExportsDir(ctx);
91
+ const filePath = path.join(exportsDir, fileName);
92
+ if (!filePath.startsWith(exportsDir)) {
93
+ throw new Error('Invalid file path');
94
+ }
95
+ if (!(0, node_fs_1.existsSync)(filePath)) {
96
+ throw new Error('File not found');
97
+ }
98
+ await node_fs_1.promises.unlink(filePath);
99
+ }
100
+ getExportsDir(ctx) {
101
+ const channelToken = ctx.channel.token;
102
+ return path.join(this.options.baseDir, channelToken);
103
+ }
104
+ }
105
+ exports.LocalExportStorageStrategy = LocalExportStorageStrategy;
106
+ //# sourceMappingURL=local-export-storage-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-export-storage-strategy.js","sourceRoot":"","sources":["../../../../../../packages/product-import-export-plugin/src/services/export-storage/local-export-storage-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { RequestContext } from '@vendure/core';
2
+ import { Readable } from 'node:stream';
3
+ import { ExportedFileMetadata, ExportStorageStrategy } from './export-storage-strategy';
4
+ import { S3ExportStorageConfig } from '../export-storage.util';
5
+ export type S3ExportStorageStrategyOptions = {
6
+ storage: S3ExportStorageConfig;
7
+ };
8
+ export declare class S3ExportStorageStrategy implements ExportStorageStrategy {
9
+ private storage;
10
+ constructor(options: S3ExportStorageStrategyOptions);
11
+ storeExportFile(ctx: RequestContext, fileName: string, localFilePath: string): Promise<void>;
12
+ getExportFileStream(ctx: RequestContext, fileName: string): Promise<Readable>;
13
+ listExportFiles(ctx: RequestContext): Promise<ExportedFileMetadata[]>;
14
+ deleteExportFile(ctx: RequestContext, fileName: string): Promise<void>;
15
+ }
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.S3ExportStorageStrategy = void 0;
37
+ const client_s3_1 = require("@aws-sdk/client-s3");
38
+ const node_fs_1 = require("node:fs");
39
+ const path = __importStar(require("node:path"));
40
+ const export_storage_util_1 = require("../export-storage.util");
41
+ class S3ExportStorageStrategy {
42
+ storage;
43
+ constructor(options) {
44
+ this.storage = options.storage;
45
+ }
46
+ async storeExportFile(ctx, fileName, localFilePath) {
47
+ const client = (0, export_storage_util_1.createS3Client)(this.storage);
48
+ const channelToken = ctx.channel.token;
49
+ const channelPrefix = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, '');
50
+ const objectKey = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, fileName);
51
+ if (!objectKey.startsWith(channelPrefix)) {
52
+ throw new Error('Invalid object key');
53
+ }
54
+ await client.send(new client_s3_1.PutObjectCommand({
55
+ Bucket: this.storage.bucket,
56
+ Key: objectKey,
57
+ Body: (0, node_fs_1.createReadStream)(localFilePath),
58
+ ContentType: 'text/csv',
59
+ }));
60
+ }
61
+ async getExportFileStream(ctx, fileName) {
62
+ const client = (0, export_storage_util_1.createS3Client)(this.storage);
63
+ const channelToken = ctx.channel.token;
64
+ const channelPrefix = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, '');
65
+ const key = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, fileName);
66
+ if (!key.startsWith(channelPrefix)) {
67
+ throw new Error('Invalid object key');
68
+ }
69
+ const result = await client.send(new client_s3_1.GetObjectCommand({
70
+ Bucket: this.storage.bucket,
71
+ Key: key,
72
+ }));
73
+ if (!result.Body) {
74
+ throw new Error('File not found');
75
+ }
76
+ return result.Body;
77
+ }
78
+ async listExportFiles(ctx) {
79
+ const client = (0, export_storage_util_1.createS3Client)(this.storage);
80
+ const channelToken = ctx.channel.token;
81
+ const prefix = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, '');
82
+ const normalizedPrefix = prefix.endsWith('/') ? prefix : `${prefix}`;
83
+ const allContents = [];
84
+ let continuationToken;
85
+ do {
86
+ const result = await client.send(new client_s3_1.ListObjectsV2Command({
87
+ Bucket: this.storage.bucket,
88
+ Prefix: normalizedPrefix,
89
+ ContinuationToken: continuationToken,
90
+ }));
91
+ if (result.Contents) {
92
+ allContents.push(...result.Contents);
93
+ }
94
+ continuationToken = result.NextContinuationToken;
95
+ } while (continuationToken);
96
+ const fileList = allContents
97
+ .filter((object) => {
98
+ if (!object.Key) {
99
+ return false;
100
+ }
101
+ return object.Key.endsWith('.csv') && !object.Key.endsWith('.tmp');
102
+ })
103
+ .map((object) => {
104
+ const key = object.Key;
105
+ const file = path.posix.basename(key);
106
+ return {
107
+ fileName: file,
108
+ size: object.Size ?? 0,
109
+ created: object.LastModified ?? new Date(),
110
+ modified: object.LastModified ?? new Date(),
111
+ };
112
+ });
113
+ return fileList.sort((a, b) => b.created.getTime() - a.created.getTime());
114
+ }
115
+ async deleteExportFile(ctx, fileName) {
116
+ const client = (0, export_storage_util_1.createS3Client)(this.storage);
117
+ const channelToken = ctx.channel.token;
118
+ const channelPrefix = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, '');
119
+ const key = (0, export_storage_util_1.buildExportObjectKey)(this.storage, channelToken, fileName);
120
+ if (!key.startsWith(channelPrefix)) {
121
+ throw new Error('Invalid object key');
122
+ }
123
+ await client.send(new client_s3_1.DeleteObjectCommand({
124
+ Bucket: this.storage.bucket,
125
+ Key: key,
126
+ }));
127
+ }
128
+ }
129
+ exports.S3ExportStorageStrategy = S3ExportStorageStrategy;
130
+ //# sourceMappingURL=s3-export-storage-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-export-storage-strategy.js","sourceRoot":"","sources":["../../../../../../packages/product-import-export-plugin/src/services/export-storage/s3-export-storage-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { S3Client } from '@aws-sdk/client-s3';
2
+ import type { AwsCredentialIdentity, AwsCredentialIdentityProvider } from '@aws-sdk/types';
3
+ export type S3ExportStorageConfig = {
4
+ bucket: string;
5
+ baseKeyPrefix?: string;
6
+ credentials?: AwsCredentialIdentity | AwsCredentialIdentityProvider;
7
+ nativeS3Configuration?: Record<string, unknown>;
8
+ nativeS3UploadConfiguration?: Record<string, unknown>;
9
+ };
10
+ export declare function createS3Client(storage: S3ExportStorageConfig): S3Client;
11
+ /**
12
+ * Build an S3 object key that is guaranteed to stay under the channel prefix.
13
+ *
14
+ * @param storage - S3 storage configuration.
15
+ * @param channelToken - Current channel token.
16
+ * @param fileName - Basename only (e.g. `export.csv`). Directory separators and traversal sequences are rejected.
17
+ */
18
+ export declare function buildExportObjectKey(storage: S3ExportStorageConfig, channelToken: string, fileName: string): string;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createS3Client = createS3Client;
37
+ exports.buildExportObjectKey = buildExportObjectKey;
38
+ const client_s3_1 = require("@aws-sdk/client-s3");
39
+ const path = __importStar(require("node:path"));
40
+ function createS3Client(storage) {
41
+ const config = {
42
+ ...(storage.nativeS3Configuration ?? {}),
43
+ credentials: storage.credentials,
44
+ };
45
+ return new client_s3_1.S3Client(config);
46
+ }
47
+ function normalizeExportFileNameForObjectKey(fileName) {
48
+ if (fileName === '') {
49
+ return '';
50
+ }
51
+ const trimmed = fileName.trim();
52
+ if (!trimmed) {
53
+ throw new Error('Invalid fileName');
54
+ }
55
+ // Prevent path traversal / virtual directory injection in S3 object keys.
56
+ if (trimmed.includes('/') || trimmed.includes('\\')) {
57
+ throw new Error('Invalid fileName');
58
+ }
59
+ if (trimmed.includes('..')) {
60
+ throw new Error('Invalid fileName');
61
+ }
62
+ const base = path.posix.basename(trimmed);
63
+ if (base !== trimmed) {
64
+ throw new Error('Invalid fileName');
65
+ }
66
+ return base;
67
+ }
68
+ /**
69
+ * Build an S3 object key that is guaranteed to stay under the channel prefix.
70
+ *
71
+ * @param storage - S3 storage configuration.
72
+ * @param channelToken - Current channel token.
73
+ * @param fileName - Basename only (e.g. `export.csv`). Directory separators and traversal sequences are rejected.
74
+ */
75
+ function buildExportObjectKey(storage, channelToken, fileName) {
76
+ const prefix = storage.baseKeyPrefix ?? 'exports/';
77
+ const normalizedPrefix = prefix.endsWith('/') ? prefix : `${prefix}/`;
78
+ const normalizedFileName = normalizeExportFileNameForObjectKey(fileName);
79
+ return `${normalizedPrefix}${channelToken}/${normalizedFileName}`;
80
+ }
81
+ //# sourceMappingURL=export-storage.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-storage.util.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/services/export-storage.util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,wCAOC;AAoCD,oDAUC;AAjED,kDAAkE;AAElE,gDAAiC;AAUjC,SAAgB,cAAc,CAAC,OAA8B;IAC3D,MAAM,MAAM,GAAmB;QAC7B,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAA;IAED,OAAO,IAAI,oBAAQ,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,mCAAmC,CAAC,QAAgB;IAC3D,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,OAA8B,EAC9B,YAAoB,EACpB,QAAgB;IAEhB,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,IAAI,UAAU,CAAA;IAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAA;IAErE,MAAM,kBAAkB,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAA;IACxE,OAAO,GAAG,gBAAgB,GAAG,YAAY,IAAI,kBAAkB,EAAE,CAAA;AACnE,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import { ID, ProductService, RequestContext, StockLevelService, ChannelService, ConfigService, Product, LanguageCode } from '@vendure/core';
2
2
  import { PluginInitOptions } from '../types';
3
3
  import { CsvWriter } from 'csv-writer/src/lib/csv-writer';
4
+ import { ExportStorageStrategy } from './export-storage/export-storage-strategy';
4
5
  export type RelationType = 'string' | 'boolean' | 'localeString' | 'text' | 'localeText' | 'int' | 'float' | 'datetime' | 'relation';
5
6
  export declare class ProductExportService {
6
7
  private options;
8
+ private exportStorageStrategy;
7
9
  private productService;
8
10
  private stockLevelService;
9
11
  private channelService;
10
12
  private configService;
11
- constructor(options: PluginInitOptions, productService: ProductService, stockLevelService: StockLevelService, channelService: ChannelService, configService: ConfigService);
13
+ constructor(options: PluginInitOptions, exportStorageStrategy: ExportStorageStrategy, productService: ProductService, stockLevelService: StockLevelService, channelService: ChannelService, configService: ConfigService);
12
14
  createExportFile(ctx: RequestContext, selectionIds: ID[], fileName: string, selectedCustomFields: string, exportAssetsAs: 'url' | 'json', selectedExportFields: string, pageSize?: number, concurrency?: number): Promise<string>;
13
15
  exportProduct(ctx: RequestContext, product: Product, languages: LanguageCode[], filteredCustomFieldNames: string[], exportAssetsAs: 'url' | 'json', csvWriter: CsvWriter<any>): Promise<void>;
14
16
  private handleAssets;
@@ -73,12 +73,14 @@ function formatTimestampForFilename(date = new Date()) {
73
73
  }
74
74
  let ProductExportService = class ProductExportService {
75
75
  options;
76
+ exportStorageStrategy;
76
77
  productService;
77
78
  stockLevelService;
78
79
  channelService;
79
80
  configService;
80
- constructor(options, productService, stockLevelService, channelService, configService) {
81
+ constructor(options, exportStorageStrategy, productService, stockLevelService, channelService, configService) {
81
82
  this.options = options;
83
+ this.exportStorageStrategy = exportStorageStrategy;
82
84
  this.productService = productService;
83
85
  this.stockLevelService = stockLevelService;
84
86
  this.channelService = channelService;
@@ -99,15 +101,15 @@ let ProductExportService = class ProductExportService {
99
101
  return found ? `${found.name}:${found.type}` : '';
100
102
  });
101
103
  const channelToken = channel.token;
102
- const exportsDir = path.join(process.cwd(), 'static', 'exports', channelToken);
103
- if (!(0, fs_1.existsSync)(exportsDir)) {
104
- (0, fs_1.mkdirSync)(exportsDir, { recursive: true });
104
+ const tempDir = path.join(process.cwd(), 'static', 'exports-tmp', channelToken);
105
+ if (!(0, fs_1.existsSync)(tempDir)) {
106
+ (0, fs_1.mkdirSync)(tempDir, { recursive: true });
105
107
  }
106
108
  // Add timestamp to filename to avoid conflicts
107
109
  const timestamp = formatTimestampForFilename();
108
110
  const { name, ext } = path.parse(fileName);
109
111
  const timestampedFileName = `${name}_${timestamp}${ext}`;
110
- const finalExportFile = path.join(exportsDir, timestampedFileName);
112
+ const finalExportFile = path.join(tempDir, timestampedFileName);
111
113
  // Use .tmp extension during export, rename to final name when complete to prevent it from being listed in ui without being completed
112
114
  const exportFile = `${finalExportFile}.tmp`;
113
115
  const headers = [];
@@ -171,17 +173,29 @@ let ProductExportService = class ProductExportService {
171
173
  }
172
174
  // Rename .tmp file to final name when export is complete
173
175
  await fs_1.promises.rename(exportFile, finalExportFile);
174
- return finalExportFile;
176
+ await this.exportStorageStrategy.storeExportFile(ctx, timestampedFileName, finalExportFile);
177
+ try {
178
+ if ((0, fs_1.existsSync)(finalExportFile)) {
179
+ await fs_1.promises.unlink(finalExportFile);
180
+ }
181
+ }
182
+ catch (e) {
183
+ // ignore cleanup errors
184
+ }
185
+ return timestampedFileName;
175
186
  }
176
187
  catch (error) {
177
- // Clean up .tmp file if export fails
188
+ // Clean up any partial files if export or upload fails
178
189
  try {
179
190
  if ((0, fs_1.existsSync)(exportFile)) {
180
191
  await fs_1.promises.unlink(exportFile);
181
192
  }
193
+ if ((0, fs_1.existsSync)(finalExportFile)) {
194
+ await fs_1.promises.unlink(finalExportFile);
195
+ }
182
196
  }
183
197
  catch (cleanupErr) {
184
- console.error('Failed to clean up temp file:', cleanupErr);
198
+ console.error('Failed to clean up export files:', cleanupErr);
185
199
  }
186
200
  throw error;
187
201
  }
@@ -418,7 +432,8 @@ exports.ProductExportService = ProductExportService;
418
432
  exports.ProductExportService = ProductExportService = __decorate([
419
433
  (0, common_1.Injectable)(),
420
434
  __param(0, (0, common_1.Inject)(constants_1.PRODUCT_IMPORT_EXPORT_PLUGIN_OPTIONS)),
421
- __metadata("design:paramtypes", [Object, core_1.ProductService,
435
+ __param(1, (0, common_1.Inject)(constants_1.EXPORT_STORAGE_STRATEGY)),
436
+ __metadata("design:paramtypes", [Object, Object, core_1.ProductService,
422
437
  core_1.StockLevelService,
423
438
  core_1.ChannelService,
424
439
  core_1.ConfigService])
@@ -1 +1 @@
1
- {"version":3,"file":"product-export.service.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/services/product-export.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-export.service.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/services/product-export.service.ts"],"names":[],"mappings":"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"}
package/src/types.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { ID } from '@vendure/core';
2
2
  import { ParsedProduct, ParsedProductWithVariants } from './providers/import-providers/import-parser';
3
+ import type { Injector } from '@vendure/core';
4
+ import type { ExportStorageStrategy } from './services/export-storage/export-storage-strategy';
3
5
  /**
4
6
  * @description
5
7
  * The plugin can be configured using the following options:
@@ -28,6 +30,17 @@ export interface PluginInitOptions {
28
30
  defaultExportAssetsAs?: 'url' | 'json';
29
31
  defaultExportFields?: ExportFields;
30
32
  requiredExportFields?: ExportFields;
33
+ /**
34
+ * @description
35
+ * Preferred configuration: provide an export storage strategy instance directly.
36
+ * This matches Vendure's strategy-based plugin configuration style.
37
+ */
38
+ storageStrategy?: ExportStorageStrategy;
39
+ /**
40
+ * @description
41
+ * Preferred configuration: provide a factory which can use Vendure's DI via the Injector.
42
+ */
43
+ storageStrategyFactory?: (injector: Injector) => ExportStorageStrategy | Promise<ExportStorageStrategy>;
31
44
  };
32
45
  }
33
46
  export type ParsedProductWithId = ParsedProductWithVariants & {