{"_id":"@injectivelabs/grpc-web","_rev":"19-f1b8cad6bfcbd4a74a01ebeaf83a9814","name":"@injectivelabs/grpc-web","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@injectivelabs/grpc-web","version":"0.0.1","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"author":{"name":"Improbable"},"license":"Apache-2.0","_id":"@injectivelabs/grpc-web@0.0.1","maintainers":[{"name":"mmeloni","email":"cleaversdev@gmail.com"},{"name":"hmoragrega","email":"hilari@hilarimoragrega.com"},{"name":"shane-moore","email":"skm1790@gmail.com"},{"name":"phucta","email":"phuc@injectivelabs.org"},{"name":"thomasralee","email":"thomas.leera@gmail.com"},{"name":"albertchon","email":"albert@injectiveprotocol.com"},{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},{"name":"markuswaas","email":"mail@markuswaas.de"},{"name":"nhannamsiu","email":"dangduynam95@gmail.com"},{"name":"maximshen","email":"maxim.shen@injectiveprotocol.com"}],"dist":{"shasum":"24c028f6db50e589e30505efd2077110c8b492ba","tarball":"https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz","fileCount":22,"integrity":"sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==","signatures":[{"sig":"MEUCIQCFV8Qpp1k0NGJb43TjIyehDAtYYkor00Pqsc3kky8t1QIgU/dpmB5fFTYm0YLTcZIXL1/7ZFXu/Im/SOSoqoqldv8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8zVTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqWKg/+I91kchJvlNBEUSaV6mylVZY58JBWbknWwm+Xrvbgqedxl4SX\r\nNL/3i8UD8HgWTfXvxdyJGo1QqxtDv2oLlSi2VM79cMPpZQpBUN1+q2r/V6NW\r\npNfhXMh5Fc3CkgmeDPyXuqXh2UB7M5ibwPCKnzeefdCyeGOPY61eJGMdax/z\r\nkQmTuEsInRyDie3SpxakeL+Jkogv3XsdoX10g4rOqIjn1825IdHpna2vl5S2\r\n93JbyVRPXw6LPC/7EgKOTfyM4xpFJOFU9ekC2T9uv1usTyGVPGF8g7/3Kspa\r\nGEGEuAWDgW7osTfSQ3TYnQkqv6Yktl2WmcXZ9sSAbO4PlqTyqqXA28NozJyF\r\nFyzoaufZYekS7DOJi71Bc+J+dyxUQRhA0Nx6owQ1ztcmb24pkFZjF+0waKY5\r\nB9O7743DRhmrZSbHJxjbqR3pTaM0DY1iu0VwRRCIL0Xi4oMm6EonnKkmans3\r\n5Y0B5hfkD9vmL2EomNQZzlz+AbeEC8lmql2oqjX2gpLitqU4TuDjV2LXCvdJ\r\nViX9jV9j11QsejoRjJoHEWRZ0+yKdZtAfUQ2tDsDWdvBAaMeqJTHLOZtP3Ab\r\n5p/Gp/B5o30zSVGoIXVXfQa4Um6kRBoBGdlARabrI2ptNb7gA5u3CzSfT22P\r\n1wo9aqaVQbNcd7T+xXOg4Frijc3z7sRB9bk=\r\n=CiEl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/grpc-web-client.js","types":"dist/typings/index.d.ts","browser":"dist/grpc-web-client.umd.js","gitHead":"1d9bbb09a0990bdaff0e37499570dbc7d6e58ce8","scripts":{"clean":"rm -rf dist","lib:build":"npm run clean && webpack","postbootstrap":"npm run lib:build"},"_npmUser":{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"_npmVersion":"8.11.0","description":"gRPC-Web client for browsers (JS/TS)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"browser-headers":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.19.0","ts-loader":"^8.0.14","typescript":"4.1.3","@types/node":"^14.14.22","webpack-cli":"^4.4.0","google-protobuf":"^3.14.0","@types/google-protobuf":"^3.7.4"},"peerDependencies":{"google-protobuf":"^3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/grpc-web_0.0.1_1676883283491_0.5997074559594631","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@injectivelabs/grpc-web","version":"0.0.2","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"author":{"name":"Improbable"},"license":"Apache-2.0","_id":"@injectivelabs/grpc-web@0.0.2","maintainers":[{"name":"albertchon","email":"albert@injectiveprotocol.com"},{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},{"name":"markuswaas","email":"mail@markuswaas.de"},{"name":"hmoragrega","email":"hilari@hilarimoragrega.com"},{"name":"shanemoore","email":"skm1790@gmail.com"},{"name":"thomasralee","email":"thomas.leera@gmail.com"},{"name":"mmeloni","email":"cleaversdev@gmail.com"},{"name":"ivan-angelkoski","email":"ivanangelkoski95@gmail.com"},{"name":"danidomi","email":"daniel.alexandre.domingues@gmail.com"},{"name":"proofofze","email":"jose@injectivelabs.org"},{"name":"nicolasbaum","email":"keith.baum@yahoo.com.ar"},{"name":"dbrajovic","email":"dusan@injectivelabs.org"}],"dist":{"shasum":"65461b5dc356bf7877d08fbe911347a80bd4ea29","tarball":"https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.2.tgz","fileCount":22,"integrity":"sha512-aUXMHUarZ2wtbXPqu6/kqFUnQZpmCgi5Hppp6RUKi3OFpuYhhQHiaa65kAjV9Qx9XmBjyPuk9+vTE9u59YcbTQ==","signatures":[{"sig":"MEUCIQC28HFTo+oYJBelQq9Mac8zejflSuEways02u35Ze9AfAIgDDn/K4Aoyzj16HrJLY9LS4jCA8u4UOdWC5VuCQd4vWI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66634},"main":"dist/grpc-web-client.js","types":"dist/typings/index.d.ts","browser":"dist/grpc-web-client.umd.js","gitHead":"86497a728ffa39afcda7666e0812b756c674d44f","scripts":{"clean":"rm -rf dist","lib:build":"npm run clean && webpack","postbootstrap":"npm run lib:build"},"_npmUser":{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"_npmVersion":"10.8.2","description":"gRPC-Web client for browsers (JS/TS)","directories":{},"_nodeVersion":"20.18.0","dependencies":{"browser-headers":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.97.1","ts-loader":"^9.5.2","typescript":"5.7.3","@types/node":"^22.10.7","webpack-cli":"^6.0.1","google-protobuf":"^3.21.4","@types/google-protobuf":"^3.15.12"},"peerDependencies":{"google-protobuf":"^3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/grpc-web_0.0.2_1737447514138_0.3358032761510579","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@injectivelabs/grpc-web","version":"0.0.3","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"author":{"name":"Improbable"},"license":"Apache-2.0","_id":"@injectivelabs/grpc-web@0.0.3","maintainers":[{"name":"albertchon","email":"albert@injectiveprotocol.com"},{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},{"name":"markuswaas","email":"mail@markuswaas.de"},{"name":"hmoragrega","email":"hilari@hilarimoragrega.com"},{"name":"shanemoore","email":"skm1790@gmail.com"},{"name":"thomasralee","email":"thomas.leera@gmail.com"},{"name":"mmeloni","email":"cleaversdev@gmail.com"},{"name":"ivan-angelkoski","email":"ivanangelkoski95@gmail.com"},{"name":"danidomi","email":"daniel.alexandre.domingues@gmail.com"},{"name":"proofofze","email":"jose@injectivelabs.org"},{"name":"nicolasbaum","email":"keith.baum@yahoo.com.ar"},{"name":"dbrajovic","email":"dusan@injectivelabs.org"}],"dist":{"shasum":"574e0735b38cfc18f55f2f1fbfa254b7044a7139","tarball":"https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.3.tgz","fileCount":22,"integrity":"sha512-JP/99vN2/H7uzaOnZrLFA6xDHRPwzKTP/OhGW0FtG4OrSzsir+sc0NkxzL9KWlvifahZTCf1qUknzF9xYiqtSA==","signatures":[{"sig":"MEQCIClfW4aYNa7V1RoyhV/tiIvtWRafdn682EL2d5VpnQKVAiAQvnh/8gbIyefYeZLsTp42ojjYSv0OzDb4j9LCqWpr3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67720},"main":"dist/grpc-web-client.js","types":"dist/typings/index.d.ts","browser":"dist/grpc-web-client.umd.js","gitHead":"86497a728ffa39afcda7666e0812b756c674d44f","scripts":{"clean":"rm -rf dist","lib:build":"npm run clean && webpack","postbootstrap":"npm run lib:build"},"_npmUser":{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"_npmVersion":"10.8.2","description":"gRPC-Web client for browsers (JS/TS)","directories":{},"_nodeVersion":"20.18.0","dependencies":{"browser-headers":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.97.1","ts-loader":"^9.5.2","typescript":"5.7.3","@types/node":"^22.10.7","webpack-cli":"^6.0.1","google-protobuf":"^3.21.4","@types/google-protobuf":"^3.15.12"},"peerDependencies":{"google-protobuf":"^3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/grpc-web_0.0.3_1737448265202_0.9308992045574975","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@injectivelabs/grpc-web","version":"0.0.4","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"author":{"name":"Improbable"},"license":"Apache-2.0","_id":"@injectivelabs/grpc-web@0.0.4","maintainers":[{"name":"albertchon","email":"albert@injectiveprotocol.com"},{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},{"name":"markuswaas","email":"mail@markuswaas.de"},{"name":"hmoragrega","email":"hilari@hilarimoragrega.com"},{"name":"shanemoore","email":"skm1790@gmail.com"},{"name":"thomasralee","email":"thomas.leera@gmail.com"},{"name":"mmeloni","email":"cleaversdev@gmail.com"},{"name":"ivan-angelkoski","email":"ivanangelkoski95@gmail.com"},{"name":"danidomi","email":"daniel.alexandre.domingues@gmail.com"},{"name":"proofofze","email":"jose@injectivelabs.org"},{"name":"nicolasbaum","email":"keith.baum@yahoo.com.ar"},{"name":"dbrajovic","email":"dusan@injectivelabs.org"}],"dist":{"shasum":"f35788cbad2097269a9efb257990d252cb3fb0e4","tarball":"https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.4.tgz","fileCount":22,"integrity":"sha512-lQrQ//YsRDo05YckLcgKP4Ptk+VPVyEbtLhb7q6PoNXHwL5UyoDxZvFYmF35y5l7mYYu/agzcJmoNROJrfzcVw==","signatures":[{"sig":"MEUCIQCEaCHZfRUMIKUt2Gyw1nsscTopeJvvRZrAEsoDFbwEpgIgBLdQVj1Ub5wBgdDkM3dGopzZZkg8n5YqnZT0co0hcMc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68134},"main":"dist/grpc-web-client.js","types":"dist/typings/index.d.ts","browser":"dist/grpc-web-client.umd.js","gitHead":"86497a728ffa39afcda7666e0812b756c674d44f","scripts":{"clean":"rm -rf dist","lib:build":"npm run clean && webpack","postbootstrap":"npm run lib:build"},"_npmUser":{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"_npmVersion":"10.8.2","description":"gRPC-Web client for browsers (JS/TS)","directories":{},"_nodeVersion":"20.18.0","dependencies":{"browser-headers":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.97.1","ts-loader":"^9.5.2","typescript":"5.7.3","@types/node":"^22.10.7","webpack-cli":"^6.0.1","google-protobuf":"^3.21.4","@types/google-protobuf":"^3.15.12"},"peerDependencies":{"google-protobuf":"^3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/grpc-web_0.0.4_1737448479620_0.8873763949971367","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@injectivelabs/grpc-web","version":"0.0.5","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"author":{"name":"Improbable"},"license":"Apache-2.0","_id":"@injectivelabs/grpc-web@0.0.5","maintainers":[{"name":"albertchon","email":"albert@injectiveprotocol.com"},{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},{"name":"markuswaas","email":"mail@markuswaas.de"},{"name":"hmoragrega","email":"hilari@hilarimoragrega.com"},{"name":"shanemoore","email":"skm1790@gmail.com"},{"name":"thomasralee","email":"thomas.leera@gmail.com"},{"name":"mmeloni","email":"cleaversdev@gmail.com"},{"name":"ivan-angelkoski","email":"ivanangelkoski95@gmail.com"},{"name":"danidomi","email":"daniel.alexandre.domingues@gmail.com"},{"name":"proofofze","email":"jose@injectivelabs.org"},{"name":"nicolasbaum","email":"keith.baum@yahoo.com.ar"},{"name":"dbrajovic","email":"dusan@injectivelabs.org"}],"dist":{"shasum":"9e95b863d017b9a27d47af4fc59a65bfa5d42376","tarball":"https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.5.tgz","fileCount":22,"integrity":"sha512-Btu8t9HqIdNrGxI3GIc+6mUqUq85Jhj7um+5prSMQDO8o3QQh0Eqwt4Rykery8cene/jyI7UoWsbardkqRJDRQ==","signatures":[{"sig":"MEUCICxJSORiGsT6zz05d1RQWUyW0QPptI9v4EAGdhr4eukWAiEAyAufRk0pxugPVXPi+zEOfrIjlHQINE4RvirTzcQNwyk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68177},"main":"dist/grpc-web-client.js","types":"dist/typings/index.d.ts","module":"dist/grpc-web-client.esm.js","browser":"dist/grpc-web-client.umd.js","gitHead":"86497a728ffa39afcda7666e0812b756c674d44f","scripts":{"clean":"rm -rf dist","lib:build":"npm run clean && webpack","postbootstrap":"npm run lib:build"},"_npmUser":{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"_npmVersion":"10.8.2","description":"gRPC-Web client for browsers (JS/TS)","directories":{},"_nodeVersion":"20.18.0","dependencies":{"browser-headers":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.97.1","ts-loader":"^9.5.2","typescript":"5.7.3","@types/node":"^22.10.7","webpack-cli":"^6.0.1","google-protobuf":"^3.21.4","@types/google-protobuf":"^3.15.12"},"peerDependencies":{"google-protobuf":"^3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/grpc-web_0.0.5_1737449662677_0.14547373526942287","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@injectivelabs/grpc-web","version":"0.0.6","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"author":{"name":"Improbable"},"license":"Apache-2.0","_id":"@injectivelabs/grpc-web@0.0.6","maintainers":[{"name":"albertchon","email":"albert@injectiveprotocol.com"},{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},{"name":"markuswaas","email":"mail@markuswaas.de"},{"name":"hmoragrega","email":"hilari@hilarimoragrega.com"},{"name":"shanemoore","email":"skm1790@gmail.com"},{"name":"thomasralee","email":"thomas.leera@gmail.com"},{"name":"mmeloni","email":"cleaversdev@gmail.com"},{"name":"ivan-angelkoski","email":"ivanangelkoski95@gmail.com"},{"name":"danidomi","email":"daniel.alexandre.domingues@gmail.com"},{"name":"proofofze","email":"jose@injectivelabs.org"},{"name":"nicolasbaum","email":"keith.baum@yahoo.com.ar"},{"name":"dbrajovic","email":"dusan@injectivelabs.org"}],"dist":{"shasum":"ade0e4d7d726e317f800cc5a5b71dc8dcbf7daf1","tarball":"https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.6.tgz","fileCount":22,"integrity":"sha512-jvPXJxRq0qermzPoPp35hP8Aet0jDpr0dfMtlfs7GOCfinnLvAm4WObnsLf0c81dci7t9XgJkvX6q11Cfjmv9A==","signatures":[{"sig":"MEUCIQD2U2MOOny//+2zk/YPqsWVLOotZVnNuj3OzpwAVinpBwIgSjpsULHuFg2EUJy/nIeVhJAdE76SwOzAePjnZuyJreU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67165},"main":"dist/grpc-web-client.js","types":"dist/typings/index.d.ts","module":"dist/grpc-web-client.esm.js","browser":"dist/grpc-web-client.umd.js","gitHead":"86497a728ffa39afcda7666e0812b756c674d44f","scripts":{"clean":"rm -rf dist","lib:build":"npm run clean && webpack","postbootstrap":"npm run lib:build"},"_npmUser":{"name":"bangjelkoski","email":"bangjelkoskii@gmail.com"},"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"_npmVersion":"10.8.2","description":"gRPC-Web client for browsers (JS/TS)","directories":{},"_nodeVersion":"20.18.0","dependencies":{"browser-headers":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.97.1","ts-loader":"^9.5.2","typescript":"5.7.3","@types/node":"^22.10.7","webpack-cli":"^6.0.1","google-protobuf":"^3.21.4","@types/google-protobuf":"^3.15.12"},"peerDependencies":{"google-protobuf":"^3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/grpc-web_0.0.6_1737450954307_0.9255339475119388","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2023-02-20T08:54:43.389Z","modified":"2026-02-05T14:37:48.943Z","0.0.1":"2023-02-20T08:54:43.698Z","0.0.2":"2025-01-21T08:18:34.313Z","0.0.3":"2025-01-21T08:31:05.357Z","0.0.4":"2025-01-21T08:34:39.937Z","0.0.5":"2025-01-21T08:54:22.848Z","0.0.6":"2025-01-21T09:15:54.508Z"},"author":{"name":"Improbable"},"license":"Apache-2.0","keywords":["grpc","grpc-web","protobuf","typescript","ts"],"repository":{"url":"github.com/improbable-eng/grpc-web","type":"git"},"description":"gRPC-Web client for browsers (JS/TS)","maintainers":[{"email":"albert@injectiveprotocol.com","name":"albertchon"},{"email":"bangjelkoskii@gmail.com","name":"bangjelkoski"},{"email":"hilari@hilarimoragrega.com","name":"hmoragrega"},{"email":"thomas.leera@gmail.com","name":"thomasralee"},{"email":"cleaversdev@gmail.com","name":"mmeloni"},{"email":"ivanangelkoski95@gmail.com","name":"ivan-angelkoski"},{"email":"maxim@injectivelabs.org","name":"maxim-inj"},{"email":"daniel.alexandre.domingues@gmail.com","name":"danidomi"},{"email":"jose@injectivelabs.org","name":"proofofze"},{"email":"dusan@injectivelabs.org","name":"dbrajovic"},{"email":"david.josse@injectivelabs.org","name":"davidjosse"},{"email":"frederick@injectivelabs.org","name":"frederick-injective"},{"email":"0xa1337@proton.me","name":"a1337"}],"readme":"# @improbable-eng/grpc-web\n> Library for making gRPC-Web requests from a browser\n\nThis library is intended for both JavaScript and TypeScript usage from a web browser or NodeJS (see [Usage with NodeJS](#usage-with-nodejs)).\n\n*Note: This only works if the server supports [gRPC-Web](https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md)*\n\nA Golang gRPC-Web middleware and a Golang-based gRPC-Web proxy are [available here](https://github.com/improbable-eng/grpc-web).\n\nPlease see the full [gRPC-Web README](https://github.com/improbable-eng/grpc-web) for known limitations.\n\n## Installation\n\n`@improbable-eng/grpc-web` has peer dependencies of `google-protobuf` and `@types/google-protobuf`.\n\n`npm install google-protobuf @types/google-protobuf @improbable-eng/grpc-web --save`\n\n## Example Project\n\nThere is an [example project available here](https://github.com/improbable-eng/grpc-web/tree/master/client/grpc-web-react-example)\n\n## Usage Overview\n* Use [`ts-protoc-gen`](https://www.npmjs.com/package/ts-protoc-gen) with [`protoc`](https://github.com/google/protobuf) to generate `.js` and `.d.ts` files for your request and response classes. `ts-protoc-gen` can also generate gRPC service definitions with the `service=true` argument.\n  * [Go to code generation docs](docs/code-generation.md)\n* Make a request using [`unary()`](docs/unary.md), [`invoke()`](docs/invoke.md) or [`client()`](docs/client.md)\n\n```javascript\nimport {grpc} from \"@injectivelabs/grpc-web\";\n\n// Import code-generated data structures.\nimport {BookService} from \"./generated/proto/examplecom/library/book_service_pb_service\";\nimport {GetBookRequest} from \"./generated/proto/examplecom/library/book_service_pb\";\n\nconst getBookRequest = new GetBookRequest();\ngetBookRequest.setIsbn(60929871);\ngrpc.unary(BookService.GetBook, {\n  request: getBookRequest,\n  host: host,\n  onEnd: res => {\n    const { status, statusMessage, headers, message, trailers } = res;\n    if (status === grpc.Code.OK && message) {\n      console.log(\"all ok. got book: \", message.toObject());\n    }\n  }\n});\n```\n\n* Requests can be aborted/closed before they complete:\n\n```javascript\nconst request = grpc.unary(BookService.GetBook, { ... });\nrequest.close();\n```\n\n## Available Request Functions\n\nThere are three functions for making gRPC requests:\n\n### [`grpc.unary`](docs/unary.md)\nThis is a convenience function for making requests that consist of a single request message and single response message. It can only be used with unary methods.\n\n```protobuf\nrpc GetBook(GetBookRequest) returns (Book) {}\n```\n\n### [`grpc.invoke`](docs/invoke.md)\nThis is a convenience function for making requests that consist of a single request message and a stream of response messages (server-streaming). It can also be used with unary methods.\n\n```protobuf\nrpc GetBook(GetBookRequest) returns (Book) {}\nrpc QueryBooks(QueryBooksRequest) returns (stream Book) {}\n```\n\n### [`grpc.client`](docs/client.md)\n`grpc.client` returns a client. Dependant upon [transport compatibility](docs/transport.md) this client is capable of sending multiple request messages (client-streaming) and receiving multiple response messages (server-streaming). It can be used with any type of method, but will enforce limiting the sending of messages for unary methods.\n\n```protobuf\nrpc GetBook(GetBookRequest) returns (Book) {}\nrpc QueryBooks(QueryBooksRequest) returns (stream Book) {}\nrpc LogReadPages(stream PageRead) returns (google.protobuf.Empty) {}\nrpc ListenForBooks(stream QueryBooksRequest) returns (stream Book) {}\n```\n\n## Usage with NodeJS\nRefer to [grpc-web-node-http-transport](https://www.npmjs.com/package/@improbable-eng/grpc-web-node-http-transport).\n\n## All Docs\n\n* [unary()](docs/unary.md)\n* [invoke()](docs/invoke.md)\n* [client()](docs/client.md)\n* [Code Generation](docs/code-generation.md)\n* [Concepts](docs/concepts.md)\n* [Transport](docs/transport.md)\n* [Client-side streaming](docs/websocket.md)\n","readmeFilename":"README.md"}