{"_id":"@bakaat/grpc-mock","_rev":"4-f9a0c5abbce41a5126da6e22ab56d15e","name":"@bakaat/grpc-mock","dist-tags":{"latest":"0.8.1"},"versions":{"0.7.0":{"name":"@bakaat/grpc-mock","version":"0.7.0","description":"a simple grpc mock server","main":"index.js","scripts":{"test":"$(npm bin)/mocha --require intelli-espower-loader test"},"repository":{"type":"git","url":"git+https://github.com/YoshiyukiKato/grpc-mock.git"},"keywords":["grpc","mock"],"author":{"name":"YoshiyukiKato"},"license":"MIT","bugs":{"url":"https://github.com/YoshiyukiKato/grpc-mock/issues"},"homepage":"https://github.com/YoshiyukiKato/grpc-mock#readme","dependencies":{"@grpc/proto-loader":"^0.3.0","grpc":"^1.17.0","grpc-kit":"^0.2.0","partial-compare":"^1.0.1","protobufjs":"^6.10.1","sinon":"^9.0.3"},"devDependencies":{"intelli-espower-loader":"^1.0.1","mocha":"^5.2.0","power-assert":"^1.6.1"},"gitHead":"f095f849600563e09d17756967b993805b830685","_id":"@bakaat/grpc-mock@0.7.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-ogS5rNIBVzXnH+Xu5Ib6lilbDQu9KyFEPnn2l71yJNwOm4hShSYeh5MQmscch+UwuOeEp8ZS/wXsY2KzwmPl9g==","shasum":"c33da2fb9ea3a5b2557ec94e02b2c16f5a84c430","tarball":"https://registry.npmjs.org/@bakaat/grpc-mock/-/grpc-mock-0.7.0.tgz","fileCount":8,"unpackedSize":36950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9V/OCRA9TVsSAnZWagAAUX4P/R7LXsx0L6zRLR+7s+MC\nXxmhwax7aKqSRyu8zCjqKMCmSaCTEwbp4xuGsaQesXNbabDh0OKJmeExl75h\n3FRK7y0M+32adl50mRJYeil6Q3q3aq/h2WDXvXJ/aVZwpPBeYe4lJU8gQYGA\nEHy57URSNuhzWPJXQGQnjkp0XHsRGWvkM003hOTF/V++7yPbzN5og5M4PTQy\nGQi3oyP2CEzqdkIHiKbo4J2QbXK4aQMPWLiiopYNOBDVtC+EMl0AQp/Qk4+s\nTtgBW03tRsQy1dHztvAw1NwsmTjF8/xvglxhJ9FwCpfd9YsLhF/bx3EVe9Fq\ni2LaebiS0/exTNXExFQKvbHRtPwMtfpvQqwKxvespoxLp8F6aOqJKn7vJe3Q\ng3Al0jvIOb6h2rHnGq27P4pX4EIH3UhGHbo0KRSoNHRg9wfEHRe3N2M4WNTe\n3BEMKn3beDkzjKjWjfRNoCvW7fThGv6xLV7+AXNXTvoMRez6yAARMx/XKpG6\nBcTmo7esCo1d++Bpv8PhsgQi65cG6vh8NWGLRgW7lCVNALgituycyhXHllCJ\nE89W9gfNSyKK85Qw7jFpir3zyQ1RA6sFmeg+jfvSxyvN601a8MnrnJY24mMP\nFXlQq2Gj47tENr+yQ3OaYnHWX6NqfVmUcfnNPrE3dXfch46mXjEERGA4ga0y\nPs2+\r\n=UnVe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBq94ihUHfP0uW+ieM8TQx1IT/G99FJUjY7wxEhnJYnAAiB94fzArRTPsZwEqFJYhk+U76EpRNGLj4Oj8XNEW0yf+w=="}]},"_npmUser":{"name":"bakaat","email":"lukasz@teamwork.com"},"directories":{},"maintainers":[{"name":"bakaat","email":"lukasz@teamwork.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grpc-mock_0.7.0_1626693581888_0.7328862176992725"},"_hasShrinkwrap":false},"0.7.1":{"name":"@bakaat/grpc-mock","version":"0.7.1","description":"a simple grpc mock server","main":"index.js","private":false,"scripts":{"test":"$(npm bin)/mocha --require intelli-espower-loader test"},"repository":{"type":"git","url":"git+https://github.com/bakaat/grpc-mock.git"},"keywords":["grpc","mock"],"author":{"name":"YoshiyukiKato"},"license":"MIT","bugs":{"url":"https://github.com/bakaat/grpc-mock/issues"},"homepage":"https://github.com/bakaat/grpc-mock#readme","dependencies":{"@grpc/proto-loader":"^0.3.0","grpc":"^1.17.0","grpc-kit":"^0.2.0","partial-compare":"^1.0.1","protobufjs":"^6.10.1","sinon":"^9.0.3"},"devDependencies":{"intelli-espower-loader":"^1.0.1","mocha":"^5.2.0","power-assert":"^1.6.1"},"gitHead":"f095f849600563e09d17756967b993805b830685","_id":"@bakaat/grpc-mock@0.7.1","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-UqzxmwDw+xzJg8R9FNqMecvAMIthk75vEa/KdfOZ4zIDpkTJ1xlSXgVmXj/eComi1cHAQS+i4QRfbh3JSRlf6g==","shasum":"db8fa455778198995afa2c3be33ef8c3ac00953d","tarball":"https://registry.npmjs.org/@bakaat/grpc-mock/-/grpc-mock-0.7.1.tgz","fileCount":8,"unpackedSize":36949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9WB+CRA9TVsSAnZWagAAYYMQAKAedikQMKTcrU62G22z\nPkelUM2n1oASw//bO0x5Td0rd8R80cAaYmJ7l7UCBi+Y8OpZs36C60JXspHl\nDsj93kvqgJuL5jdXzfR/JkmnNfpQwIWJkgyuk1tD6YxVMfh2+s1RvmAB37u6\nGAQI8R3rN80wObm2FslFhWaipzLJdh68XHSikW29ouXsmcQxQxdxnH8tIQLU\n3sgL0Lt46Ejh/mBfJvFPe4CwD3N8Fb/OkgAb5HGB6cVQtTF7aVAE910MlQ5M\nkEgLHyhENa8n56kTLZ3rY0Di6PSa67rrcqYmLXXMFLvw3lEza/QTVPnuJ+8o\nImLU6LOIV7GqiPHdykf9aLlJ7SbdN6leQfyox7E0TONGUeTLQ+/6Iiiovew5\n521kVX7I/XtcLggBLVvwpS1cNskCPN7rf4xucEORfVGEnQXGabc7fwX4j/CO\nwRg2v9s1/FXIoQtceLz59urSaqv7w9YTBQeahiEOHagr6u9TjXpuBFg125Xr\ndVxBXsMrs4mf+O5WDihV4yiccM+joqpAQ63W6iXbRJdbhXV/jEp0XHuO1sJi\n3MtA+zPUays5EanTMvF6pEXefHM3UCL23s1+NNTwfM3zE/bj5QD9zKUHr0gZ\nEQumoeYwjns++5vklj7pF97CQ9x9liysndtZKUz1omTLrAlqqn0VujJzD1ei\nQbkI\r\n=Qg88\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICiqWJJsF8rqNa+7q5UUoOeOXz06pTFEQwMILbfGEFUVAiAjORJ8TnZ78Vi0Irs4i9k5ycsbclXZQsoDh9jJXP/NBA=="}]},"_npmUser":{"name":"bakaat","email":"lukasz@teamwork.com"},"directories":{},"maintainers":[{"name":"bakaat","email":"lukasz@teamwork.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grpc-mock_0.7.1_1626693758194_0.20739569332765084"},"_hasShrinkwrap":false},"0.8.0":{"name":"@bakaat/grpc-mock","version":"0.8.0","description":"a simple grpc mock server","main":"index.js","scripts":{"test":"mocha test"},"repository":{"type":"git","url":"git+https://github.com/bakaat/grpc-mock.git"},"keywords":["grpc","mock"],"author":{"name":"YoshiyukiKato"},"contributors":[{"name":"Lukasz Baczynski"}],"license":"MIT","bugs":{"url":"https://github.com/bakaat/grpc-mock/issues"},"homepage":"https://github.com/bakaat/grpc-mock#readme","dependencies":{"@grpc/grpc-js":"^1.10.1","@grpc/proto-loader":"^0.3.0","partial-compare":"^1.0.1","protobufjs":"^6.10.1","sinon":"^9.0.3"},"devDependencies":{"mocha":"^10.3.0","power-assert":"^1.6.1"},"_id":"@bakaat/grpc-mock@0.8.0","gitHead":"a2a74210076d33a073d067694ae953273f12ac7d","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"integrity":"sha512-rxE4Uj0P+EW60Og4no2dxz/grkpw/RPgg6+lsV2pMzfq9oCjGRavl+tDzzWZmCfrnf00ig8Zz2oYjfWFqwU4XA==","shasum":"38b4fd280320e0952fb3315ac4d170b265ab3a92","tarball":"https://registry.npmjs.org/@bakaat/grpc-mock/-/grpc-mock-0.8.0.tgz","fileCount":11,"unpackedSize":39893,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDFflWKuHSkllP+SMT97AxT89rzqdHv5Hv575Q+CrMBTAiAnfjOzgRjoLOqdlPopkgr2qX68CccJrcJvG1kOlGx0Ug=="}]},"_npmUser":{"name":"bakaat","email":"lukasz@teamwork.com"},"directories":{},"maintainers":[{"name":"bakaat","email":"lukasz@teamwork.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grpc-mock_0.8.0_1708675092683_0.5050051042336696"},"_hasShrinkwrap":false},"0.8.1":{"name":"@bakaat/grpc-mock","version":"0.8.1","description":"a simple grpc mock server","main":"index.js","scripts":{"test":"mocha test"},"repository":{"type":"git","url":"git+https://github.com/bakaat/grpc-mock.git"},"keywords":["grpc","mock"],"author":{"name":"YoshiyukiKato"},"contributors":[{"name":"Lukasz Baczynski"}],"license":"MIT","bugs":{"url":"https://github.com/bakaat/grpc-mock/issues"},"homepage":"https://github.com/bakaat/grpc-mock#readme","dependencies":{"@grpc/grpc-js":"^1.10.1","@grpc/proto-loader":"^0.7.10","partial-compare":"^1.0.1","protobufjs":"^7.2.6","sinon":"^17.0.1"},"devDependencies":{"mocha":"^10.3.0","power-assert":"^1.6.1"},"_id":"@bakaat/grpc-mock@0.8.1","gitHead":"0c398e583acd6649c9aa4ea9cbd9989657d79876","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"integrity":"sha512-MMGtrDgMoTQLKejuMrODlS0jcJCWTZvhwKRSgohqmJ5yDVE5i25b6+ltb1Pp60Buumm9nF6CTG5LDZh2r2W53g==","shasum":"734ca99b30e4d5ccf6321b06cac04c7c94f57baf","tarball":"https://registry.npmjs.org/@bakaat/grpc-mock/-/grpc-mock-0.8.1.tgz","fileCount":11,"unpackedSize":39828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDet1QAKTmJ51zVKLd/0j084FD0UxM5wAku958lEjW2OAiBqgAzeeo/UBuxh4d9SAS9s5TBRHW3xsaZrag7FIU2ZnQ=="}]},"_npmUser":{"name":"bakaat","email":"lukasz@teamwork.com"},"directories":{},"maintainers":[{"name":"bakaat","email":"lukasz@teamwork.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/grpc-mock_0.8.1_1708675840586_0.6286471758420453"},"_hasShrinkwrap":false}},"time":{"created":"2021-07-19T11:19:41.888Z","0.7.0":"2021-07-19T11:19:42.035Z","modified":"2024-02-23T08:10:41.194Z","0.7.1":"2021-07-19T11:22:38.367Z","0.8.0":"2024-02-23T07:58:12.833Z","0.8.1":"2024-02-23T08:10:40.754Z"},"maintainers":[{"name":"bakaat","email":"lukasz@teamwork.com"}],"description":"a simple grpc mock server","homepage":"https://github.com/bakaat/grpc-mock#readme","keywords":["grpc","mock"],"repository":{"type":"git","url":"git+https://github.com/bakaat/grpc-mock.git"},"author":{"name":"YoshiyukiKato"},"bugs":{"url":"https://github.com/bakaat/grpc-mock/issues"},"license":"MIT","readme":"# grpc-mock\n[![npm version](https://badge.fury.io/js/grpc-mock.svg)](https://badge.fury.io/js/grpc-mock)\n[![tests](https://github.com/bakaat/grpc-mock/actions/workflows/test.yml/badge.svg)](https://github.com/bakaat/grpc-mock/actions/workflows/test.yml)\n\n> [!NOTE]\n> Main requirement was to allow modification of routes/rules on a working server of what looks to be mostly a dead repo.\n> \n> Runs on node 18.x, 20.x, and updated packages.\n\nA simple mock gRPC server on Node.js.\n\n```js\nconst {createMockServer} = require(\"grpc-mock\");\nconst mockServer = createMockServer({\n  protoPath: \"/path/to/greeter.proto\",\n  packageName: \"greeter\",\n  serviceName: \"Greeter\",\n  rules: [\n    { method: \"Hello\", input: { message: \"test\" }, output: { message: \"Hello\" } },\n    { method: \"Goodbye\", input: \".*\", output: { message: \"Goodbye\" } },\n    \n    {\n      method: \"HowAreYou\",\n      streamType: \"client\",\n      stream: [\n        { input: { message: \"Hi\" } },\n        { input: { message: \"How are you?\" } },\n      ],\n      output: { message: \"I'm fine, thank you\" }\n    },\n    \n    {\n      method: \"NiceToMeetYou\",\n      streamType: \"server\",\n      stream: [\n        { output: { message: \"Hi, I'm Sana\" } },\n        { output: { message: \"Nice to meet you too\" } },\n      ],\n      input: { message: \"Hi. I'm John. Nice to meet you\" }\n    },\n    \n    {\n      method: \"Chat\",\n      streamType: \"mutual\",\n      stream: [\n        { input: { message: \"Hi\" }, output: { message: \"Hi there\" } },\n        { input: { message: \"How are you?\" }, output: { message: \"I'm fine, thank you.\" } },\n      ]\n    },\n    \n    { method: \"ReturnsError\", input: { }, error: { code: 3, message: \"Message text is required\"} },\n    \n    {\n      method: \"ReturnsErrorWithMetadata\",\n      streamType: \"server\",\n      input: { },\n      error: { code: 3, message: \"Message text is required\", metadata: { key: \"value\"}}\n    }\n  ]\n});\nawait mockServer.listen(\"0.0.0.0:50051\");\n```\n\n```proto\nsyntax=\"proto3\";\n\npackage greeter;\n\nservice Greeter {\n  rpc Hello (RequestGreet) returns (ResponseGreet) {}\n  rpc Goodbye (RequestGreet) returns (ResponseGreet) {}\n  rpc HowAreYou (stream RequestGreet) returns (ResponseGreet) {}\n  rpc NiceToMeetYou (RequestGreet) returns (stream ResponseGreet) {}\n  rpc Chat (stream RequestGreet) returns (stream ResponseGreet) {}\n}\n\nmessage RequestGreet {\n  string message = 1;\n}\n\nmessage ResponseGreet {\n  string message = 1;\n}\n```\n\n## api\n### createMockServer({`protoPath`,`packageName`,`serviceName`,`options`,`rules`}): utils.GrpcServer\n\n|arg name|type|required/optional|description|\n|:-------|:---|:----------------|:----------|\n|**`protoPath`**|String|Required|path to `.proto` file|\n|**`packageName`**|String|Required|name of package|\n|**`serviceName`**|String|Required|name of service|\n|**`options`**|@grpc/proto-loader.Options|Optional|options for `@grpc/proto-loader` to load `.proto` file. In detail, please check [here](https://github.com/grpc/grpc-node/blob/master/packages/proto-loader/README.md) out. Default is `null`|\n|**`rules`**|Array\\<Rule\\>|Required|Array of Rules|\n\n### Rule\n|prop name|type|required/optional|description|\n|:-------|:---|:----------------|:----------|\n|**`method`**|String|Required|path to `.proto` file|\n|**`streamType`**|Enum<\"client\"\\|\"server\"\\|\"mutual\">|Optional|Type of stream. Set `client` if only using client side stream, set `server` if only using server side stream, and set `mutual` if using both of client and server side stream. Set null/undefined if not using stream. Default is null|\n|**`input`**|Object\\|String|Required when `streamType` is null or `server`|Specifying an expected input. Raw object or pattern string(RegExp) is available|\n|**`output`**|String|Required when `streamType` is null or `client`|Specifying an output to an expected input|\n|**`stream`**|Array\\<Chunk\\>|Required when `streamType` is `client`, `server` and `mutual`|Array of Chunks|\n|**`error`**|Object|Optional|If provided, server will respond with this error object|\n\n#### Chunk\n|prop name|type|required/optional|description|\n|:-------|:---|:----------------|:----------|\n|**`input`**|Object\\|String|Required when `streamType` is `client`. Optional when `streamType` is `mutual`|Specifying an expected input. Raw object or pattern string(RegExp) is available.|\n|**`output`**|Object|Required when `streamType` is `server`. Optional when `streamType` is `mutual`|Specifying an output to an expected input|\n","readmeFilename":"README.md","contributors":[{"name":"Lukasz Baczynski"}]}