UNPKG

nestjs-security-cli

Version:

Advanced IP blocking, role-based security, and attack detection for NestJS applications

74 lines 3.47 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var SecurityModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecurityModule = void 0; const common_1 = require("@nestjs/common"); const cache_manager_1 = require("@nestjs/cache-manager"); const schedule_1 = require("@nestjs/schedule"); const security_service_1 = require("./services/security.service"); const security_controller_1 = require("./controllers/security.controller"); const ip_blacklist_guard_1 = require("./guards/ip-blacklist.guard"); const admin_guard_1 = require("./guards/admin.guard"); const roles_guard_1 = require("./guards/roles.guard"); let SecurityModule = SecurityModule_1 = class SecurityModule { static forRoot(config = {}) { const imports = [schedule_1.ScheduleModule.forRoot()]; if (config.cache) { imports.push(cache_manager_1.CacheModule.register(config.cache)); } else { imports.push(cache_manager_1.CacheModule.register()); } return { module: SecurityModule_1, imports, controllers: config.enableAdminPanel ? [security_controller_1.SecurityController] : [], providers: [ security_service_1.SecurityService, ip_blacklist_guard_1.IpBlacklistGuard, admin_guard_1.AdminGuard, roles_guard_1.RolesGuard, { provide: 'SECURITY_CONFIG', useValue: config } ], exports: [security_service_1.SecurityService, ip_blacklist_guard_1.IpBlacklistGuard, admin_guard_1.AdminGuard, roles_guard_1.RolesGuard] }; } static forRootAsync(options) { return { module: SecurityModule_1, imports: [ schedule_1.ScheduleModule.forRoot(), cache_manager_1.CacheModule.register(), ...(options.imports || []) ], controllers: options.enableAdminPanel !== false ? [security_controller_1.SecurityController] : [], providers: [ { provide: 'SECURITY_CONFIG', useFactory: options.useFactory, inject: options.inject || [] }, security_service_1.SecurityService, ip_blacklist_guard_1.IpBlacklistGuard, admin_guard_1.AdminGuard, roles_guard_1.RolesGuard, ...(options.providers || []) ], exports: [security_service_1.SecurityService, ip_blacklist_guard_1.IpBlacklistGuard, admin_guard_1.AdminGuard, roles_guard_1.RolesGuard] }; } }; exports.SecurityModule = SecurityModule; exports.SecurityModule = SecurityModule = SecurityModule_1 = __decorate([ (0, common_1.Module)({}) ], SecurityModule); //# sourceMappingURL=security.module.js.map