mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
Merge 7dbd18c081
into d2c3ecf2f8
This commit is contained in:
commit
f0fe59f069
70
api/package-lock.json
generated
70
api/package-lock.json
generated
@ -41,7 +41,6 @@
|
|||||||
"mongoose-lean-getters": "^1.1.0",
|
"mongoose-lean-getters": "^1.1.0",
|
||||||
"mongoose-lean-virtuals": "^0.9.1",
|
"mongoose-lean-virtuals": "^0.9.1",
|
||||||
"multer": "^1.4.5-lts.1",
|
"multer": "^1.4.5-lts.1",
|
||||||
"nest-commander": "^3.15.0",
|
|
||||||
"nestjs-dynamic-providers": "^0.3.4",
|
"nestjs-dynamic-providers": "^0.3.4",
|
||||||
"nestjs-i18n": "^10.4.0",
|
"nestjs-i18n": "^10.4.0",
|
||||||
"nodemailer": "^6.9.13",
|
"nodemailer": "^6.9.13",
|
||||||
@ -3634,18 +3633,6 @@
|
|||||||
"integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==",
|
"integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@golevelup/nestjs-discovery": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@golevelup/nestjs-discovery/-/nestjs-discovery-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-HFXBJayEkYcU/bbxOztozONdWaZR34ZeJ2zRbZIWY8d5K26oPZQTvJ4L0STW3XVRGWtoE0WBpmx2YPNgYvcmJQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"lodash": "^4.17.21"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@nestjs/common": "^10.x",
|
|
||||||
"@nestjs/core": "^10.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@humanwhocodes/config-array": {
|
"node_modules/@humanwhocodes/config-array": {
|
||||||
"version": "0.11.13",
|
"version": "0.11.13",
|
||||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
|
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
|
||||||
@ -6346,16 +6333,6 @@
|
|||||||
"integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
|
"integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/inquirer": {
|
|
||||||
"version": "8.2.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz",
|
|
||||||
"integrity": "sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA==",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@types/through": "*",
|
|
||||||
"rxjs": "^7.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@types/istanbul-lib-coverage": {
|
"node_modules/@types/istanbul-lib-coverage": {
|
||||||
"version": "2.0.6",
|
"version": "2.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
|
||||||
@ -6600,15 +6577,6 @@
|
|||||||
"@types/superagent": "*"
|
"@types/superagent": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/through": {
|
|
||||||
"version": "0.0.33",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
|
|
||||||
"integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@types/node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@types/uid-safe": {
|
"node_modules/@types/uid-safe": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/uid-safe/-/uid-safe-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/uid-safe/-/uid-safe-2.1.5.tgz",
|
||||||
@ -8725,6 +8693,7 @@
|
|||||||
"version": "8.3.6",
|
"version": "8.3.6",
|
||||||
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
|
||||||
"integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
|
"integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"import-fresh": "^3.3.0",
|
"import-fresh": "^3.3.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
@ -15311,42 +15280,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
|
||||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
|
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
|
||||||
},
|
},
|
||||||
"node_modules/nest-commander": {
|
|
||||||
"version": "3.15.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/nest-commander/-/nest-commander-3.15.0.tgz",
|
|
||||||
"integrity": "sha512-o9VEfFj/w2nm+hQi6fnkxL1GAFZW/KmuGcIE7/B/TX0gwm0QVy8svAF75EQm8wrDjcvWS7Cx/ArnkFn2C+iM2w==",
|
|
||||||
"dependencies": {
|
|
||||||
"@fig/complete-commander": "^3.0.0",
|
|
||||||
"@golevelup/nestjs-discovery": "4.0.1",
|
|
||||||
"commander": "11.1.0",
|
|
||||||
"cosmiconfig": "8.3.6",
|
|
||||||
"inquirer": "8.2.6"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0",
|
|
||||||
"@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0",
|
|
||||||
"@types/inquirer": "^8.1.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nest-commander/node_modules/@fig/complete-commander": {
|
|
||||||
"version": "3.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@fig/complete-commander/-/complete-commander-3.2.0.tgz",
|
|
||||||
"integrity": "sha512-1Holl3XtRiANVKURZwgpjCnPuV4RsHp+XC0MhgvyAX/avQwj7F2HUItYOvGi/bXjJCkEzgBZmVfCr0HBA+q+Bw==",
|
|
||||||
"dependencies": {
|
|
||||||
"prettier": "^3.2.5"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"commander": "^11.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nest-commander/node_modules/commander": {
|
|
||||||
"version": "11.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
|
|
||||||
"integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=16"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nestjs-dynamic-providers": {
|
"node_modules/nestjs-dynamic-providers": {
|
||||||
"version": "0.3.4",
|
"version": "0.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/nestjs-dynamic-providers/-/nestjs-dynamic-providers-0.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/nestjs-dynamic-providers/-/nestjs-dynamic-providers-0.3.4.tgz",
|
||||||
@ -16212,6 +16145,7 @@
|
|||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
||||||
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
|
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
|
||||||
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,6 @@
|
|||||||
"mongoose-lean-getters": "^1.1.0",
|
"mongoose-lean-getters": "^1.1.0",
|
||||||
"mongoose-lean-virtuals": "^0.9.1",
|
"mongoose-lean-virtuals": "^0.9.1",
|
||||||
"multer": "^1.4.5-lts.1",
|
"multer": "^1.4.5-lts.1",
|
||||||
"nest-commander": "^3.15.0",
|
|
||||||
"nestjs-dynamic-providers": "^0.3.4",
|
"nestjs-dynamic-providers": "^0.3.4",
|
||||||
"nestjs-i18n": "^10.4.0",
|
"nestjs-i18n": "^10.4.0",
|
||||||
"nodemailer": "^6.9.13",
|
"nodemailer": "^6.9.13",
|
||||||
|
@ -6,17 +6,43 @@
|
|||||||
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { NestFactory } from '@nestjs/core';
|
||||||
import moduleAlias from 'module-alias';
|
import moduleAlias from 'module-alias';
|
||||||
import { CommandFactory } from 'nest-commander';
|
|
||||||
|
|
||||||
moduleAlias.addAliases({
|
moduleAlias.addAliases({
|
||||||
'@': __dirname,
|
'@': __dirname,
|
||||||
});
|
});
|
||||||
|
|
||||||
import { HexabotModule } from './app.module';
|
import { HexabotModule } from './app.module';
|
||||||
|
import { LoggerService } from './logger/logger.service';
|
||||||
|
import { MigrationCommand } from './migration/migration.command';
|
||||||
|
|
||||||
|
const ALLOWED_COMMANDS = ['migration'];
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
await CommandFactory.run(HexabotModule);
|
const [command, ...restArgs] = process.argv.slice(2);
|
||||||
|
const appContext = await NestFactory.createApplicationContext(HexabotModule, {
|
||||||
|
logger: false,
|
||||||
|
});
|
||||||
|
const logger = await appContext.resolve(LoggerService);
|
||||||
|
|
||||||
|
if (!ALLOWED_COMMANDS.includes(command)) {
|
||||||
|
if (!command) {
|
||||||
|
logger.error('No command provided.');
|
||||||
|
} else {
|
||||||
|
logger.error(`Unknown command '${command}'`);
|
||||||
|
}
|
||||||
|
process.exit(1);
|
||||||
|
} else if (command === 'migration') {
|
||||||
|
const migrationCommand = appContext.get(MigrationCommand);
|
||||||
|
try {
|
||||||
|
await migrationCommand.run(restArgs);
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(`Migration command failed: ${error.message}`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await appContext.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
bootstrap();
|
bootstrap();
|
||||||
|
@ -6,24 +6,17 @@
|
|||||||
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Command, CommandRunner } from 'nest-commander';
|
import { Inject } from '@nestjs/common';
|
||||||
|
|
||||||
import { LoggerService } from '@/logger/logger.service';
|
import { LoggerService } from '@/logger/logger.service';
|
||||||
|
|
||||||
import { MigrationService } from './migration.service';
|
import { MigrationService } from './migration.service';
|
||||||
import { MigrationAction } from './types';
|
import { MigrationAction } from './types';
|
||||||
|
|
||||||
@Command({
|
export class MigrationCommand {
|
||||||
name: 'migration',
|
@Inject(LoggerService) logger: LoggerService;
|
||||||
description: 'Manage Mongodb Migrations',
|
|
||||||
})
|
@Inject(MigrationService) migrationService: MigrationService;
|
||||||
export class MigrationCommand extends CommandRunner {
|
|
||||||
constructor(
|
|
||||||
private readonly logger: LoggerService,
|
|
||||||
private readonly migrationService: MigrationService,
|
|
||||||
) {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
async run(passedParam: string[]): Promise<void> {
|
async run(passedParam: string[]): Promise<void> {
|
||||||
const [subcommand] = passedParam;
|
const [subcommand] = passedParam;
|
||||||
|
Loading…
Reference in New Issue
Block a user