{"_id":"@adamkac/nestjs-slack-bolt","_rev":"5-dae3df00ace6e42bd439d8246f7fff86","name":"@adamkac/nestjs-slack-bolt","dist-tags":{"latest":"0.2.4","next":"0.2.2"},"versions":{"0.1.0":{"name":"@adamkac/nestjs-slack-bolt","version":"0.1.0","description":"A Nestjs module using Slack Bold SDK","author":{"name":"bamada"},"license":"MIT","url":"https://github.com/adamkac/nest-slack-bolt#readme","scripts":{"test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"**/*.ts\"","lint":"eslint \"src/**/*.ts\" --fix","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prerelease":"npm run build","release":"release-it","prepare":"husky install"},"dependencies":{"@commitlint/cli":"17.7.1","@commitlint/config-angular":"17.7.0","@nestjs/common":"^9.0.0","@nestjs/config":"2.3.4","@nestjs/core":"^9.0.0","@slack/bolt":"3.13.3","husky":"8.0.3","reflect-metadata":"0.1.13"},"devDependencies":{"@nestjs/cli":"9.5.0","@nestjs/schematics":"9.2.0","@nestjs/testing":"9.4.3","@release-it/conventional-changelog":"^5.1.1","@types/jest":"29.5.3","@types/node":"18.17.5","@types/supertest":"2.0.12","@typescript-eslint/eslint-plugin":"5.62.0","@typescript-eslint/parser":"5.62.0","eslint":"8.47.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"4.2.1","jest":"29.6.2","lint-staged":"13.3.0","prettier":"2.8.8","release-it":"^15.5.0","rxjs":"7.8.1","source-map-support":"0.5.21","supertest":"6.3.3","ts-jest":"29.1.1","ts-node":"10.9.1","tsconfig-paths":"4.2.0","typescript":"5.0.4"},"peerDependencies":{"@nestjs/common":"^9.0.0","@nestjs/core":"^9.0.0","reflect-metadata":"0.1.13","rxjs":"^7.2.0"},"lint-staged":{"**/*.{ts,json}":[]},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"types":"./index.d.ts","gitHead":"b65fe297088bfb2d38cfae5551029d8e50e4c2df","bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"homepage":"https://github.com/bamada/nest-slack-bolt#readme","_id":"@adamkac/nestjs-slack-bolt@0.1.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-jKP/YCysxT+V3FqqWibOA/V4IltrciWFB+8gGfYWCpmkptKu19wrvDu8ZsHGBW+Dn7RuVTlQMkrNtvLxzTU/iQ==","shasum":"09ca25bfe332440a0f0ff1b465add9ea577e874a","tarball":"https://registry.npmjs.org/@adamkac/nestjs-slack-bolt/-/nestjs-slack-bolt-0.1.0.tgz","fileCount":46,"unpackedSize":45556,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGVqIOLUUSjwvc+VKbM7Npr3+pUF/9hAHmJg3hZWumR0AiAnQyDO5DBE170Cq8tGVbsGQrUDrU/CgKuAIV/cg1AjpQ=="}]},"_npmUser":{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"},"directories":{},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-slack-bolt_0.1.0_1692274799000_0.8644988783486691"},"_hasShrinkwrap":false},"0.2.0":{"name":"@adamkac/nestjs-slack-bolt","version":"0.2.0","description":"A Nestjs module using Slack Bold SDK","author":{"name":"bamada"},"license":"MIT","url":"https://github.com/adamkac/nest-slack-bolt#readme","scripts":{"test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"**/*.ts\"","lint":"eslint \"src/**/*.ts\" --fix","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prerelease":"npm run build","release":"release-it","prepare":"husky install"},"dependencies":{"@commitlint/cli":"17.7.1","@commitlint/config-angular":"17.7.0","@nestjs/common":"^9.0.0","@nestjs/config":"2.3.4","@nestjs/core":"^9.0.0","@slack/bolt":"3.13.3","husky":"8.0.3","reflect-metadata":"0.1.13"},"devDependencies":{"@nestjs/cli":"9.5.0","@nestjs/schematics":"9.2.0","@nestjs/testing":"9.4.3","@release-it/conventional-changelog":"^5.1.1","@types/jest":"29.5.3","@types/node":"18.17.5","@types/supertest":"2.0.12","@typescript-eslint/eslint-plugin":"5.62.0","@typescript-eslint/parser":"5.62.0","eslint":"8.47.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"4.2.1","jest":"29.6.2","lint-staged":"13.3.0","prettier":"2.8.8","release-it":"^15.5.0","rxjs":"7.8.1","source-map-support":"0.5.21","supertest":"6.3.3","ts-jest":"29.1.1","ts-node":"10.9.1","tsconfig-paths":"4.2.0","typescript":"5.0.4"},"peerDependencies":{"@nestjs/common":"^9.0.0","@nestjs/core":"^9.0.0","reflect-metadata":"0.1.13","rxjs":"^7.2.0"},"lint-staged":{"**/*.{ts,json}":[]},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"types":"./index.d.ts","readme":"<p align=\"center\">\n  <a href=\"https://github.com/bamada/nest-slack-bolt\" target=\"blank\"><img src=\"logo.svg\" width=\"100\" alt=\"Nestjs Slack Bolt\" /></a>\n</p>\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n<p align=\"center\">A <a href=\"http://nestjs.com/\" target=\"blank\">Nestjs</a> module to interact with <a href=\"https://api.slack.com/\" target=\"_blank\">Slack</a> API using <a href=\"https://api.slack.com/bolt\">Bolt</a> SDK</p>\n\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\n---\n\n## Description\n\nThis module gives a handy way to develop Slack applications using the Nestjs framework\n\n## Features\n\n- Handle Messages\n- Handle Commands\n- Handle Actions\n- Handle Events\n\n## Installation\n\n```bash\n# yarn\n$ yarn add nestjs-slack-bolt\n\n# npm\n$ npm i nestjs-slack-bolt\n```\n\n## Usage\n\nAdd these variables to the `.env` file\n\n```bash\n# to define on API mode\nSLACK_SIGNING_SECRET=\"**\"\n\n# to define on Socket mode\nSLACK_APP_TOKEN=\"**\"\n\n# require variables\nSLACK_BOT_TOKEN=\"**\"\nSLACK_SOCKET_MODE=true\n\n```\n\nImport the `SlackModule`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { SlackModule } from 'nestjs-slack-bolt';\nimport { AppController } from './app.controller';\nimport { AppService } from './app.service';\n\n@Module({\n  imports: [SlackModule],\n  controllers: [AppController],\n  providers: [AppService],\n})\nexport class AppModule {}\n```\n\n## Example\n\nUsing annotations\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { Action, Command, Message, Event } from 'nestjs-slack-bolt';\nimport { AppService } from './app.service';\nimport {\n  SlackActionMiddlewareArgs,\n  SlackCommandMiddlewareArgs,\n  SlackEventMiddlewareArgs,\n} from '@slack/bolt';\n\n@Controller()\nexport class AppController {\n  constructor(private readonly appService: AppService) {}\n\n  @Message('hi') //Handle a message event\n  message({ say }: SlackEventMiddlewareArgs) {\n    say('Hello');\n  }\n\n  @Action('click') //Handle an action\n  action({ say }: SlackActionMiddlewareArgs) {\n    say('click event received');\n  }\n\n  @Command('/list') // handle command\n  command({ say }: SlackCommandMiddlewareArgs) {\n    say('/list command received');\n  }\n\n  @Event('app_home_opened')\n  event({ say }: SlackEventMiddlewareArgs) {\n    say('app_open_event received');\n  }\n}\n```\n\n## Example\n\nUsing the SlackService\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { SlackService } from 'nestjs-slack-bolt/services/slack.service';\nimport { Cron, CronExpression } from '@nestjs/schedule';\nimport { from } from 'rxjs';\n\n@Controller()\nexport class AppController {\n  constructor(\n    private readonly slackService: SlackService,\n    private readonly configService: ConfigService,\n  ) {}\n\n  @Cron(CronExpression.EVERY_10_SECONDS)\n  cronJob() {\n    this.searchUsers()\n      .pipe()\n      .subscribe((users) => {\n        console.log(JSON.stringify(users));\n      });\n  }\n\n  searchUsers(cursor?: string) {\n    return from(\n      this.slackService.client.users.list({\n        token: this.configService.get('SLACK_BOT_TOKEN'),\n        limit: 1,\n        ...(cursor && { cursor }),\n      }),\n    );\n  }\n}\n```\n\n## TODO\n\n- Improve testing\n- handle additional slack events\n\n## Contribute & Disclaimer\n\n....\n","readmeFilename":"README.md","gitHead":"b65fe297088bfb2d38cfae5551029d8e50e4c2df","bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"homepage":"https://github.com/bamada/nest-slack-bolt#readme","_id":"@adamkac/nestjs-slack-bolt@0.2.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-IeYrPNL0Hq4Dq3DvEXTU+pXVB0dWdbchXzUo2u5aFqMOH7+I3Ra+h5qqONp3zLEaeebbmUZXsQ5Xg9IVS5hfPw==","shasum":"d2dfae78812fa74381e8ac594ccead4a0c3d2802","tarball":"https://registry.npmjs.org/@adamkac/nestjs-slack-bolt/-/nestjs-slack-bolt-0.2.0.tgz","fileCount":46,"unpackedSize":45556,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUkQuDMDbx4bnTiYylZguCAw7o7BohGQS4p6GQm4xTjAiBiugKNyD/Hfvw4EuZOjbBFeVylMSnFx4d5VYLWRKgXsA=="}]},"_npmUser":{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"},"directories":{},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-slack-bolt_0.2.0_1692275400557_0.8065722681887124"},"_hasShrinkwrap":false},"0.2.1":{"name":"@adamkac/nestjs-slack-bolt","version":"0.2.1","description":"A Nestjs module using Slack Bold SDK","author":{"name":"bamada"},"license":"MIT","url":"https://github.com/adamkac/nest-slack-bolt#readme","scripts":{"test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"**/*.ts\"","lint":"eslint \"src/**/*.ts\" --fix","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prerelease":"npm run build","release":"release-it","prepare":"husky install"},"dependencies":{"@commitlint/cli":"17.7.1","@commitlint/config-angular":"17.7.0","@nestjs/common":"^9.0.0","@nestjs/config":"2.3.4","@nestjs/core":"^9.0.0","@slack/bolt":"3.13.3","husky":"8.0.3","reflect-metadata":"0.1.13"},"devDependencies":{"@nestjs/cli":"9.5.0","@nestjs/schematics":"9.2.0","@nestjs/testing":"9.4.3","@release-it/conventional-changelog":"^5.1.1","@types/jest":"29.5.3","@types/node":"18.17.5","@types/supertest":"2.0.12","@typescript-eslint/eslint-plugin":"5.62.0","@typescript-eslint/parser":"5.62.0","eslint":"8.47.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"4.2.1","jest":"29.6.2","lint-staged":"13.3.0","prettier":"2.8.8","release-it":"^15.5.0","rxjs":"7.8.1","source-map-support":"0.5.21","supertest":"6.3.3","ts-jest":"29.1.1","ts-node":"10.9.1","tsconfig-paths":"4.2.0","typescript":"5.0.4"},"peerDependencies":{"@nestjs/common":"^9.0.0","@nestjs/core":"^9.0.0","reflect-metadata":"0.1.13","rxjs":"^7.2.0"},"lint-staged":{"**/*.{ts,json}":[]},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"types":"./index.d.ts","readme":"<p align=\"center\">\n  <a href=\"https://github.com/bamada/nest-slack-bolt\" target=\"blank\"><img src=\"logo.svg\" width=\"100\" alt=\"Nestjs Slack Bolt\" /></a>\n</p>\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n<p align=\"center\">A <a href=\"http://nestjs.com/\" target=\"blank\">Nestjs</a> module to interact with <a href=\"https://api.slack.com/\" target=\"_blank\">Slack</a> API using <a href=\"https://api.slack.com/bolt\">Bolt</a> SDK</p>\n\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\n---\n\n## Description\n\nThis module gives a handy way to develop Slack applications using the Nestjs framework\n\n## Features\n\n- Handle Messages\n- Handle Commands\n- Handle Actions\n- Handle Events\n\n## Installation\n\n```bash\n# yarn\n$ yarn add nestjs-slack-bolt\n\n# npm\n$ npm i nestjs-slack-bolt\n```\n\n## Usage\n\nAdd these variables to the `.env` file\n\n```bash\n# to define on API mode\nSLACK_SIGNING_SECRET=\"**\"\n\n# to define on Socket mode\nSLACK_APP_TOKEN=\"**\"\n\n# require variables\nSLACK_BOT_TOKEN=\"**\"\nSLACK_SOCKET_MODE=true\n\n```\n\nImport the `SlackModule`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { SlackModule } from 'nestjs-slack-bolt';\nimport { AppController } from './app.controller';\nimport { AppService } from './app.service';\n\n@Module({\n  imports: [SlackModule],\n  controllers: [AppController],\n  providers: [AppService],\n})\nexport class AppModule {}\n```\n\n## Example\n\nUsing annotations\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { Action, Command, Message, Event } from 'nestjs-slack-bolt';\nimport { AppService } from './app.service';\nimport {\n  SlackActionMiddlewareArgs,\n  SlackCommandMiddlewareArgs,\n  SlackEventMiddlewareArgs,\n} from '@slack/bolt';\n\n@Controller()\nexport class AppController {\n  constructor(private readonly appService: AppService) {}\n\n  @Message('hi') //Handle a message event\n  message({ say }: SlackEventMiddlewareArgs) {\n    say('Hello');\n  }\n\n  @Action('click') //Handle an action\n  action({ say }: SlackActionMiddlewareArgs) {\n    say('click event received');\n  }\n\n  @Command('/list') // handle command\n  command({ say }: SlackCommandMiddlewareArgs) {\n    say('/list command received');\n  }\n\n  @Event('app_home_opened')\n  event({ say }: SlackEventMiddlewareArgs) {\n    say('app_open_event received');\n  }\n}\n```\n\n## Example\n\nUsing the SlackService\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { SlackService } from 'nestjs-slack-bolt/services/slack.service';\nimport { Cron, CronExpression } from '@nestjs/schedule';\nimport { from } from 'rxjs';\n\n@Controller()\nexport class AppController {\n  constructor(\n    private readonly slackService: SlackService,\n    private readonly configService: ConfigService,\n  ) {}\n\n  @Cron(CronExpression.EVERY_10_SECONDS)\n  cronJob() {\n    this.searchUsers()\n      .pipe()\n      .subscribe((users) => {\n        console.log(JSON.stringify(users));\n      });\n  }\n\n  searchUsers(cursor?: string) {\n    return from(\n      this.slackService.client.users.list({\n        token: this.configService.get('SLACK_BOT_TOKEN'),\n        limit: 1,\n        ...(cursor && { cursor }),\n      }),\n    );\n  }\n}\n```\n\n## TODO\n\n- Improve testing\n- handle additional slack events\n\n## Contribute & Disclaimer\n\n....\n","readmeFilename":"README.md","gitHead":"b65fe297088bfb2d38cfae5551029d8e50e4c2df","bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"homepage":"https://github.com/bamada/nest-slack-bolt#readme","_id":"@adamkac/nestjs-slack-bolt@0.2.1","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-VJGiy47F6pudN91uKGhf7Fh7BoHOmTsGas1RA71GWVN0UnXS5tJ9tFiRDMFfrh9bTf49FMQG8XunUQr04uueaA==","shasum":"933ac9d18fb5dd000b88d66e26de18c273a60242","tarball":"https://registry.npmjs.org/@adamkac/nestjs-slack-bolt/-/nestjs-slack-bolt-0.2.1.tgz","fileCount":46,"unpackedSize":45556,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/n3fkYEgLyF45DDI9Vgqj/6Fp99sZ2AyEWX6dmj4rQgIhAOtvxJy9dQvpyx4D7VJF9ACfLAmaQAsFiGQIX20+43rQ"}]},"_npmUser":{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"},"directories":{},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-slack-bolt_0.2.1_1692275571906_0.5186977845630896"},"_hasShrinkwrap":false},"0.2.2":{"name":"@adamkac/nestjs-slack-bolt","version":"0.2.2","description":"A Nestjs module using Slack Bold SDK","author":{"name":"bamada"},"license":"MIT","url":"https://github.com/adamkac/nest-slack-bolt#readme","scripts":{"test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"**/*.ts\"","lint":"eslint \"src/**/*.ts\" --fix","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prerelease":"npm run build","adduser":"npm adduser","release":"release-it","prepare":"husky install"},"dependencies":{"@commitlint/cli":"17.7.1","@commitlint/config-angular":"17.7.0","@nestjs/common":"^9.0.0","@nestjs/config":"2.3.4","@nestjs/core":"^9.0.0","@slack/bolt":"3.13.3","husky":"8.0.3","reflect-metadata":"0.1.13"},"devDependencies":{"@nestjs/cli":"9.5.0","@nestjs/schematics":"9.2.0","@nestjs/testing":"9.4.3","@release-it/conventional-changelog":"^5.1.1","@types/jest":"29.5.3","@types/node":"18.17.5","@types/supertest":"2.0.12","@typescript-eslint/eslint-plugin":"5.62.0","@typescript-eslint/parser":"5.62.0","eslint":"8.47.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"4.2.1","jest":"29.6.2","lint-staged":"13.3.0","prettier":"2.8.8","release-it":"^15.5.0","rxjs":"7.8.1","source-map-support":"0.5.21","supertest":"6.3.3","ts-jest":"29.1.1","ts-node":"10.9.1","tsconfig-paths":"4.2.0","typescript":"5.0.4"},"peerDependencies":{"@nestjs/common":"^9.0.0","@nestjs/core":"^9.0.0","reflect-metadata":"0.1.13","rxjs":"^7.2.0"},"lint-staged":{"**/*.{ts,json}":[]},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"types":"./index.d.ts","readme":"<p align=\"center\">\n  <a href=\"https://github.com/bamada/nest-slack-bolt\" target=\"blank\"><img src=\"logo.svg\" width=\"100\" alt=\"Nestjs Slack Bolt\" /></a>\n</p>\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n<p align=\"center\">A <a href=\"http://nestjs.com/\" target=\"blank\">Nestjs</a> module to interact with <a href=\"https://api.slack.com/\" target=\"_blank\">Slack</a> API using <a href=\"https://api.slack.com/bolt\">Bolt</a> SDK</p>\n\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\n---\n\n## Description\n\nThis module gives a handy way to develop Slack applications using the Nestjs framework\n\n## Features\n\n- Handle Messages\n- Handle Commands\n- Handle Actions\n- Handle Events\n\n## Installation\n\n```bash\n# yarn\n$ yarn add nestjs-slack-bolt\n\n# npm\n$ npm i nestjs-slack-bolt\n```\n\n## Usage\n\nAdd these variables to the `.env` file\n\n```bash\n# to define on API mode\nSLACK_SIGNING_SECRET=\"**\"\n\n# to define on Socket mode\nSLACK_APP_TOKEN=\"**\"\n\n# require variables\nSLACK_BOT_TOKEN=\"**\"\nSLACK_SOCKET_MODE=true\n\n```\n\nImport the `SlackModule`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { SlackModule } from 'nestjs-slack-bolt';\nimport { AppController } from './app.controller';\nimport { AppService } from './app.service';\n\n@Module({\n  imports: [SlackModule],\n  controllers: [AppController],\n  providers: [AppService],\n})\nexport class AppModule {}\n```\n\n## Example\n\nUsing annotations\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { Action, Command, Message, Event } from 'nestjs-slack-bolt';\nimport { AppService } from './app.service';\nimport {\n  SlackActionMiddlewareArgs,\n  SlackCommandMiddlewareArgs,\n  SlackEventMiddlewareArgs,\n} from '@slack/bolt';\n\n@Controller()\nexport class AppController {\n  constructor(private readonly appService: AppService) {}\n\n  @Message('hi') //Handle a message event\n  message({ say }: SlackEventMiddlewareArgs) {\n    say('Hello');\n  }\n\n  @Action('click') //Handle an action\n  action({ say }: SlackActionMiddlewareArgs) {\n    say('click event received');\n  }\n\n  @Command('/list') // handle command\n  command({ say }: SlackCommandMiddlewareArgs) {\n    say('/list command received');\n  }\n\n  @Event('app_home_opened')\n  event({ say }: SlackEventMiddlewareArgs) {\n    say('app_open_event received');\n  }\n}\n```\n\n## Example\n\nUsing the SlackService\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { SlackService } from 'nestjs-slack-bolt/services/slack.service';\nimport { Cron, CronExpression } from '@nestjs/schedule';\nimport { from } from 'rxjs';\n\n@Controller()\nexport class AppController {\n  constructor(\n    private readonly slackService: SlackService,\n    private readonly configService: ConfigService,\n  ) {}\n\n  @Cron(CronExpression.EVERY_10_SECONDS)\n  cronJob() {\n    this.searchUsers()\n      .pipe()\n      .subscribe((users) => {\n        console.log(JSON.stringify(users));\n      });\n  }\n\n  searchUsers(cursor?: string) {\n    return from(\n      this.slackService.client.users.list({\n        token: this.configService.get('SLACK_BOT_TOKEN'),\n        limit: 1,\n        ...(cursor && { cursor }),\n      }),\n    );\n  }\n}\n```\n\n## TODO\n\n- Improve testing\n- handle additional slack events\n\n## Contribute & Disclaimer\n\n....\n","readmeFilename":"README.md","gitHead":"b65fe297088bfb2d38cfae5551029d8e50e4c2df","bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"homepage":"https://github.com/bamada/nest-slack-bolt#readme","_id":"@adamkac/nestjs-slack-bolt@0.2.2","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-uBNABBucj9rHNiQoTS6xsORoaZCYVCuay9IL1G2FwW5qZiiu8FG+FSheyiWi9rZIiSQkuKTrcB3xr2VdeCbN+w==","shasum":"5d3831ca3caec2246edef05d510552ff5a13e4ae","tarball":"https://registry.npmjs.org/@adamkac/nestjs-slack-bolt/-/nestjs-slack-bolt-0.2.2.tgz","fileCount":48,"unpackedSize":46774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVFUwfJzJr2XDr4jYA/Zca9QAuEcLibhSZZTfQ7dlmwQIhAPmPALtZvyIg0MiCFNysJMLD8Vbr+5mLOAU1dcbLQgrK"}]},"_npmUser":{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"},"directories":{},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-slack-bolt_0.2.2_1692275923289_0.0473208475248621"},"_hasShrinkwrap":false},"0.2.3":{"name":"@adamkac/nestjs-slack-bolt","version":"0.2.3","description":"A Nestjs module using Slack Bold SDK","author":{"name":"bamada"},"license":"MIT","url":"https://github.com/adamkac/nest-slack-bolt#readme","scripts":{"test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"**/*.ts\"","lint":"eslint \"src/**/*.ts\" --fix","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prerelease":"npm run build","adduser":"npm adduser","release":"release-it","prepare":"husky install"},"dependencies":{"@commitlint/cli":"17.7.1","@commitlint/config-angular":"17.7.0","@nestjs/common":"^9.0.0","@nestjs/config":"2.3.4","@nestjs/core":"^9.0.0","@slack/bolt":"3.13.3","husky":"8.0.3","reflect-metadata":"0.1.13"},"devDependencies":{"@nestjs/cli":"9.5.0","@nestjs/schematics":"9.2.0","@nestjs/testing":"9.4.3","@release-it/conventional-changelog":"^5.1.1","@types/jest":"29.5.3","@types/node":"18.17.5","@types/supertest":"2.0.12","@typescript-eslint/eslint-plugin":"5.62.0","@typescript-eslint/parser":"5.62.0","eslint":"8.47.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"4.2.1","jest":"29.6.2","lint-staged":"13.3.0","prettier":"2.8.8","release-it":"^15.5.0","rxjs":"7.8.1","source-map-support":"0.5.21","supertest":"6.3.3","ts-jest":"29.1.1","ts-node":"10.9.1","tsconfig-paths":"4.2.0","typescript":"5.0.4"},"peerDependencies":{"@nestjs/common":"^9.0.0","@nestjs/core":"^9.0.0","reflect-metadata":"0.1.13","rxjs":"^7.2.0"},"lint-staged":{"**/*.{ts,json}":[]},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"types":"./index.d.ts","gitHead":"5930dd1db383243cc3f17ba75a185903ab8cd6f8","bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"homepage":"https://github.com/bamada/nest-slack-bolt#readme","_id":"@adamkac/nestjs-slack-bolt@0.2.3","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-XL7HIiMIK3kAYW9y8Re7tzQEQSAM383W6quJGnFGd4JylVQJYLOMCP6UUENtCtNs2ESZkZrtdj90aHdcw9bbUg==","shasum":"9763b9b7a6b3e753c4c5073f718de8d2b96bb4cf","tarball":"https://registry.npmjs.org/@adamkac/nestjs-slack-bolt/-/nestjs-slack-bolt-0.2.3.tgz","fileCount":48,"unpackedSize":47058,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLssnLXxJ68/xprzQTaE8dMc6wLwVxtJBI4n+ZKr9t4AIge33dbcvAD3i4+p/062mj7mzCNEK8zJjcnu4yxwiL2xQ="}]},"_npmUser":{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"},"directories":{},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-slack-bolt_0.2.3_1693999487004_0.30557855010864365"},"_hasShrinkwrap":false},"0.2.4":{"name":"@adamkac/nestjs-slack-bolt","version":"0.2.4","description":"A Nestjs module using Slack Bold SDK","author":{"name":"bamada"},"license":"MIT","url":"https://github.com/adamkac/nest-slack-bolt#readme","scripts":{"test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"**/*.ts\"","lint":"eslint \"src/**/*.ts\" --fix","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prerelease":"npm run build","adduser":"npm adduser","release":"release-it","prepare":"husky install"},"dependencies":{"@commitlint/cli":"17.7.1","@commitlint/config-angular":"17.7.0","@nestjs/common":"^9.0.0","@nestjs/config":"2.3.4","@nestjs/core":"^9.0.0","@slack/bolt":"3.13.3","husky":"8.0.3","reflect-metadata":"0.1.13"},"devDependencies":{"@nestjs/cli":"9.5.0","@nestjs/schematics":"9.2.0","@nestjs/testing":"9.4.3","@release-it/conventional-changelog":"^5.1.1","@types/jest":"29.5.3","@types/node":"18.17.5","@types/supertest":"2.0.12","@typescript-eslint/eslint-plugin":"5.62.0","@typescript-eslint/parser":"5.62.0","eslint":"8.47.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"4.2.1","jest":"29.6.2","lint-staged":"13.3.0","prettier":"2.8.8","release-it":"^15.5.0","rxjs":"7.8.1","source-map-support":"0.5.21","supertest":"6.3.3","ts-jest":"29.1.1","ts-node":"10.9.1","tsconfig-paths":"4.2.0","typescript":"5.0.4"},"peerDependencies":{"@nestjs/common":"^9.0.0","@nestjs/core":"^9.0.0","reflect-metadata":"0.1.13","rxjs":"^7.2.0"},"lint-staged":{"**/*.{ts,json}":[]},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"types":"./index.d.ts","gitHead":"5930dd1db383243cc3f17ba75a185903ab8cd6f8","bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"homepage":"https://github.com/bamada/nest-slack-bolt#readme","_id":"@adamkac/nestjs-slack-bolt@0.2.4","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Di/7F88uC3m2xV4M2VRK26Zdk1yJQkiQKMQ37FOWMVG/mphGQfdcwmsuvwSnSBoQn3wEbFvSXnOKoocQVifiDg==","shasum":"43827dae663ade43ef2feb7122848e18e0d7c5d4","tarball":"https://registry.npmjs.org/@adamkac/nestjs-slack-bolt/-/nestjs-slack-bolt-0.2.4.tgz","fileCount":48,"unpackedSize":46951,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ5ETPl9gk8UaBxv5m92FrXtOCBGuMwXdAGiIXkQ9bzgIhAIVMzoFtEX+5uhC4i7ik/PFVQraem+Rg0dz3zQjbD0Ge"}]},"_npmUser":{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"},"directories":{},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-slack-bolt_0.2.4_1694006335894_0.49393566541603584"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-17T12:19:58.864Z","0.1.0":"2023-08-17T12:19:59.220Z","modified":"2023-09-06T13:18:56.241Z","0.2.0":"2023-08-17T12:30:00.753Z","0.2.1":"2023-08-17T12:32:52.101Z","0.2.2":"2023-08-17T12:38:43.461Z","0.2.3":"2023-09-06T11:24:47.337Z","0.2.4":"2023-09-06T13:18:56.082Z"},"maintainers":[{"name":"adamkac","email":"adaskaczmarzyk@gmail.com"}],"description":"A Nestjs module using Slack Bold SDK","homepage":"https://github.com/bamada/nest-slack-bolt#readme","repository":{"type":"git","url":"git+https://github.com/bamada/nest-slack-bolt.git"},"author":{"name":"bamada"},"bugs":{"url":"https://github.com/bamada/nest-slack-bolt/issues"},"license":"MIT","readme":"<p align=\"center\">\n  <a href=\"https://github.com/bamada/nest-slack-bolt\" target=\"blank\"><img src=\"logo.svg\" width=\"100\" alt=\"Nestjs Slack Bolt\" /></a>\n</p>\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n<p align=\"center\">A <a href=\"http://nestjs.com/\" target=\"blank\">Nestjs</a> module to interact with <a href=\"https://api.slack.com/\" target=\"_blank\">Slack</a> API using <a href=\"https://api.slack.com/bolt\">Bolt</a> SDK</p>\n\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\n---\n\n## Description\n\nThis module gives a handy way to develop Slack applications using the Nestjs framework\n\n## Features\n\n- Handle Messages\n- Handle Commands\n- Handle Actions\n- Handle Events\n\n## Installation\n\n```bash\n# yarn\n$ yarn add nestjs-slack-bolt\n\n# npm\n$ npm i nestjs-slack-bolt\n```\n\n## Usage\n\nAdd these variables to the `.env` file\n\n```bash\n# to define on API mode\nSLACK_SIGNING_SECRET=\"**\"\n\n# to define on Socket mode\nSLACK_APP_TOKEN=\"**\"\n\n# require variables\nSLACK_BOT_TOKEN=\"**\"\nSLACK_SOCKET_MODE=true\n\n```\n\nImport the `SlackModule`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { SlackModule } from 'nestjs-slack-bolt';\nimport { AppController } from './app.controller';\nimport { AppService } from './app.service';\n\n@Module({\n  imports: [SlackModule],\n  controllers: [AppController],\n  providers: [AppService],\n})\nexport class AppModule {}\n```\n\n## Example\n\nUsing annotations\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { Action, Command, Message, Event } from 'nestjs-slack-bolt';\nimport { AppService } from './app.service';\nimport {\n  SlackActionMiddlewareArgs,\n  SlackCommandMiddlewareArgs,\n  SlackEventMiddlewareArgs,\n} from '@slack/bolt';\n\n@Controller()\nexport class AppController {\n  constructor(private readonly appService: AppService) {}\n\n  @Message('hi') //Handle a message event\n  message({ say }: SlackEventMiddlewareArgs) {\n    say('Hello');\n  }\n\n  @Action('click') //Handle an action\n  action({ say }: SlackActionMiddlewareArgs) {\n    say('click event received');\n  }\n\n  @Command('/list') // handle command\n  command({ say }: SlackCommandMiddlewareArgs) {\n    say('/list command received');\n  }\n\n  @Event('app_home_opened')\n  event({ say }: SlackEventMiddlewareArgs) {\n    say('app_open_event received');\n  }\n}\n```\n\n## Example\n\nUsing the SlackService\n\n```typescript\nimport { Controller } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { SlackService } from 'nestjs-slack-bolt/services/slack.service';\nimport { Cron, CronExpression } from '@nestjs/schedule';\nimport { from } from 'rxjs';\n\n@Controller()\nexport class AppController {\n  constructor(\n    private readonly slackService: SlackService,\n    private readonly configService: ConfigService,\n  ) {}\n\n  @Cron(CronExpression.EVERY_10_SECONDS)\n  cronJob() {\n    this.searchUsers()\n      .pipe()\n      .subscribe((users) => {\n        console.log(JSON.stringify(users));\n      });\n  }\n\n  searchUsers(cursor?: string) {\n    return from(\n      this.slackService.client.users.list({\n        token: this.configService.get('SLACK_BOT_TOKEN'),\n        limit: 1,\n        ...(cursor && { cursor }),\n      }),\n    );\n  }\n}\n```\n\n## TODO\n\n- Improve testing\n- handle additional slack events\n\n## Contribute & Disclaimer\n\n....\n","readmeFilename":"README.md"}