{"_id":"@bluecanvas/sdk","_rev":"41-7c606ea37c280a383f61c06066636dbc","name":"@bluecanvas/sdk","dist-tags":{"latest":"3.0.0"},"versions":{"2.1.0":{"name":"@bluecanvas/sdk","version":"2.1.0","keywords":["bluecanvas","api","http","salesforce","client"],"author":{"name":"bluecanvas.io"},"license":"MIT","_id":"@bluecanvas/sdk@2.1.0","maintainers":[{"name":"xoob","email":"alex@xoob.de"}],"homepage":"https://github.com/bluecanvas/node-bluecanvas-sdk#readme","bugs":{"url":"https://github.com/bluecanvas/node-bluecanvas-sdk/issues"},"dist":{"shasum":"35ebd8b3ef4d8253f6236ec564e063866203fde3","tarball":"https://registry.npmjs.org/@bluecanvas/sdk/-/sdk-2.1.0.tgz","fileCount":44,"integrity":"sha512-kBo9KiaTobyOOoN1mrryHWGnVFrkTaofG89b3KWuNn2QO6H+WGZdvQR7KT4YmQwg/kEwvPMRGFCnE2UdIbzS/A==","signatures":[{"sig":"MEUCIQCLjF9qXi9Yz+3dk6PoqgHRGmhca0iYydH2XsjKzA9RuwIgQLdzh+Ml3Vu0BnMLVukry8T4WFDxOq/IDyVn/5MhIIM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxkq/CRA9TVsSAnZWagAAuOkP/0zWW+t6s3fiO38Na/hb\nZN23bG5tkBicwUlZJHWESL291gjpXahtsZWQRcHzrlzbMYBFiT5vAA7DjXmF\nyO8egEWb+CFzL3UkjTC3BuFVRGitNO5fHyjZuWj7HJP2SdYdEb5vYNDC4Rs0\nAeYEtUWz3UPNW+RtPROSgp6r7auYV5BemTXRUjlWYlOfV7KQTDbP0zoINgqr\nsqXg3643N5/40PCVv33bcrXHBkWRnoUHrOm7opIoj0PvvS3wFWNXKH0Pui6B\nVFFkg9r9dUKPeDRW926Fyh/fBARkJZmqFZzBFE12vvkYqM+XObyPcd0u+jhH\n12rjhjh8niTFtEHGGc+PtK7S5vxftEtrB5Cb1mDFZl9R+Iv+qWpfZdKz4UJo\nPQRp1qERj/G7ZkF2Eq+PggHle2VA+d72vBx1qqbsjfmQqpOqT7urc+W8o+ED\ngioLfVnw8kRQwuAbsJB6376vv/JavCcRl5/p/XFFzUs5hv7yXV2/t0rM/mLH\nEtJ66JD26dUZKCqGnEYFT1lAr7Bq7CItaCYByxBShewGPyJEpJotQg4xZcCk\neQp9XRjoxX75QuT+BpeRgYG8AJqmzC5Bw3ja6Vrk0B+gs5B6GtWMFY76Zli3\ntU0xXIeJ87TYjPMZI4e7PW8tI+tzW2/9RUrneMpoqF+w5ZmjoNqDBxVFK0iC\niDiA\r\n=JZc3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"664140a0aceb3e01f3eaf6c358b9e42beca2f4fb","scripts":{"bump":"npm --no-git-tag-version version patch","build":"tsc","clean":"rimraf dist types","watch":"tsc -w","prepare":"npm run build","publish":"npm publish","bump:pre":"npm --no-git-tag-version version preminor","docs:gen":"rimraf docs && typedoc --plugin typedoc-plugin-markdown  --excludePrivate --excludeProtected --excludeTags --hideIndexes --hideBreadcrumbs --readme none --out docs","prebuild":"npm run clean","bump:again":"npm --no-git-tag-version version prerelease","publish:next":"npm publish --tag next","bump:complete":"npm --no-git-tag-version version minor"},"_npmUser":{"name":"xoob","email":"alex@xoob.de"},"repository":{"url":"git+https://github.com/bluecanvas/node-bluecanvas-sdk.git","type":"git"},"_npmVersion":"7.13.0","description":"Official library for using the Blue Canvas API","directories":{},"_nodeVersion":"16.2.0","dependencies":{"axios":"^0.21.1","uri-tag":"^1.2.0","@hapi/joi":"^17.1.1","@hapi/boom":"^9.1.0","@hapi/hapi":"^19.1.1","@hapi/wreck":"^17.0.0","axios-logger":"^2.3.1","sns-validator":"^0.3.4","axios-oauth-client":"^1.3.0","axios-token-interceptor":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.4","rimraf":"^3.0.2","ts-jest":"^27.0.3","ts-node":"^10.0.0","typedoc":"0.17.8","typescript":"^3.9.7","@types/jest":"^26.0.23","@types/hapi__joi":"^17.1.0","@types/hapi__boom":"^9.0.1","@types/hapi__hapi":"^19.0.3","@types/hapi__hoek":"^9.0.1","@types/hapi__wreck":"^17.0.1","@types/sns-validator":"^0.3.0","typedoc-plugin-markdown":"2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.1.0_1623607999685_0.21689293063515702","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"@bluecanvas/sdk","version":"2.1.1","keywords":["bluecanvas","api","http","salesforce","client"],"author":{"name":"bluecanvas.io"},"license":"MIT","_id":"@bluecanvas/sdk@2.1.1","maintainers":[{"name":"xoob","email":"alex@xoob.de"}],"homepage":"https://github.com/bluecanvas/node-bluecanvas-sdk#readme","bugs":{"url":"https://github.com/bluecanvas/node-bluecanvas-sdk/issues"},"dist":{"shasum":"a483c064b600ad53d9f5ad02b8f82c930223bc67","tarball":"https://registry.npmjs.org/@bluecanvas/sdk/-/sdk-2.1.1.tgz","fileCount":44,"integrity":"sha512-fh+TxvBD/UAsjEVrPTfLmnyaBpoAxszOrxn0jMwTpkiNrGk+Gxdftdgi7gbeD/cTZKY3eZ15Tug8VRTfJW+Iqg==","signatures":[{"sig":"MEUCIGYKS/ho8wladiKZZC2ihqF3kMEoUuQANxM8Ze1iAXc4AiEAlg2qBsxQNX12Efbapyn0RU3NRTinB4L9Zfo3r29m7n8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxmDPCRA9TVsSAnZWagAATngP/0rCSidymoaqHaWGuLgl\nT1S6rCUQobUTH9XCA3NkhAuaPMg6L5xF7RZ4ZibNnD+9Fv+iaP8nyXFpdoDp\nvNbG0ya9GcytGf4O/bfYyotDGx0xY4r/Rf+fE2ReQ2afQfAOu/5msHjy0PVC\nF8aooOwFqhDwaL2MK9wkJu4VI9JfiZWNUjOWLUM/OX3j46xek7MwXiL5m+pO\nNg5f5osT/+XKMKEDVKhOuARxkfyqN3ABq3y4OjvQf5k85bNxnuvDUa0wvpQO\nnhVXh2SY/kauAtAZHbOprVXBfGhr5T7MaxpMEXiFaG3NMMN0HoeJm0XvVWqh\n+uVBFG8dqZ3JBm/eMPr0SH6G/zaBd65mFhAc6TcPXRX8Si0JrOlYjBzq81RG\no/j5Ojde+HinJ5Tdi2QTClvDAkrE94FHapN7TpuqWSekf4ALCwjwMr2TSUwy\nFmgl0WaAvcLTIypn4ADkmRdjoPOTcyNxwsyMp13PhfzxgzFX9vaCjluAhkxp\nTr9ZTrWzBBVZecdRbu0+4s/UmElzNWOnhrVJIvIHaLSYNSphSnlHU+0Tf/ly\nc2Brs2kgW/VTtfVJc3Cf5mGJJ+Ja8Kjkr6Guf6GUgBcgl+Hs28tG93DYqDnz\nbXkICLIIR1nzFj/GaSF0IckzBB2fLXEvb4OOyrScBhtddGy/mIanbP7Q1r9s\nvdg1\r\n=IOB8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"878caf3dbd5b7cedfd56d426cc0d142625082b1b","scripts":{"bump":"npm --no-git-tag-version version patch","build":"tsc","clean":"rimraf dist types","watch":"tsc -w","prepare":"npm run build","publish":"npm publish","bump:pre":"npm --no-git-tag-version version preminor","docs:gen":"rimraf docs && typedoc --plugin typedoc-plugin-markdown  --excludePrivate --excludeProtected --excludeTags --hideIndexes --hideBreadcrumbs --readme none --out docs","prebuild":"npm run clean","bump:again":"npm --no-git-tag-version version prerelease","publish:next":"npm publish --tag next","bump:complete":"npm --no-git-tag-version version minor"},"_npmUser":{"name":"xoob","email":"alex@xoob.de"},"repository":{"url":"git+https://github.com/bluecanvas/node-bluecanvas-sdk.git","type":"git"},"_npmVersion":"7.13.0","description":"Official library for using the Blue Canvas API","directories":{},"_nodeVersion":"16.2.0","dependencies":{"axios":"^0.21.1","uri-tag":"^1.4.0","@hapi/joi":"^17.1.1","@hapi/boom":"^9.1.2","@hapi/hapi":"^20.1.4","@hapi/wreck":"^17.1.0","axios-logger":"^2.3.1","sns-validator":"^0.3.4","axios-oauth-client":"^1.3.0","axios-token-interceptor":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.4","rimraf":"^3.0.2","ts-jest":"^27.0.3","ts-node":"^10.0.0","typedoc":"0.17.8","typescript":"^3.9.7","@types/jest":"^26.0.23","@types/hapi__joi":"^17.1.6","@types/hapi__boom":"^9.0.1","@types/hapi__hapi":"^20.0.8","@types/hapi__hoek":"^9.0.1","@types/hapi__wreck":"^17.0.1","@types/sns-validator":"^0.3.0","typedoc-plugin-markdown":"2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.1.1_1623613647465_0.0474341059743566","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@bluecanvas/sdk","version":"2.2.0","keywords":["bluecanvas","api","http","salesforce","client"],"author":{"name":"bluecanvas.io"},"license":"MIT","_id":"@bluecanvas/sdk@2.2.0","homepage":"https://github.com/bluecanvas/node-bluecanvas-sdk#readme","bugs":{"url":"https://github.com/bluecanvas/node-bluecanvas-sdk/issues"},"dist":{"shasum":"cdc30a91eb32f1762cdea7eaeeabf1fefe52ae46","tarball":"https://registry.npmjs.org/@bluecanvas/sdk/-/sdk-2.2.0.tgz","fileCount":54,"integrity":"sha512-CQF1rrUcnoESijqX1IIST5c74MSK68awktEKr5hTuGL3gvx445eSVjk3IzIf3iSJBB++CyIbKBj+vu11Xy20Ag==","signatures":[{"sig":"MEQCIG4u/PFY3G2IixjuCbyob7ocbj1xI8BrH22F0VZ1FMAXAiBxxCTj9Gk4sI9Er2nIVEojvr0KGTCvhdtX9lR9gWVVPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68400},"jest":{"testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a5143205c4697be457571a9c87cb9ff311457b58","scripts":{"bump":"npm --no-git-tag-version version patch","test":"jest","build":"tsc","clean":"rimraf dist types","watch":"tsc -w","prepare":"npm run build","publish":"npm publish","bump:pre":"npm --no-git-tag-version version preminor","docs:gen":"rimraf docs && typedoc --plugin typedoc-plugin-markdown  --excludePrivate --excludeProtected --excludeTags --hideIndexes --hideBreadcrumbs --readme none --out docs","prebuild":"npm run clean","bump:again":"npm --no-git-tag-version version prerelease","publish:next":"npm publish --tag next","bump:complete":"npm --no-git-tag-version version minor"},"_npmUser":{"name":"bluecanvasreen","email":"reen@bluecanvas.io"},"repository":{"url":"git+https://github.com/bluecanvas/node-bluecanvas-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official library for using the Blue Canvas API","directories":{},"_nodeVersion":"20.11.0","dependencies":{"axios":"^1.7.2","uri-tag":"^1.4.0","@hapi/joi":"^17.1.1","@hapi/boom":"^9.1.2","@hapi/hapi":"^20.1.4","@hapi/wreck":"^17.1.0","axios-logger":"^2.8.1","sns-validator":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","ts-node":"^10.0.0","typedoc":"^0.25.13","prettier":"^3.3.2","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/hapi__joi":"^17.1.6","@types/hapi__boom":"^9.0.1","@types/hapi__hapi":"^20.0.8","@types/hapi__hoek":"^9.0.1","@types/hapi__wreck":"^17.0.1","@types/sns-validator":"^0.3.0","typedoc-plugin-markdown":"^4.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.2.0_1719223814672_0.24729974622936113","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@bluecanvas/sdk","version":"3.0.0","description":"Official library for using the Blue Canvas API","main":"dist/index.js","types":"dist/index.d.ts","author":{"name":"bluecanvas.io"},"scripts":{"clean":"rimraf dist types","docs:gen":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --excludePrivate --excludeProtected --hideBreadcrumbs --readme none --out docs","prebuild":"npm run clean","prepare":"npm run build","build":"tsc","watch":"tsc -w","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/bluecanvas/node-bluecanvas-sdk.git"},"keywords":["bluecanvas","api","http","salesforce","client"],"dependencies":{"@hapi/boom":"^10.0.1","@hapi/hapi":"^21.4.4","axios":"^1.7.2","joi":"^17.13.3"},"devDependencies":{"@types/jest":"^29.0.0","jest":"^29.0.0","prettier":"^3.3.2","rimraf":"^6.0.1","ts-jest":"^29.0.0","ts-node":"^10.0.0","typedoc":"^0.28.4","typedoc-plugin-markdown":"^4.6.3","typescript":"^5.0.0"},"jest":{"moduleFileExtensions":["js","json","ts"],"testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"publishConfig":{"access":"public"},"license":"MIT","gitHead":"3c9979c28d9821b9079b2d95548d72f295fe60e7","_id":"@bluecanvas/sdk@3.0.0","bugs":{"url":"https://github.com/bluecanvas/node-bluecanvas-sdk/issues"},"homepage":"https://github.com/bluecanvas/node-bluecanvas-sdk#readme","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-9+WhMoQOKuVJ78RhrNxJPgcm1mUi6uPkG014NkViCmse0hbwd7El/iUgcuvUk5ESUrqwcZQMpbADSGLWmK4D1Q==","shasum":"c422fea80dbb2a85368f47b703aa627399e94901","tarball":"https://registry.npmjs.org/@bluecanvas/sdk/-/sdk-3.0.0.tgz","fileCount":50,"unpackedSize":50543,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDGfZ564lMKOwDZKhYFAU4etaqdYYRXFS0UCD7rjpICFgIgJI80MEbHShD0qhKtUDb85Rs/GHC0SuD9+jaw79yomb8="}]},"_npmUser":{"name":"bluecanvasreen","email":"reen@bluecanvas.io"},"directories":{},"maintainers":[{"name":"bluecanvasreen","email":"reen@bluecanvas.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_3.0.0_1771341917771_0.39276845260566784"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-21T22:08:42.243Z","modified":"2026-02-17T15:25:18.077Z","1.0.0":"2020-05-21T22:08:42.459Z","1.0.1":"2020-05-21T22:20:27.145Z","1.0.2":"2020-05-22T10:38:21.277Z","1.1.0":"2020-05-25T22:12:23.763Z","1.1.1":"2020-05-25T22:13:21.142Z","1.1.2":"2020-05-25T22:22:38.801Z","1.1.3":"2020-05-26T12:25:34.353Z","1.2.0":"2020-07-28T18:36:41.024Z","1.2.1":"2020-07-28T19:24:14.053Z","2.0.0":"2021-06-10T14:39:18.178Z","2.0.1":"2021-06-10T15:43:35.266Z","2.0.2":"2021-06-11T09:14:37.521Z","2.1.0-0":"2021-06-11T10:38:36.972Z","2.1.0-1":"2021-06-11T10:42:51.514Z","2.1.0-2":"2021-06-13T18:01:40.203Z","2.1.0":"2021-06-13T18:13:19.841Z","2.1.1":"2021-06-13T19:47:27.571Z","2.2.0":"2024-06-24T10:10:14.855Z","3.0.0":"2026-02-17T15:25:17.927Z"},"bugs":{"url":"https://github.com/bluecanvas/node-bluecanvas-sdk/issues"},"author":{"name":"bluecanvas.io"},"license":"MIT","homepage":"https://github.com/bluecanvas/node-bluecanvas-sdk#readme","keywords":["bluecanvas","api","http","salesforce","client"],"repository":{"type":"git","url":"git+https://github.com/bluecanvas/node-bluecanvas-sdk.git"},"description":"Official library for using the Blue Canvas API","maintainers":[{"name":"bluecanvasreen","email":"reen@bluecanvas.io"}],"readme":"# Blue Canvas Node.js SDK\n\n- [API Documentation](https://github.com/bluecanvas/node-bluecanvas-sdk/blob/master/docs)\n\nThe `@bluecanvas/sdk` package contains a simple, convenient, and configurable\nHTTP client for making requests to the Blue Canvas REST API. Use it in your app\nto call any of the API methods, and let it handle formatting, queuing, retrying,\npagination, and more.\n\n## Installation\n\n```shell\n$ npm install @bluecanvas/sdk\n```\n\n## Usage\n\n### Initialize the client\n\nThe package exports a `Client` class. All you need to do is instantiate it,\nand you're ready to go. You'll typically initialize it with your `clientId`\nand `clientSecret`, which are used to securely authenticate yourself via\nOAuth 2.0. You can find those credentials in your Account Settings\nin Blue Canvas.\n\n```javascript\nconst { Client } = require(\"@bluecanvas/sdk\");\n\n// Read options from environment variables\nconst clientId = process.env.BLUECANVAS_CLIENT_ID;\nconst clientSecret = process.env.BLUECANVAS_CLIENT_SECRET;\n\n// Initialize the client\nconst bluecanvas = new Client({\n  clientId,\n  clientSecret,\n});\n```\n\n### Calling the REST API\n\nThe client instance has a named method for each of the public methods in the\nBlue Canvas REST API. For instance, there is `deployments.putCheck`, used to\nmark deployment requests with an error, failure, pending, or success state. Each\nclient method accepts request arguments as an options object. Each method\nreturns a `Promise` which resolves with the response data or rejects with\nan error.\n\n```javascript\n(async () => {\n  // Creates or updates the status of a check\n  // https://docs.bluecanvas.io/reference/checks-api#put-check\n  const result = await bluecanvas.deployments.putCheck({\n    deploymentNumber: 293,\n    name: \"wall-e\",\n    check: {\n      state: \"DONE\",\n      result: \"SUCCESS\",\n      description: \"The results are in, everything looks spiffy.\",\n    },\n  });\n})();\n```\n\n### Handle errors\n\nErrors do happen. In these cases, the returned `Promise` will reject with an\n`Error`. You should catch the error and use the information it contains to\ndecide how your app can proceed.\n\n```javascript\n(async () => {\n    try {\n        const result = await bluecanvas.deployments.putCheck({ ... });\n    } catch (e) {\n        console.error('Well, that was unexpected.');\n    }\n})();\n```\n\n## Events API\n\nYou can quickly set up webhooks and handle notifications from the [Events API](https://docs.bluecanvas.io/reference/events-api) with this SDK. We include a [hapi](https://hapi.dev) plugin for that purpose. To get started, you launch a tiny microservice and register the bundled `EventHandlerPlugin`. The plugin comes with secure defaults and does all the validation and message parsing for you. You just need to handle the message.\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/bluecanvas/example-node-eventhandler)\n\n```shell\n$ npm install @bluecanvas/sdk\n$ npm install @hapi/hapi\n```\n\n```javascript\nconst Hapi = require(\"@hapi/hapi\");\nconst {\n  WebhookEventHandlerPlugin,\n  NotificationMessage,\n} = require(\"@bluecanvas/sdk\");\n\n// Read options from environment variables\nconst webhookSecret = process.env.BLUECANVAS_WEBHOOK_SECRET;\n\nasync function main() {\n  // Initialize the server and enable error logging\n  const server = new Hapi.Server({\n    host: \"0.0.0.0\",\n    port: process.env.PORT || 3000,\n    debug: { request: [\"error\"] },\n  });\n\n  // Declare a message handler function for incoming notifications\n  function onNotification(req, h, message: NotificationMessage) {\n    console.log(\"Got notification from Blue Canvas:\", message);\n\n    // Look for specific event types. This one is emitted when a new\n    // deployment request is created. You can find other event types\n    // in the Events API documentation.\n    if (message.Event === \"deployments/created\") {\n      console.log(\n        \"%s created deployment #%d\",\n        message.Deployment.creator.email,\n        message.Deployment.deploymentNumber\n      );\n    }\n\n    return \"ok\";\n  }\n\n  // Register the Blue Canvas `WebhookEventHandlerPlugin` with the server and\n  // pass our `webhookSecret` and `onNotification` handler as options.\n  await server.register({\n    plugin: WebhookEventHandlerPlugin,\n    options: {\n      webhookSecret,\n      onNotification,\n    },\n  });\n\n  // Ready, set, go!\n  await server.start();\n\n  console.log(\n    \"Server listening on %s and waiting for notifications\",\n    server.info.uri\n  );\n}\n\nprocess.on(\"unhandledRejection\", (err) => {\n  console.log(err);\n  process.exit(1);\n});\n\nmain();\n```\n\n## Requirements\n\nThis package supports Node 12.x LTS and higher. It's highly recommended to use\n[the latest LTS version of node](https://github.com/nodejs/Release#release-schedule),\nand the documentation is written using syntax and features from that version.\n","readmeFilename":"README.md"}