{"_id":"@calmdownval/bob","_rev":"3-524ac5fccfd61b40b43e1941746be865","name":"@calmdownval/bob","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@calmdownval/bob","description":"Simple GitHub webhook event source listener","version":"1.0.0","license":"ISC","type":"commonjs","main":"./build/index.cjs.min.js","module":"./build/index.esm.min.js","types":"./build/index.d.ts","exports":{".":{"require":"./build/index.cjs.min.js","default":"./build/index.esm.min.js"}},"repository":{"type":"git","url":"https://github.com/CalmDownVal/bob.git"},"scripts":{"build":"rollup -c","prepublishOnly":"yarn build"},"peerDependencies":{"@calmdownval/signal":">=1.0.3"},"devDependencies":{"@calmdownval/eslint-config":"CalmDownVal/eslint-config","@calmdownval/signal":"1.0.3","@rollup/plugin-typescript":"8.1.x","@rollup/plugin-node-resolve":"11.1.x","@types/node":"14.14.x","@typescript-eslint/eslint-plugin":"4.12.x","@typescript-eslint/parser":"4.12.x","eslint":"7.17.x","eslint-import-resolver-typescript":"2.3.x","eslint-plugin-import":"2.22.x","rollup":"2.38.x","rollup-plugin-dts":"2.0.x","rollup-plugin-terser":"7.0.x","typescript":"4.1.x","tslib":"2.1.x"},"licenseText":"Copyright 2021 Václav Lahuta\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n","_id":"@calmdownval/bob@1.0.0","dist":{"shasum":"7dc1eab0e38e8c4af9f705f136697711618f123a","integrity":"sha512-qA0W+y1/aBnSkZs0P6ajmCEB3dzFUWM1s20WDP50GLU4+CwuYNZLdzh8HP/+jLf8f9GLTeRd5DOJKH7ZEKuxSQ==","tarball":"https://registry.npmjs.org/@calmdownval/bob/-/bob-1.0.0.tgz","fileCount":9,"unpackedSize":17572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHu3vCRA9TVsSAnZWagAAIkIP/RGU+LMWyBVPCkEhA30k\ntFW3dAgH7pV/kTIqdBTorUrOJU+VFATj7s7LCCylydgyhQh/8nhF9CAP2dNL\nMOJ/VDYaeRS/w/C32SV0to29whVUnb8Qf9UTLCejjiB33eNUpk7vscsr5iW0\nwDgCqTRR4NQQ0juI5XsiYDvRNDZSZhQcFaoSPjF/Bd2dvdIP+mGpg8S4URjB\nrwG4YR7YKBLGhFqGOREmJQ8BEaNez5Nqbi7tCHIBi6oUjpZOzBhVVimY/W2T\nHBf7SR7B3zOAX115ZzYIur5T3YlqOohyvfEyjDcOoFHWTGRIlPuD4kDXy2hs\nJuvg8q9wXJodHCfTbKCd36EqdCuFwrIg+EeFFi3I7XWxyG97HmL3p9LNZyur\nXG4bqS6ysh8hEVNBnPPJu7H3m4DMfpR5P58U0z4Ff4yUtDcAY9Zin5xeaTxj\nnQq3rU4mUfGl8g7EpzuYkESj64hWhVSznqpK7UWsYNP2vl/3GwURFIRIhsMf\n2vGsw/GErhHprJ7HVY5k8Mp4u/p9uUew7cb9zDtSgdkRlu+Kkf2nRiAACYd9\nHR9kc9amEaYxntK0zMUDUqaCl5PdiFSTuFME7ozFbSLX6QdKVpEdrQOJMew0\nqQDZ2ac+fZf1gVBzNq8pMQACeZK4djluyjnza5zXSgzXhC1a17JgOVovZ96p\nLoBg\r\n=tfl+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDG34aXBEUkl2Q1M7bD9NE5RNhXo52e7pBFsRk/taFGSAiBvibh5ICJDPKQWmnG9N57y0gYW25kv62Sc4vtQ611O3w=="}]},"_npmUser":{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"},"directories":{},"maintainers":[{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bob_1.0.0_1612639726826_0.24938806328033736"},"_hasShrinkwrap":false},"1.0.1":{"name":"@calmdownval/bob","description":"Simple GitHub webhook event source listener","version":"1.0.1","license":"ISC","type":"commonjs","main":"./build/index.cjs.min.js","module":"./build/index.esm.min.js","types":"./build/index.d.ts","exports":{".":{"require":"./build/index.cjs.min.js","default":"./build/index.esm.min.js"}},"repository":{"type":"git","url":"https://github.com/CalmDownVal/bob.git"},"scripts":{"build":"rollup -c","prepublishOnly":"yarn build"},"peerDependencies":{"@calmdownval/signal":">=1.0.3"},"devDependencies":{"@calmdownval/eslint-config":"CalmDownVal/eslint-config","@calmdownval/signal":"1.0.3","@rollup/plugin-typescript":"8.1.x","@rollup/plugin-node-resolve":"11.1.x","@types/node":"14.14.x","@typescript-eslint/eslint-plugin":"4.12.x","@typescript-eslint/parser":"4.12.x","eslint":"7.17.x","eslint-import-resolver-typescript":"2.3.x","eslint-plugin-import":"2.22.x","rollup":"2.38.x","rollup-plugin-dts":"2.0.x","rollup-plugin-terser":"7.0.x","typescript":"4.1.x","tslib":"2.1.x"},"licenseText":"Copyright 2021 Václav Lahuta\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n","_id":"@calmdownval/bob@1.0.1","dist":{"shasum":"b79944ccd8da5dc9e8b9028f9cdf47e77f10b82e","integrity":"sha512-VlOo/jU6CpCUDa/71V8v+ErInHD3VI9jbGuHj0oOVyUoBuItxDUIvgx+gOIgM61URbLVl4/rgltcpg9CIkIa/Q==","tarball":"https://registry.npmjs.org/@calmdownval/bob/-/bob-1.0.1.tgz","fileCount":8,"unpackedSize":17572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKlIdCRA9TVsSAnZWagAAaIQP/1XgJ0xnZ0aBTKqmiE56\nh+AhqyTV7phKEH24sW8DpByGWYsOSh1rx8Zt8byob23p/ikB3s2Mglu+NvQB\ntz0hGeOOcAY0w2SsU+pFYY/b+Z4m3i999Yl/TjxLC9S6oiaLI0cTbeJ+60LB\nBDdWoO5mI5RBr9dEP0+MQDYcCfq/R26vEfe8/6dGDak7wGWjmjoVeJ8XJbLv\nK0ZlrGW+0/lBVx6ZESf9Vw/Q9io2mzOL9g36Nk5AhMip0XdkR/HhmLt8535i\nTzp5oMi2QQZTMSPQeE8Ch97cTo72ARa0KSV6VCp4lHYsA+/8UXmKI4jPM7B6\nAemTk6JOzbUseploFp5BN99galjONNrQsCW71LfNzpQw/HCFk5UvRl0VT+T9\nwQtBQdJOnhsOP+hPO6p/konf4YQuEE3wopOzN8WEguoeTdfit4H5Pbzja8Lk\nS5SiZJQpVsP2VGnDk6uy/NKfWpWdFnk2qE0aB60A1TVIMXIb7dyabQdcXXb6\ntFRfc1MYcz3SaEY25zBnsy36pSQuU5WxkG1boRy5+GwML9tNJYHFmGHAtO02\na3lZb3FYr2b0qcvgVVC6t+Rtb5CqZIJq5qfKvZBEHtMTVhRqH1h+DSuUG9ip\ndT8OUihiCs0UlWVhOEDaWZzbaIUmUX31G45uTCW7Dw9OJ71y3yRKvPGVVD5N\nwMgr\r\n=lD35\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBUhhHk7KQDkXLoRNwzPPZAaT/L+lK5UXZHpjYloR6tAiAuLz841HSSVh/sT2OmcLbVWp3CnNQlECm4CpHm7aWgOA=="}]},"_npmUser":{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"},"directories":{},"maintainers":[{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bob_1.0.1_1613386268730_0.6385514983632816"},"_hasShrinkwrap":false},"1.0.2":{"name":"@calmdownval/bob","description":"Simple GitHub webhook event source listener","version":"1.0.2","license":"ISC","type":"commonjs","main":"./build/index.cjs.min.js","module":"./build/index.esm.min.mjs","types":"./build/index.d.ts","exports":{".":{"require":"./build/index.cjs.min.js","default":"./build/index.esm.min.mjs","types":"./build/index.d.ts"}},"repository":{"type":"git","url":"https://github.com/CalmDownVal/bob.git"},"scripts":{"build":"rollup -c","prepublishOnly":"yarn build"},"peerDependencies":{"@calmdownval/signal":">=4.1.0"},"devDependencies":{"@calmdownval/eslint-config":"1.0.1","@calmdownval/eslint-import-resolver-typescript":"1.1.2","@calmdownval/signal":"4.1.0","@rollup/plugin-typescript":"8.3.3","@rollup/plugin-node-resolve":"13.3.0","@types/node":"18.0.6","@typescript-eslint/eslint-plugin":"5.30.7","@typescript-eslint/parser":"5.30.7","eslint":"8.20.0","eslint-plugin-import":"2.26.0","rollup":"2.77.0","rollup-plugin-dts":"4.2.2","rollup-plugin-terser":"7.0.2","typescript":"4.7.4","tslib":"2.4.0"},"licenseText":"Copyright 2021 Václav Lahuta\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE.\n","_id":"@calmdownval/bob@1.0.2","dist":{"shasum":"05047036f9e2ac680353c92e9290272af3fa597f","integrity":"sha512-8o95hGlmMcOT6Q/EDvMnRj7geQX0mzB6t2izMeyv1M6EMPM3x5H0/oS4v71u5t2+oZfNyRXa+af6ZgshmFlOZw==","tarball":"https://registry.npmjs.org/@calmdownval/bob/-/bob-1.0.2.tgz","fileCount":8,"unpackedSize":17901,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKLrwABTqDFmm5tDs4AKjFMpiF0Yp/dQASxaL96PfQAgIgZyXu9pGoIGNTAAB0Mb6HG+omw3CLzX0f8UPZqMblA2g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1bgaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXkRAAofc6tu0w3rTicUxxKXWR3XhcNYDp3LeM6bQh+huW7FreQve6\r\nobPAguZY/qg3dN//aDa0keoPruKw3K9XsfBqQR4vvyb/9s+wjBuQgxyqCbNp\r\nSjN5dfNfGA1mZ/kvUj+exWoD8+fqKN1EeBU2B2fPFSkW5vZ5KhiSwOHPK81l\r\nN1W1kJ+SvTw83PWWoPpCEcJfJLe5FR5OG9iWCpf2QpMFpbVXAOB1u8jyhXtg\r\nH7TVIPT9OmWg+yhWlDLEYEaDO5+I/rJ5XLyl4gYVYPJ0ETmDEIyGJUP7jYX2\r\niQS2/0c+FwWkKsg8xXHrib4jtpLxi8KQrdYT8M20B4yeFfEHuc3qoSRVNsmH\r\nDt8Lr6PkmTb8fWt60PZpYTK71kRJRlhM5tEqSoasBtTWwKRrrFJb2m1D8O8+\r\nW3ZH3ym9Kqdw/US1BcHMYGKuwzYmjMTLaB097G9A0hm2Kj7DInHsgv3365h/\r\n5Q0bD6+fOzrYJhiM5Rq5lFG6m6aBe7e+kOVwvmO0jCkLyVtZo4/IC4aZX7sO\r\nEzBlDMhYflnhODUB9x1+fHIpjCiDvSk9+ziJIc9ZGHbFWr5rtuAk8h1sG+/e\r\nPnY6Y4ZkBN1BNdqyHVS64MtdSsiFFCxwIn2SQw4JAc5msyuegYlLBNzsTS2O\r\nNcoH/Rbfncg8x0D6AdcZaLJ5EZdRwOrUEvQ=\r\n=NpaO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"},"directories":{},"maintainers":[{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bob_1.0.2_1658173466350_0.7814755239687412"},"_hasShrinkwrap":false}},"time":{"created":"2021-02-06T19:28:46.792Z","1.0.0":"2021-02-06T19:28:47.018Z","modified":"2022-07-18T19:44:26.914Z","1.0.1":"2021-02-15T10:51:08.854Z","1.0.2":"2022-07-18T19:44:26.842Z"},"maintainers":[{"name":"calmdownval","email":"vaclav.lahuta@gmail.com"}],"description":"Simple GitHub webhook event source listener","repository":{"type":"git","url":"https://github.com/CalmDownVal/bob.git"},"license":"ISC","readme":"# Bob\n\nA simple local(host) builder who likes to listen to GitHub webhooks.\n\n## Usage Guide\n\n### 1. Install Bob\n\nYou will also need to install the\n[Signal](https://github.com/CalmDownVal/signal) peer dependency.\n\n```sh\n# using NPM\nnpm install @calmdownval/bob @calmdownval/signal\n\n# using Yarn\nyarn add @calmdownval/bob @calmdownval/signal\n```\n\n### 2. Register GitHub Webhooks\n\nThis package is intended to be used on localhost without the need for any public\nendpoints. This is possible using proxy services like\n[smee.io](https://smee.io/). Once you have a channel ready use that as your\nwebhook URL.\n\nMake sure to\n[set a proper secret](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events/securing-your-webhooks)\nwhen registering webhooks. It is an optional feature, but when using a proxy\nit is the only reliable way to ensure that events you receive are in fact from\nGitHub.\n\n### 3. Create a Listener\n\nCreate a new instance of the `Listener` class with configuration to suit your\nneeds.\n\nYou can use the `tls` key to pass through any options accepted by\n[NodeJS' TLS Socket](https://nodejs.org/dist/latest-v15.x/docs/api/tls.html#tls_new_tls_tlssocket_socket_options),\ntypically certificates or `rejectUnauthorized` for development environments.\n\n```ts\nimport { Listener } from '@calmdownval/bob';\n\nconst listener = new Listener({\n  secret: '<your-secret>',\n  sourceURL: '<webhook-proxy-url>',\n  tls: {\n    rejectUnauthorized: false\n  }\n});\n\n```\n\n### 4. Bind Event Handlers\n\nAssign event handlers using the\n[Signal](https://github.com/CalmDownVal/signal#adding-handlers)\nlibrary to signals provided by the `Listener` instance. The handlers receive\nunmodified event payloads as they are received from GitHub. You can find\n[their definitions here](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events/webhook-events-and-payloads).\n\n```ts\nimport * as Signal from '@calmdownval/signal';\n\nSignal.on(listener.event<any>('push'), ({ data: e }) => {\n  console.log(`${e.sender.login} pushed ${e.commits.length} commits into ${e.repository.full_name}.`);\n});\n```\n\nThe `event` method of the `Listener` class returns a signal triggered when the\nGitHub webhook specified by the first argument is invoked. If you omit this\nargument or use the `Listener.ANY_EVENT` constant you will receive a signal that\ntriggers on *any* GitHub webhook received. This is useful if you wish to switch\nbetween event types manually.\n\nUsing the type argument of the `event` method you can inject typings of the\nevent. GitHub webhook typings are out of scope of this library, instead consider\nusing [@octokit/webhooks-definitions](https://github.com/octokit/webhooks).\n","readmeFilename":"readme.md"}