@lenne.tech/nest-server 11.32.3 → 11.32.4

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 (27) hide show
  1. package/FRAMEWORK-API.md +1 -1
  2. package/bin/migrate.js +13 -3
  3. package/dist/core/common/helpers/file.helper.d.ts +14 -2
  4. package/dist/core/common/helpers/file.helper.js +48 -9
  5. package/dist/core/common/helpers/file.helper.js.map +1 -1
  6. package/dist/core/modules/file/core-file.controller.d.ts +4 -1
  7. package/dist/core/modules/file/core-file.controller.js +39 -6
  8. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  9. package/dist/core/modules/migrate/cli/migrate-cli.d.ts +3 -1
  10. package/dist/core/modules/migrate/cli/migrate-cli.js +29 -4
  11. package/dist/core/modules/migrate/cli/migrate-cli.js.map +1 -1
  12. package/dist/core/modules/migrate/helpers/migration.helper.d.ts +1 -0
  13. package/dist/core/modules/migrate/helpers/migration.helper.js +51 -4
  14. package/dist/core/modules/migrate/helpers/migration.helper.js.map +1 -1
  15. package/dist/tsconfig.build.tsbuildinfo +1 -1
  16. package/docs/security-overrides.md +9 -2
  17. package/migration-guides/11.32.3-to-11.32.4.md +323 -0
  18. package/package.json +1 -1
  19. package/src/core/common/helpers/file.helper.spec.ts +145 -0
  20. package/src/core/common/helpers/file.helper.ts +148 -10
  21. package/src/core/modules/file/README.md +59 -0
  22. package/src/core/modules/file/core-file.controller.spec.ts +164 -0
  23. package/src/core/modules/file/core-file.controller.ts +100 -8
  24. package/src/core/modules/migrate/README.md +35 -0
  25. package/src/core/modules/migrate/cli/migrate-cli.ts +69 -6
  26. package/src/core/modules/migrate/helpers/migration.helper.spec.ts +85 -0
  27. package/src/core/modules/migrate/helpers/migration.helper.ts +131 -4
package/FRAMEWORK-API.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @lenne.tech/nest-server — Framework API Reference
2
2
 
3
- > Auto-generated from source code on 2026-07-24 (v11.32.3)
3
+ > Auto-generated from source code on 2026-07-30 (v11.32.4)
4
4
  > File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
5
5
 
6
6
  ## CoreModule.forRoot()
package/bin/migrate.js CHANGED
@@ -93,7 +93,17 @@ if (require.main === module) {
93
93
  }
94
94
  }
95
95
 
96
- // Load and run the CLI
97
- const { main } = require(cliPath);
98
- main();
96
+ // Load and run the CLI.
97
+ //
98
+ // Prefer runCli(): it drains stdout and then exits explicitly, so a handle left
99
+ // behind by MongoDB/GridFS cannot keep the process alive after the work is done
100
+ // (a migration step that never returns blocks the container before the server
101
+ // ever starts). main() is the fallback for a dist built before runCli existed —
102
+ // it resolves normally but relies on the event loop draining by itself.
103
+ const cli = require(cliPath);
104
+ const run = cli.runCli || cli.main;
105
+ Promise.resolve(run()).catch((error) => {
106
+ console.error('Fatal error:', error);
107
+ process.exitCode = 1;
108
+ });
99
109
  }
@@ -1,15 +1,27 @@
1
1
  import { MulterOptions } from '@nestjs/platform-express/multer/interfaces/multer-options.interface';
2
+ export interface UploadAllowList {
3
+ extensions: readonly string[];
4
+ mimeTypes: readonly string[];
5
+ }
6
+ export declare const IMAGE_UPLOAD_ALLOW_LIST: UploadAllowList;
7
+ export declare const SCRIPTABLE_UPLOAD_MIME_TYPES: readonly string[];
8
+ export declare const SCRIPTABLE_UPLOAD_EXTENSIONS: readonly string[];
9
+ export interface MulterFileFilterOptions {
10
+ allowScriptableTypes?: boolean;
11
+ }
2
12
  export default class FileHelper {
3
13
  static multerRandomFileName(numberOfDigits?: number): (req: any, file: any, cb: any) => void;
4
- static multerFileFilter(fileTypeRegex?: RegExp): (req: any, file: any, cb: any) => any;
14
+ static multerFileFilter(accept?: RegExp | UploadAllowList, options?: MulterFileFilterOptions): (req: any, file: any, cb: any) => any;
5
15
  static multerOptionsForImageUpload(options: {
16
+ allowList?: UploadAllowList;
6
17
  destination?: string;
7
18
  fileSize?: number;
8
19
  fileTypeRegex?: RegExp;
9
20
  }): MulterOptions;
10
21
  }
11
- export declare function multerFileFilter(fileTypeRegex?: RegExp): (req: any, file: any, cb: any) => any;
22
+ export declare function multerFileFilter(accept?: RegExp | UploadAllowList, options?: MulterFileFilterOptions): (req: any, file: any, cb: any) => any;
12
23
  export declare function multerOptionsForImageUpload(options: {
24
+ allowList?: UploadAllowList;
13
25
  destination?: string;
14
26
  fileSize?: number;
15
27
  fileTypeRegex?: RegExp;
@@ -1,40 +1,79 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SCRIPTABLE_UPLOAD_EXTENSIONS = exports.SCRIPTABLE_UPLOAD_MIME_TYPES = exports.IMAGE_UPLOAD_ALLOW_LIST = void 0;
3
4
  exports.multerFileFilter = multerFileFilter;
4
5
  exports.multerOptionsForImageUpload = multerOptionsForImageUpload;
5
6
  exports.multerRandomFileName = multerRandomFileName;
6
7
  const multer_1 = require("multer");
7
8
  const path_1 = require("path");
9
+ exports.IMAGE_UPLOAD_ALLOW_LIST = {
10
+ extensions: ['.jpeg', '.jpg', '.png'],
11
+ mimeTypes: ['image/jpeg', 'image/png'],
12
+ };
13
+ exports.SCRIPTABLE_UPLOAD_MIME_TYPES = [
14
+ 'application/javascript',
15
+ 'application/xhtml+xml',
16
+ 'application/xml',
17
+ 'image/svg+xml',
18
+ 'text/html',
19
+ 'text/javascript',
20
+ 'text/xml',
21
+ ];
22
+ exports.SCRIPTABLE_UPLOAD_EXTENSIONS = [
23
+ '.htm',
24
+ '.html',
25
+ '.js',
26
+ '.mjs',
27
+ '.svg',
28
+ '.xhtml',
29
+ '.xml',
30
+ ];
8
31
  class FileHelper {
9
32
  static multerRandomFileName(numberOfDigits = 32) {
10
33
  return multerRandomFileName(numberOfDigits);
11
34
  }
12
- static multerFileFilter(fileTypeRegex = /jpeg|jpg|png/) {
13
- return multerFileFilter(fileTypeRegex);
35
+ static multerFileFilter(accept = exports.IMAGE_UPLOAD_ALLOW_LIST, options) {
36
+ return multerFileFilter(accept, options);
14
37
  }
15
38
  static multerOptionsForImageUpload(options) {
16
39
  return multerOptionsForImageUpload(options);
17
40
  }
18
41
  }
19
42
  exports.default = FileHelper;
20
- function multerFileFilter(fileTypeRegex = /jpeg|jpg|png/) {
43
+ function normalizeMimeType(value) {
44
+ return String(value || '')
45
+ .split(';')[0]
46
+ .trim()
47
+ .toLowerCase();
48
+ }
49
+ function multerFileFilter(accept = exports.IMAGE_UPLOAD_ALLOW_LIST, options) {
21
50
  return (req, file, cb) => {
22
- const mimetype = fileTypeRegex.test(file.mimetype);
23
- const extName = fileTypeRegex.test((0, path_1.extname)(file.originalname).toLowerCase());
24
- if (mimetype && extName) {
51
+ const mimeType = normalizeMimeType(file?.mimetype);
52
+ const extension = (0, path_1.extname)(String(file?.originalname || '')).toLowerCase();
53
+ if (!options?.allowScriptableTypes &&
54
+ (exports.SCRIPTABLE_UPLOAD_MIME_TYPES.includes(mimeType) || exports.SCRIPTABLE_UPLOAD_EXTENSIONS.includes(extension))) {
55
+ return cb(new Error(`File upload rejected: ${mimeType || 'unknown type'} may execute as script`));
56
+ }
57
+ const accepted = accept instanceof RegExp
58
+ ? accept.test(mimeType) && accept.test(extension)
59
+ : accept.mimeTypes.includes(mimeType) && accept.extensions.includes(extension);
60
+ if (accepted) {
25
61
  return cb(null, true);
26
62
  }
27
- cb(`Error: File upload only supports the following filetypes - ${fileTypeRegex}`);
63
+ cb(new Error(`File upload only supports the following filetypes - ${describeAccept(accept)}`));
28
64
  };
29
65
  }
66
+ function describeAccept(accept) {
67
+ return accept instanceof RegExp ? String(accept) : accept.extensions.join(', ');
68
+ }
30
69
  function multerOptionsForImageUpload(options) {
31
70
  const config = {
32
71
  fileSize: 1024 * 1024,
33
- fileTypeRegex: /jpeg|jpg|png/,
34
72
  ...options,
35
73
  };
74
+ const accept = config.fileTypeRegex ?? config.allowList ?? exports.IMAGE_UPLOAD_ALLOW_LIST;
36
75
  return {
37
- fileFilter: config.fileTypeRegex ? multerFileFilter(config.fileTypeRegex) : undefined,
76
+ fileFilter: multerFileFilter(accept),
38
77
  limits: {
39
78
  fileSize: config.fileSize ? config.fileSize : undefined,
40
79
  },
@@ -1 +1 @@
1
- {"version":3,"file":"file.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/file.helper.ts"],"names":[],"mappings":";;AAuCA,4CAUC;AAKD,kEAkCC;AAMD,oDAYC;AAzGD,mCAAqC;AACrC,+BAA+B;AAM/B,MAAqB,UAAU;IAKtB,MAAM,CAAC,oBAAoB,CAAC,cAAc,GAAG,EAAE;QACpD,OAAO,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAKM,MAAM,CAAC,gBAAgB,CAAC,aAAa,GAAG,cAAc;QAC3D,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAKM,MAAM,CAAC,2BAA2B,CAAC,OAIzC;QACC,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AA1BD,6BA0BC;AAKD,SAAgB,gBAAgB,CAAC,aAAa,GAAG,cAAc;IAC7D,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE7E,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,EAAE,CAAC,8DAA8D,aAAa,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC;AAKD,SAAgB,2BAA2B,CAAC,OAI3C;IAEC,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,aAAa,EAAE,cAAc;QAC7B,GAAG,OAAO;KACX,CAAC;IAEF,OAAO;QAEL,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QAGrF,MAAM,EAAE;YAEN,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACxD;QAID,OAAO,EAAE,IAAA,oBAAW,EAAC;YAInB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAGhE,QAAQ,EAAE,oBAAoB,EAAE;SACjC,CAAC;KACH,CAAC;AACJ,CAAC;AAMD,SAAgB,oBAAoB,CAAC,cAAc,GAAG,EAAE;IACtD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC;aACV,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACtD,IAAI,CAAC,EAAE,CAAC,CAAC;QAIZ,EAAE,CAAC,IAAI,EAAE,GAAG,UAAU,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"file.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/file.helper.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import { Response } from 'express';
1
+ import type { Response } from 'express';
2
+ import type { Readable } from 'stream';
2
3
  import { CoreFileService } from './core-file.service';
4
+ export declare function pipeFileToResponse(stream: Readable, res: Response): Response;
3
5
  export declare abstract class CoreFileController {
4
6
  protected fileService: CoreFileService;
5
7
  protected constructor(fileService: CoreFileService);
8
+ protected pipeFileToResponse(stream: Readable, res: Response): Response;
6
9
  getFileById(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
7
10
  getFile(filename: string, res: Response): Promise<Response<any, Record<string, any>>>;
8
11
  }
@@ -13,40 +13,73 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CoreFileController = void 0;
16
+ exports.pipeFileToResponse = pipeFileToResponse;
16
17
  const common_1 = require("@nestjs/common");
17
18
  const roles_decorator_1 = require("../../common/decorators/roles.decorator");
18
19
  const role_enum_1 = require("../../common/enums/role.enum");
20
+ const error_codes_1 = require("../error-code/error-codes");
19
21
  const core_file_service_1 = require("./core-file.service");
22
+ const fileStreamLogger = new common_1.Logger('CoreFileController');
23
+ const FILE_DELIVERY_HEADERS = ['Cache-Control', 'Content-Disposition', 'Content-Type', 'ETag'];
24
+ function pipeFileToResponse(stream, res) {
25
+ res.on('close', () => {
26
+ if (!stream.destroyed) {
27
+ stream.destroy();
28
+ }
29
+ });
30
+ stream.on('error', (err) => {
31
+ fileStreamLogger.error(`GridFS download failed: ${err.message}`, err.stack);
32
+ if (res.headersSent) {
33
+ res.destroy();
34
+ return;
35
+ }
36
+ for (const header of FILE_DELIVERY_HEADERS) {
37
+ res.removeHeader(header);
38
+ }
39
+ res.setHeader('X-Content-Type-Options', 'nosniff');
40
+ res.status(404).json({ error: 'Not Found', message: error_codes_1.ErrorCode.FILE_NOT_FOUND, statusCode: 404 });
41
+ });
42
+ return stream.pipe(res);
43
+ }
20
44
  let CoreFileController = class CoreFileController {
21
45
  fileService;
22
46
  constructor(fileService) {
23
47
  this.fileService = fileService;
24
48
  }
49
+ pipeFileToResponse(stream, res) {
50
+ return pipeFileToResponse(stream, res);
51
+ }
25
52
  async getFileById(id, res) {
26
53
  if (!id) {
27
- throw new common_1.BadRequestException('Missing file ID for download');
54
+ throw new common_1.BadRequestException(error_codes_1.ErrorCode.REQUIRED_FIELD_MISSING);
28
55
  }
29
56
  const file = await this.fileService.getFileInfo(id);
30
57
  if (!file) {
31
- throw new common_1.NotFoundException('File not found');
58
+ throw new common_1.NotFoundException(error_codes_1.ErrorCode.FILE_NOT_FOUND);
32
59
  }
33
60
  const filestream = await this.fileService.getFileStream(id);
61
+ if (!filestream) {
62
+ throw new common_1.NotFoundException(error_codes_1.ErrorCode.FILE_NOT_FOUND);
63
+ }
34
64
  res.header('Content-Type', file.contentType || 'application/octet-stream');
35
65
  res.header('Content-Disposition', `attachment; filename=${file.filename}`);
36
- return filestream.pipe(res);
66
+ return this.pipeFileToResponse(filestream, res);
37
67
  }
38
68
  async getFile(filename, res) {
39
69
  if (!filename) {
40
- throw new common_1.BadRequestException('Missing filename for download');
70
+ throw new common_1.BadRequestException(error_codes_1.ErrorCode.REQUIRED_FIELD_MISSING);
41
71
  }
42
72
  const file = await this.fileService.getFileInfoByName(filename);
43
73
  if (!file) {
44
- throw new common_1.NotFoundException('File not found');
74
+ throw new common_1.NotFoundException(error_codes_1.ErrorCode.FILE_NOT_FOUND);
45
75
  }
46
76
  const filestream = await this.fileService.getFileStream(file.id);
77
+ if (!filestream) {
78
+ throw new common_1.NotFoundException(error_codes_1.ErrorCode.FILE_NOT_FOUND);
79
+ }
47
80
  res.header('Content-Type', file.contentType || 'application/octet-stream');
48
81
  res.header('Content-Disposition', `attachment; filename=${file.filename}`);
49
- return filestream.pipe(res);
82
+ return this.pipeFileToResponse(filestream, res);
50
83
  }
51
84
  };
52
85
  exports.CoreFileController = CoreFileController;
@@ -1 +1 @@
1
- {"version":3,"file":"core-file.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/file/core-file.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqG;AAGrG,6EAAgE;AAChE,4DAAwD;AACxD,2DAAsD;AAO/C,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;IAIN;IAAhC,YAAgC,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAU1D,AAAN,KAAK,CAAC,WAAW,CAAc,EAAU,EAAS,GAAa;QAC7D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,4BAAmB,CAAC,8BAA8B,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAUK,AAAN,KAAK,CAAC,OAAO,CAAoB,QAAgB,EAAS,GAAa;QACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,4BAAmB,CAAC,+BAA+B,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAA;AAnDqB,gDAAkB;AAchC;IAFL,IAAA,YAAG,EAAC,QAAQ,CAAC;IACb,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACR,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,YAAG,GAAE,CAAA;;;;qDAahD;AAUK;IAFL,IAAA,YAAG,EAAC,WAAW,CAAC;IAChB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACZ,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;iDAaxD;6BAlDmB,kBAAkB;IAFvC,IAAA,mBAAU,EAAC,OAAO,CAAC;IACnB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,KAAK,CAAC;qCAKyB,mCAAe;GAJxC,kBAAkB,CAmDvC"}
1
+ {"version":3,"file":"core-file.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/file/core-file.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAiDA,gDA4BC;AA7ED,2CAA6G;AAI7G,6EAAgE;AAChE,4DAAwD;AACxD,2DAAsD;AACtD,2DAAsD;AAEtD,MAAM,gBAAgB,GAAG,IAAI,eAAM,CAAC,oBAAoB,CAAC,CAAC;AAe1D,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAyB/F,SAAgB,kBAAkB,CAAC,MAAgB,EAAE,GAAa;IAChE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAKhC,gBAAgB,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAE5E,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;YAC3C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAGD,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAS,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAOM,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;IAIN;IAAhC,YAAgC,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAUtD,kBAAkB,CAAC,MAAgB,EAAE,GAAa;QAC1D,OAAO,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAUK,AAAN,KAAK,CAAC,WAAW,CAAc,EAAU,EAAS,GAAa;QAC7D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,4BAAmB,CAAC,uBAAS,CAAC,sBAAsB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,uBAAS,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAG5D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,0BAAiB,CAAC,uBAAS,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAUK,AAAN,KAAK,CAAC,OAAO,CAAoB,QAAgB,EAAS,GAAa;QACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,4BAAmB,CAAC,uBAAS,CAAC,sBAAsB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,uBAAS,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,0BAAiB,CAAC,uBAAS,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAvEqB,gDAAkB;AA0BhC;IAFL,IAAA,YAAG,EAAC,QAAQ,CAAC;IACb,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACR,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,YAAG,GAAE,CAAA;;;;qDAkBhD;AAUK;IAFL,IAAA,YAAG,EAAC,WAAW,CAAC;IAChB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACZ,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;iDAgBxD;6BAtEmB,kBAAkB;IAFvC,IAAA,mBAAU,EAAC,OAAO,CAAC;IACnB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,KAAK,CAAC;qCAKyB,mCAAe;GAJxC,kBAAkB,CAuEvC"}
@@ -12,4 +12,6 @@ declare function parseArgs(): {
12
12
  name?: string;
13
13
  options: CliOptions;
14
14
  };
15
- export { main, parseArgs };
15
+ declare const flushAndExit: (code: number) => Promise<void>;
16
+ declare const runCli: () => Promise<void>;
17
+ export { flushAndExit, main, parseArgs, runCli };
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.runCli = exports.flushAndExit = void 0;
4
5
  exports.main = main;
5
6
  exports.parseArgs = parseArgs;
6
7
  const fs = require("fs");
@@ -227,10 +228,34 @@ Environment Variables:
227
228
  NSC__MIGRATE__STRICT 1|true|yes → fail on a missing recorded migration file (default: tolerate)
228
229
  `);
229
230
  }
230
- if (require.main === module) {
231
- main().catch((error) => {
231
+ const flushAndExit = async (code) => {
232
+ process.exitCode = code;
233
+ const guard = setTimeout(() => process.exit(code), 5000);
234
+ guard.unref();
235
+ await Promise.all([process.stdout, process.stderr].map((stream) => new Promise((resolve) => {
236
+ if (!stream.writableLength) {
237
+ resolve();
238
+ return;
239
+ }
240
+ stream.write('', () => resolve());
241
+ })));
242
+ clearTimeout(guard);
243
+ process.exit(code);
244
+ };
245
+ exports.flushAndExit = flushAndExit;
246
+ const runCli = async () => {
247
+ try {
248
+ await main();
249
+ }
250
+ catch (error) {
232
251
  console.error('Fatal error:', error);
233
- process.exit(1);
234
- });
252
+ await flushAndExit(1);
253
+ return;
254
+ }
255
+ await flushAndExit(0);
256
+ };
257
+ exports.runCli = runCli;
258
+ if (require.main === module) {
259
+ void runCli();
235
260
  }
236
261
  //# sourceMappingURL=migrate-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-cli.js","sourceRoot":"","sources":["../../../../../src/core/modules/migrate/cli/migrate-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate-cli.js","sourceRoot":"","sources":["../../../../../src/core/modules/migrate/cli/migrate-cli.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Db, ObjectId } from 'mongodb';
2
2
  export declare const _startMigration: () => void;
3
3
  export declare const _endMigration: () => Promise<void>;
4
4
  export declare const getDb: (mongoUrl: string) => Promise<Db>;
5
+ export declare const assertGridFsFileComplete: (db: Db, bucketName: string, id: ObjectId, label?: string) => Promise<void>;
5
6
  export declare const uploadFileToGridFS: (mongoUrl: string, relativePath: string, options?: {
6
7
  bucketName?: string;
7
8
  filename?: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMigrationStore = exports.uploadFileToGridFS = exports.getDb = exports._endMigration = exports._startMigration = void 0;
3
+ exports.createMigrationStore = exports.uploadFileToGridFS = exports.assertGridFsFileComplete = exports.getDb = exports._endMigration = exports._startMigration = void 0;
4
4
  const fs = require("fs");
5
5
  const mongodb_1 = require("mongodb");
6
6
  const path = require("path");
@@ -25,6 +25,22 @@ const getDb = async (mongoUrl) => {
25
25
  return client.db();
26
26
  };
27
27
  exports.getDb = getDb;
28
+ const assertGridFsFileComplete = async (db, bucketName, id, label) => {
29
+ const name = label || String(id);
30
+ const fileDoc = await db.collection(`${bucketName}.files`).findOne({ _id: id });
31
+ if (!fileDoc) {
32
+ throw new Error(`GridFS file '${name}' has no file document (id ${String(id)})`);
33
+ }
34
+ const chunkSize = fileDoc.chunkSize || 255 * 1024;
35
+ const expected = Math.ceil((fileDoc.length || 0) / chunkSize);
36
+ const actual = await db
37
+ .collection(`${bucketName}.chunks`)
38
+ .countDocuments({ files_id: id }, { readPreference: 'primary' });
39
+ if (actual < expected) {
40
+ throw new Error(`GridFS file '${name}' is incomplete: ${actual} of ${expected} chunks stored (id ${String(id)})`);
41
+ }
42
+ };
43
+ exports.assertGridFsFileComplete = assertGridFsFileComplete;
28
44
  const uploadFileToGridFS = async (mongoUrl, relativePath, options) => {
29
45
  if (!relativePath) {
30
46
  throw new Error('relativePath is required');
@@ -35,16 +51,47 @@ const uploadFileToGridFS = async (mongoUrl, relativePath, options) => {
35
51
  ...options,
36
52
  };
37
53
  const client = await mongodb_1.MongoClient.connect(mongoUrl);
54
+ activeConnections.add(client);
38
55
  const db = client.db();
39
56
  const bucket = new mongodb_1.GridFSBucket(db, { bucketName });
40
57
  const writeStream = bucket.openUploadStream(filename);
41
- const rs = fs.createReadStream(path.resolve(__dirname, relativePath)).pipe(writeStream);
58
+ const readStream = fs.createReadStream(path.resolve(__dirname, relativePath));
59
+ const rs = readStream.pipe(writeStream);
60
+ readStream.on('error', (err) => {
61
+ writeStream.destroy(err);
62
+ });
63
+ let settled = false;
64
+ const settle = async (action) => {
65
+ if (!settled) {
66
+ settled = true;
67
+ try {
68
+ await client.close();
69
+ }
70
+ catch (closeErr) {
71
+ console.warn('Failed to close migration connection:', closeErr);
72
+ }
73
+ finally {
74
+ activeConnections.delete(client);
75
+ }
76
+ }
77
+ return action();
78
+ };
42
79
  return new Promise((resolve, reject) => {
43
80
  rs.on('finish', () => {
44
- resolve(writeStream.id);
81
+ const id = writeStream.id;
82
+ (0, exports.assertGridFsFileComplete)(db, bucketName, id, filename)
83
+ .then(() => settle(() => id))
84
+ .then(resolve)
85
+ .catch((err) => {
86
+ bucket
87
+ .delete(id)
88
+ .catch(() => undefined)
89
+ .then(() => settle(() => undefined))
90
+ .finally(() => reject(err));
91
+ });
45
92
  });
46
93
  rs.on('error', (err) => {
47
- reject(err);
94
+ settle(() => undefined).finally(() => reject(err));
48
95
  });
49
96
  });
50
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"migration.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/migrate/helpers/migration.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/migrate/helpers/migration.helper.ts"],"names":[],"mappings":"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"}