{"_id":"@aios-medical/bullmq-dashboard-nestjs","_rev":"3-dfe379af63e66a690b59d0e49b1723a8","name":"@aios-medical/bullmq-dashboard-nestjs","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@aios-medical/bullmq-dashboard-nestjs","version":"1.0.0","keywords":["bull","bullmq","redis","queue","monitoring","nestjs","nestjs-module","aios"],"license":"MIT","_id":"@aios-medical/bullmq-dashboard-nestjs@1.0.0","maintainers":[{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"}],"homepage":"https://github.com/fellahealth/aios-bullmq-dashboard#readme","bugs":{"url":"https://github.com/fellahealth/aios-bullmq-dashboard/issues"},"dist":{"shasum":"18d8bb4b71f61d55e5b3652bbadf822c7c15b07f","tarball":"https://registry.npmjs.org/@aios-medical/bullmq-dashboard-nestjs/-/bullmq-dashboard-nestjs-1.0.0.tgz","fileCount":33,"integrity":"sha512-BB2wVLiE9jxQJpBvBiAdhhwWmOHHoxzTO9JW/b7OaEjJRr1zXu1pT96t/WCy367VFY8gbiyklN0U2Bu7l4MMUw==","signatures":[{"sig":"MEUCIQD9f05JJmOibSImotz9n2nr8gG6sSO/L9J7LVbY763Y3AIgPMnSNxWlxmehoHh0M2OaQrUUz6jdzq3sFmntDEd2JxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36200},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"8c19569a50e5698d5d0f540f1e7dea6baa9f69ae","scripts":{"build":"yarn clean && tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"},"repository":{"url":"git+https://github.com/fellahealth/aios-bullmq-dashboard.git","type":"git","directory":"packages/nestjs"},"_npmVersion":"10.9.7","description":"NestJS module for the aios bullmq dashboard.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","bullmq":"^5.34.0","typescript":"^5.7.2","@types/node":"^22.10.5","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","reflect-metadata":"^0.2.2","@nestjs/bull-shared":"^11.0.0","@aios-medical/bullmq-dashboard-api":"^1.0.0","@aios-medical/bullmq-dashboard-express":"^1.0.0"},"peerDependencies":{"rxjs":"^7.8.1","@nestjs/core":"^9.0.0 || ^10.0.0 || ^11.0.0","@nestjs/common":"^9.0.0 || ^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0","@nestjs/bull-shared":"^10.0.0 || ^11.0.0","@aios-medical/bullmq-dashboard-api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bullmq-dashboard-nestjs_1.0.0_1779913690129_0.39200829009787785","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aios-medical/bullmq-dashboard-nestjs","version":"1.0.1","keywords":["bull","bullmq","redis","queue","monitoring","nestjs","nestjs-module","aios"],"license":"MIT","_id":"@aios-medical/bullmq-dashboard-nestjs@1.0.1","maintainers":[{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"}],"homepage":"https://github.com/fellahealth/aios-bullmq-dashboard#readme","bugs":{"url":"https://github.com/fellahealth/aios-bullmq-dashboard/issues"},"dist":{"shasum":"e9665d4f62f637e1c9aef523bffc19a83edf9aa4","tarball":"https://registry.npmjs.org/@aios-medical/bullmq-dashboard-nestjs/-/bullmq-dashboard-nestjs-1.0.1.tgz","fileCount":34,"integrity":"sha512-OGFAifRBd/VMy5h77mZjLTNeG+6pECoRUlyVkJVWf0yKd6nOsTb9evQPV1qlJoWQ/9TVVwWvZRlWtMXiuBTYqA==","signatures":[{"sig":"MEQCIHffnQQjfBwY73udW2zgkRykU8Tifj+GfM9+XU8Xey9xAiBG0+qDP9fHNRQDOzMkMQcM1FYlu9jvcaxDuNiQ+3LCfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49798},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"c9fb8a7a89d35446b4af1138642fbf9372b31384","scripts":{"build":"yarn clean && tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"},"repository":{"url":"git+https://github.com/fellahealth/aios-bullmq-dashboard.git","type":"git","directory":"packages/nestjs"},"_npmVersion":"10.9.7","description":"NestJS module for the aios bullmq dashboard.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","bullmq":"^5.34.0","typescript":"^5.7.2","@types/node":"^22.10.5","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","reflect-metadata":"^0.2.2","@nestjs/bull-shared":"^11.0.0","@aios-medical/bullmq-dashboard-api":"^1.0.0","@aios-medical/bullmq-dashboard-express":"^1.0.0"},"peerDependencies":{"rxjs":"^7.8.1","@nestjs/core":"^9.0.0 || ^10.0.0 || ^11.0.0","@nestjs/common":"^9.0.0 || ^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0","@nestjs/bull-shared":"^10.0.0 || ^11.0.0","@aios-medical/bullmq-dashboard-api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bullmq-dashboard-nestjs_1.0.1_1780680517006_0.27550190775125527","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aios-medical/bullmq-dashboard-nestjs","version":"1.0.2","description":"NestJS module for the aios bullmq dashboard.","repository":{"type":"git","url":"git+https://github.com/fellahealth/aios-bullmq-dashboard.git","directory":"packages/nestjs"},"homepage":"https://github.com/fellahealth/aios-bullmq-dashboard#readme","bugs":{"url":"https://github.com/fellahealth/aios-bullmq-dashboard/issues"},"keywords":["bull","bullmq","redis","queue","monitoring","nestjs","nestjs-module","aios"],"license":"MIT","main":"dist/index.js","scripts":{"build":"yarn clean && tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"devDependencies":{"@aios-medical/bullmq-dashboard-api":"^1.0.0","@aios-medical/bullmq-dashboard-express":"^1.0.0","@nestjs/bull-shared":"^11.0.0","@nestjs/common":"^11.0.0","@nestjs/core":"^11.0.0","@types/node":"^22.10.5","bullmq":"^5.34.0","reflect-metadata":"^0.2.2","rxjs":"^7.8.2","typescript":"^5.7.2"},"peerDependencies":{"@aios-medical/bullmq-dashboard-api":"^1.0.0","@nestjs/bull-shared":"^10.0.0 || ^11.0.0","@nestjs/common":"^9.0.0 || ^10.0.0 || ^11.0.0","@nestjs/core":"^9.0.0 || ^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0","rxjs":"^7.8.1"},"publishConfig":{"access":"public"},"_id":"@aios-medical/bullmq-dashboard-nestjs@1.0.2","gitHead":"40a63d98ac4b1e37941704ea49e76fcd575be83a","types":"./dist/index.d.ts","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-Pb4TIoxRXkgjOV3rio0X+mcuxPz29yFV1dy98tVsReGKJV2oduBPfDthczb0TDssLRBtvwktIj9IabUzGQDArA==","shasum":"8ea35e35143f43ad448fa675ae6dfbd0c51ac6e8","tarball":"https://registry.npmjs.org/@aios-medical/bullmq-dashboard-nestjs/-/bullmq-dashboard-nestjs-1.0.2.tgz","fileCount":34,"unpackedSize":49948,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC2C+vx5NrvRSfIDCSHOUx7yreZC6F6ADZUzy1BD6TubAiBfqE2X11h6LlZ4ldwcv7jDtkZzM7M6ubz8jzY4H6n7QA=="}]},"_npmUser":{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"},"directories":{},"maintainers":[{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bullmq-dashboard-nestjs_1.0.2_1780681074188_0.16661308527901486"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-27T20:28:10.005Z","modified":"2026-06-05T17:37:54.474Z","1.0.0":"2026-05-27T20:28:10.325Z","1.0.1":"2026-06-05T17:28:37.144Z","1.0.2":"2026-06-05T17:37:54.356Z"},"bugs":{"url":"https://github.com/fellahealth/aios-bullmq-dashboard/issues"},"license":"MIT","homepage":"https://github.com/fellahealth/aios-bullmq-dashboard#readme","keywords":["bull","bullmq","redis","queue","monitoring","nestjs","nestjs-module","aios"],"repository":{"type":"git","url":"git+https://github.com/fellahealth/aios-bullmq-dashboard.git","directory":"packages/nestjs"},"description":"NestJS module for the aios bullmq dashboard.","maintainers":[{"name":"gentritabazi01","email":"gentritabazi01@gmail.com"}],"readme":"# @aios-medical/bullmq-dashboard-nestjs\n\nNestJS module for the AIOS BullMQ Dashboard. Works with `@nestjs/bull` and `@nestjs/bullmq`.\n\n<img alt=\"AIOS BullMQ Dashboard overview\" src=\"https://raw.githubusercontent.com/fellahealth/aios-bullmq-dashboard/main/screenshots/overview.png\" />\n\n## Installation\n\n```bash\nnpm install @aios-medical/bullmq-dashboard-nestjs\n# or\nyarn add @aios-medical/bullmq-dashboard-nestjs\n# or\npnpm add @aios-medical/bullmq-dashboard-nestjs\n```\n\nYou'll also need the API, UI, and Express adapter packages:\n\n```bash\nnpm install \\\n  @aios-medical/bullmq-dashboard-api \\\n  @aios-medical/bullmq-dashboard-ui \\\n  @aios-medical/bullmq-dashboard-express \\\n  @aios-medical/bullmq-dashboard-nestjs\n```\n\n## Overview\n\nThis package provides a NestJS module that integrates the AIOS BullMQ Dashboard with your NestJS application. It automatically discovers queues registered with `@nestjs/bull` or `@nestjs/bullmq` and provides a seamless integration with NestJS's dependency injection system.\n\n## Usage\n\n### Basic Setup with @nestjs/bullmq\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { AIOSBullMQDashboardModule } from '@aios-medical/bullmq-dashboard-nestjs';\nimport { BullMQAdapter } from '@aios-medical/bullmq-dashboard-api/bullMQAdapter';\nimport { ExpressAdapter } from '@aios-medical/bullmq-dashboard-express';\nimport { BullModule } from '@nestjs/bullmq';\n\n@Module({\n  imports: [\n    BullModule.forRoot({\n      connection: { host: 'localhost', port: 6379 },\n    }),\n    BullModule.registerQueue({\n      name: 'emails',\n    }),\n    BullModule.registerQueue({\n      name: 'reports',\n    }),\n    AIOSBullMQDashboardModule.forRoot({\n      route: '/admin/queues',\n      adapter: ExpressAdapter,\n      dashboardOptions: {\n        uiConfig: {\n          title: 'My Queues',\n          subtitle: 'production',\n          environment: { label: 'Production', color: '#ef4444' },\n        },\n      },\n    }),\n    AIOSBullMQDashboardModule.forFeature(\n      { name: 'emails', adapter: BullMQAdapter, options: { displayName: 'Emails' } },\n      { name: 'reports', adapter: BullMQAdapter, options: { displayName: 'Reports' } },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n### Basic Setup with @nestjs/bull (Legacy)\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { AIOSBullMQDashboardModule } from '@aios-medical/bullmq-dashboard-nestjs';\nimport { BullAdapter } from '@aios-medical/bullmq-dashboard-api/bullAdapter';\nimport { ExpressAdapter } from '@aios-medical/bullmq-dashboard-express';\nimport { BullModule } from '@nestjs/bull';\n\n@Module({\n  imports: [\n    BullModule.forRoot({\n      redis: { host: 'localhost', port: 6379 },\n    }),\n    BullModule.registerQueue({\n      name: 'emails',\n    }),\n    AIOSBullMQDashboardModule.forRoot({\n      route: '/admin/queues',\n      adapter: ExpressAdapter,\n      dashboardOptions: {\n        uiConfig: {\n          title: 'My Queues',\n        },\n      },\n    }),\n    AIOSBullMQDashboardModule.forFeature(\n      { name: 'emails', adapter: BullAdapter, options: { displayName: 'Emails' } },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n### With Authentication Middleware\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { AIOSBullMQDashboardModule } from '@aios-medical/bullmq-dashboard-nestjs';\nimport { BullMQAdapter } from '@aios-medical/bullmq-dashboard-api/bullMQAdapter';\nimport { ExpressAdapter } from '@aios-medical/bullmq-dashboard-express';\nimport basicAuth from 'express-basic-auth';\n\n@Module({\n  imports: [\n    AIOSBullMQDashboardModule.forRoot({\n      route: '/admin/queues',\n      adapter: ExpressAdapter,\n      middleware: basicAuth({\n        challenge: true,\n        users: { admin: process.env.DASHBOARD_PASSWORD || 'secret' },\n      }),\n      dashboardOptions: {\n        uiConfig: {\n          title: 'Protected Dashboard',\n        },\n      },\n    }),\n    AIOSBullMQDashboardModule.forFeature(\n      { name: 'emails', adapter: BullMQAdapter },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n### Async Configuration\n\nUse `forRootAsync` for asynchronous configuration:\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { AIOSBullMQDashboardModule } from '@aios-medical/bullmq-dashboard-nestjs';\nimport { BullMQAdapter } from '@aios-medical/bullmq-dashboard-api/bullMQAdapter';\nimport { ExpressAdapter } from '@aios-medical/bullmq-dashboard-express';\n\n@Module({\n  imports: [\n    ConfigModule.forRoot(),\n    AIOSBullMQDashboardModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: (configService: ConfigService) => ({\n        route: configService.get('DASHBOARD_ROUTE') || '/admin/queues',\n        adapter: ExpressAdapter,\n        dashboardOptions: {\n          uiConfig: {\n            title: configService.get('DASHBOARD_TITLE') || 'My Queues',\n            environment: {\n              label: configService.get('ENVIRONMENT') || 'Development',\n              color: configService.get('ENVIRONMENT_COLOR') || '#3b82f6',\n            },\n          },\n        },\n      }),\n    }),\n    AIOSBullMQDashboardModule.forFeature(\n      { name: 'emails', adapter: BullMQAdapter },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n### Queue Options\n\nConfigure individual queues with options:\n\n```typescript\nAIOSBullMQDashboardModule.forFeature(\n  { \n    name: 'emails', \n    adapter: BullMQAdapter, \n    options: {\n      displayName: 'Email Queue',\n      description: 'Handles email sending jobs',\n      readOnlyMode: false,\n      allowRetries: true,\n    } \n  },\n  { \n    name: 'reports', \n    adapter: BullMQAdapter, \n    options: {\n      displayName: 'Report Generation',\n      description: 'Generates PDF reports',\n      readOnlyMode: true,  // Read-only for viewing only\n    } \n  },\n)\n```\n\n### Custom Queue Adapter Options\n\n```typescript\nAIOSBullMQDashboardModule.forFeature(\n  { \n    name: 'emails', \n    adapter: BullMQAdapter, \n    options: {\n      displayName: 'Emails',\n      prefix: 'prod:',\n      delimiter: '-',\n      externalJobUrl: (job) => `https://myapp.com/jobs/${job.id}`,\n    } \n  },\n)\n```\n\n## API Reference\n\n### AIOSBullMQDashboardModule\n\nThe main module class for configuring the dashboard.\n\n#### Static Methods\n\n##### forRoot(options: AIOSBullMQDashboardModuleOptions)\n\nConfigures the dashboard root module synchronously.\n\n```typescript\nAIOSBullMQDashboardModule.forRoot({\n  route: '/admin/queues',\n  adapter: ExpressAdapter,\n  middleware: optionalMiddleware,\n  dashboardOptions: {\n    uiConfig: {\n      title: 'My Dashboard',\n    },\n  },\n})\n```\n\n##### forRootAsync(options: AIOSBullMQDashboardModuleAsyncOptions)\n\nConfigures the dashboard root module asynchronously.\n\n```typescript\nAIOSBullMQDashboardModule.forRootAsync({\n  imports: [ConfigModule],\n  inject: [ConfigService],\n  useFactory: (configService: ConfigService) => ({\n    route: configService.get('DASHBOARD_ROUTE'),\n    adapter: ExpressAdapter,\n    dashboardOptions: {\n      uiConfig: {\n        title: configService.get('DASHBOARD_TITLE'),\n      },\n    },\n  }),\n})\n```\n\n##### forFeature(...queues: AIOSBullMQDashboardQueueOptions[])\n\nRegisters queues to be monitored by the dashboard.\n\n```typescript\nAIOSBullMQDashboardModule.forFeature(\n  { name: 'emails', adapter: BullMQAdapter, options: { displayName: 'Emails' } },\n  { name: 'reports', adapter: BullMQAdapter },\n)\n```\n\n## Types\n\n### AIOSBullMQDashboardModuleOptions\n\n```typescript\n{\n  route: string;                                    // Route path for the dashboard\n  adapter: { new (): AIOSBullMQDashboardServerAdapter };  // Server adapter (ExpressAdapter)\n  dashboardOptions?: DashboardOptions;              // Dashboard configuration options\n  middleware?: any;                                 // Express middleware (e.g., auth)\n}\n```\n\n### AIOSBullMQDashboardModuleAsyncOptions\n\n```typescript\n{\n  useFactory: (...args: any[]) => AIOSBullMQDashboardModuleOptions | Promise<AIOSBullMQDashboardModuleOptions>;\n  imports?: ModuleMetadata['imports'];\n  inject?: Array<InjectionToken | OptionalFactoryDependency>;\n}\n```\n\n### AIOSBullMQDashboardQueueOptions\n\n```typescript\n{\n  name: string;                                                                      // Queue name (must match Bull/BullMQ queue name)\n  adapter: { new (queue: any, options?: Partial<QueueAdapterOptions>): BaseAdapter }; // Adapter class (BullAdapter or BullMQAdapter)\n  options?: Partial<QueueAdapterOptions>;                                            // Queue adapter options\n}\n```\n\n## Features\n\n### Automatic Queue Discovery\n\nThe module automatically discovers queues registered with `@nestjs/bull` or `@nestjs/bullmq` and integrates them with the dashboard.\n\n### Worker Concurrency Detection\n\nThe module automatically detects worker concurrency from `@Process()` decorators and displays it in the dashboard. This helps you understand the processing capacity of each queue.\n\n```typescript\n@Processor('emails')\nexport class EmailProcessor {\n  @Process('send', { concurrency: 5 })  // Concurrency of 5 will be detected\n  async handleSend(job: Job) {\n    // Process email\n  }\n}\n```\n\n### Global Prefix Support\n\nThe module respects NestJS global prefix configuration. You can exclude the dashboard route from the global prefix:\n\n```typescript\napp.setGlobalPrefix('api/v1', {\n  exclude: [{ path: '/admin/queues', method: RequestMethod.ALL }],\n});\n```\n\n### Dependency Injection\n\nThe dashboard instance and options are available for injection:\n\n```typescript\nimport { Inject, Injectable } from '@nestjs/common';\nimport { AIOS_BULLMQ_DASHBOARD_INSTANCE, AIOS_BULLMQ_DASHBOARD_OPTIONS } from '@aios-medical/bullmq-dashboard-nestjs';\n\n@Injectable()\nexport class MyService {\n  constructor(\n    @Inject(AIOS_BULLMQ_DASHBOARD_INSTANCE) private dashboard: any,\n    @Inject(AIOS_BULLMQ_DASHBOARD_OPTIONS) private options: any,\n  ) {}\n}\n```\n\n## Configuration Options\n\nThe `dashboardOptions` parameter accepts the same options as the API package's `createDashboard` function:\n\n```typescript\ndashboardOptions: {\n  uiBasePath?: string;\n  uiConfig: {\n    title?: string;\n    subtitle?: string;\n    favIcon?: { default: string; alternative: string };\n    environment?: { label: string; color: string; textColor?: string };\n    pollingInterval?: { showSetting?: boolean; forceInterval?: number };\n    miscLinks?: Array<{ text: string; url: string }>;\n    hideRedisDetails?: boolean;\n  };\n}\n```\n\n## Complete Example\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { BullModule } from '@nestjs/bullmq';\nimport { AIOSBullMQDashboardModule } from '@aios-medical/bullmq-dashboard-nestjs';\nimport { BullMQAdapter } from '@aios-medical/bullmq-dashboard-api/bullMQAdapter';\nimport { ExpressAdapter } from '@aios-medical/bullmq-dashboard-express';\nimport basicAuth from 'express-basic-auth';\n\n@Module({\n  imports: [\n    ConfigModule.forRoot(),\n    BullModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: (configService: ConfigService) => ({\n        connection: {\n          host: configService.get('REDIS_HOST'),\n          port: configService.get('REDIS_PORT'),\n        },\n      }),\n    }),\n    BullModule.registerQueue({\n      name: 'emails',\n    }),\n    BullModule.registerQueue({\n      name: 'reports',\n    }),\n    AIOSBullMQDashboardModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: (configService: ConfigService) => ({\n        route: '/admin/queues',\n        adapter: ExpressAdapter,\n        middleware: basicAuth({\n          challenge: true,\n          users: {\n            admin: configService.get('DASHBOARD_PASSWORD'),\n          },\n        }),\n        dashboardOptions: {\n          uiConfig: {\n            title: 'Production Dashboard',\n            subtitle: 'Queue Monitoring',\n            environment: {\n              label: 'Production',\n              color: '#ef4444',\n              textColor: '#ffffff',\n            },\n            pollingInterval: {\n              forceInterval: 5000,\n            },\n            miscLinks: [\n              { text: 'Documentation', url: 'https://docs.example.com' },\n              { text: 'Support', url: 'https://support.example.com' },\n            ],\n          },\n        },\n      }),\n    }),\n    AIOSBullMQDashboardModule.forFeature(\n      { \n        name: 'emails', \n        adapter: BullMQAdapter, \n        options: { \n          displayName: 'Email Queue',\n          description: 'Handles transactional emails',\n        } \n      },\n      { \n        name: 'reports', \n        adapter: BullMQAdapter, \n        options: { \n          displayName: 'Report Generation',\n          description: 'Generates analytical reports',\n        } \n      },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n## Compatibility\n\n- **NestJS**: v9, v10, v11\n- **@nestjs/bull**: For Bull v4 queues\n- **@nestjs/bullmq**: For BullMQ v5 queues\n- **@nestjs/common**: ^9.0.0 || ^10.0.0 || ^11.0.0\n- **@nestjs/core**: ^9.0.0 || ^10.0.0 || ^11.0.0\n\n## Peer Dependencies\n\n```json\n{\n  \"@aios-medical/bullmq-dashboard-api\": \"^1.0.0\",\n  \"@nestjs/bull-shared\": \"^10.0.0 || ^11.0.0\",\n  \"@nestjs/common\": \"^9.0.0 || ^10.0.0 || ^11.0.0\",\n  \"@nestjs/core\": \"^9.0.0 || ^10.0.0 || ^11.0.0\",\n  \"reflect-metadata\": \"^0.1.13 || ^0.2.0\",\n  \"rxjs\": \"^7.8.1\"\n}\n```\n\n## License\n\nMIT\n\n## Related Packages\n\n- [@aios-medical/bullmq-dashboard-api](https://www.npmjs.com/package/@aios-medical/bullmq-dashboard-api) - Core API package\n- [@aios-medical/bullmq-dashboard-ui](https://www.npmjs.com/package/@aios-medical/bullmq-dashboard-ui) - React UI component\n- [@aios-medical/bullmq-dashboard-express](https://www.npmjs.com/package/@aios-medical/bullmq-dashboard-express) - Express.js adapter","readmeFilename":"README.md"}