{"_id":"@autotelic/fastify-webhooks","_rev":"1-cc1da37a052185b3b307c25417e27557","name":"@autotelic/fastify-webhooks","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@autotelic/fastify-webhooks","version":"0.1.1","description":"A webhooks plugin for fastify applications","main":"index.js","directories":{"test":"test"},"scripts":{"test":"c8 --100 ava","lint":"standard","fix":"standard --fix","validate":"npm run lint && npm run test"},"repository":{"type":"git","url":"git+https://github.com/autotelic/fastify-webhooks.git"},"keywords":[],"author":{"name":"Autotelic Development Ltd","email":"info@autotelic.com"},"license":"MIT","bugs":{"url":"https://github.com/autotelic/fastify-webhooks/issues"},"homepage":"https://github.com/autotelic/fastify-webhooks#readme","dependencies":{"fastify-plugin":"^3.0.0"},"devDependencies":{"ava":"^3.15.0","c8":"^7.10.0","fastify":"^3.0.0","fastify-cli":"^2.5.1","husky":"^7.0.4","lint-staged":"^12.1.2","standard":"^16.0.3"},"lint-staged":{"*.{js,jsx}":["npm run fix"]},"gitHead":"54ea7232638b6a60fa3c5b8a79730bd72e41388d","_id":"@autotelic/fastify-webhooks@0.1.1","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-APAqu8C20PB/5wz8AOgrr+FbhiPJpFhA6q1C+mDOCXSJUW2mhoIVPphvWn8jY6YVC9TN+7C+Ryx9WExkIU4kcw==","shasum":"4383dc7a074fc28c8597d11bb3f7965f508b390a","tarball":"https://registry.npmjs.org/@autotelic/fastify-webhooks/-/fastify-webhooks-0.1.1.tgz","fileCount":12,"unpackedSize":12222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+Tg9CRA9TVsSAnZWagAA2tgP/i7ZGV1uU1Xz9LU5WQPM\n4CIvogeLhdhERuSfGWdrmGS4tNm+qyZEtxGT6n0xJRCUAKBLAdul1h10/sc5\n48BF0i9ypZHRRxtkD0i9AkhHYf5ZwOlRsuMf6TX50nLAtHQjuAZ7Q70aRxzd\n/ZGJP+zZsrK9AfyD/QaO8mea9MMLrJhsPVx6ozxAbf8flXS4wYE24t/ldk6R\n9Xmo7fU259F7/zTEgakRkH/4CKnlE8HCVvGk7x0XKkC0dkhu4PNjMiyoErDU\nQ2njMrJicLbkf4Gwf/ggQQ1afcJMhvpJterdF8VIMKXnM3auQ53QGETg3hoL\nt+AI5y2gEGnFmNqnm9ut0kxP2Ay3teWUdZ+IBZo4Bg6h2MR7yeszEYDR3aEQ\nGZ9JUw88wmnQaO7ghxDb+TsnwYSimWo7Ll745MAfAoxnEyO73+1t0CY35ohq\nWbAqOz3Ek1KWFPyKT88e7zcRghK2plAa9CDkRUf6orfnN19PYXjkZeMDGUKt\nt6Pofbgd2YRdWZM2XrOXqZXs49mkjX4sWTXkLP34zKX4Tza1vuu3Lu9k+5zD\n2OG8XQYCi0K7/WRv71aL8/Oh8yWQtYde/jAxOe1IFslk3HNCeMH2e5gF8FGk\n3Y9DEyHhOPi0Tx5VJoeIvs4Qc372hJHMFxQTgUnClacX9KzrGShd2hbJTwGG\n2hJ5\r\n=/gVr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2miwEj3b40SW4bTZShTfTa9unVyF/MNXE7GKuvimNHAiAgOyCq0Siz1/969rzdsrIybpkeHO8NiJCklXLxNYdo7Q=="}]},"_npmUser":{"name":"autotelic","email":"info+npm@autotelic.com"},"maintainers":[{"name":"autotelic","email":"info+npm@autotelic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fastify-webhooks_0.1.1_1643722813355_0.8385133800473805"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-01T13:40:13.296Z","0.1.1":"2022-02-01T13:40:13.539Z","modified":"2022-04-04T16:40:49.605Z"},"maintainers":[{"name":"autotelic","email":"info+npm@autotelic.com"}],"description":"A webhooks plugin for fastify applications","homepage":"https://github.com/autotelic/fastify-webhooks#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/autotelic/fastify-webhooks.git"},"author":{"name":"Autotelic Development Ltd","email":"info@autotelic.com"},"bugs":{"url":"https://github.com/autotelic/fastify-webhooks/issues"},"license":"MIT","readme":"# fastify-webhooks\n\nA plugin for implementing incoming webhooks for fastify applications.\n\n## Install\n\n```\nnpm i @autotelic/fastify-webhooks\n```\n\n## Usage\n\n```js\n'use strict'\n\nconst fastifyWebhooks = require('@autotelic/fastify-webhooks')\n\nconst webhooks = [\n  {\n    plugin: async (fastify) => fastify.post('/webhook', (req, res) => {\n      // do something with the event payload\n      res.send('ok')\n    }),\n  },\n]\n\nconst verification = async (fastify, opts) => {\n  // Define a plugin that registers a hook here that verifies the request.\n  fastify.addHook('preValidation', async (request, response) => {\n    // Signature verification should happen inside this hook.\n  })\n}\n\nconst app = require('fastify')()\n\napp.register(fastifyWebhook, { webhooks, verification })\n\nawait app.ready()\n\napp.listen((err, address) => { console.log(`listening at ${address}`)})\n\n```\n\n## Examples\n\nWe provide the following usage examples and recipes:\n- [basic](./examples/basic/README.md)\n\n## API\n\n### Plugin\n\n#### Options\n\nThe configuration object accepts the following fields\":\n\n##### - `webhooks` (required)\n\nAn array of webhook configuration objects. Each entry must contain the following\nfields:\n\n###### - `plugin`\nA fastify plugin that will be registered to handle the webhook route.\n\n##### - `verification` (required)\n\nA fastify plugin that will encapsulate the webhooks plugins. Typically a plugin\nthat registers a preValidation hook which is used to verify a request signature.\n\n## Github Actions/Workflows\n\n#### Triggering a Release\n\n* Trigger the release workflow via release tag\n  ```sh\n  git checkout main && git pull\n  npm version { minor | major | path }\n  git push --follow-tags\n  ```\n\n## License\n\nThis project is covered under the [MIT](./LICENSE) license.\n","readmeFilename":"README.md"}