From 26b88fe56487f040de6de458ea51994a32ffe22a Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 23 Sep 2020 20:42:25 +0100 Subject: [PATCH 1/6] Generate Server interface --- src/service/grpcnode.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/service/grpcnode.ts b/src/service/grpcnode.ts index 07653ce5..e5226473 100644 --- a/src/service/grpcnode.ts +++ b/src/service/grpcnode.ts @@ -43,6 +43,8 @@ function generateTypeScriptDefinition(fileDescriptor: FileDescriptorProto, expor printer.printEmptyLn(); printService(printer, service); printer.printEmptyLn(); + printServer(printer, service); + printer.printEmptyLn(); printClient(printer, service); }); @@ -62,6 +64,24 @@ function printService(printer: Printer, service: RPCDescriptor) { printer.printLn(`export const ${serviceName}: I${serviceName};`); } +function printServer(printer: Printer, service: RPCDescriptor) { + const serverName = `${service.name}Server`; + printer.printLn(`export interface I${serverName} extends grpc.UntypedServiceImplementation {`); + service.methods + .forEach(method => { + if (!method.requestStream && !method.responseStream) { + printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerUnaryCall<${method.requestType}, ${method.responseType}>, callback: grpc.sendUnaryData<${method.responseType}>): void;`); + } else if (!method.requestStream) { + printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerWritableStream<${method.requestType}, ${method.responseType}>): void;`); + } else if (!method.responseStream) { + printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerReadableStream<${method.requestType}, ${method.responseType}>, callback: grpc.sendUnaryData<${method.responseType}>): void;`); + } else { + printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerDuplexStream<${method.requestType}, ${method.responseType}>): void;`); + } + }); + printer.printLn("}"); +} + function printClient(printer: Printer, service: RPCDescriptor) { printer.printLn(`export class ${service.name}Client extends grpc.Client {`); printer.printIndentedLn("constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);"); From f222ace1512ad4f49b028ac237c1eabf17fe4e4c Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 23 Sep 2020 20:42:59 +0100 Subject: [PATCH 2/6] Update examples --- .../proto/examplecom/simple_service_grpc_pb.d.ts | 8 ++++++++ examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts | 5 +++++ .../proto/examplecom/simple_service_grpc_pb.d.ts | 8 ++++++++ examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts | 5 +++++ 4 files changed, 26 insertions(+) diff --git a/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts b/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts index 9a51222e..6842750c 100644 --- a/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts +++ b/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts @@ -18,6 +18,14 @@ interface ISimpleServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; + doServerStream(call: grpc.ServerWritableStream): void; + doClientStream(call: grpc.ServerReadableStream, callback: grpc.sendUnaryData): void; + doBidiStream(call: grpc.ServerDuplexStream): void; + delete(call: grpc.ServerUnaryCall, callback: grpc.sendUnaryData): void; +} + export class SimpleServiceClient extends grpc.Client { constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); doUnary(argument: proto_examplecom_simple_service_pb.UnaryRequest, callback: grpc.requestCallback): grpc.ClientUnaryCall; diff --git a/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts b/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts index de95af71..42c4c9b7 100644 --- a/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts +++ b/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts @@ -13,6 +13,11 @@ interface IOrphanServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; + doStream(call: grpc.ServerWritableStream): void; +} + export class OrphanServiceClient extends grpc.Client { constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); doUnary(argument: proto_orphan_pb.OrphanUnaryRequest, callback: grpc.requestCallback): grpc.ClientUnaryCall; diff --git a/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts b/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts index 6284bc1f..16a853b6 100644 --- a/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts +++ b/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts @@ -18,6 +18,14 @@ interface ISimpleServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; + doServerStream(call: grpc.ServerWritableStream): void; + doClientStream(call: grpc.ServerReadableStream, callback: grpc.sendUnaryData): void; + doBidiStream(call: grpc.ServerDuplexStream): void; + delete(call: grpc.ServerUnaryCall, callback: grpc.sendUnaryData): void; +} + export class SimpleServiceClient extends grpc.Client { constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); doUnary(argument: proto_examplecom_simple_service_pb.UnaryRequest, callback: grpc.requestCallback): grpc.ClientUnaryCall; diff --git a/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts b/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts index 01bf38d0..4c6cd30b 100644 --- a/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts +++ b/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts @@ -13,6 +13,11 @@ interface IOrphanServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; + doStream(call: grpc.ServerWritableStream): void; +} + export class OrphanServiceClient extends grpc.Client { constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); doUnary(argument: proto_orphan_pb.OrphanUnaryRequest, callback: grpc.requestCallback): grpc.ClientUnaryCall; From 4b234a09403961ed3a040246a700c5bc9e07630e Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Thu, 24 Sep 2020 20:27:20 +0100 Subject: [PATCH 3/6] Use service method descriptor types to server interface definitions This approach provides between type compatibility between grpc and grpc-js packages --- .../proto/examplecom/simple_service_grpc_pb.d.ts | 10 +++++----- .../generated-grpc-js-node/proto/orphan_grpc_pb.d.ts | 4 ++-- .../proto/examplecom/simple_service_grpc_pb.d.ts | 10 +++++----- examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts | 4 ++-- src/service/grpcnode.ts | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts b/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts index 6842750c..2d42c4cc 100644 --- a/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts +++ b/examples/generated-grpc-js-node/proto/examplecom/simple_service_grpc_pb.d.ts @@ -19,11 +19,11 @@ interface ISimpleServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; - doServerStream(call: grpc.ServerWritableStream): void; - doClientStream(call: grpc.ServerReadableStream, callback: grpc.sendUnaryData): void; - doBidiStream(call: grpc.ServerDuplexStream): void; - delete(call: grpc.ServerUnaryCall, callback: grpc.sendUnaryData): void; + doUnary: grpc.handleUnaryCall; + doServerStream: grpc.handleServerStreamingCall; + doClientStream: grpc.handleClientStreamingCall; + doBidiStream: grpc.handleBidiStreamingCall; + delete: grpc.handleUnaryCall; } export class SimpleServiceClient extends grpc.Client { diff --git a/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts b/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts index 42c4c9b7..b832a4c1 100644 --- a/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts +++ b/examples/generated-grpc-js-node/proto/orphan_grpc_pb.d.ts @@ -14,8 +14,8 @@ interface IOrphanServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; - doStream(call: grpc.ServerWritableStream): void; + doUnary: grpc.handleUnaryCall; + doStream: grpc.handleServerStreamingCall; } export class OrphanServiceClient extends grpc.Client { diff --git a/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts b/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts index 16a853b6..81be49a6 100644 --- a/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts +++ b/examples/generated-grpc-node/proto/examplecom/simple_service_grpc_pb.d.ts @@ -19,11 +19,11 @@ interface ISimpleServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; - doServerStream(call: grpc.ServerWritableStream): void; - doClientStream(call: grpc.ServerReadableStream, callback: grpc.sendUnaryData): void; - doBidiStream(call: grpc.ServerDuplexStream): void; - delete(call: grpc.ServerUnaryCall, callback: grpc.sendUnaryData): void; + doUnary: grpc.handleUnaryCall; + doServerStream: grpc.handleServerStreamingCall; + doClientStream: grpc.handleClientStreamingCall; + doBidiStream: grpc.handleBidiStreamingCall; + delete: grpc.handleUnaryCall; } export class SimpleServiceClient extends grpc.Client { diff --git a/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts b/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts index 4c6cd30b..5bf0f50f 100644 --- a/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts +++ b/examples/generated-grpc-node/proto/orphan_grpc_pb.d.ts @@ -14,8 +14,8 @@ interface IOrphanServiceService extends grpc.ServiceDefinition, callback: grpc.sendUnaryData): void; - doStream(call: grpc.ServerWritableStream): void; + doUnary: grpc.handleUnaryCall; + doStream: grpc.handleServerStreamingCall; } export class OrphanServiceClient extends grpc.Client { diff --git a/src/service/grpcnode.ts b/src/service/grpcnode.ts index e5226473..72571a77 100644 --- a/src/service/grpcnode.ts +++ b/src/service/grpcnode.ts @@ -70,13 +70,13 @@ function printServer(printer: Printer, service: RPCDescriptor) { service.methods .forEach(method => { if (!method.requestStream && !method.responseStream) { - printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerUnaryCall<${method.requestType}, ${method.responseType}>, callback: grpc.sendUnaryData<${method.responseType}>): void;`); + printer.printIndentedLn(`${method.nameAsCamelCase}: grpc.handleUnaryCall<${method.requestType}, ${method.responseType}>;`); } else if (!method.requestStream) { - printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerWritableStream<${method.requestType}, ${method.responseType}>): void;`); + printer.printIndentedLn(`${method.nameAsCamelCase}: grpc.handleServerStreamingCall<${method.requestType}, ${method.responseType}>;`); } else if (!method.responseStream) { - printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerReadableStream<${method.requestType}, ${method.responseType}>, callback: grpc.sendUnaryData<${method.responseType}>): void;`); + printer.printIndentedLn(`${method.nameAsCamelCase}: grpc.handleClientStreamingCall<${method.requestType}, ${method.responseType}>;`); } else { - printer.printIndentedLn(`${method.nameAsCamelCase}(call: grpc.ServerDuplexStream<${method.requestType}, ${method.responseType}>): void;`); + printer.printIndentedLn(`${method.nameAsCamelCase}: grpc.handleBidiStreamingCall<${method.requestType}, ${method.responseType}>;`); } }); printer.printLn("}"); From d7f3ce4d15fa859e003f92ab3cc2f8648737057c Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Mon, 16 Nov 2020 20:38:14 +0000 Subject: [PATCH 4/6] Install @grpc/grpc-js as devDependency --- package-lock.json | 266 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 267 insertions(+) diff --git a/package-lock.json b/package-lock.json index 39734074..c15645d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,31 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@grpc/grpc-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.0.tgz", + "integrity": "sha512-09H50V7rmz0gFrGz6IbP49z9A8+2p4yZYcNDEb7bytr90vWn52VBQE1a+LMBlrucmNN0wSsiCr3TJx+dStHTng==", + "dev": true, + "requires": { + "@types/node": "^12.12.47", + "google-auth-library": "^6.1.1", + "semver": "^6.2.0" + }, + "dependencies": { + "@types/node": { + "version": "12.19.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.4.tgz", + "integrity": "sha512-o3oj1bETk8kBwzz1WlO6JWL/AfAA3Vm6J1B3C9CsdxHYp7XgPiH7OEXPUbZTndHlRaIElrANkQfe6ZmfJb3H2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "@improbable-eng/grpc-web": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.9.1.tgz", @@ -65,6 +90,41 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -117,6 +177,12 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, "ascli": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", @@ -189,6 +255,12 @@ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "dev": true + }, "bl": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", @@ -253,6 +325,12 @@ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -663,6 +741,15 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -724,6 +811,12 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, "ext-list": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", @@ -743,6 +836,18 @@ "sort-keys-length": "^1.0.0" } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==", + "dev": true + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -818,6 +923,37 @@ "wide-align": "^1.1.0" } }, + "gaxios": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.0.1.tgz", + "integrity": "sha512-jOin8xRZ/UytQeBpSXFqIzqU7Fi5TqgPNLlUsSB8kjJ76+FiGBfImF8KJu++c6J4jOldfJUtt0YmkRj2ZpSHTQ==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.3.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + } + } + }, + "gcp-metadata": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", + "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", + "dev": true, + "requires": { + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" + } + }, "get-proxy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", @@ -853,6 +989,32 @@ "path-is-absolute": "^1.0.0" } }, + "google-auth-library": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.3.tgz", + "integrity": "sha512-m9mwvY3GWbr7ZYEbl61isWmk+fvTmOt0YNUfPOUY2VH8K5pZlAIWJjxEi0PqR3OjMretyiQLI6GURMrPSwHQ2g==", + "dev": true, + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + } + }, + "google-p12-pem": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", + "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, "google-protobuf": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.6.1.tgz", @@ -1458,6 +1620,18 @@ "node-pre-gyp": "^0.12.0" } }, + "gtoken": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.0.5.tgz", + "integrity": "sha512-wvjkecutFh8kVfbcdBdUWqDRrXb+WrgD79DBDEYf1Om8S1FluhylhtFjrL7Tx69vNhh259qA3Q1P4sPtb+kUYw==", + "dev": true, + "requires": { + "gaxios": "^4.0.0", + "google-p12-pem": "^3.0.3", + "jws": "^4.0.0", + "mime": "^2.2.0" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1541,6 +1715,33 @@ } } }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1730,12 +1931,42 @@ "esprima": "^4.0.0" } }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dev": true, + "requires": { + "bignumber.js": "^9.0.0" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dev": true, + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -1803,6 +2034,23 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -1938,6 +2186,12 @@ } } }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, "mime-db": { "version": "1.38.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", @@ -2175,6 +2429,18 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, "node-pre-gyp": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", diff --git a/package.json b/package.json index 63ec1884..440dd552 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "google-protobuf": "^3.6.1" }, "devDependencies": { + "@grpc/grpc-js": "^1.2.0", "@improbable-eng/grpc-web": "^0.9.1", "@types/chai": "^3.5.2", "@types/google-protobuf": "^3.2.7", From 3712a9d50cff10819fe03558aa32ca21a1c7d37c Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 2 Dec 2020 20:46:12 +0000 Subject: [PATCH 5/6] Add note about grpc-js version compatibility --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c7d4b1ee..649149a8 100644 --- a/README.md +++ b/README.md @@ -162,6 +162,8 @@ You'll also need to specify the `grpc_js` option within the `--grpc_out` flag, f --grpc_out="grpc_js:${OUT_DIR}" ``` +If you're consuming the server interface types you'll need to use version `@grpc/grpc-js@1.2.0` or higher. + ## Examples - [Example output](https://github.com/improbable-eng/ts-protoc-gen/tree/master/examples) -- Code generated by `ts-protoc-gen`. From ea1b529fd963a99b34fb3fb8c86ebb9a5a2fd3f4 Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 2 Dec 2020 20:47:29 +0000 Subject: [PATCH 6/6] Remove grpc-js dev dependency --- package-lock.json | 266 ---------------------------------------------- package.json | 1 - 2 files changed, 267 deletions(-) diff --git a/package-lock.json b/package-lock.json index c15645d9..39734074 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,31 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@grpc/grpc-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.0.tgz", - "integrity": "sha512-09H50V7rmz0gFrGz6IbP49z9A8+2p4yZYcNDEb7bytr90vWn52VBQE1a+LMBlrucmNN0wSsiCr3TJx+dStHTng==", - "dev": true, - "requires": { - "@types/node": "^12.12.47", - "google-auth-library": "^6.1.1", - "semver": "^6.2.0" - }, - "dependencies": { - "@types/node": { - "version": "12.19.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.4.tgz", - "integrity": "sha512-o3oj1bETk8kBwzz1WlO6JWL/AfAA3Vm6J1B3C9CsdxHYp7XgPiH7OEXPUbZTndHlRaIElrANkQfe6ZmfJb3H2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "@improbable-eng/grpc-web": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.9.1.tgz", @@ -90,41 +65,6 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -177,12 +117,6 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, "ascli": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", @@ -255,12 +189,6 @@ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "dev": true - }, "bl": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", @@ -325,12 +253,6 @@ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", - "dev": true - }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -741,15 +663,6 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -811,12 +724,6 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, "ext-list": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", @@ -836,18 +743,6 @@ "sort-keys-length": "^1.0.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==", - "dev": true - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -923,37 +818,6 @@ "wide-align": "^1.1.0" } }, - "gaxios": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.0.1.tgz", - "integrity": "sha512-jOin8xRZ/UytQeBpSXFqIzqU7Fi5TqgPNLlUsSB8kjJ76+FiGBfImF8KJu++c6J4jOldfJUtt0YmkRj2ZpSHTQ==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - } - } - }, - "gcp-metadata": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", - "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", - "dev": true, - "requires": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - } - }, "get-proxy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", @@ -989,32 +853,6 @@ "path-is-absolute": "^1.0.0" } }, - "google-auth-library": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.3.tgz", - "integrity": "sha512-m9mwvY3GWbr7ZYEbl61isWmk+fvTmOt0YNUfPOUY2VH8K5pZlAIWJjxEi0PqR3OjMretyiQLI6GURMrPSwHQ2g==", - "dev": true, - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - } - }, - "google-p12-pem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", - "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, "google-protobuf": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.6.1.tgz", @@ -1620,18 +1458,6 @@ "node-pre-gyp": "^0.12.0" } }, - "gtoken": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.0.5.tgz", - "integrity": "sha512-wvjkecutFh8kVfbcdBdUWqDRrXb+WrgD79DBDEYf1Om8S1FluhylhtFjrL7Tx69vNhh259qA3Q1P4sPtb+kUYw==", - "dev": true, - "requires": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", - "jws": "^4.0.0", - "mime": "^2.2.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1715,33 +1541,6 @@ } } }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1931,42 +1730,12 @@ "esprima": "^4.0.0" } }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0" - } - }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dev": true, - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -2034,23 +1803,6 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -2186,12 +1938,6 @@ } } }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true - }, "mime-db": { "version": "1.38.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", @@ -2429,18 +2175,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, "node-pre-gyp": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", diff --git a/package.json b/package.json index 440dd552..63ec1884 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "google-protobuf": "^3.6.1" }, "devDependencies": { - "@grpc/grpc-js": "^1.2.0", "@improbable-eng/grpc-web": "^0.9.1", "@types/chai": "^3.5.2", "@types/google-protobuf": "^3.2.7",