{"_id":"@amira_assem_mdlabs/notification-package","_rev":"6-4397f861cf618e96ee7fb9eb62b26cde","name":"@amira_assem_mdlabs/notification-package","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.0","author":{"name":"MD-LABS"},"license":"MIT","_id":"@amira_assem_mdlabs/notification-package@1.0.0","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"dist":{"shasum":"dbf6631587a3c401372c7e50baaedc9e4283c431","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.0.tgz","fileCount":102,"integrity":"sha512-Hdzv+lSP/k2lsE+PVlX9n8VFP4obtkOG/gBT/bskluGs+30oPc7Ha/rmlzGyRTuKh3m1bjuMwjEeI+1vExevSg==","signatures":[{"sig":"MEUCIQCXzFUlXUKXwVsgsyWyfsFKqEQUrpF/FGkWIKLBwUOY8QIgPatn70d5smVGYhiq9Wh9PibR0eKoZj99A4TCqdeWO/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86271},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"c89b7bd8e0c395c936165a3b8b3f1366692c3605","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"repository":{"url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git","type":"git"},"_npmVersion":"10.8.2","description":"A reusable module for handling notifications in nestjs applications","directories":{},"_nodeVersion":"20.18.1","dependencies":{"typeorm":"0.2.45","@nestjs/core":"7.5.1","@nestjs/common":"7.5.1","@nestjs/swagger":"4.8.0","@nestjs/typeorm":"7.1.4","@nestjs/platform-express":"7.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.14.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/notification-package_1.0.0_1738263269647_0.37206914421932336","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.1","author":{"name":"MD-LABS"},"license":"MIT","_id":"@amira_assem_mdlabs/notification-package@1.0.1","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"dist":{"shasum":"e869efa5501fe83fd4ba55663e47bbc4ce73aa9f","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.1.tgz","fileCount":102,"integrity":"sha512-lxXCkAnjUCEAK69DE7DIUmWsCx7qVJBFaWta911B4FC1ABFe2z4P1bq5XBrl2oyFETxEft1lTHWsgqPu/Va0PA==","signatures":[{"sig":"MEUCIBQKTa+C5/eokkhvjWTtAS8GUZu94/RF8i+o5iVy9fGMAiEAo2NvJ45GFbwbaba/M60b3V9dbP3uPS+LyKca915ijqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86487},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"},"./migrations":{"import":"./dist/migrations/index.js","require":"./dist/migrations/index.js"}},"gitHead":"a84493aeed1505d920c6f3dc3f75d5ef81d5abd9","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"repository":{"url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git","type":"git"},"_npmVersion":"10.8.2","description":"A reusable module for handling notifications in nestjs applications","directories":{},"_nodeVersion":"20.18.1","dependencies":{"typeorm":"0.2.45","@nestjs/core":"7.5.1","@nestjs/common":"7.5.1","@nestjs/swagger":"4.8.0","@nestjs/typeorm":"7.1.4","@nestjs/platform-express":"7.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.14.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/notification-package_1.0.1_1738265387404_0.40789555541866607","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.2","author":{"name":"MD-LABS"},"license":"MIT","_id":"@amira_assem_mdlabs/notification-package@1.0.2","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"dist":{"shasum":"b1ffcaecaa7fa97e24172aabf67de24203afd6fa","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.2.tgz","fileCount":102,"integrity":"sha512-biWo0dUmlOm7lFoLrx+xjlpNMuffjnTpakDu+uqGXwIW+/KD9st22fG4xHpKq4xvOGpP73ytCyQt52MlvrIzEg==","signatures":[{"sig":"MEUCIQDWp+j3LiwXClHbp9+1auRZiFY9n7bFoVaWJcZ8uP4Z+QIgVT2533lZk4kfltGWQ9rKsz3oNC1GroiKVTArd8Hxb4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86489},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"},"./migrations":{"import":"./dist/migrations/index.js","require":"./dist/migrations/index.js"}},"gitHead":"86b796eb4fcf276d623f4240ff57992bd19a3db3","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"repository":{"url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git","type":"git"},"_npmVersion":"10.8.2","description":"A reusable module for handling notifications in nestjs applications","directories":{},"_nodeVersion":"20.18.1","dependencies":{"typeorm":"0.2.45","@nestjs/core":"7.5.1","@nestjs/common":"7.5.1","@nestjs/swagger":"4.8.0","@nestjs/typeorm":"7.1.4","@nestjs/platform-express":"7.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.14.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/notification-package_1.0.2_1738267097053_0.6839091151729304","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.3","author":{"name":"MD-LABS"},"license":"MIT","_id":"@amira_assem_mdlabs/notification-package@1.0.3","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"dist":{"shasum":"4a7ca6538f84def794110b577bf73aa5aaca08f2","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.3.tgz","fileCount":105,"integrity":"sha512-mYR9h++SY+e5QrMRoj9I8aOKMBORFRIfSr1t4mVHybrpAH1kKeStKWSS0NQNjTzW9AJn/oV2WtWceVwCMsTfVQ==","signatures":[{"sig":"MEQCIGbqkzKrvX6q273ddzG4KJFFFrbkmJV/ejwOyglfYfLwAiBDO7VIKveQ3nhDLsEYQsFPwCDZe/6vjq8BSc+5d3gn7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88334},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"},"./entities":{"import":"./dist/entities/index.js","require":"./dist/entities/index.js"},"./migrations":{"import":"./dist/migrations/index.js","require":"./dist/migrations/index.js"}},"gitHead":"d41506bc77a7f4be088e9ee95058bccab20e27e8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"repository":{"url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git","type":"git"},"_npmVersion":"10.8.2","description":"A reusable module for handling notifications in nestjs applications","directories":{},"_nodeVersion":"20.18.1","dependencies":{"typeorm":"0.2.45","@nestjs/core":"7.5.1","@nestjs/common":"7.5.1","@nestjs/swagger":"4.8.0","@nestjs/typeorm":"7.1.4","@nestjs/platform-express":"7.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.14.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/notification-package_1.0.3_1738269154214_0.031159952747459085","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.4","author":{"name":"MD-LABS"},"license":"MIT","_id":"@amira_assem_mdlabs/notification-package@1.0.4","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"dist":{"shasum":"8bf15ac6e785b47eb034ba4901c86525777966a9","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.4.tgz","fileCount":105,"integrity":"sha512-+MXZAMOwDgWy7Y61u7V4P1BrrvQU4Qc0v7ZDVXt9X4G5oSrXfmIOnla9sjaDInlsYCAgeEVXcFlwxetzbh785g==","signatures":[{"sig":"MEYCIQDWGvuAjCuj7WdePBWM5OyGcojCccHlnTJwQlUCCKcS3gIhAJQhyoUq+6D8+wWGTT0g2Vrx98EV1KStk7SIwtC0in5/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88334},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"},"./entities":{"import":"./dist/entities/index.js","require":"./dist/entities/index.js"},"./migrations":{"import":"./dist/migrations/index.js","require":"./dist/migrations/index.js"}},"gitHead":"4ea8cb838386da70b7660c7384298a5f428b86ad","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"repository":{"url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git","type":"git"},"_npmVersion":"10.8.2","description":"A reusable module for handling notifications in nestjs applications","directories":{},"_nodeVersion":"20.18.1","dependencies":{"typeorm":"0.2.45","@nestjs/core":"7.5.1","@nestjs/common":"7.5.1","@nestjs/swagger":"4.8.0","@nestjs/typeorm":"7.1.4","@nestjs/platform-express":"7.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.14.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/notification-package_1.0.4_1738269250539_0.09616749995237606","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.5","author":{"name":"MD-LABS"},"license":"MIT","_id":"@amira_assem_mdlabs/notification-package@1.0.5","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"dist":{"shasum":"0732af3ed65556f29443a2d853130c500e1dee0b","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.5.tgz","fileCount":105,"integrity":"sha512-9WqWqArVnLjMkUiSlpjfBeebSTQ56TwwKDUO/D0SPOTmjoVOKVGw5zFQagP+3GfBX4dZIgXM+7wDRvWJBJPzkQ==","signatures":[{"sig":"MEQCIFxtQTZjOUgf6w2W+yEIyxvEPWLRryc8gzz+pIr/DSXOAiB2/QoxknCQ8tMY+3+2Zv/Fu7CgB/c7tjGXfN3E4z8x2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88584},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"},"./entities":{"import":"./dist/entities/index.js","require":"./dist/entities/index.js"},"./migrations":{"import":"./dist/migrations/index.js","require":"./dist/migrations/index.js"}},"gitHead":"5ae46617bb0de4ccf3706e42bdf24c2ea49d8ef9","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"repository":{"url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git","type":"git"},"_npmVersion":"10.8.2","description":"A reusable module for handling notifications in nestjs applications","directories":{},"_nodeVersion":"20.18.1","dependencies":{"typeorm":"0.2.45","@nestjs/core":"7.5.1","@nestjs/common":"7.5.1","@nestjs/swagger":"4.8.0","@nestjs/typeorm":"7.1.4","@nestjs/platform-express":"7.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.14.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/notification-package_1.0.5_1738269700293_0.4858701714831035","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@amira_assem_mdlabs/notification-package","version":"1.0.6","description":"A reusable module for handling notifications in nestjs applications","main":"dist/index.js","type":"commonjs","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"},"./migrations":{"import":"./dist/migrations/index.js","require":"./dist/migrations/index.js"},"./entities":{"import":"./dist/entities/index.js","require":"./dist/entities/index.js"}},"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git"},"author":{"name":"MD-LABS"},"license":"MIT","dependencies":{"@nestjs/common":"7.5.1","@nestjs/core":"7.5.1","@nestjs/platform-express":"7.5.1","@nestjs/typeorm":"7.1.4","typeorm":"0.2.45","@nestjs/swagger":"4.8.0"},"devDependencies":{"@types/express":"^4.17.21","@types/node":"^20.14.0","typescript":"^5.3.3"},"_id":"@amira_assem_mdlabs/notification-package@1.0.6","gitHead":"d121a13aa99b570e4225676fdf703094a6676c1a","types":"./dist/index.d.ts","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-gJe3b1mgE26SxsJn4F+LV/Gdz0EEwesQp+47g/TX2tFNOfWkaCMF7/ehhrpKLYArZRaPy3LX4ztRaULKf1/5nw==","shasum":"208adbc97c001029ed24c80c8d7f577814ca2a57","tarball":"https://registry.npmjs.org/@amira_assem_mdlabs/notification-package/-/notification-package-1.0.6.tgz","fileCount":105,"unpackedSize":88741,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEMCHzvDFyVzZZTQNqotFGNrN8+trCT0h5Kscbu7qb6E25YCIFyFCLmQRgbAVwKT2VKKwcRAPWJjDQ6OiornY+3ZEsMA"}]},"_npmUser":{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"},"directories":{},"maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notification-package_1.0.6_1738273250042_0.7812838131136068"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-30T18:54:29.505Z","modified":"2025-01-30T21:40:50.402Z","1.0.0":"2025-01-30T18:54:29.882Z","1.0.1":"2025-01-30T19:29:47.614Z","1.0.2":"2025-01-30T19:58:17.245Z","1.0.3":"2025-01-30T20:32:34.471Z","1.0.4":"2025-01-30T20:34:10.764Z","1.0.5":"2025-01-30T20:41:40.484Z","1.0.6":"2025-01-30T21:40:50.236Z"},"author":{"name":"MD-LABS"},"license":"MIT","repository":{"type":"git","url":"git+https://gitlab.zadapps.info/dirayaah/packages/notification.git"},"description":"A reusable module for handling notifications in nestjs applications","maintainers":[{"name":"amira_assem_mdlabs","email":"amira.assem@mobidevlabs.com"}],"readme":"# NestJS Notification Module\r\n\r\nA powerful and flexible notification module for NestJS applications with multi-tenancy support, designed for managing notifications across multiple channels.\r\n\r\n## Features\r\n\r\n- 🏢 Multi-tenancy support out of the box\r\n- 📨 Multiple notification channels support\r\n- 🔌 Pluggable architecture with dependency injection\r\n- 📦 Easy integration with existing NestJS applications\r\n- 🗄️ Database storage with TypeORM\r\n- 📋 Flexible message templating\r\n- 🎯 Topic-based notifications\r\n- 👥 Recipient management\r\n- ⚙️ Configurable notification settings per tenant\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @islamgalal_mdlabs/notification-module\r\n```\r\n\r\n## Quick Start\r\n\r\n1. Import the NotificationModule in your app.module.ts:\r\n\r\n```typescript\r\nimport { NotificationModule } from '@islamgalal_mdlabs/notification-module';\r\n\r\n@Module({\r\n  imports: [\r\n    NotificationModule.register({\r\n      connectionProvider: {\r\n        // Your multi-tenant connection provider\r\n        getTenantConnection: async (tenantId: string) => {\r\n          // Return TypeORM connection for the tenant\r\n        },\r\n      },\r\n      // Additional configuration options\r\n    }),\r\n  ],\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\n2. Inject and use the NotificationService:\r\n\r\n```typescript\r\nimport { NotificationService } from '@islamgalal_mdlabs/notification-module';\r\n\r\n@Injectable()\r\nexport class YourService {\r\n  constructor(private readonly notificationService: NotificationService) {}\r\n\r\n  async sendNotification(tenantId: string) {\r\n    // Use the notification service with tenant context\r\n    const notification = await this.notificationService.findById(tenantId, 1);\r\n    // Additional notification operations\r\n  }\r\n}\r\n```\r\n\r\n## Database Structure\r\n\r\nThe module includes the following main entities:\r\n\r\n- `Notification`: Core notification entity\r\n- `NotificationTopic`: For topic-based notifications\r\n- `NotificationRecipient`: Manages notification recipients\r\n- `TopicSubscription`: Handles topic subscriptions\r\n- `NotificationConfiguration`: Tenant-specific settings\r\n\r\n## Database Migrations\r\n\r\nThe module provides TypeORM migrations for all required tables. To use them:\r\n\r\n```bash\r\n# Run migrations\r\nnpm run migration:run\r\n\r\n# Revert migrations\r\nnpm run migration:revert\r\n```\r\n\r\n## Configuration\r\n\r\n### Module Configuration\r\n\r\nConfigure the module with your connection provider and additional options:\r\n\r\n```typescript\r\nNotificationModule.register({\r\n  connectionProvider: {\r\n    getTenantConnection: async (tenantId: string) => {\r\n      // Implement your connection logic\r\n      return connection;\r\n    },\r\n  },\r\n  // Additional configuration options\r\n});\r\n```\r\n\r\n## Contributing\r\n\r\n1. Fork the repository\r\n2. Create your feature branch\r\n3. Commit your changes\r\n4. Push to the branch\r\n5. Create a Pull Request\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License.\r\n","readmeFilename":"README.md"}