diff --git a/.gitmodules b/.gitmodules index 7989090c..4a5a1e32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,15 @@ [submodule "packages/grpc-tools/deps/protobuf"] path = packages/grpc-tools/deps/protobuf url = https://github.com/protocolbuffers/protobuf -[submodule "packages/grpc-js/deps/envoy-api"] - path = packages/grpc-js/deps/envoy-api +[submodule "packages/grpc-js-xds/deps/envoy-api"] + path = packages/grpc-js-xds/deps/envoy-api url = https://github.com/envoyproxy/data-plane-api.git -[submodule "packages/grpc-js/deps/udpa"] - path = packages/grpc-js/deps/udpa +[submodule "packages/grpc-js-xds/deps/udpa"] + path = packages/grpc-js-xds/deps/udpa url = https://github.com/cncf/udpa.git -[submodule "packages/grpc-js/deps/googleapis"] - path = packages/grpc-js/deps/googleapis +[submodule "packages/grpc-js-xds/deps/googleapis"] + path = packages/grpc-js-xds/deps/googleapis url = https://github.com/googleapis/googleapis.git -[submodule "packages/grpc-js/deps/protoc-gen-validate"] - path = packages/grpc-js/deps/protoc-gen-validate +[submodule "packages/grpc-js-xds/deps/protoc-gen-validate"] + path = packages/grpc-js-xds/deps/protoc-gen-validate url = https://github.com/envoyproxy/protoc-gen-validate.git diff --git a/gulpfile.ts b/gulpfile.ts index 367b4d1b..7ac4e9a0 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -18,28 +18,29 @@ import * as gulp from 'gulp'; import * as healthCheck from './packages/grpc-health-check/gulpfile'; import * as jsCore from './packages/grpc-js/gulpfile'; +import * as jsXds from './packages/grpc-js-xds/gulpfile'; import * as protobuf from './packages/proto-loader/gulpfile'; import * as internalTest from './test/gulpfile'; -const installAll = gulp.series(jsCore.install, healthCheck.install, protobuf.install, internalTest.install); +const installAll = gulp.series(jsCore.install, healthCheck.install, protobuf.install, internalTest.install, jsXds.install); const lint = gulp.parallel(jsCore.lint); -const build = gulp.series(jsCore.compile, protobuf.compile); +const build = gulp.series(jsCore.compile, protobuf.compile, jsXds.compile); const setup = gulp.series(installAll); const setupPureJSInterop = gulp.series(jsCore.install, protobuf.install, internalTest.install); -const clean = gulp.series(jsCore.clean, protobuf.clean); +const clean = gulp.series(jsCore.clean, protobuf.clean, jsXds.clean); -const cleanAll = gulp.series(jsCore.cleanAll, internalTest.cleanAll, protobuf.cleanAll); +const cleanAll = gulp.series(jsXds.cleanAll, jsCore.cleanAll, internalTest.cleanAll, protobuf.cleanAll); const nativeTestOnly = gulp.parallel(healthCheck.test); const nativeTest = gulp.series(build, nativeTestOnly); -const testOnly = gulp.parallel(jsCore.test, nativeTestOnly, protobuf.test); +const testOnly = gulp.parallel(jsCore.test, nativeTestOnly, protobuf.test, jsXds.test); const test = gulp.series(build, testOnly, internalTest.test); diff --git a/packages/grpc-js-xds/.eslintrc.json b/packages/grpc-js-xds/.eslintrc.json new file mode 100644 index 00000000..f95bb333 --- /dev/null +++ b/packages/grpc-js-xds/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts/" +} diff --git a/packages/grpc-js-xds/.prettierrc.js b/packages/grpc-js-xds/.prettierrc.js new file mode 100644 index 00000000..c634ea72 --- /dev/null +++ b/packages/grpc-js-xds/.prettierrc.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('gts/.prettierrc.json') +} \ No newline at end of file diff --git a/packages/grpc-js-xds/README.md b/packages/grpc-js-xds/README.md new file mode 100644 index 00000000..2ada0bad --- /dev/null +++ b/packages/grpc-js-xds/README.md @@ -0,0 +1,24 @@ +# @grpc/grpc-js xDS plugin + +This package provides support for the `xds://` URL scheme to the `@grpc/grpc-js` library. The latest version of this package is compatible with `@grpc/grpc-js` version 1.2.x. + +## Installation + +``` +npm install @grpc/grpc-js-xds +``` + +## Usage + +```ts +import * as grpcJsXds from '@grpc/grpc-js-xds'; +grpcJsXds.register(); + +// ...get a @grpc/grpc-js Client class as usual + +const client = new MyServiceClient('xds:///example.com:123'); +``` + +## Supported Features + + - [xDS-Based Global Load Balancing](https://github.com/grpc/proposal/blob/master/A27-xds-global-load-balancing.md) \ No newline at end of file diff --git a/packages/grpc-js/deps/envoy-api b/packages/grpc-js-xds/deps/envoy-api similarity index 100% rename from packages/grpc-js/deps/envoy-api rename to packages/grpc-js-xds/deps/envoy-api diff --git a/packages/grpc-js/deps/googleapis b/packages/grpc-js-xds/deps/googleapis similarity index 100% rename from packages/grpc-js/deps/googleapis rename to packages/grpc-js-xds/deps/googleapis diff --git a/packages/grpc-js/deps/protoc-gen-validate b/packages/grpc-js-xds/deps/protoc-gen-validate similarity index 100% rename from packages/grpc-js/deps/protoc-gen-validate rename to packages/grpc-js-xds/deps/protoc-gen-validate diff --git a/packages/grpc-js/deps/udpa b/packages/grpc-js-xds/deps/udpa similarity index 100% rename from packages/grpc-js/deps/udpa rename to packages/grpc-js-xds/deps/udpa diff --git a/packages/grpc-js-xds/gulpfile.ts b/packages/grpc-js-xds/gulpfile.ts new file mode 100644 index 00000000..4ee6ac2c --- /dev/null +++ b/packages/grpc-js-xds/gulpfile.ts @@ -0,0 +1,78 @@ +/* + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +import * as gulp from 'gulp'; + +import * as mocha from 'gulp-mocha'; +import * as path from 'path'; +import * as execa from 'execa'; +import * as semver from 'semver'; + +Error.stackTraceLimit = Infinity; + +const jsCoreDir = __dirname; +const outDir = path.resolve(jsCoreDir, 'build'); + +const pkgPath = path.resolve(jsCoreDir, 'package.json'); +const supportedVersionRange = require(pkgPath).engines.node; +const versionNotSupported = () => { + console.log(`Skipping grpc-js-xds task for Node ${process.version}`); + return () => { return Promise.resolve(); }; +}; +const identity = (value: any): any => value; +const checkTask = semver.satisfies(process.version, supportedVersionRange) ? + identity : versionNotSupported; + +const execNpmVerb = (verb: string, ...args: string[]) => + execa('npm', [verb, ...args], {cwd: jsCoreDir, stdio: 'inherit'}); +const execNpmCommand = execNpmVerb.bind(null, 'run'); + +const install = checkTask(() => execNpmVerb('install', '--unsafe-perm')); + +/** + * Runs tslint on files in src/, with linting rules defined in tslint.json. + */ +const lint = checkTask(() => execNpmCommand('check')); + +const cleanFiles = checkTask(() => execNpmCommand('clean')); + +const clean = gulp.series(install, cleanFiles); + +const cleanAll = gulp.parallel(clean); + +/** + * Transpiles TypeScript files in src/ to JavaScript according to the settings + * found in tsconfig.json. + */ +const compile = checkTask(() => execNpmCommand('compile')); + +const runTests = checkTask(() => { + return gulp.src(`${outDir}/test/**/*.js`) + .pipe(mocha({reporter: 'mocha-jenkins-reporter', + require: ['ts-node/register']})); +}); + +const test = gulp.series(install, runTests); + +export { + install, + lint, + clean, + cleanAll, + compile, + test +} diff --git a/packages/grpc-js/interop/generated/grpc/testing/BoolValue.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/BoolValue.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/BoolValue.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/BoolValue.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/EchoStatus.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/EchoStatus.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/EchoStatus.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/EchoStatus.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/Empty.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/Empty.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/Empty.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/Empty.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/GrpclbRouteType.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/GrpclbRouteType.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/GrpclbRouteType.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/GrpclbRouteType.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsRequest.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsRequest.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsRequest.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsRequest.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsResponse.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsResponse.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsResponse.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsResponse.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsService.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsService.ts similarity index 98% rename from packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsService.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsService.ts index eece848b..aa4f409f 100644 --- a/packages/grpc-js/interop/generated/grpc/testing/LoadBalancerStatsService.ts +++ b/packages/grpc-js-xds/interop/generated/grpc/testing/LoadBalancerStatsService.ts @@ -1,6 +1,6 @@ // Original file: proto/grpc/testing/test.proto -import * as grpc from '../../../../src' +import * as grpc from '@grpc/grpc-js' import { LoadBalancerStatsRequest as _grpc_testing_LoadBalancerStatsRequest, LoadBalancerStatsRequest__Output as _grpc_testing_LoadBalancerStatsRequest__Output } from '../../grpc/testing/LoadBalancerStatsRequest'; import { LoadBalancerStatsResponse as _grpc_testing_LoadBalancerStatsResponse, LoadBalancerStatsResponse__Output as _grpc_testing_LoadBalancerStatsResponse__Output } from '../../grpc/testing/LoadBalancerStatsResponse'; diff --git a/packages/grpc-js/interop/generated/grpc/testing/Payload.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/Payload.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/Payload.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/Payload.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/PayloadType.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/PayloadType.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/PayloadType.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/PayloadType.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/ReconnectInfo.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectInfo.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/ReconnectInfo.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectInfo.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/ReconnectParams.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectParams.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/ReconnectParams.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectParams.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/ReconnectService.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectService.ts similarity index 99% rename from packages/grpc-js/interop/generated/grpc/testing/ReconnectService.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectService.ts index 3829506b..21114765 100644 --- a/packages/grpc-js/interop/generated/grpc/testing/ReconnectService.ts +++ b/packages/grpc-js-xds/interop/generated/grpc/testing/ReconnectService.ts @@ -1,6 +1,6 @@ // Original file: proto/grpc/testing/test.proto -import * as grpc from '../../../../src' +import * as grpc from '@grpc/grpc-js' import { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty'; import { ReconnectInfo as _grpc_testing_ReconnectInfo, ReconnectInfo__Output as _grpc_testing_ReconnectInfo__Output } from '../../grpc/testing/ReconnectInfo'; import { ReconnectParams as _grpc_testing_ReconnectParams, ReconnectParams__Output as _grpc_testing_ReconnectParams__Output } from '../../grpc/testing/ReconnectParams'; diff --git a/packages/grpc-js/interop/generated/grpc/testing/ResponseParameters.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/ResponseParameters.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/ResponseParameters.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/ResponseParameters.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/SimpleRequest.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/SimpleRequest.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/SimpleRequest.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/SimpleRequest.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/SimpleResponse.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/SimpleResponse.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/SimpleResponse.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/SimpleResponse.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/StreamingInputCallRequest.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/StreamingInputCallRequest.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/StreamingInputCallRequest.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/StreamingInputCallRequest.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/StreamingInputCallResponse.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/StreamingInputCallResponse.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/StreamingInputCallResponse.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/StreamingInputCallResponse.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/StreamingOutputCallRequest.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/StreamingOutputCallRequest.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/StreamingOutputCallRequest.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/StreamingOutputCallRequest.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/StreamingOutputCallResponse.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/StreamingOutputCallResponse.ts similarity index 100% rename from packages/grpc-js/interop/generated/grpc/testing/StreamingOutputCallResponse.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/StreamingOutputCallResponse.ts diff --git a/packages/grpc-js/interop/generated/grpc/testing/TestService.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/TestService.ts similarity index 99% rename from packages/grpc-js/interop/generated/grpc/testing/TestService.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/TestService.ts index b95b7a97..2ccf45fd 100644 --- a/packages/grpc-js/interop/generated/grpc/testing/TestService.ts +++ b/packages/grpc-js-xds/interop/generated/grpc/testing/TestService.ts @@ -1,6 +1,6 @@ // Original file: proto/grpc/testing/test.proto -import * as grpc from '../../../../src' +import * as grpc from '@grpc/grpc-js' import { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty'; import { SimpleRequest as _grpc_testing_SimpleRequest, SimpleRequest__Output as _grpc_testing_SimpleRequest__Output } from '../../grpc/testing/SimpleRequest'; import { SimpleResponse as _grpc_testing_SimpleResponse, SimpleResponse__Output as _grpc_testing_SimpleResponse__Output } from '../../grpc/testing/SimpleResponse'; diff --git a/packages/grpc-js/interop/generated/grpc/testing/UnimplementedService.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/UnimplementedService.ts similarity index 98% rename from packages/grpc-js/interop/generated/grpc/testing/UnimplementedService.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/UnimplementedService.ts index afbf9117..121dfa91 100644 --- a/packages/grpc-js/interop/generated/grpc/testing/UnimplementedService.ts +++ b/packages/grpc-js-xds/interop/generated/grpc/testing/UnimplementedService.ts @@ -1,6 +1,6 @@ // Original file: proto/grpc/testing/test.proto -import * as grpc from '../../../../src' +import * as grpc from '@grpc/grpc-js' import { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty'; /** diff --git a/packages/grpc-js/interop/generated/grpc/testing/XdsUpdateHealthService.ts b/packages/grpc-js-xds/interop/generated/grpc/testing/XdsUpdateHealthService.ts similarity index 98% rename from packages/grpc-js/interop/generated/grpc/testing/XdsUpdateHealthService.ts rename to packages/grpc-js-xds/interop/generated/grpc/testing/XdsUpdateHealthService.ts index f27a461e..f898a16d 100644 --- a/packages/grpc-js/interop/generated/grpc/testing/XdsUpdateHealthService.ts +++ b/packages/grpc-js-xds/interop/generated/grpc/testing/XdsUpdateHealthService.ts @@ -1,6 +1,6 @@ // Original file: proto/grpc/testing/test.proto -import * as grpc from '../../../../src' +import * as grpc from '@grpc/grpc-js' import { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty'; /** diff --git a/packages/grpc-js/interop/generated/test.ts b/packages/grpc-js-xds/interop/generated/test.ts similarity index 98% rename from packages/grpc-js/interop/generated/test.ts rename to packages/grpc-js-xds/interop/generated/test.ts index a5c95d95..330dbc9f 100644 --- a/packages/grpc-js/interop/generated/test.ts +++ b/packages/grpc-js-xds/interop/generated/test.ts @@ -1,4 +1,4 @@ -import * as grpc from '../../src'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; import { LoadBalancerStatsServiceClient as _grpc_testing_LoadBalancerStatsServiceClient } from './grpc/testing/LoadBalancerStatsService'; diff --git a/packages/grpc-js/interop/xds-interop-client.ts b/packages/grpc-js-xds/interop/xds-interop-client.ts similarity index 95% rename from packages/grpc-js/interop/xds-interop-client.ts rename to packages/grpc-js-xds/interop/xds-interop-client.ts index 3009541c..526c5194 100644 --- a/packages/grpc-js/interop/xds-interop-client.ts +++ b/packages/grpc-js-xds/interop/xds-interop-client.ts @@ -15,7 +15,9 @@ * */ -import * as grpc from '../src'; +import * as grpc from '@grpc/grpc-js'; + +import * as grpc_xds from '../src'; import { ProtoGrpcType } from './generated/test'; @@ -25,6 +27,8 @@ import { LoadBalancerStatsResponse } from './generated/grpc/testing/LoadBalancer import * as yargs from 'yargs'; import { LoadBalancerStatsServiceHandlers } from './generated/grpc/testing/LoadBalancerStatsService'; +grpc_xds.register(); + const packageDefinition = protoLoader.loadSync('grpc/testing/test.proto', { keepCase: true, defaults: true, diff --git a/packages/grpc-js-xds/package.json b/packages/grpc-js-xds/package.json new file mode 100644 index 00000000..78d90c1d --- /dev/null +++ b/packages/grpc-js-xds/package.json @@ -0,0 +1,53 @@ +{ + "name": "@grpc/grpc-js-xds", + "version": "1.0.0", + "description": "Plugin for @grpc/grpc-js. Adds the xds:// URL scheme and associated features.", + "main": "build/src/index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "check": "gts check", + "clean": "gts clean", + "compile": "tsc", + "fix": "gts fix", + "prepare": "npm run compile", + "pretest": "npm run compile", + "posttest": "npm run check", + "generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs deps/envoy-api/ deps/udpa/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib @grpc/grpc-js envoy/service/discovery/v2/ads.proto envoy/service/load_stats/v2/lrs.proto envoy/api/v2/listener.proto envoy/api/v2/route.proto envoy/api/v2/cluster.proto envoy/api/v2/endpoint.proto envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto", + "generate-interop-types": "proto-loader-gen-types --keep-case --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs proto/ -O interop/generated --grpcLib @grpc/grpc-js grpc/testing/test.proto" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/grpc/grpc-node.git" + }, + "keywords": [ + "grpc" + ], + "author": { + "name": "Google Inc." + }, + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/grpc/grpc-node/issues" + }, + "homepage": "https://github.com/grpc/grpc-node#readme", + "devDependencies": { + "@grpc/grpc-js": "file:../grpc-js", + "gts": "^2.0.2", + "typescript": "^3.8.3", + "@types/gulp": "^4.0.6", + "@types/gulp-mocha": "0.0.32", + "@types/mocha": "^5.2.6", + "@types/node": "^13.11.1", + "@types/yargs": "^15.0.5", + "yargs": "^15.4.1" + }, + "dependencies": { + "@grpc/proto-loader": "^0.6.0-pre14" + }, + "peerDependencies": { + "@grpc/grpc-js": "~1.2.0" + }, + "engines": { + "node": ">=10.10.0" + } +} diff --git a/packages/grpc-js/proto/grpc/testing/empty.proto b/packages/grpc-js-xds/proto/grpc/testing/empty.proto similarity index 100% rename from packages/grpc-js/proto/grpc/testing/empty.proto rename to packages/grpc-js-xds/proto/grpc/testing/empty.proto diff --git a/packages/grpc-js/proto/grpc/testing/messages.proto b/packages/grpc-js-xds/proto/grpc/testing/messages.proto similarity index 100% rename from packages/grpc-js/proto/grpc/testing/messages.proto rename to packages/grpc-js-xds/proto/grpc/testing/messages.proto diff --git a/packages/grpc-js/proto/grpc/testing/test.proto b/packages/grpc-js-xds/proto/grpc/testing/test.proto similarity index 100% rename from packages/grpc-js/proto/grpc/testing/test.proto rename to packages/grpc-js-xds/proto/grpc/testing/test.proto diff --git a/packages/grpc-js/scripts/xds.sh b/packages/grpc-js-xds/scripts/xds.sh old mode 100755 new mode 100644 similarity index 90% rename from packages/grpc-js/scripts/xds.sh rename to packages/grpc-js-xds/scripts/xds.sh index ce2b6417..bbfc3056 --- a/packages/grpc-js/scripts/xds.sh +++ b/packages/grpc-js-xds/scripts/xds.sh @@ -34,6 +34,10 @@ echo "source $NVM_DIR/nvm.sh" > ~/.profile echo "source $NVM_DIR/nvm.sh" > ~/.shrc export ENV=~/.shrc +cd $base/../grpc-js +npm install + +# grpc-js-xds has a dev dependency on "../grpc-js", so it should pull that in automatically cd $base git submodule update --init --recursive npm install @@ -54,7 +58,7 @@ GRPC_NODE_TRACE=xds_client,xds_resolver,cds_balancer,eds_balancer,priority,weigh --path_to_server_binary=/java_server/grpc-java/interop-testing/build/install/grpc-interop-testing/bin/xds-test-server \ --gcp_suffix=$(date '+%s') \ --verbose \ - --client_cmd="$(which node) grpc-node/packages/grpc-js/build/interop/xds-interop-client \ + --client_cmd="$(which node) grpc-node/packages/grpc-js-xds/build/interop/xds-interop-client \ --server=xds:///{server_uri} \ --stats_port={stats_port} \ --qps={qps} \ diff --git a/packages/grpc-js/src/generated/ads.ts b/packages/grpc-js-xds/src/generated/ads.ts similarity index 99% rename from packages/grpc-js/src/generated/ads.ts rename to packages/grpc-js-xds/src/generated/ads.ts index a33270cc..10c420a1 100644 --- a/packages/grpc-js/src/generated/ads.ts +++ b/packages/grpc-js-xds/src/generated/ads.ts @@ -1,4 +1,4 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; import { AggregatedDiscoveryServiceClient as _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient } from './envoy/service/discovery/v2/AggregatedDiscoveryService'; @@ -6,7 +6,7 @@ import { AggregatedDiscoveryServiceClient as _envoy_service_discovery_v2_Aggrega type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/cluster.ts b/packages/grpc-js-xds/src/generated/cluster.ts similarity index 99% rename from packages/grpc-js/src/generated/cluster.ts rename to packages/grpc-js-xds/src/generated/cluster.ts index 7d2b34a4..b165ae6b 100644 --- a/packages/grpc-js/src/generated/cluster.ts +++ b/packages/grpc-js-xds/src/generated/cluster.ts @@ -1,11 +1,11 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/endpoint.ts b/packages/grpc-js-xds/src/generated/endpoint.ts similarity index 99% rename from packages/grpc-js/src/generated/endpoint.ts rename to packages/grpc-js-xds/src/generated/endpoint.ts index ade62c99..18c43984 100644 --- a/packages/grpc-js/src/generated/endpoint.ts +++ b/packages/grpc-js-xds/src/generated/endpoint.ts @@ -1,11 +1,11 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/envoy/api/v2/Cluster.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/Cluster.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/Cluster.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/Cluster.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/ClusterLoadAssignment.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/ClusterLoadAssignment.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/ClusterLoadAssignment.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/ClusterLoadAssignment.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/DeltaDiscoveryRequest.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/DeltaDiscoveryRequest.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/DeltaDiscoveryRequest.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/DeltaDiscoveryRequest.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/DeltaDiscoveryResponse.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/DeltaDiscoveryResponse.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/DeltaDiscoveryResponse.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/DeltaDiscoveryResponse.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/DiscoveryRequest.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/DiscoveryRequest.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/DiscoveryRequest.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/DiscoveryRequest.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/DiscoveryResponse.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/DiscoveryResponse.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/DiscoveryResponse.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/DiscoveryResponse.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/Listener.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/Listener.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/Listener.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/Listener.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/LoadBalancingPolicy.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/LoadBalancingPolicy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/LoadBalancingPolicy.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/LoadBalancingPolicy.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/Resource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/Resource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/Resource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/Resource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/RouteConfiguration.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/RouteConfiguration.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/RouteConfiguration.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/RouteConfiguration.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/ScopedRouteConfiguration.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/ScopedRouteConfiguration.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/ScopedRouteConfiguration.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/ScopedRouteConfiguration.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/UpstreamBindConfig.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/UpstreamBindConfig.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/UpstreamBindConfig.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/UpstreamBindConfig.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/UpstreamConnectionOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/UpstreamConnectionOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/UpstreamConnectionOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/UpstreamConnectionOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/Vhds.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/Vhds.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/Vhds.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/Vhds.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/CertificateValidationContext.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/CertificateValidationContext.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/CertificateValidationContext.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/CertificateValidationContext.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/CommonTlsContext.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/CommonTlsContext.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/CommonTlsContext.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/CommonTlsContext.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/DownstreamTlsContext.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/DownstreamTlsContext.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/DownstreamTlsContext.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/DownstreamTlsContext.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/GenericSecret.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/GenericSecret.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/GenericSecret.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/GenericSecret.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/PrivateKeyProvider.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/PrivateKeyProvider.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/PrivateKeyProvider.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/PrivateKeyProvider.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/SdsSecretConfig.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/SdsSecretConfig.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/SdsSecretConfig.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/SdsSecretConfig.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/Secret.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/Secret.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/Secret.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/Secret.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/TlsCertificate.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/TlsCertificate.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/TlsCertificate.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/TlsCertificate.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/TlsParameters.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/TlsParameters.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/TlsParameters.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/TlsParameters.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/TlsSessionTicketKeys.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/TlsSessionTicketKeys.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/TlsSessionTicketKeys.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/TlsSessionTicketKeys.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/auth/UpstreamTlsContext.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/auth/UpstreamTlsContext.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/auth/UpstreamTlsContext.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/auth/UpstreamTlsContext.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/cluster/CircuitBreakers.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/cluster/CircuitBreakers.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/cluster/CircuitBreakers.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/cluster/CircuitBreakers.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/cluster/Filter.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/cluster/Filter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/cluster/Filter.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/cluster/Filter.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/cluster/OutlierDetection.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/cluster/OutlierDetection.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/cluster/OutlierDetection.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/cluster/OutlierDetection.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Address.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Address.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Address.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Address.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/AggregatedConfigSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/AggregatedConfigSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/AggregatedConfigSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/AggregatedConfigSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/ApiConfigSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/ApiConfigSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/ApiConfigSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/ApiConfigSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/ApiVersion.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/ApiVersion.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/ApiVersion.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/ApiVersion.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/AsyncDataSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/AsyncDataSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/AsyncDataSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/AsyncDataSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/BackoffStrategy.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/BackoffStrategy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/BackoffStrategy.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/BackoffStrategy.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/BindConfig.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/BindConfig.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/BindConfig.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/BindConfig.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/BuildVersion.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/BuildVersion.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/BuildVersion.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/BuildVersion.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/CidrRange.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/CidrRange.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/CidrRange.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/CidrRange.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/ConfigSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/ConfigSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/ConfigSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/ConfigSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/ControlPlane.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/ControlPlane.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/ControlPlane.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/ControlPlane.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/DataSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/DataSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/DataSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/DataSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/EventServiceConfig.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/EventServiceConfig.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/EventServiceConfig.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/EventServiceConfig.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Extension.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Extension.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Extension.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Extension.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/GrpcProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/GrpcProtocolOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/GrpcProtocolOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/GrpcProtocolOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/GrpcService.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/GrpcService.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/GrpcService.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/GrpcService.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HeaderMap.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HeaderMap.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HeaderMap.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HeaderMap.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HeaderValue.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HeaderValue.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HeaderValue.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HeaderValue.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HeaderValueOption.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HeaderValueOption.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HeaderValueOption.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HeaderValueOption.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HealthCheck.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HealthCheck.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HealthCheck.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HealthCheck.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HealthStatus.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HealthStatus.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HealthStatus.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HealthStatus.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Http1ProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Http1ProtocolOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Http1ProtocolOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Http1ProtocolOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Http2ProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Http2ProtocolOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Http2ProtocolOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Http2ProtocolOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HttpProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HttpProtocolOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HttpProtocolOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HttpProtocolOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/HttpUri.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/HttpUri.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/HttpUri.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/HttpUri.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Locality.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Locality.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Locality.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Locality.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Metadata.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Metadata.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Metadata.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Metadata.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Node.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Node.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Node.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Node.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/Pipe.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/Pipe.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/Pipe.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/Pipe.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RateLimitSettings.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RateLimitSettings.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RateLimitSettings.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RateLimitSettings.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RemoteDataSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RemoteDataSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RemoteDataSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RemoteDataSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RequestMethod.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RequestMethod.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RequestMethod.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RequestMethod.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RetryPolicy.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RetryPolicy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RetryPolicy.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RetryPolicy.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RoutingPriority.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RoutingPriority.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RoutingPriority.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RoutingPriority.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeDouble.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeDouble.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeDouble.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeDouble.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeFeatureFlag.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeFeatureFlag.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeFeatureFlag.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeFeatureFlag.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeFractionalPercent.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeFractionalPercent.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeFractionalPercent.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeFractionalPercent.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeUInt32.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeUInt32.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/RuntimeUInt32.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/RuntimeUInt32.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/SelfConfigSource.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/SelfConfigSource.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/SelfConfigSource.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/SelfConfigSource.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/SocketAddress.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/SocketAddress.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/SocketAddress.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/SocketAddress.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/SocketOption.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/SocketOption.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/SocketOption.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/SocketOption.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/TcpKeepalive.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/TcpKeepalive.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/TcpKeepalive.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/TcpKeepalive.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/TcpProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/TcpProtocolOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/TcpProtocolOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/TcpProtocolOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/TrafficDirection.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/TrafficDirection.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/TrafficDirection.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/TrafficDirection.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/TransportSocket.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/TransportSocket.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/TransportSocket.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/TransportSocket.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/core/UpstreamHttpProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/core/UpstreamHttpProtocolOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/core/UpstreamHttpProtocolOptions.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/core/UpstreamHttpProtocolOptions.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/ClusterStats.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/ClusterStats.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/ClusterStats.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/ClusterStats.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/Endpoint.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/Endpoint.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/Endpoint.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/Endpoint.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/EndpointLoadMetricStats.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/EndpointLoadMetricStats.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/EndpointLoadMetricStats.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/EndpointLoadMetricStats.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/LbEndpoint.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/LbEndpoint.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/LbEndpoint.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/LbEndpoint.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/LocalityLbEndpoints.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/LocalityLbEndpoints.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/LocalityLbEndpoints.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/LocalityLbEndpoints.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/UpstreamEndpointStats.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/UpstreamEndpointStats.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/UpstreamEndpointStats.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/UpstreamEndpointStats.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/endpoint/UpstreamLocalityStats.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/UpstreamLocalityStats.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/endpoint/UpstreamLocalityStats.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/endpoint/UpstreamLocalityStats.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/ActiveRawUdpListenerConfig.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/ActiveRawUdpListenerConfig.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/ActiveRawUdpListenerConfig.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/ActiveRawUdpListenerConfig.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/Filter.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/Filter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/Filter.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/Filter.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/FilterChain.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/FilterChain.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/FilterChain.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/FilterChain.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/FilterChainMatch.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/FilterChainMatch.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/FilterChainMatch.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/FilterChainMatch.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/ListenerFilter.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/ListenerFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/ListenerFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/ListenerFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/ListenerFilterChainMatchPredicate.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/ListenerFilterChainMatchPredicate.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/ListenerFilterChainMatchPredicate.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/ListenerFilterChainMatchPredicate.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/listener/UdpListenerConfig.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/listener/UdpListenerConfig.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/listener/UdpListenerConfig.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/listener/UdpListenerConfig.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/CorsPolicy.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/CorsPolicy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/CorsPolicy.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/CorsPolicy.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/Decorator.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/Decorator.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/Decorator.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/Decorator.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/DirectResponseAction.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/DirectResponseAction.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/DirectResponseAction.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/DirectResponseAction.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/FilterAction.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/FilterAction.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/FilterAction.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/FilterAction.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/HeaderMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/HeaderMatcher.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/HeaderMatcher.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/HeaderMatcher.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/HedgePolicy.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/HedgePolicy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/HedgePolicy.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/HedgePolicy.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/QueryParameterMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/QueryParameterMatcher.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/QueryParameterMatcher.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/QueryParameterMatcher.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/RateLimit.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/RateLimit.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/RateLimit.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/RateLimit.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/RedirectAction.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/RedirectAction.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/RedirectAction.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/RedirectAction.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/RetryPolicy.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/RetryPolicy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/RetryPolicy.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/RetryPolicy.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/Route.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/Route.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/Route.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/Route.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/RouteAction.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/RouteAction.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/RouteAction.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/RouteAction.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/RouteMatch.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/RouteMatch.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/RouteMatch.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/RouteMatch.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/Tracing.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/Tracing.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/Tracing.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/Tracing.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/VirtualCluster.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/VirtualCluster.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/VirtualCluster.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/VirtualCluster.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/VirtualHost.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/VirtualHost.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/VirtualHost.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/VirtualHost.ts diff --git a/packages/grpc-js/src/generated/envoy/api/v2/route/WeightedCluster.ts b/packages/grpc-js-xds/src/generated/envoy/api/v2/route/WeightedCluster.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/api/v2/route/WeightedCluster.ts rename to packages/grpc-js-xds/src/generated/envoy/api/v2/route/WeightedCluster.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/AccessLog.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/AccessLog.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/AccessLog.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/AccessLog.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/AccessLogFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/AccessLogFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/AccessLogFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/AccessLogFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/AndFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/AndFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/AndFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/AndFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/ComparisonFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/ComparisonFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/ComparisonFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/ComparisonFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/DurationFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/DurationFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/DurationFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/DurationFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/ExtensionFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/ExtensionFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/ExtensionFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/ExtensionFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/GrpcStatusFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/GrpcStatusFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/GrpcStatusFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/GrpcStatusFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/HeaderFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/HeaderFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/HeaderFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/HeaderFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/NotHealthCheckFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/NotHealthCheckFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/NotHealthCheckFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/NotHealthCheckFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/OrFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/OrFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/OrFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/OrFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/ResponseFlagFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/ResponseFlagFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/ResponseFlagFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/ResponseFlagFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/RuntimeFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/RuntimeFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/RuntimeFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/RuntimeFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/StatusCodeFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/StatusCodeFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/StatusCodeFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/StatusCodeFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/TraceableFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/TraceableFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/accesslog/v2/TraceableFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/accesslog/v2/TraceableFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpConnectionManager.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpConnectionManager.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpConnectionManager.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpConnectionManager.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpFilter.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpFilter.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/HttpFilter.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/Rds.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/Rds.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/Rds.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/Rds.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/RequestIDExtension.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/RequestIDExtension.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/RequestIDExtension.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/RequestIDExtension.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRds.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRds.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRds.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRds.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRouteConfigurationsList.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRouteConfigurationsList.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRouteConfigurationsList.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRouteConfigurationsList.ts diff --git a/packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRoutes.ts b/packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRoutes.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRoutes.ts rename to packages/grpc-js-xds/src/generated/envoy/config/filter/network/http_connection_manager/v2/ScopedRoutes.ts diff --git a/packages/grpc-js/src/generated/envoy/config/listener/v2/ApiListener.ts b/packages/grpc-js-xds/src/generated/envoy/config/listener/v2/ApiListener.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/listener/v2/ApiListener.ts rename to packages/grpc-js-xds/src/generated/envoy/config/listener/v2/ApiListener.ts diff --git a/packages/grpc-js/src/generated/envoy/config/trace/v2/Tracing.ts b/packages/grpc-js-xds/src/generated/envoy/config/trace/v2/Tracing.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/config/trace/v2/Tracing.ts rename to packages/grpc-js-xds/src/generated/envoy/config/trace/v2/Tracing.ts diff --git a/packages/grpc-js/src/generated/envoy/service/discovery/v2/AdsDummy.ts b/packages/grpc-js-xds/src/generated/envoy/service/discovery/v2/AdsDummy.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/service/discovery/v2/AdsDummy.ts rename to packages/grpc-js-xds/src/generated/envoy/service/discovery/v2/AdsDummy.ts diff --git a/packages/grpc-js/src/generated/envoy/service/discovery/v2/AggregatedDiscoveryService.ts b/packages/grpc-js-xds/src/generated/envoy/service/discovery/v2/AggregatedDiscoveryService.ts similarity index 92% rename from packages/grpc-js/src/generated/envoy/service/discovery/v2/AggregatedDiscoveryService.ts rename to packages/grpc-js-xds/src/generated/envoy/service/discovery/v2/AggregatedDiscoveryService.ts index 32cc9ba5..02c0da34 100644 --- a/packages/grpc-js/src/generated/envoy/service/discovery/v2/AggregatedDiscoveryService.ts +++ b/packages/grpc-js-xds/src/generated/envoy/service/discovery/v2/AggregatedDiscoveryService.ts @@ -1,6 +1,6 @@ // Original file: deps/envoy-api/envoy/service/discovery/v2/ads.proto -import * as grpc from '../../../../../index' +import * as grpc from '@grpc/grpc-js' import { DeltaDiscoveryRequest as _envoy_api_v2_DeltaDiscoveryRequest, DeltaDiscoveryRequest__Output as _envoy_api_v2_DeltaDiscoveryRequest__Output } from '../../../../envoy/api/v2/DeltaDiscoveryRequest'; import { DeltaDiscoveryResponse as _envoy_api_v2_DeltaDiscoveryResponse, DeltaDiscoveryResponse__Output as _envoy_api_v2_DeltaDiscoveryResponse__Output } from '../../../../envoy/api/v2/DeltaDiscoveryResponse'; import { DiscoveryRequest as _envoy_api_v2_DiscoveryRequest, DiscoveryRequest__Output as _envoy_api_v2_DiscoveryRequest__Output } from '../../../../envoy/api/v2/DiscoveryRequest'; @@ -41,12 +41,12 @@ export interface AggregatedDiscoveryServiceClient extends grpc.Client { * DiscoveryRequest/DiscoveryResponse provides sufficient information to recover * the multiplexed singleton APIs at the Envoy instance and management server. */ -export interface AggregatedDiscoveryServiceHandlers { - DeltaAggregatedResources(call: grpc.ServerDuplexStream<_envoy_api_v2_DeltaDiscoveryRequest, _envoy_api_v2_DeltaDiscoveryResponse__Output>): void; +export interface AggregatedDiscoveryServiceHandlers extends grpc.UntypedServiceImplementation { + DeltaAggregatedResources(call: grpc.ServerDuplexStream<_envoy_api_v2_DeltaDiscoveryRequest__Output, _envoy_api_v2_DeltaDiscoveryResponse>): void; /** * This is a gRPC-only API. */ - StreamAggregatedResources(call: grpc.ServerDuplexStream<_envoy_api_v2_DiscoveryRequest, _envoy_api_v2_DiscoveryResponse__Output>): void; + StreamAggregatedResources(call: grpc.ServerDuplexStream<_envoy_api_v2_DiscoveryRequest__Output, _envoy_api_v2_DiscoveryResponse>): void; } diff --git a/packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadReportingService.ts b/packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadReportingService.ts similarity index 96% rename from packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadReportingService.ts rename to packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadReportingService.ts index 13d00694..7db2bad1 100644 --- a/packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadReportingService.ts +++ b/packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadReportingService.ts @@ -1,6 +1,6 @@ // Original file: deps/envoy-api/envoy/service/load_stats/v2/lrs.proto -import * as grpc from '../../../../../index' +import * as grpc from '@grpc/grpc-js' import { LoadStatsRequest as _envoy_service_load_stats_v2_LoadStatsRequest, LoadStatsRequest__Output as _envoy_service_load_stats_v2_LoadStatsRequest__Output } from '../../../../envoy/service/load_stats/v2/LoadStatsRequest'; import { LoadStatsResponse as _envoy_service_load_stats_v2_LoadStatsResponse, LoadStatsResponse__Output as _envoy_service_load_stats_v2_LoadStatsResponse__Output } from '../../../../envoy/service/load_stats/v2/LoadStatsResponse'; @@ -72,7 +72,7 @@ export interface LoadReportingServiceClient extends grpc.Client { } -export interface LoadReportingServiceHandlers { +export interface LoadReportingServiceHandlers extends grpc.UntypedServiceImplementation { /** * Advanced API to allow for multi-dimensional load balancing by remote * server. For receiving LB assignments, the steps are: @@ -103,6 +103,6 @@ export interface LoadReportingServiceHandlers { * from around the world, computes global assignment and prepares traffic * assignment destined for each zone Envoys are located in. Goto 2. */ - StreamLoadStats(call: grpc.ServerDuplexStream<_envoy_service_load_stats_v2_LoadStatsRequest, _envoy_service_load_stats_v2_LoadStatsResponse__Output>): void; + StreamLoadStats(call: grpc.ServerDuplexStream<_envoy_service_load_stats_v2_LoadStatsRequest__Output, _envoy_service_load_stats_v2_LoadStatsResponse>): void; } diff --git a/packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadStatsRequest.ts b/packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadStatsRequest.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadStatsRequest.ts rename to packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadStatsRequest.ts diff --git a/packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadStatsResponse.ts b/packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadStatsResponse.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/service/load_stats/v2/LoadStatsResponse.ts rename to packages/grpc-js-xds/src/generated/envoy/service/load_stats/v2/LoadStatsResponse.ts diff --git a/packages/grpc-js/src/generated/envoy/type/CodecClientType.ts b/packages/grpc-js-xds/src/generated/envoy/type/CodecClientType.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/CodecClientType.ts rename to packages/grpc-js-xds/src/generated/envoy/type/CodecClientType.ts diff --git a/packages/grpc-js/src/generated/envoy/type/DoubleRange.ts b/packages/grpc-js-xds/src/generated/envoy/type/DoubleRange.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/DoubleRange.ts rename to packages/grpc-js-xds/src/generated/envoy/type/DoubleRange.ts diff --git a/packages/grpc-js/src/generated/envoy/type/FractionalPercent.ts b/packages/grpc-js-xds/src/generated/envoy/type/FractionalPercent.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/FractionalPercent.ts rename to packages/grpc-js-xds/src/generated/envoy/type/FractionalPercent.ts diff --git a/packages/grpc-js/src/generated/envoy/type/Int32Range.ts b/packages/grpc-js-xds/src/generated/envoy/type/Int32Range.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/Int32Range.ts rename to packages/grpc-js-xds/src/generated/envoy/type/Int32Range.ts diff --git a/packages/grpc-js/src/generated/envoy/type/Int64Range.ts b/packages/grpc-js-xds/src/generated/envoy/type/Int64Range.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/Int64Range.ts rename to packages/grpc-js-xds/src/generated/envoy/type/Int64Range.ts diff --git a/packages/grpc-js/src/generated/envoy/type/Percent.ts b/packages/grpc-js-xds/src/generated/envoy/type/Percent.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/Percent.ts rename to packages/grpc-js-xds/src/generated/envoy/type/Percent.ts diff --git a/packages/grpc-js/src/generated/envoy/type/SemanticVersion.ts b/packages/grpc-js-xds/src/generated/envoy/type/SemanticVersion.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/SemanticVersion.ts rename to packages/grpc-js-xds/src/generated/envoy/type/SemanticVersion.ts diff --git a/packages/grpc-js/src/generated/envoy/type/matcher/ListStringMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/ListStringMatcher.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/matcher/ListStringMatcher.ts rename to packages/grpc-js-xds/src/generated/envoy/type/matcher/ListStringMatcher.ts diff --git a/packages/grpc-js/src/generated/envoy/type/matcher/RegexMatchAndSubstitute.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/RegexMatchAndSubstitute.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/matcher/RegexMatchAndSubstitute.ts rename to packages/grpc-js-xds/src/generated/envoy/type/matcher/RegexMatchAndSubstitute.ts diff --git a/packages/grpc-js/src/generated/envoy/type/matcher/RegexMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/RegexMatcher.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/matcher/RegexMatcher.ts rename to packages/grpc-js-xds/src/generated/envoy/type/matcher/RegexMatcher.ts diff --git a/packages/grpc-js/src/generated/envoy/type/matcher/StringMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/StringMatcher.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/matcher/StringMatcher.ts rename to packages/grpc-js-xds/src/generated/envoy/type/matcher/StringMatcher.ts diff --git a/packages/grpc-js/src/generated/envoy/type/metadata/v2/MetadataKey.ts b/packages/grpc-js-xds/src/generated/envoy/type/metadata/v2/MetadataKey.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/metadata/v2/MetadataKey.ts rename to packages/grpc-js-xds/src/generated/envoy/type/metadata/v2/MetadataKey.ts diff --git a/packages/grpc-js/src/generated/envoy/type/metadata/v2/MetadataKind.ts b/packages/grpc-js-xds/src/generated/envoy/type/metadata/v2/MetadataKind.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/metadata/v2/MetadataKind.ts rename to packages/grpc-js-xds/src/generated/envoy/type/metadata/v2/MetadataKind.ts diff --git a/packages/grpc-js/src/generated/envoy/type/tracing/v2/CustomTag.ts b/packages/grpc-js-xds/src/generated/envoy/type/tracing/v2/CustomTag.ts similarity index 100% rename from packages/grpc-js/src/generated/envoy/type/tracing/v2/CustomTag.ts rename to packages/grpc-js-xds/src/generated/envoy/type/tracing/v2/CustomTag.ts diff --git a/packages/grpc-js/src/generated/google/api/CustomHttpPattern.ts b/packages/grpc-js-xds/src/generated/google/api/CustomHttpPattern.ts similarity index 100% rename from packages/grpc-js/src/generated/google/api/CustomHttpPattern.ts rename to packages/grpc-js-xds/src/generated/google/api/CustomHttpPattern.ts diff --git a/packages/grpc-js/src/generated/google/api/Http.ts b/packages/grpc-js-xds/src/generated/google/api/Http.ts similarity index 100% rename from packages/grpc-js/src/generated/google/api/Http.ts rename to packages/grpc-js-xds/src/generated/google/api/Http.ts diff --git a/packages/grpc-js/src/generated/google/api/HttpRule.ts b/packages/grpc-js-xds/src/generated/google/api/HttpRule.ts similarity index 100% rename from packages/grpc-js/src/generated/google/api/HttpRule.ts rename to packages/grpc-js-xds/src/generated/google/api/HttpRule.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Any.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Any.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Any.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Any.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/BoolValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/BoolValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/BoolValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/BoolValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/BytesValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/BytesValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/BytesValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/BytesValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/DescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/DescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/DescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/DescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/DoubleValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/DoubleValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/DoubleValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/DoubleValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Duration.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Duration.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Duration.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Duration.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Empty.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Empty.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Empty.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Empty.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/EnumDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/EnumDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/EnumDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/EnumDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/EnumOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/EnumOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/EnumOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/EnumOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/EnumValueDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/EnumValueDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/EnumValueDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/EnumValueDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/EnumValueOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/EnumValueOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/EnumValueOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/EnumValueOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/FieldDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/FieldDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/FieldDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/FieldDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/FieldOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/FieldOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/FieldOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/FieldOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/FileDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/FileDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/FileDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/FileDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/FileDescriptorSet.ts b/packages/grpc-js-xds/src/generated/google/protobuf/FileDescriptorSet.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/FileDescriptorSet.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/FileDescriptorSet.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/FileOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/FileOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/FileOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/FileOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/FloatValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/FloatValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/FloatValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/FloatValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/GeneratedCodeInfo.ts b/packages/grpc-js-xds/src/generated/google/protobuf/GeneratedCodeInfo.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/GeneratedCodeInfo.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/GeneratedCodeInfo.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Int32Value.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Int32Value.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Int32Value.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Int32Value.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Int64Value.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Int64Value.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Int64Value.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Int64Value.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/ListValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/ListValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/ListValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/ListValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/MessageOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/MessageOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/MessageOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/MessageOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/MethodDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/MethodDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/MethodDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/MethodDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/MethodOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/MethodOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/MethodOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/MethodOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/NullValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/NullValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/NullValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/NullValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/OneofDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/OneofDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/OneofDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/OneofDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/OneofOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/OneofOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/OneofOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/OneofOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/ServiceDescriptorProto.ts b/packages/grpc-js-xds/src/generated/google/protobuf/ServiceDescriptorProto.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/ServiceDescriptorProto.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/ServiceDescriptorProto.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/ServiceOptions.ts b/packages/grpc-js-xds/src/generated/google/protobuf/ServiceOptions.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/ServiceOptions.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/ServiceOptions.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/SourceCodeInfo.ts b/packages/grpc-js-xds/src/generated/google/protobuf/SourceCodeInfo.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/SourceCodeInfo.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/SourceCodeInfo.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/StringValue.ts b/packages/grpc-js-xds/src/generated/google/protobuf/StringValue.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/StringValue.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/StringValue.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Struct.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Struct.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Struct.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Struct.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Timestamp.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Timestamp.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Timestamp.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Timestamp.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/UInt32Value.ts b/packages/grpc-js-xds/src/generated/google/protobuf/UInt32Value.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/UInt32Value.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/UInt32Value.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/UInt64Value.ts b/packages/grpc-js-xds/src/generated/google/protobuf/UInt64Value.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/UInt64Value.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/UInt64Value.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/UninterpretedOption.ts b/packages/grpc-js-xds/src/generated/google/protobuf/UninterpretedOption.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/UninterpretedOption.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/UninterpretedOption.ts diff --git a/packages/grpc-js/src/generated/google/protobuf/Value.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Value.ts similarity index 100% rename from packages/grpc-js/src/generated/google/protobuf/Value.ts rename to packages/grpc-js-xds/src/generated/google/protobuf/Value.ts diff --git a/packages/grpc-js/src/generated/google/rpc/Status.ts b/packages/grpc-js-xds/src/generated/google/rpc/Status.ts similarity index 100% rename from packages/grpc-js/src/generated/google/rpc/Status.ts rename to packages/grpc-js-xds/src/generated/google/rpc/Status.ts diff --git a/packages/grpc-js/src/generated/http_connection_manager.ts b/packages/grpc-js-xds/src/generated/http_connection_manager.ts similarity index 99% rename from packages/grpc-js/src/generated/http_connection_manager.ts rename to packages/grpc-js-xds/src/generated/http_connection_manager.ts index 37fe303b..5a90451a 100644 --- a/packages/grpc-js/src/generated/http_connection_manager.ts +++ b/packages/grpc-js-xds/src/generated/http_connection_manager.ts @@ -1,11 +1,11 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/listener.ts b/packages/grpc-js-xds/src/generated/listener.ts similarity index 99% rename from packages/grpc-js/src/generated/listener.ts rename to packages/grpc-js-xds/src/generated/listener.ts index 040c1d52..57daeffd 100644 --- a/packages/grpc-js/src/generated/listener.ts +++ b/packages/grpc-js-xds/src/generated/listener.ts @@ -1,11 +1,11 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/lrs.ts b/packages/grpc-js-xds/src/generated/lrs.ts similarity index 99% rename from packages/grpc-js/src/generated/lrs.ts rename to packages/grpc-js-xds/src/generated/lrs.ts index 47c5de6d..56ada2f3 100644 --- a/packages/grpc-js/src/generated/lrs.ts +++ b/packages/grpc-js-xds/src/generated/lrs.ts @@ -1,4 +1,4 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; import { LoadReportingServiceClient as _envoy_service_load_stats_v2_LoadReportingServiceClient } from './envoy/service/load_stats/v2/LoadReportingService'; @@ -6,7 +6,7 @@ import { LoadReportingServiceClient as _envoy_service_load_stats_v2_LoadReportin type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/route.ts b/packages/grpc-js-xds/src/generated/route.ts similarity index 99% rename from packages/grpc-js/src/generated/route.ts rename to packages/grpc-js-xds/src/generated/route.ts index 5b251477..40bcdd55 100644 --- a/packages/grpc-js/src/generated/route.ts +++ b/packages/grpc-js-xds/src/generated/route.ts @@ -1,11 +1,11 @@ -import * as grpc from '../index'; +import * as grpc from '@grpc/grpc-js'; import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader'; type ConstructorArguments = Constructor extends new (...args: infer Args) => any ? Args: never; type SubtypeConstructor = { new(...args: ConstructorArguments): Subtype; -} +}; export interface ProtoGrpcType { envoy: { diff --git a/packages/grpc-js/src/generated/udpa/annotations/FieldMigrateAnnotation.ts b/packages/grpc-js-xds/src/generated/udpa/annotations/FieldMigrateAnnotation.ts similarity index 100% rename from packages/grpc-js/src/generated/udpa/annotations/FieldMigrateAnnotation.ts rename to packages/grpc-js-xds/src/generated/udpa/annotations/FieldMigrateAnnotation.ts diff --git a/packages/grpc-js/src/generated/udpa/annotations/FileMigrateAnnotation.ts b/packages/grpc-js-xds/src/generated/udpa/annotations/FileMigrateAnnotation.ts similarity index 100% rename from packages/grpc-js/src/generated/udpa/annotations/FileMigrateAnnotation.ts rename to packages/grpc-js-xds/src/generated/udpa/annotations/FileMigrateAnnotation.ts diff --git a/packages/grpc-js/src/generated/udpa/annotations/MigrateAnnotation.ts b/packages/grpc-js-xds/src/generated/udpa/annotations/MigrateAnnotation.ts similarity index 100% rename from packages/grpc-js/src/generated/udpa/annotations/MigrateAnnotation.ts rename to packages/grpc-js-xds/src/generated/udpa/annotations/MigrateAnnotation.ts diff --git a/packages/grpc-js/src/generated/udpa/annotations/PackageVersionStatus.ts b/packages/grpc-js-xds/src/generated/udpa/annotations/PackageVersionStatus.ts similarity index 100% rename from packages/grpc-js/src/generated/udpa/annotations/PackageVersionStatus.ts rename to packages/grpc-js-xds/src/generated/udpa/annotations/PackageVersionStatus.ts diff --git a/packages/grpc-js/src/generated/udpa/annotations/StatusAnnotation.ts b/packages/grpc-js-xds/src/generated/udpa/annotations/StatusAnnotation.ts similarity index 100% rename from packages/grpc-js/src/generated/udpa/annotations/StatusAnnotation.ts rename to packages/grpc-js-xds/src/generated/udpa/annotations/StatusAnnotation.ts diff --git a/packages/grpc-js/src/generated/validate/AnyRules.ts b/packages/grpc-js-xds/src/generated/validate/AnyRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/AnyRules.ts rename to packages/grpc-js-xds/src/generated/validate/AnyRules.ts diff --git a/packages/grpc-js/src/generated/validate/BoolRules.ts b/packages/grpc-js-xds/src/generated/validate/BoolRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/BoolRules.ts rename to packages/grpc-js-xds/src/generated/validate/BoolRules.ts diff --git a/packages/grpc-js/src/generated/validate/BytesRules.ts b/packages/grpc-js-xds/src/generated/validate/BytesRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/BytesRules.ts rename to packages/grpc-js-xds/src/generated/validate/BytesRules.ts diff --git a/packages/grpc-js/src/generated/validate/DoubleRules.ts b/packages/grpc-js-xds/src/generated/validate/DoubleRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/DoubleRules.ts rename to packages/grpc-js-xds/src/generated/validate/DoubleRules.ts diff --git a/packages/grpc-js/src/generated/validate/DurationRules.ts b/packages/grpc-js-xds/src/generated/validate/DurationRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/DurationRules.ts rename to packages/grpc-js-xds/src/generated/validate/DurationRules.ts diff --git a/packages/grpc-js/src/generated/validate/EnumRules.ts b/packages/grpc-js-xds/src/generated/validate/EnumRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/EnumRules.ts rename to packages/grpc-js-xds/src/generated/validate/EnumRules.ts diff --git a/packages/grpc-js/src/generated/validate/FieldRules.ts b/packages/grpc-js-xds/src/generated/validate/FieldRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/FieldRules.ts rename to packages/grpc-js-xds/src/generated/validate/FieldRules.ts diff --git a/packages/grpc-js/src/generated/validate/Fixed32Rules.ts b/packages/grpc-js-xds/src/generated/validate/Fixed32Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/Fixed32Rules.ts rename to packages/grpc-js-xds/src/generated/validate/Fixed32Rules.ts diff --git a/packages/grpc-js/src/generated/validate/Fixed64Rules.ts b/packages/grpc-js-xds/src/generated/validate/Fixed64Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/Fixed64Rules.ts rename to packages/grpc-js-xds/src/generated/validate/Fixed64Rules.ts diff --git a/packages/grpc-js/src/generated/validate/FloatRules.ts b/packages/grpc-js-xds/src/generated/validate/FloatRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/FloatRules.ts rename to packages/grpc-js-xds/src/generated/validate/FloatRules.ts diff --git a/packages/grpc-js/src/generated/validate/Int32Rules.ts b/packages/grpc-js-xds/src/generated/validate/Int32Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/Int32Rules.ts rename to packages/grpc-js-xds/src/generated/validate/Int32Rules.ts diff --git a/packages/grpc-js/src/generated/validate/Int64Rules.ts b/packages/grpc-js-xds/src/generated/validate/Int64Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/Int64Rules.ts rename to packages/grpc-js-xds/src/generated/validate/Int64Rules.ts diff --git a/packages/grpc-js/src/generated/validate/KnownRegex.ts b/packages/grpc-js-xds/src/generated/validate/KnownRegex.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/KnownRegex.ts rename to packages/grpc-js-xds/src/generated/validate/KnownRegex.ts diff --git a/packages/grpc-js/src/generated/validate/MapRules.ts b/packages/grpc-js-xds/src/generated/validate/MapRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/MapRules.ts rename to packages/grpc-js-xds/src/generated/validate/MapRules.ts diff --git a/packages/grpc-js/src/generated/validate/MessageRules.ts b/packages/grpc-js-xds/src/generated/validate/MessageRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/MessageRules.ts rename to packages/grpc-js-xds/src/generated/validate/MessageRules.ts diff --git a/packages/grpc-js/src/generated/validate/RepeatedRules.ts b/packages/grpc-js-xds/src/generated/validate/RepeatedRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/RepeatedRules.ts rename to packages/grpc-js-xds/src/generated/validate/RepeatedRules.ts diff --git a/packages/grpc-js/src/generated/validate/SFixed32Rules.ts b/packages/grpc-js-xds/src/generated/validate/SFixed32Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/SFixed32Rules.ts rename to packages/grpc-js-xds/src/generated/validate/SFixed32Rules.ts diff --git a/packages/grpc-js/src/generated/validate/SFixed64Rules.ts b/packages/grpc-js-xds/src/generated/validate/SFixed64Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/SFixed64Rules.ts rename to packages/grpc-js-xds/src/generated/validate/SFixed64Rules.ts diff --git a/packages/grpc-js/src/generated/validate/SInt32Rules.ts b/packages/grpc-js-xds/src/generated/validate/SInt32Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/SInt32Rules.ts rename to packages/grpc-js-xds/src/generated/validate/SInt32Rules.ts diff --git a/packages/grpc-js/src/generated/validate/SInt64Rules.ts b/packages/grpc-js-xds/src/generated/validate/SInt64Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/SInt64Rules.ts rename to packages/grpc-js-xds/src/generated/validate/SInt64Rules.ts diff --git a/packages/grpc-js/src/generated/validate/StringRules.ts b/packages/grpc-js-xds/src/generated/validate/StringRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/StringRules.ts rename to packages/grpc-js-xds/src/generated/validate/StringRules.ts diff --git a/packages/grpc-js/src/generated/validate/TimestampRules.ts b/packages/grpc-js-xds/src/generated/validate/TimestampRules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/TimestampRules.ts rename to packages/grpc-js-xds/src/generated/validate/TimestampRules.ts diff --git a/packages/grpc-js/src/generated/validate/UInt32Rules.ts b/packages/grpc-js-xds/src/generated/validate/UInt32Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/UInt32Rules.ts rename to packages/grpc-js-xds/src/generated/validate/UInt32Rules.ts diff --git a/packages/grpc-js/src/generated/validate/UInt64Rules.ts b/packages/grpc-js-xds/src/generated/validate/UInt64Rules.ts similarity index 100% rename from packages/grpc-js/src/generated/validate/UInt64Rules.ts rename to packages/grpc-js-xds/src/generated/validate/UInt64Rules.ts diff --git a/packages/grpc-js-xds/src/index.ts b/packages/grpc-js-xds/src/index.ts new file mode 100644 index 00000000..06bea990 --- /dev/null +++ b/packages/grpc-js-xds/src/index.ts @@ -0,0 +1,35 @@ +/* + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +import * as resolver_xds from './resolver-xds'; +import * as load_balancer_cds from './load-balancer-cds'; +import * as load_balancer_eds from './load-balancer-eds'; +import * as load_balancer_lrs from './load-balancer-lrs'; +import * as load_balancer_priority from './load-balancer-priority'; +import * as load_balancer_weighted_target from './load-balancer-weighted-target'; + +/** + * Register the "xds:" name scheme with the @grpc/grpc-js library. + */ +export function register() { + resolver_xds.setup(); + load_balancer_cds.setup(); + load_balancer_eds.setup(); + load_balancer_lrs.setup(); + load_balancer_priority.setup(); + load_balancer_weighted_target.setup(); +} \ No newline at end of file diff --git a/packages/grpc-js/src/load-balancer-cds.ts b/packages/grpc-js-xds/src/load-balancer-cds.ts similarity index 60% rename from packages/grpc-js/src/load-balancer-cds.ts rename to packages/grpc-js-xds/src/load-balancer-cds.ts index 15c55ed8..a2961927 100644 --- a/packages/grpc-js/src/load-balancer-cds.ts +++ b/packages/grpc-js-xds/src/load-balancer-cds.ts @@ -15,36 +15,54 @@ * */ -import { - LoadBalancer, - ChannelControlHelper, - registerLoadBalancerType, -} from './load-balancer'; -import { SubchannelAddress } from './subchannel'; -import { - LoadBalancingConfig, - isCdsLoadBalancingConfig, - EdsLbConfig, - CdsLoadBalancingConfig, -} from './load-balancing-config'; +import { connectivityState, status, Metadata, logVerbosity, experimental } from '@grpc/grpc-js'; import { XdsClient, Watcher } from './xds-client'; -import { ChildLoadBalancerHandler } from './load-balancer-child-handler'; import { Cluster__Output } from './generated/envoy/api/v2/Cluster'; -import { ConnectivityState } from './channel'; -import { UnavailablePicker } from './picker'; -import { Status } from './constants'; -import { Metadata } from './metadata'; -import * as logging from './logging'; -import { LogVerbosity } from './constants'; +import SubchannelAddress = experimental.SubchannelAddress; +import UnavailablePicker = experimental.UnavailablePicker; +import ChildLoadBalancerHandler = experimental.ChildLoadBalancerHandler; +import LoadBalancer = experimental.LoadBalancer; +import ChannelControlHelper = experimental.ChannelControlHelper; +import registerLoadBalancerType = experimental.registerLoadBalancerType; +import LoadBalancingConfig = experimental.LoadBalancingConfig; +import { EdsLoadBalancingConfig } from './load-balancer-eds'; const TRACER_NAME = 'cds_balancer'; function trace(text: string): void { - logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text); + experimental.trace(logVerbosity.DEBUG, TRACER_NAME, text); } const TYPE_NAME = 'cds'; +export class CdsLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + + toJsonObject(): object { + return { + [TYPE_NAME]: { + cluster: this.cluster + } + } + } + + constructor(private cluster: string) {} + + getCluster() { + return this.cluster; + } + + static createFromJson(obj: any): CdsLoadBalancingConfig { + if ('cluster' in obj) { + return new CdsLoadBalancingConfig(obj.cluster); + } else { + throw new Error('Missing "cluster" in cds load balancing config'); + } + } +} + export class CdsLoadBalancer implements LoadBalancer { private childBalancer: ChildLoadBalancerHandler; private xdsClient: XdsClient | null = null; @@ -62,41 +80,30 @@ export class CdsLoadBalancer implements LoadBalancer { this.watcher = { onValidUpdate: (update) => { this.latestCdsUpdate = update; - const edsConfig: EdsLbConfig = { - cluster: update.name, - edsServiceName: - update.eds_cluster_config!.service_name === '' - ? undefined - : update.eds_cluster_config!.service_name, - localityPickingPolicy: [], - endpointPickingPolicy: [], - }; - if (update.lrs_server?.self) { - /* the lrs_server.self field indicates that the same server should be - * used for load reporting as for other xDS operations. Setting - * lrsLoadReportingServerName to the empty string sets that behavior. - * Otherwise, if the field is omitted, load reporting is disabled. */ - edsConfig.lrsLoadReportingServerName = ''; - } + /* the lrs_server.self field indicates that the same server should be + * used for load reporting as for other xDS operations. Setting + * lrsLoadReportingServerName to the empty string sets that behavior. + * Otherwise, if the field is omitted, load reporting is disabled. */ + const edsConfig: EdsLoadBalancingConfig = new EdsLoadBalancingConfig(update.name, [], [], update.eds_cluster_config!.service_name === '' ? undefined : update.eds_cluster_config!.service_name, update.lrs_server?.self ? '' : undefined); trace('Child update EDS config: ' + JSON.stringify(edsConfig)); this.childBalancer.updateAddressList( [], - { name: 'eds', eds: edsConfig }, + edsConfig, this.latestAttributes ); }, onResourceDoesNotExist: () => { this.isWatcherActive = false; - this.channelControlHelper.updateState(ConnectivityState.TRANSIENT_FAILURE, new UnavailablePicker({code: Status.UNAVAILABLE, details: 'CDS resource does not exist', metadata: new Metadata()})); + this.channelControlHelper.updateState(connectivityState.TRANSIENT_FAILURE, new UnavailablePicker({code: status.UNAVAILABLE, details: 'CDS resource does not exist', metadata: new Metadata()})); this.childBalancer.destroy(); }, - onTransientError: (status) => { + onTransientError: (statusObj) => { if (this.latestCdsUpdate === null) { channelControlHelper.updateState( - ConnectivityState.TRANSIENT_FAILURE, + connectivityState.TRANSIENT_FAILURE, new UnavailablePicker({ - code: Status.UNAVAILABLE, - details: `xDS request failed with error ${status.details}`, + code: status.UNAVAILABLE, + details: `xDS request failed with error ${statusObj.details}`, metadata: new Metadata(), }) ); @@ -110,7 +117,7 @@ export class CdsLoadBalancer implements LoadBalancer { lbConfig: LoadBalancingConfig, attributes: { [key: string]: unknown } ): void { - if (!isCdsLoadBalancingConfig(lbConfig)) { + if (!(lbConfig instanceof CdsLoadBalancingConfig)) { trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig, undefined, 2)); return; } @@ -126,11 +133,11 @@ export class CdsLoadBalancer implements LoadBalancer { * one */ if ( this.isWatcherActive && - this.latestConfig?.cds.cluster !== lbConfig.cds.cluster + this.latestConfig?.getCluster() !== lbConfig.getCluster() ) { - trace('Removing old cluster watcher for cluster name ' + this.latestConfig!.cds.cluster); + trace('Removing old cluster watcher for cluster name ' + this.latestConfig!.getCluster()); this.xdsClient.removeClusterWatcher( - this.latestConfig!.cds.cluster, + this.latestConfig!.getCluster(), this.watcher ); /* Setting isWatcherActive to false here lets us have one code path for @@ -144,8 +151,8 @@ export class CdsLoadBalancer implements LoadBalancer { this.latestConfig = lbConfig; if (!this.isWatcherActive) { - trace('Adding new cluster watcher for cluster name ' + lbConfig.cds.cluster); - this.xdsClient.addClusterWatcher(lbConfig.cds.cluster, this.watcher); + trace('Adding new cluster watcher for cluster name ' + lbConfig.getCluster()); + this.xdsClient.addClusterWatcher(lbConfig.getCluster(), this.watcher); this.isWatcherActive = true; } } @@ -156,11 +163,11 @@ export class CdsLoadBalancer implements LoadBalancer { this.childBalancer.resetBackoff(); } destroy(): void { - trace('Destroying load balancer with cluster name ' + this.latestConfig?.cds.cluster); + trace('Destroying load balancer with cluster name ' + this.latestConfig?.getCluster()); this.childBalancer.destroy(); if (this.isWatcherActive) { this.xdsClient?.removeClusterWatcher( - this.latestConfig!.cds.cluster, + this.latestConfig!.getCluster(), this.watcher ); } @@ -171,5 +178,5 @@ export class CdsLoadBalancer implements LoadBalancer { } export function setup() { - registerLoadBalancerType(TYPE_NAME, CdsLoadBalancer); + registerLoadBalancerType(TYPE_NAME, CdsLoadBalancer, CdsLoadBalancingConfig); } diff --git a/packages/grpc-js/src/load-balancer-eds.ts b/packages/grpc-js-xds/src/load-balancer-eds.ts similarity index 73% rename from packages/grpc-js/src/load-balancer-eds.ts rename to packages/grpc-js-xds/src/load-balancer-eds.ts index 9080a2f4..8919f317 100644 --- a/packages/grpc-js/src/load-balancer-eds.ts +++ b/packages/grpc-js-xds/src/load-balancer-eds.ts @@ -15,38 +15,29 @@ * */ -import { - LoadBalancer, - ChannelControlHelper, - registerLoadBalancerType, - getFirstUsableConfig, -} from './load-balancer'; -import { SubchannelAddress, subchannelAddressToString } from './subchannel'; -import { - LoadBalancingConfig, - isEdsLoadBalancingConfig, - EdsLoadBalancingConfig, - PriorityLbConfig, - PriorityChild, - WeightedTarget, - PriorityLoadBalancingConfig, -} from './load-balancing-config'; -import { ChildLoadBalancerHandler } from './load-balancer-child-handler'; +import { connectivityState as ConnectivityState, status as Status, Metadata, logVerbosity as LogVerbosity, experimental } from '@grpc/grpc-js'; import { XdsClient, Watcher, XdsClusterDropStats } from './xds-client'; import { ClusterLoadAssignment__Output } from './generated/envoy/api/v2/ClusterLoadAssignment'; -import { ConnectivityState } from './channel'; -import { UnavailablePicker, Picker, PickResultType } from './picker'; import { Locality__Output } from './generated/envoy/api/v2/core/Locality'; -import { LocalitySubchannelAddress } from './load-balancer-priority'; -import { Status } from './constants'; -import { Metadata } from './metadata'; -import * as logging from './logging'; -import { LogVerbosity } from './constants'; +import { LocalitySubchannelAddress, PriorityChild, PriorityLoadBalancingConfig } from './load-balancer-priority'; +import LoadBalancer = experimental.LoadBalancer; +import ChannelControlHelper = experimental.ChannelControlHelper; +import registerLoadBalancerType = experimental.registerLoadBalancerType; +import LoadBalancingConfig = experimental.LoadBalancingConfig; +import SubchannelAddress = experimental.SubchannelAddress; +import subchannelAddressToString = experimental.subchannelAddressToString; +import ChildLoadBalancerHandler = experimental.ChildLoadBalancerHandler; +import UnavailablePicker = experimental.UnavailablePicker; +import Picker = experimental.Picker; +import PickResultType = experimental.PickResultType; +import { validateLoadBalancingConfig } from '@grpc/grpc-js/build/src/experimental'; +import { WeightedTarget, WeightedTargetLoadBalancingConfig } from './load-balancer-weighted-target'; +import { LrsLoadBalancingConfig } from './load-balancer-lrs'; const TRACER_NAME = 'eds_balancer'; function trace(text: string): void { - logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text); + experimental.trace(LogVerbosity.DEBUG, TRACER_NAME, text); } const TYPE_NAME = 'eds'; @@ -55,6 +46,71 @@ function localityToName(locality: Locality__Output) { return `{region=${locality.region},zone=${locality.zone},sub_zone=${locality.sub_zone}}`; } +export class EdsLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + toJsonObject(): object { + const jsonObj: {[key: string]: any} = { + cluster: this.cluster, + locality_picking_policy: this.localityPickingPolicy.map(policy => policy.toJsonObject()), + endpoint_picking_policy: this.endpointPickingPolicy.map(policy => policy.toJsonObject()) + }; + if (this.edsServiceName !== undefined) { + jsonObj.eds_service_name = this.edsServiceName; + } + if (this.lrsLoadReportingServerName !== undefined) { + jsonObj.lrs_load_reporting_server_name = this.lrsLoadReportingServerName; + } + return { + [TYPE_NAME]: jsonObj + }; + } + + constructor(private cluster: string, private localityPickingPolicy: LoadBalancingConfig[], private endpointPickingPolicy: LoadBalancingConfig[], private edsServiceName?: string, private lrsLoadReportingServerName?: string) { + + } + + getCluster() { + return this.cluster; + } + + getLocalityPickingPolicy() { + return this.localityPickingPolicy; + } + + getEndpointPickingPolicy() { + return this.endpointPickingPolicy; + } + + getEdsServiceName() { + return this.edsServiceName; + } + + getLrsLoadReportingServerName() { + return this.lrsLoadReportingServerName; + } + + static createFromJson(obj: any): EdsLoadBalancingConfig { + if (!('cluster' in obj && typeof obj.cluster === 'string')) { + throw new Error('eds config must have a string field cluster'); + } + if (!('locality_picking_policy' in obj && Array.isArray(obj.locality_picking_policy))) { + throw new Error('eds config must have a locality_picking_policy array'); + } + if (!('endpoint_picking_policy' in obj && Array.isArray(obj.endpoint_picking_policy))) { + throw new Error('eds config must have an endpoint_picking_policy array'); + } + if ('eds_service_name' in obj && !(obj.eds_service_name === undefined || typeof obj.eds_service_name === 'string')) { + throw new Error('eds config eds_service_name field must be a string if provided'); + } + if ('lrs_load_reporting_server_name' in obj && (!obj.lrs_load_reporting_server_name === undefined || typeof obj.lrs_load_reporting_server_name === 'string')) { + throw new Error('eds config lrs_load_reporting_server_name must be a string if provided'); + } + return new EdsLoadBalancingConfig(obj.cluster, obj.locality_picking_policy.map(validateLoadBalancingConfig), obj.endpoint_picking_policy.map(validateLoadBalancingConfig), obj.eds_service_name, obj.lrs_load_reporting_server_name); + } +} + /** * This class load balances over a cluster by making an EDS request and then * transforming the result into a configuration for another load balancing @@ -317,24 +373,12 @@ export class EdsLoadBalancer implements LoadBalancer { /* Use the endpoint picking policy from the config, default to * round_robin. */ const endpointPickingPolicy: LoadBalancingConfig[] = [ - ...this.lastestConfig.eds.endpointPickingPolicy, - { name: 'round_robin', round_robin: {} }, + ...this.lastestConfig.getEndpointPickingPolicy(), + validateLoadBalancingConfig({ round_robin: {} }), ]; let childPolicy: LoadBalancingConfig[]; - if (this.lastestConfig.eds.lrsLoadReportingServerName) { - childPolicy = [ - { - name: 'lrs', - lrs: { - cluster_name: this.lastestConfig.eds.cluster, - eds_service_name: this.lastestConfig.eds.edsServiceName ?? '', - lrs_load_reporting_server_name: this.lastestConfig.eds - .lrsLoadReportingServerName, - locality: localityObj.locality, - child_policy: endpointPickingPolicy, - }, - }, - ]; + if (this.lastestConfig.getLrsLoadReportingServerName()) { + childPolicy = [new LrsLoadBalancingConfig(this.lastestConfig.getCluster(), this.lastestConfig.getEdsServiceName() ?? '', this.lastestConfig.getLrsLoadReportingServerName()!, localityObj.locality, endpointPickingPolicy)]; } else { childPolicy = endpointPickingPolicy; } @@ -355,29 +399,15 @@ export class EdsLoadBalancer implements LoadBalancer { priorityChildren.set(newPriorityName, { config: [ - { - name: 'weighted_target', - weighted_target: { - targets: childTargets, - }, - }, + new WeightedTargetLoadBalancingConfig(childTargets), ], }); } - const childConfig: PriorityLoadBalancingConfig = { - name: 'priority', - priority: { - children: priorityChildren, - /* Contract the priority names array if it is sparse. This config only - * cares about the order of priorities, not their specific numbers */ - priorities: newPriorityNames.filter((value) => value !== undefined), - }, - }; + /* Contract the priority names array if it is sparse. This config only + * cares about the order of priorities, not their specific numbers */ + const childConfig: PriorityLoadBalancingConfig = new PriorityLoadBalancingConfig(priorityChildren, newPriorityNames.filter((value) => value !== undefined)); trace('Child update addresses: ' + addressList.map(address => '(' + subchannelAddressToString(address) + ' path=' + address.localityPath + ')')); - trace('Child update priority list: ' + childConfig.priority.priorities); - for (const [childName, child] of childConfig.priority.children) { - trace('Child update priority config: ' + childName + ' -> ' + JSON.stringify(child)); - } + trace('Child update priority config: ' + JSON.stringify(childConfig.toJsonObject(), undefined, 2)); this.childBalancer.updateAddressList( addressList, childConfig, @@ -393,8 +423,8 @@ export class EdsLoadBalancer implements LoadBalancer { lbConfig: LoadBalancingConfig, attributes: { [key: string]: unknown } ): void { - if (!isEdsLoadBalancingConfig(lbConfig)) { - trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig)); + if (!(lbConfig instanceof EdsLoadBalancingConfig)) { + trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig.toJsonObject(), undefined, 2)); return; } if (!(attributes.xdsClient instanceof XdsClient)) { @@ -405,8 +435,7 @@ export class EdsLoadBalancer implements LoadBalancer { this.lastestConfig = lbConfig; this.latestAttributes = attributes; this.xdsClient = attributes.xdsClient; - const newEdsServiceName = - lbConfig.eds.edsServiceName ?? lbConfig.eds.cluster; + const newEdsServiceName = lbConfig.getEdsServiceName() ?? lbConfig.getCluster(); /* If the name is changing, disable the old watcher before adding the new * one */ @@ -429,11 +458,11 @@ export class EdsLoadBalancer implements LoadBalancer { this.isWatcherActive = true; } - if (lbConfig.eds.lrsLoadReportingServerName) { + if (lbConfig.getLrsLoadReportingServerName()) { this.clusterDropStats = this.xdsClient.addClusterDropStats( - lbConfig.eds.lrsLoadReportingServerName, - lbConfig.eds.cluster, - lbConfig.eds.edsServiceName ?? '' + lbConfig.getLrsLoadReportingServerName()!, + lbConfig.getCluster(), + lbConfig.getEdsServiceName() ?? '' ); } @@ -461,5 +490,5 @@ export class EdsLoadBalancer implements LoadBalancer { } export function setup() { - registerLoadBalancerType(TYPE_NAME, EdsLoadBalancer); + registerLoadBalancerType(TYPE_NAME, EdsLoadBalancer, EdsLoadBalancingConfig); } diff --git a/packages/grpc-js/src/load-balancer-lrs.ts b/packages/grpc-js-xds/src/load-balancer-lrs.ts similarity index 51% rename from packages/grpc-js/src/load-balancer-lrs.ts rename to packages/grpc-js-xds/src/load-balancer-lrs.ts index da09593b..b6fa6809 100644 --- a/packages/grpc-js/src/load-balancer-lrs.ts +++ b/packages/grpc-js-xds/src/load-balancer-lrs.ts @@ -15,28 +15,101 @@ * */ -import { - LoadBalancer, - ChannelControlHelper, - registerLoadBalancerType, - getFirstUsableConfig, -} from './load-balancer'; -import { SubchannelAddress } from './subchannel'; -import { - LoadBalancingConfig, - isLrsLoadBalancingConfig, -} from './load-balancing-config'; -import { ChildLoadBalancerHandler } from './load-balancer-child-handler'; -import { ConnectivityState } from './channel'; -import { Picker, PickArgs, PickResultType, PickResult } from './picker'; +import { connectivityState as ConnectivityState, StatusObject, status as Status, experimental } from '@grpc/grpc-js'; +import { type } from 'os'; +import { Locality__Output } from './generated/envoy/api/v2/core/Locality'; import { XdsClusterLocalityStats, XdsClient } from './xds-client'; -import { Filter, BaseFilter, FilterFactory } from './filter'; -import { StatusObject, Call } from './call-stream'; -import { Status } from './constants'; -import { FilterStackFactory } from './filter-stack'; +import LoadBalancer = experimental.LoadBalancer; +import ChannelControlHelper = experimental.ChannelControlHelper; +import registerLoadBalancerType = experimental.registerLoadBalancerType; +import getFirstUsableConfig = experimental.getFirstUsableConfig; +import SubchannelAddress = experimental.SubchannelAddress; +import LoadBalancingConfig = experimental.LoadBalancingConfig; +import ChildLoadBalancerHandler = experimental.ChildLoadBalancerHandler; +import Picker = experimental.Picker; +import PickArgs = experimental.PickArgs; +import PickResultType = experimental.PickResultType; +import PickResult = experimental.PickResult; +import Filter = experimental.Filter; +import BaseFilter = experimental.BaseFilter; +import FilterFactory = experimental.FilterFactory; +import FilterStackFactory = experimental.FilterStackFactory; +import Call = experimental.CallStream; +import validateLoadBalancingConfig = experimental.validateLoadBalancingConfig const TYPE_NAME = 'lrs'; +export class LrsLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + toJsonObject(): object { + return { + [TYPE_NAME]: { + cluster_name: this.clusterName, + eds_service_name: this.edsServiceName, + lrs_load_reporting_server_name: this.lrsLoadReportingServerName, + locality: this.locality, + child_policy: this.childPolicy.map(policy => policy.toJsonObject()) + } + } + } + + constructor(private clusterName: string, private edsServiceName: string, private lrsLoadReportingServerName: string, private locality: Locality__Output, private childPolicy: LoadBalancingConfig[]) {} + + getClusterName() { + return this.clusterName; + } + + getEdsServiceName() { + return this.edsServiceName; + } + + getLrsLoadReportingServerName() { + return this.lrsLoadReportingServerName; + } + + getLocality() { + return this.locality; + } + + getChildPolicy() { + return this.childPolicy; + } + + static createFromJson(obj: any): LrsLoadBalancingConfig { + if (!('cluster_name' in obj && typeof obj.cluster_name === 'string')) { + throw new Error('lrs config must have a string field cluster_name'); + } + if (!('eds_service_name' in obj && typeof obj.eds_service_name === 'string')) { + throw new Error('lrs config must have a string field eds_service_name'); + } + if (!('lrs_load_reporting_server_name' in obj && typeof obj.lrs_load_reporting_server_name === 'string')) { + throw new Error('lrs config must have a string field lrs_load_reporting_server_name'); + } + if (!('locality' in obj && obj.locality !== null && typeof obj.locality === 'object')) { + throw new Error('lrs config must have an object field locality'); + } + if ('region' in obj.locality && typeof obj.locality.region !== 'string') { + throw new Error('lrs config locality.region field must be a string if provided'); + } + if ('zone' in obj.locality && typeof obj.locality.zone !== 'string') { + throw new Error('lrs config locality.zone field must be a string if provided'); + } + if ('sub_zone' in obj.locality && typeof obj.locality.sub_zone !== 'string') { + throw new Error('lrs config locality.sub_zone field must be a string if provided'); + } + if (!('child_policy' in obj && Array.isArray(obj.child_policy))) { + throw new Error('lrs config must have a child_policy array'); + } + return new LrsLoadBalancingConfig(obj.cluster_name, obj.eds_service_name, obj.lrs_load_reporting_server_name, { + region: obj.locality.region ?? '', + zone: obj.locality.zone ?? '', + sub_zone: obj.locality.sub_zone ?? '' + }, obj.child_policy.map(validateLoadBalancingConfig)); + } +} + /** * Filter class that reports when the call ends. */ @@ -132,22 +205,22 @@ export class LrsLoadBalancer implements LoadBalancer { lbConfig: LoadBalancingConfig, attributes: { [key: string]: unknown } ): void { - if (!isLrsLoadBalancingConfig(lbConfig)) { + if (!(lbConfig instanceof LrsLoadBalancingConfig)) { return; } if (!(attributes.xdsClient instanceof XdsClient)) { return; } - const lrsConfig = lbConfig.lrs; this.localityStatsReporter = attributes.xdsClient.addClusterLocalityStats( - lrsConfig.lrs_load_reporting_server_name, - lrsConfig.cluster_name, - lrsConfig.eds_service_name, - lrsConfig.locality + lbConfig.getLrsLoadReportingServerName(), + lbConfig.getClusterName(), + lbConfig.getEdsServiceName(), + lbConfig.getLocality() ); const childPolicy: LoadBalancingConfig = getFirstUsableConfig( - lrsConfig.child_policy - ) ?? { name: 'pick_first', pick_first: {} }; + lbConfig.getChildPolicy(), + true + ); this.childBalancer.updateAddressList(addressList, childPolicy, attributes); } exitIdle(): void { @@ -165,5 +238,5 @@ export class LrsLoadBalancer implements LoadBalancer { } export function setup() { - registerLoadBalancerType(TYPE_NAME, LrsLoadBalancer); + registerLoadBalancerType(TYPE_NAME, LrsLoadBalancer, LrsLoadBalancingConfig); } diff --git a/packages/grpc-js/src/load-balancer-priority.ts b/packages/grpc-js-xds/src/load-balancer-priority.ts similarity index 83% rename from packages/grpc-js/src/load-balancer-priority.ts rename to packages/grpc-js-xds/src/load-balancer-priority.ts index 74f2e978..872ed7d1 100644 --- a/packages/grpc-js/src/load-balancer-priority.ts +++ b/packages/grpc-js-xds/src/load-balancer-priority.ts @@ -15,30 +15,24 @@ * */ -import { - LoadBalancer, - ChannelControlHelper, - getFirstUsableConfig, - registerLoadBalancerType, -} from './load-balancer'; -import { SubchannelAddress, subchannelAddressToString } from './subchannel'; -import { - LoadBalancingConfig, - isPriorityLoadBalancingConfig, -} from './load-balancing-config'; -import { ConnectivityState } from './channel'; -import { Picker, QueuePicker, UnavailablePicker } from './picker'; -import { ChildLoadBalancerHandler } from './load-balancer-child-handler'; -import { ChannelOptions } from './channel-options'; -import { Status } from './constants'; -import { Metadata } from './metadata'; -import * as logging from './logging'; -import { LogVerbosity } from './constants'; +import { connectivityState as ConnectivityState, status as Status, Metadata, logVerbosity as LogVerbosity, experimental, ChannelOptions } from '@grpc/grpc-js'; +import validateLoadBalancingConfig = experimental.validateLoadBalancingConfig; +import LoadBalancer = experimental.LoadBalancer; +import ChannelControlHelper = experimental.ChannelControlHelper; +import getFirstUsableConfig = experimental.getFirstUsableConfig; +import registerLoadBalancerType = experimental.registerLoadBalancerType; +import SubchannelAddress = experimental.SubchannelAddress; +import subchannelAddressToString = experimental.subchannelAddressToString; +import LoadBalancingConfig = experimental.LoadBalancingConfig; +import Picker = experimental.Picker; +import QueuePicker = experimental.QueuePicker; +import UnavailablePicker = experimental.UnavailablePicker; +import ChildLoadBalancerHandler = experimental.ChildLoadBalancerHandler; const TRACER_NAME = 'priority'; function trace(text: string): void { - logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text); + experimental.trace(LogVerbosity.DEBUG, TRACER_NAME, text); } const TYPE_NAME = 'priority'; @@ -56,6 +50,61 @@ export function isLocalitySubchannelAddress( return Array.isArray((address as LocalitySubchannelAddress).localityPath); } +export interface PriorityChild { + config: LoadBalancingConfig[]; +} + +export class PriorityLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + toJsonObject(): object { + const childrenField: {[key: string]: object} = {} + for (const [childName, childValue] of this.children.entries()) { + childrenField[childName] = { + config: childValue.config.map(value => value.toJsonObject()) + }; + } + return { + [TYPE_NAME]: { + children: childrenField, + priorities: this.priorities + } + } + } + + constructor(private children: Map, private priorities: string[]) { + } + + getChildren() { + return this.children; + } + + getPriorities() { + return this.priorities; + } + + static createFromJson(obj: any): PriorityLoadBalancingConfig { + if (!('children' in obj && obj.children !== null && typeof obj.children === 'object')) { + throw new Error('Priority config must have a children map'); + } + if (!('priorities' in obj && Array.isArray(obj.priorities) && (obj.priorities as any[]).every(value => typeof value === 'string'))) { + throw new Error('Priority config must have a priorities list'); + } + const childrenMap: Map = new Map(); + for (const childName of obj.children) { + const childObj = obj.children[childName] + if (!('config' in childObj && Array.isArray(childObj.config))) { + throw new Error(`Priority child ${childName} must have a config list`); + } + childrenMap.set(childName, { + config: childObj.config.map(validateLoadBalancingConfig) + }); + } + return new PriorityLoadBalancingConfig(childrenMap, obj.priorities); + } +} + interface PriorityChildBalancer { updateAddressList( addressList: SubchannelAddress[], @@ -384,12 +433,11 @@ export class PriorityLoadBalancer implements LoadBalancer { lbConfig: LoadBalancingConfig, attributes: { [key: string]: unknown } ): void { - if (!isPriorityLoadBalancingConfig(lbConfig)) { + if (!(lbConfig instanceof PriorityLoadBalancingConfig)) { // Reject a config of the wrong type - trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig)); + trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig.toJsonObject(), undefined, 2)); return; } - const priorityConfig = lbConfig.priority; /* For each address, the first element of its localityPath array determines * which child it belongs to. So we bucket those addresses by that first * element, and pass along the rest of the localityPath for that child @@ -427,10 +475,10 @@ export class PriorityLoadBalancer implements LoadBalancer { } this.latestAttributes = attributes; this.latestUpdates.clear(); - this.priorities = priorityConfig.priorities; + this.priorities = lbConfig.getPriorities(); /* Pair up the new child configs with the corresponding address lists, and * update all existing children with their new configs */ - for (const [childName, childConfig] of priorityConfig.children) { + for (const [childName, childConfig] of lbConfig.getChildren()) { const chosenChildConfig = getFirstUsableConfig(childConfig.config); if (chosenChildConfig !== null) { const childAddresses = childAddressMap.get(childName) ?? []; @@ -483,5 +531,5 @@ export class PriorityLoadBalancer implements LoadBalancer { } export function setup() { - registerLoadBalancerType(TYPE_NAME, PriorityLoadBalancer); + registerLoadBalancerType(TYPE_NAME, PriorityLoadBalancer, PriorityLoadBalancingConfig); } diff --git a/packages/grpc-js/src/load-balancer-weighted-target.ts b/packages/grpc-js-xds/src/load-balancer-weighted-target.ts similarity index 75% rename from packages/grpc-js/src/load-balancer-weighted-target.ts rename to packages/grpc-js-xds/src/load-balancer-weighted-target.ts index 2da67e7f..44a6acf1 100644 --- a/packages/grpc-js/src/load-balancer-weighted-target.ts +++ b/packages/grpc-js-xds/src/load-balancer-weighted-target.ts @@ -15,28 +15,88 @@ * */ -import { LoadBalancer, ChannelControlHelper, getFirstUsableConfig, registerLoadBalancerType } from "./load-balancer"; -import { SubchannelAddress, subchannelAddressToString } from "./subchannel"; -import { LoadBalancingConfig, WeightedTarget, isWeightedTargetLoadBalancingConfig } from "./load-balancing-config"; -import { Picker, PickResult, PickArgs, QueuePicker, UnavailablePicker } from "./picker"; -import { ConnectivityState } from "./channel"; -import { ChildLoadBalancerHandler } from "./load-balancer-child-handler"; -import { Status } from "./constants"; -import { Metadata } from "./metadata"; +import { connectivityState as ConnectivityState, status as Status, Metadata, logVerbosity, experimental } from "@grpc/grpc-js"; import { isLocalitySubchannelAddress, LocalitySubchannelAddress } from "./load-balancer-priority"; -import * as logging from './logging'; -import { LogVerbosity } from './constants'; +import LoadBalancingConfig = experimental.LoadBalancingConfig; +import LoadBalancer = experimental.LoadBalancer; +import ChannelControlHelper = experimental.ChannelControlHelper; +import getFirstUsableConfig = experimental.getFirstUsableConfig; +import registerLoadBalancerType = experimental.registerLoadBalancerType; +import ChildLoadBalancerHandler = experimental.ChildLoadBalancerHandler; +import Picker = experimental.Picker; +import PickResult = experimental.PickResult; +import PickArgs = experimental.PickArgs; +import QueuePicker = experimental.QueuePicker; +import UnavailablePicker = experimental.UnavailablePicker; +import SubchannelAddress = experimental.SubchannelAddress; +import subchannelAddressToString = experimental.subchannelAddressToString; +import validateLoadBalancingConfig = experimental.validateLoadBalancingConfig; const TRACER_NAME = 'weighted_target'; function trace(text: string): void { - logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text); + experimental.trace(logVerbosity.DEBUG, TRACER_NAME, text); } const TYPE_NAME = 'weighted_target'; const DEFAULT_RETENTION_INTERVAL_MS = 15 * 60 * 1000; + export interface WeightedTarget { + weight: number; + child_policy: LoadBalancingConfig[]; +} + +export class WeightedTargetLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + + constructor(private targets: Map) { + } + + getTargets() { + return this.targets; + } + + toJsonObject(): object { + const targetsField: {[key: string]: object} = {}; + for (const [targetName, targetValue] of this.targets.entries()) { + targetsField[targetName] = { + weight: targetValue.weight, + child_policy: targetValue.child_policy.map(policy => policy.toJsonObject()) + }; + } + return { + [TYPE_NAME]: { + targets: targetsField + } + } + } + + static createFromJson(obj: any): WeightedTargetLoadBalancingConfig { + const targetsMap: Map = new Map(); + if (!('targets' in obj && obj.targets !== null && typeof obj.targets === 'object')) { + throw new Error('Weighted target config must have a targets map'); + } + for (const key of obj.targets) { + const targetObj = obj.targets[key]; + if (!('weight' in targetObj && typeof targetObj.weight === 'number')) { + throw new Error(`Weighted target ${key} must have a numeric weight`); + } + if (!('child_policy' in targetObj && Array.isArray(targetObj.child_policy))) { + throw new Error(`Weighted target ${key} must have a child_policy array`); + } + const validatedTarget: WeightedTarget = { + weight: targetObj.weight, + child_policy: targetObj.child_policy.map(validateLoadBalancingConfig) + } + targetsMap.set(key, validatedTarget); + } + return new WeightedTargetLoadBalancingConfig(targetsMap); + } +} + /** * Represents a picker and a subinterval of a larger interval used for randomly * selecting an element of a list of these objects. @@ -256,9 +316,9 @@ export class WeightedTargetLoadBalancer implements LoadBalancer { } updateAddressList(addressList: SubchannelAddress[], lbConfig: LoadBalancingConfig, attributes: { [key: string]: unknown; }): void { - if (!isWeightedTargetLoadBalancingConfig(lbConfig)) { + if (!(lbConfig instanceof WeightedTargetLoadBalancingConfig)) { // Reject a config of the wrong type - trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig)); + trace('Discarding address list update with unrecognized config ' + JSON.stringify(lbConfig.toJsonObject(), undefined, 2)); return; } @@ -289,8 +349,8 @@ export class WeightedTargetLoadBalancer implements LoadBalancer { childAddressList.push(childAddress); } - this.targetList = Array.from(lbConfig.weighted_target.targets.keys()); - for (const [targetName, targetConfig] of lbConfig.weighted_target.targets) { + this.targetList = Array.from(lbConfig.getTargets().keys()); + for (const [targetName, targetConfig] of lbConfig.getTargets()) { let target = this.targets.get(targetName); if (target === undefined) { target = new this.WeightedChildImpl(this, targetName); @@ -335,5 +395,5 @@ export class WeightedTargetLoadBalancer implements LoadBalancer { } export function setup() { - registerLoadBalancerType(TYPE_NAME, WeightedTargetLoadBalancer); + registerLoadBalancerType(TYPE_NAME, WeightedTargetLoadBalancer, WeightedTargetLoadBalancingConfig); } \ No newline at end of file diff --git a/packages/grpc-js/src/resolver-xds.ts b/packages/grpc-js-xds/src/resolver-xds.ts similarity index 84% rename from packages/grpc-js/src/resolver-xds.ts rename to packages/grpc-js-xds/src/resolver-xds.ts index 297c6c3f..814294c8 100644 --- a/packages/grpc-js/src/resolver-xds.ts +++ b/packages/grpc-js-xds/src/resolver-xds.ts @@ -14,20 +14,19 @@ * limitations under the License. */ -import { Resolver, ResolverListener, registerResolver } from './resolver'; -import { GrpcUri, uriToString } from './uri-parser'; import { XdsClient } from './xds-client'; -import { ServiceConfig } from './service-config'; -import { StatusObject } from './call-stream'; -import { Status, LogVerbosity } from './constants'; -import { Metadata } from './metadata'; -import { ChannelOptions } from './channel-options'; -import * as logging from './logging'; +import { StatusObject, status, logVerbosity, Metadata, experimental, ChannelOptions } from '@grpc/grpc-js'; +import Resolver = experimental.Resolver; +import GrpcUri = experimental.GrpcUri; +import ResolverListener = experimental.ResolverListener; +import uriToString = experimental.uriToString; +import ServiceConfig = experimental.ServiceConfig; +import registerResolver = experimental.registerResolver; const TRACER_NAME = 'xds_resolver'; function trace(text: string): void { - logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text); + experimental.trace(logVerbosity.DEBUG, TRACER_NAME, text); } class XdsResolver implements Resolver { @@ -42,7 +41,7 @@ class XdsResolver implements Resolver { private reportResolutionError() { this.listener.onError({ - code: Status.UNAVAILABLE, + code: status.UNAVAILABLE, details: `xDS name resolution failed for target ${uriToString( this.target )}`, diff --git a/packages/grpc-js/src/xds-bootstrap.ts b/packages/grpc-js-xds/src/xds-bootstrap.ts similarity index 100% rename from packages/grpc-js/src/xds-bootstrap.ts rename to packages/grpc-js-xds/src/xds-bootstrap.ts diff --git a/packages/grpc-js/src/xds-client.ts b/packages/grpc-js-xds/src/xds-client.ts similarity index 98% rename from packages/grpc-js/src/xds-client.ts rename to packages/grpc-js-xds/src/xds-client.ts index 8b4d5d3b..525db769 100644 --- a/packages/grpc-js/src/xds-client.ts +++ b/packages/grpc-js-xds/src/xds-client.ts @@ -16,19 +16,11 @@ */ import * as protoLoader from '@grpc/proto-loader'; -import { loadPackageDefinition } from './make-client'; +import { loadPackageDefinition, StatusObject, status, logVerbosity, Metadata, experimental, ChannelOptions, ClientDuplexStream, ServiceError, ChannelCredentials } from '@grpc/grpc-js'; import * as adsTypes from './generated/ads'; import * as lrsTypes from './generated/lrs'; -import { createGoogleDefaultCredentials, ChannelCredentials } from './channel-credentials'; import { loadBootstrapInfo } from './xds-bootstrap'; -import { ClientDuplexStream, ServiceError } from './call'; -import { StatusObject } from './call-stream'; import { isIPv4, isIPv6 } from 'net'; -import { Status, LogVerbosity } from './constants'; -import { Metadata } from './metadata'; -import * as logging from './logging'; -import { ServiceConfig } from './service-config'; -import { ChannelOptions } from './channel-options'; import { Node } from './generated/envoy/api/v2/core/Node'; import { AggregatedDiscoveryServiceClient } from './generated/envoy/service/discovery/v2/AggregatedDiscoveryService'; import { DiscoveryRequest } from './generated/envoy/api/v2/DiscoveryRequest'; @@ -54,12 +46,15 @@ import { Listener__Output } from './generated/envoy/api/v2/Listener'; import { HttpConnectionManager__Output } from './generated/envoy/config/filter/network/http_connection_manager/v2/HttpConnectionManager'; import { RouteConfiguration__Output } from './generated/envoy/api/v2/RouteConfiguration'; import { Any__Output } from './generated/google/protobuf/Any'; -import { BackoffTimeout } from './backoff-timeout'; +import BackoffTimeout = experimental.BackoffTimeout; +import ServiceConfig = experimental.ServiceConfig; +import createGoogleDefaultCredentials = experimental.createGoogleDefaultCredentials; +import { CdsLoadBalancingConfig } from './load-balancer-cds'; const TRACER_NAME = 'xds_client'; function trace(text: string): void { - logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text); + experimental.trace(logVerbosity.DEBUG, TRACER_NAME, text); } const clientVersion = require('../../package.json').version; @@ -554,12 +549,7 @@ class RdsState implements XdsStreamState { this.watcher.onValidUpdate({ methodConfig: [], loadBalancingConfig: [ - { - name: 'cds', - cds: { - cluster: route.route.cluster, - }, - }, + new CdsLoadBalancingConfig(route.route.cluster) ], }); return; @@ -821,7 +811,7 @@ export class XdsClient { trace('Failed to initialize xDS Client. No valid credentials types found.'); // Bubble this error up to any listeners this.reportStreamError({ - code: Status.INTERNAL, + code: status.INTERNAL, details: 'Failed to initialize xDS Client. No valid credentials types found.', metadata: new Metadata(), }); @@ -846,7 +836,7 @@ export class XdsClient { trace('Failed to initialize xDS Client. ' + error.message); // Bubble this error up to any listeners this.reportStreamError({ - code: Status.INTERNAL, + code: status.INTERNAL, details: `Failed to initialize xDS Client. ${error.message}`, metadata: new Metadata(), }); diff --git a/packages/grpc-js-xds/test/test-register.ts b/packages/grpc-js-xds/test/test-register.ts new file mode 100644 index 00000000..e7a07927 --- /dev/null +++ b/packages/grpc-js-xds/test/test-register.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +import * as assert from 'assert'; +import { register } from '../src'; + +/* This is just a basic test to confirm that the package builds and the setup + * code runs. */ +describe('register function', () => { + it('Should succeed without errors', () => { + assert.doesNotThrow(register); + }); +}); \ No newline at end of file diff --git a/packages/grpc-js-xds/tsconfig.json b/packages/grpc-js-xds/tsconfig.json new file mode 100644 index 00000000..c121a5f6 --- /dev/null +++ b/packages/grpc-js-xds/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "build", + "target": "es2017", + "lib": ["es2017"], + "module": "commonjs", + "incremental": true + }, + "include": [ + "src/**/*.ts", + "test/**/*.ts", + "interop/**/*.ts" + ] +} diff --git a/packages/grpc-js/README.md b/packages/grpc-js/README.md index e34cee9c..4bb4da02 100644 --- a/packages/grpc-js/README.md +++ b/packages/grpc-js/README.md @@ -42,3 +42,4 @@ The public API of this library follows semantic versioning, with some caveats: - Some methods are prefixed with an underscore. These methods are internal and should not be considered part of the public API. - The class `Call` is only exposed due to limitations of TypeScript. It should not be considered part of the public API. - In general, any API that is exposed by this library but is not exposed by the `grpc` library is likely an error and should not be considered part of the public API. +- The `grpc.experimental` namespace contains APIs that have not stabilized. Any API in that namespace may break in any minor version update. diff --git a/packages/grpc-js/log.txt b/packages/grpc-js/log.txt new file mode 100644 index 00000000..7a6bbc2c --- /dev/null +++ b/packages/grpc-js/log.txt @@ -0,0 +1,971 @@ +{ + O: [Getter/Setter], + outDir: [Getter/Setter], + 'out-dir': [Getter/Setter], + _: [ + 'envoy/service/discovery/v2/ads.proto', + 'envoy/api/v2/listener.proto', + 'envoy/api/v2/route.proto', + 'envoy/api/v2/cluster.proto', + 'envoy/api/v2/endpoint.proto' + ], + keepCase: true, + 'keep-case': true, + longs: [Function: String], + enums: [Function: String], + defaults: true, + oneofs: true, + json: true, + includeDirs: [ + 'deps/envoy-api/', + 'deps/udpa/', + 'node_modules/protobufjs/', + 'deps/googleapis/', + 'deps/protoc-gen-validate/' + ], + I: [ + 'deps/envoy-api/', + 'deps/udpa/', + 'node_modules/protobufjs/', + 'deps/googleapis/', + 'deps/protoc-gen-validate/' + ], + 'include-dirs': [ + 'deps/envoy-api/', + 'deps/udpa/', + 'node_modules/protobufjs/', + 'deps/googleapis/', + 'deps/protoc-gen-validate/' + ], + grpcLib: '../index', + 'grpc-lib': '../index', + '$0': 'node_modules/.bin/proto-loader-gen-types' +} +Processing envoy/service/discovery/v2/ads.proto +Writing src/generated//ads.d.ts +Writing src/generated//envoy/service/discovery/v2/AdsDummy.d.ts from file deps/envoy-api/envoy/service/discovery/v2/ads.proto +Writing src/generated//envoy/api/v2/DiscoveryRequest.d.ts from file deps/envoy-api/envoy/api/v2/discovery.proto +Writing src/generated//envoy/api/v2/DiscoveryResponse.d.ts from file deps/envoy-api/envoy/api/v2/discovery.proto +Writing src/generated//envoy/api/v2/DeltaDiscoveryRequest.d.ts from file deps/envoy-api/envoy/api/v2/discovery.proto +Writing src/generated//envoy/api/v2/DeltaDiscoveryResponse.d.ts from file deps/envoy-api/envoy/api/v2/discovery.proto +Writing src/generated//envoy/api/v2/Resource.d.ts from file deps/envoy-api/envoy/api/v2/discovery.proto +Writing src/generated//envoy/api/v2/core/RoutingPriority.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RequestMethod.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TrafficDirection.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Locality.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/BuildVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Extension.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Node.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Metadata.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeUInt32.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeDouble.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFeatureFlag.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValue.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValueOption.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderMap.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/DataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RemoteDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/AsyncDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TransportSocket.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFractionalPercent.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/ControlPlane.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Pipe.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress/Protocol.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/TcpKeepalive.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BindConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/Address.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/CidrRange.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BackoffStrategy.d.ts from file deps/envoy-api/envoy/api/v2/core/backoff.proto +Writing src/generated//envoy/api/v2/core/SocketOption.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/SocketOption/SocketState.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/HttpUri.d.ts from file deps/envoy-api/envoy/api/v2/core/http_uri.proto +Writing src/generated//envoy/type/Percent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent/DenominatorType.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/SemanticVersion.d.ts from file deps/envoy-api/envoy/type/semantic_version.proto +Writing src/generated//udpa/annotations/PackageVersionStatus.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//udpa/annotations/StatusAnnotation.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//udpa/annotations/MigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FieldMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FileMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//validate/FieldRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/FloatRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DoubleRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BoolRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/StringRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/KnownRegex.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BytesRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/EnumRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MessageRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/RepeatedRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MapRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/AnyRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DurationRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/TimestampRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//google/protobuf/Any.d.ts from file null +Writing src/generated//google/protobuf/Duration.d.ts from file null +Writing src/generated//google/protobuf/Struct.d.ts from file null +Writing src/generated//google/protobuf/Value.d.ts from file null +Writing src/generated//google/protobuf/NullValue.d.ts from file null +Writing src/generated//google/protobuf/ListValue.d.ts from file null +Writing src/generated//google/protobuf/DoubleValue.d.ts from file null +Writing src/generated//google/protobuf/FloatValue.d.ts from file null +Writing src/generated//google/protobuf/Int64Value.d.ts from file null +Writing src/generated//google/protobuf/UInt64Value.d.ts from file null +Writing src/generated//google/protobuf/Int32Value.d.ts from file null +Writing src/generated//google/protobuf/UInt32Value.d.ts from file null +Writing src/generated//google/protobuf/BoolValue.d.ts from file null +Writing src/generated//google/protobuf/StringValue.d.ts from file null +Writing src/generated//google/protobuf/BytesValue.d.ts from file null +Writing src/generated//google/protobuf/FileDescriptorSet.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ExtensionRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ReservedRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Type.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Label.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions/OptimizeMode.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MessageOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/CType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/JSType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption/NamePart.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo/Location.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo/Annotation.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/Timestamp.d.ts from file null +Writing src/generated//google/rpc/Status.d.ts from file deps/googleapis/google/rpc/status.proto +Processing envoy/api/v2/listener.proto +Writing src/generated//listener.d.ts +Writing src/generated//envoy/api/v2/Listener.d.ts from file deps/envoy-api/envoy/api/v2/listener.proto +Writing src/generated//envoy/api/v2/Listener/DrainType.d.ts from file deps/envoy-api/envoy/api/v2/listener.proto +Writing src/generated//envoy/api/v2/Listener/DeprecatedV1.d.ts from file deps/envoy-api/envoy/api/v2/listener.proto +Writing src/generated//envoy/api/v2/Listener/ConnectionBalanceConfig.d.ts from file deps/envoy-api/envoy/api/v2/listener.proto +Writing src/generated//envoy/api/v2/Listener/ConnectionBalanceConfig/ExactBalance.d.ts from file deps/envoy-api/envoy/api/v2/listener.proto +Writing src/generated//envoy/api/v2/listener/Filter.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/FilterChainMatch.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/FilterChainMatch/ConnectionSourceType.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/FilterChain.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/ListenerFilterChainMatchPredicate.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/ListenerFilterChainMatchPredicate/MatchSet.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/ListenerFilter.d.ts from file deps/envoy-api/envoy/api/v2/listener/listener_components.proto +Writing src/generated//envoy/api/v2/listener/UdpListenerConfig.d.ts from file deps/envoy-api/envoy/api/v2/listener/udp_listener_config.proto +Writing src/generated//envoy/api/v2/listener/ActiveRawUdpListenerConfig.d.ts from file deps/envoy-api/envoy/api/v2/listener/udp_listener_config.proto +Writing src/generated//envoy/api/v2/core/SocketOption.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/SocketOption/SocketState.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/RoutingPriority.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RequestMethod.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TrafficDirection.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Locality.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/BuildVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Extension.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Node.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Metadata.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeUInt32.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeDouble.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFeatureFlag.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValue.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValueOption.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderMap.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/DataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RemoteDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/AsyncDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TransportSocket.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFractionalPercent.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/ControlPlane.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Pipe.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress/Protocol.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/TcpKeepalive.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BindConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/Address.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/CidrRange.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BackoffStrategy.d.ts from file deps/envoy-api/envoy/api/v2/core/backoff.proto +Writing src/generated//envoy/api/v2/core/HttpUri.d.ts from file deps/envoy-api/envoy/api/v2/core/http_uri.proto +Writing src/generated//envoy/api/v2/core/ApiVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ApiConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ApiConfigSource/ApiType.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/AggregatedConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/SelfConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/RateLimitSettings.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/GrpcService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/EnvoyGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/SslCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/GoogleLocalCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/ChannelCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/ServiceAccountJWTAccessCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/GoogleIAMCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/MetadataCredentialsFromPlugin.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/StsService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/auth/UpstreamTlsContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/DownstreamTlsContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/CommonTlsContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/CommonTlsContext/CombinedCertificateValidationContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/GenericSecret.d.ts from file deps/envoy-api/envoy/api/v2/auth/secret.proto +Writing src/generated//envoy/api/v2/auth/SdsSecretConfig.d.ts from file deps/envoy-api/envoy/api/v2/auth/secret.proto +Writing src/generated//envoy/api/v2/auth/Secret.d.ts from file deps/envoy-api/envoy/api/v2/auth/secret.proto +Writing src/generated//envoy/api/v2/auth/TlsParameters.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/TlsParameters/TlsProtocol.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/PrivateKeyProvider.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/TlsCertificate.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/TlsSessionTicketKeys.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/CertificateValidationContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/CertificateValidationContext/TrustChainVerification.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/route/VirtualHost.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/VirtualHost/TlsRequirementType.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/FilterAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/Route.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/WeightedCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/WeightedCluster/ClusterWeight.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteMatch.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteMatch/GrpcRouteMatchOptions.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteMatch/TlsContextMatchOptions.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/CorsPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/ClusterNotFoundResponseCode.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/InternalRedirectAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/RequestMirrorPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/Header.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/Cookie.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/ConnectionProperties.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/QueryParameter.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/FilterState.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/UpgradeConfig.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy/RetryPriority.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy/RetryHostPredicate.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy/RetryBackOff.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/HedgePolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RedirectAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RedirectAction/RedirectResponseCode.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/DirectResponseAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/Decorator.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/Tracing.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/VirtualCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/SourceCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/DestinationCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/RequestHeaders.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/RemoteAddress.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/GenericKey.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/HeaderValueMatch.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/HeaderMatcher.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/QueryParameterMatcher.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/config/listener/v2/ApiListener.d.ts from file deps/envoy-api/envoy/config/listener/v2/api_listener.proto +Writing src/generated//envoy/config/filter/accesslog/v2/AccessLog.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/AccessLogFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/ComparisonFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/ComparisonFilter/Op.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/StatusCodeFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/DurationFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/NotHealthCheckFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/TraceableFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/RuntimeFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/AndFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/OrFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/HeaderFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/ResponseFlagFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/GrpcStatusFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/GrpcStatusFilter/Status.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/config/filter/accesslog/v2/ExtensionFilter.d.ts from file deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto +Writing src/generated//envoy/type/Percent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent/DenominatorType.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/SemanticVersion.d.ts from file deps/envoy-api/envoy/type/semantic_version.proto +Writing src/generated//envoy/type/Int64Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/Int32Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/DoubleRange.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/matcher/RegexMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatcher/GoogleRE2.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatchAndSubstitute.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/StringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/matcher/ListStringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Literal.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Environment.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Header.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Metadata.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKey.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKey/PathSegment.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Request.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Route.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Cluster.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Host.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//udpa/annotations/MigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FieldMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FileMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/PackageVersionStatus.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//udpa/annotations/StatusAnnotation.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//validate/FieldRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/FloatRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DoubleRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BoolRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/StringRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/KnownRegex.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BytesRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/EnumRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MessageRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/RepeatedRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MapRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/AnyRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DurationRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/TimestampRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//google/protobuf/Duration.d.ts from file null +Writing src/generated//google/protobuf/DoubleValue.d.ts from file null +Writing src/generated//google/protobuf/FloatValue.d.ts from file null +Writing src/generated//google/protobuf/Int64Value.d.ts from file null +Writing src/generated//google/protobuf/UInt64Value.d.ts from file null +Writing src/generated//google/protobuf/Int32Value.d.ts from file null +Writing src/generated//google/protobuf/UInt32Value.d.ts from file null +Writing src/generated//google/protobuf/BoolValue.d.ts from file null +Writing src/generated//google/protobuf/StringValue.d.ts from file null +Writing src/generated//google/protobuf/BytesValue.d.ts from file null +Writing src/generated//google/protobuf/Any.d.ts from file null +Writing src/generated//google/protobuf/Struct.d.ts from file null +Writing src/generated//google/protobuf/Value.d.ts from file null +Writing src/generated//google/protobuf/NullValue.d.ts from file null +Writing src/generated//google/protobuf/ListValue.d.ts from file null +Writing src/generated//google/protobuf/Timestamp.d.ts from file null +Writing src/generated//google/protobuf/FileDescriptorSet.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ExtensionRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ReservedRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Type.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Label.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions/OptimizeMode.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MessageOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/CType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/JSType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption/NamePart.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo/Location.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo/Annotation.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/Empty.d.ts from file null +Writing src/generated//google/api/Http.d.ts from file node_modules/protobufjs/google/api/http.proto +Writing src/generated//google/api/HttpRule.d.ts from file node_modules/protobufjs/google/api/http.proto +Writing src/generated//google/api/CustomHttpPattern.d.ts from file node_modules/protobufjs/google/api/http.proto +Processing envoy/api/v2/route.proto +Writing src/generated//route.d.ts +Writing src/generated//envoy/api/v2/RouteConfiguration.d.ts from file deps/envoy-api/envoy/api/v2/route.proto +Writing src/generated//envoy/api/v2/Vhds.d.ts from file deps/envoy-api/envoy/api/v2/route.proto +Writing src/generated//envoy/api/v2/core/ApiVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ApiConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ApiConfigSource/ApiType.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/AggregatedConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/SelfConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/RateLimitSettings.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/RoutingPriority.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RequestMethod.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TrafficDirection.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Locality.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/BuildVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Extension.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Node.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Metadata.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeUInt32.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeDouble.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFeatureFlag.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValue.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValueOption.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderMap.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/DataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RemoteDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/AsyncDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TransportSocket.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFractionalPercent.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/ControlPlane.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/GrpcService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/EnvoyGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/SslCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/GoogleLocalCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/ChannelCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/ServiceAccountJWTAccessCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/GoogleIAMCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/MetadataCredentialsFromPlugin.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/StsService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/BackoffStrategy.d.ts from file deps/envoy-api/envoy/api/v2/core/backoff.proto +Writing src/generated//envoy/api/v2/core/HttpUri.d.ts from file deps/envoy-api/envoy/api/v2/core/http_uri.proto +Writing src/generated//envoy/api/v2/core/SocketOption.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/SocketOption/SocketState.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/Pipe.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress/Protocol.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/TcpKeepalive.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BindConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/Address.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/CidrRange.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/route/VirtualHost.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/VirtualHost/TlsRequirementType.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/FilterAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/Route.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/WeightedCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/WeightedCluster/ClusterWeight.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteMatch.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteMatch/GrpcRouteMatchOptions.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteMatch/TlsContextMatchOptions.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/CorsPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/ClusterNotFoundResponseCode.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/InternalRedirectAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/RequestMirrorPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/Header.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/Cookie.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/ConnectionProperties.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/QueryParameter.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/HashPolicy/FilterState.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RouteAction/UpgradeConfig.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy/RetryPriority.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy/RetryHostPredicate.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RetryPolicy/RetryBackOff.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/HedgePolicy.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RedirectAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RedirectAction/RedirectResponseCode.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/DirectResponseAction.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/Decorator.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/Tracing.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/VirtualCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/SourceCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/DestinationCluster.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/RequestHeaders.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/RemoteAddress.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/GenericKey.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/RateLimit/Action/HeaderValueMatch.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/HeaderMatcher.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/api/v2/route/QueryParameterMatcher.d.ts from file deps/envoy-api/envoy/api/v2/route/route_components.proto +Writing src/generated//envoy/type/matcher/RegexMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatcher/GoogleRE2.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatchAndSubstitute.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/StringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/matcher/ListStringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/Int64Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/Int32Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/DoubleRange.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Literal.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Environment.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Header.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/tracing/v2/CustomTag/Metadata.d.ts from file deps/envoy-api/envoy/type/tracing/v2/custom_tag.proto +Writing src/generated//envoy/type/SemanticVersion.d.ts from file deps/envoy-api/envoy/type/semantic_version.proto +Writing src/generated//envoy/type/Percent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent/DenominatorType.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKey.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKey/PathSegment.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Request.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Route.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Cluster.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//envoy/type/metadata/v2/MetadataKind/Host.d.ts from file deps/envoy-api/envoy/type/metadata/v2/metadata.proto +Writing src/generated//udpa/annotations/MigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FieldMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FileMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/PackageVersionStatus.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//udpa/annotations/StatusAnnotation.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//validate/FieldRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/FloatRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DoubleRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BoolRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/StringRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/KnownRegex.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BytesRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/EnumRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MessageRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/RepeatedRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MapRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/AnyRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DurationRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/TimestampRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//google/protobuf/DoubleValue.d.ts from file null +Writing src/generated//google/protobuf/FloatValue.d.ts from file null +Writing src/generated//google/protobuf/Int64Value.d.ts from file null +Writing src/generated//google/protobuf/UInt64Value.d.ts from file null +Writing src/generated//google/protobuf/Int32Value.d.ts from file null +Writing src/generated//google/protobuf/UInt32Value.d.ts from file null +Writing src/generated//google/protobuf/BoolValue.d.ts from file null +Writing src/generated//google/protobuf/StringValue.d.ts from file null +Writing src/generated//google/protobuf/BytesValue.d.ts from file null +Writing src/generated//google/protobuf/Duration.d.ts from file null +Writing src/generated//google/protobuf/Timestamp.d.ts from file null +Writing src/generated//google/protobuf/Any.d.ts from file null +Writing src/generated//google/protobuf/Struct.d.ts from file null +Writing src/generated//google/protobuf/Value.d.ts from file null +Writing src/generated//google/protobuf/NullValue.d.ts from file null +Writing src/generated//google/protobuf/ListValue.d.ts from file null +Writing src/generated//google/protobuf/FileDescriptorSet.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ExtensionRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ReservedRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Type.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Label.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions/OptimizeMode.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MessageOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/CType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/JSType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption/NamePart.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo/Location.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo/Annotation.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/Empty.d.ts from file null +Processing envoy/api/v2/cluster.proto +Writing src/generated//cluster.d.ts +Writing src/generated//envoy/api/v2/Cluster.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/DiscoveryType.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/LbPolicy.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/DnsLookupFamily.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/ClusterProtocolSelection.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/TransportSocketMatch.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/CustomClusterType.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/EdsClusterConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/LbSubsetConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/LbSubsetConfig/LbSubsetFallbackPolicy.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/LbSubsetConfig/LbSubsetSelector.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/LbSubsetConfig/LbSubsetSelector/LbSubsetSelectorFallbackPolicy.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/LeastRequestLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/RingHashLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/RingHashLbConfig/HashFunction.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/OriginalDstLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/CommonLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/CommonLbConfig/ZoneAwareLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/CommonLbConfig/LocalityWeightedLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/CommonLbConfig/ConsistentHashingLbConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/Cluster/RefreshRate.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/LoadBalancingPolicy.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/LoadBalancingPolicy/Policy.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/UpstreamBindConfig.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/UpstreamConnectionOptions.d.ts from file deps/envoy-api/envoy/api/v2/cluster.proto +Writing src/generated//envoy/api/v2/auth/UpstreamTlsContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/DownstreamTlsContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/CommonTlsContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/CommonTlsContext/CombinedCertificateValidationContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/tls.proto +Writing src/generated//envoy/api/v2/auth/TlsParameters.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/TlsParameters/TlsProtocol.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/PrivateKeyProvider.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/TlsCertificate.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/TlsSessionTicketKeys.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/CertificateValidationContext.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/CertificateValidationContext/TrustChainVerification.d.ts from file deps/envoy-api/envoy/api/v2/auth/common.proto +Writing src/generated//envoy/api/v2/auth/GenericSecret.d.ts from file deps/envoy-api/envoy/api/v2/auth/secret.proto +Writing src/generated//envoy/api/v2/auth/SdsSecretConfig.d.ts from file deps/envoy-api/envoy/api/v2/auth/secret.proto +Writing src/generated//envoy/api/v2/auth/Secret.d.ts from file deps/envoy-api/envoy/api/v2/auth/secret.proto +Writing src/generated//envoy/api/v2/core/ApiVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ApiConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ApiConfigSource/ApiType.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/AggregatedConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/SelfConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/RateLimitSettings.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/ConfigSource.d.ts from file deps/envoy-api/envoy/api/v2/core/config_source.proto +Writing src/generated//envoy/api/v2/core/HealthStatus.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/Payload.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/HttpHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/TcpHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/RedisHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/GrpcHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/CustomHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/TlsOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/TcpProtocolOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/UpstreamHttpProtocolOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/HttpProtocolOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/HttpProtocolOptions/HeadersWithUnderscoresAction.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/Http1ProtocolOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/Http1ProtocolOptions/HeaderKeyFormat.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/Http1ProtocolOptions/HeaderKeyFormat/ProperCaseWords.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/Http2ProtocolOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/Http2ProtocolOptions/SettingsParameter.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/GrpcProtocolOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/protocol.proto +Writing src/generated//envoy/api/v2/core/Pipe.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress/Protocol.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/TcpKeepalive.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BindConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/Address.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/CidrRange.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/RoutingPriority.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RequestMethod.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TrafficDirection.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Locality.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/BuildVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Extension.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Node.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Metadata.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeUInt32.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeDouble.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFeatureFlag.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValue.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValueOption.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderMap.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/DataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RemoteDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/AsyncDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TransportSocket.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFractionalPercent.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/ControlPlane.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/GrpcService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/EnvoyGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/SslCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/GoogleLocalCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/ChannelCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/ServiceAccountJWTAccessCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/GoogleIAMCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/MetadataCredentialsFromPlugin.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/StsService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/BackoffStrategy.d.ts from file deps/envoy-api/envoy/api/v2/core/backoff.proto +Writing src/generated//envoy/api/v2/core/HttpUri.d.ts from file deps/envoy-api/envoy/api/v2/core/http_uri.proto +Writing src/generated//envoy/api/v2/core/SocketOption.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/SocketOption/SocketState.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/EventServiceConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/event_service_config.proto +Writing src/generated//envoy/api/v2/cluster/CircuitBreakers.d.ts from file deps/envoy-api/envoy/api/v2/cluster/circuit_breaker.proto +Writing src/generated//envoy/api/v2/cluster/CircuitBreakers/Thresholds.d.ts from file deps/envoy-api/envoy/api/v2/cluster/circuit_breaker.proto +Writing src/generated//envoy/api/v2/cluster/CircuitBreakers/Thresholds/RetryBudget.d.ts from file deps/envoy-api/envoy/api/v2/cluster/circuit_breaker.proto +Writing src/generated//envoy/api/v2/cluster/Filter.d.ts from file deps/envoy-api/envoy/api/v2/cluster/filter.proto +Writing src/generated//envoy/api/v2/cluster/OutlierDetection.d.ts from file deps/envoy-api/envoy/api/v2/cluster/outlier_detection.proto +Writing src/generated//envoy/api/v2/ClusterLoadAssignment.d.ts from file deps/envoy-api/envoy/api/v2/endpoint.proto +Writing src/generated//envoy/api/v2/ClusterLoadAssignment/Policy.d.ts from file deps/envoy-api/envoy/api/v2/endpoint.proto +Writing src/generated//envoy/api/v2/ClusterLoadAssignment/Policy/DropOverload.d.ts from file deps/envoy-api/envoy/api/v2/endpoint.proto +Writing src/generated//envoy/api/v2/endpoint/Endpoint.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/endpoint/Endpoint/HealthCheckConfig.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/endpoint/LbEndpoint.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/endpoint/LocalityLbEndpoints.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/type/Percent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent/DenominatorType.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/matcher/StringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/matcher/ListStringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/matcher/RegexMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatcher/GoogleRE2.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatchAndSubstitute.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/CodecClientType.d.ts from file deps/envoy-api/envoy/type/http.proto +Writing src/generated//envoy/type/SemanticVersion.d.ts from file deps/envoy-api/envoy/type/semantic_version.proto +Writing src/generated//envoy/type/Int64Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/Int32Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/DoubleRange.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//udpa/annotations/MigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FieldMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FileMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/PackageVersionStatus.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//udpa/annotations/StatusAnnotation.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//validate/FieldRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/FloatRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DoubleRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BoolRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/StringRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/KnownRegex.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BytesRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/EnumRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MessageRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/RepeatedRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MapRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/AnyRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DurationRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/TimestampRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//google/protobuf/Any.d.ts from file null +Writing src/generated//google/protobuf/Duration.d.ts from file null +Writing src/generated//google/protobuf/Struct.d.ts from file null +Writing src/generated//google/protobuf/Value.d.ts from file null +Writing src/generated//google/protobuf/NullValue.d.ts from file null +Writing src/generated//google/protobuf/ListValue.d.ts from file null +Writing src/generated//google/protobuf/DoubleValue.d.ts from file null +Writing src/generated//google/protobuf/FloatValue.d.ts from file null +Writing src/generated//google/protobuf/Int64Value.d.ts from file null +Writing src/generated//google/protobuf/UInt64Value.d.ts from file null +Writing src/generated//google/protobuf/Int32Value.d.ts from file null +Writing src/generated//google/protobuf/UInt32Value.d.ts from file null +Writing src/generated//google/protobuf/BoolValue.d.ts from file null +Writing src/generated//google/protobuf/StringValue.d.ts from file null +Writing src/generated//google/protobuf/BytesValue.d.ts from file null +Writing src/generated//google/protobuf/Timestamp.d.ts from file null +Writing src/generated//google/protobuf/Empty.d.ts from file null +Writing src/generated//google/protobuf/FileDescriptorSet.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ExtensionRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ReservedRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Type.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Label.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions/OptimizeMode.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MessageOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/CType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/JSType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption/NamePart.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo/Location.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo/Annotation.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/api/Http.d.ts from file node_modules/protobufjs/google/api/http.proto +Writing src/generated//google/api/HttpRule.d.ts from file node_modules/protobufjs/google/api/http.proto +Writing src/generated//google/api/CustomHttpPattern.d.ts from file node_modules/protobufjs/google/api/http.proto +Processing envoy/api/v2/endpoint.proto +Writing src/generated//endpoint.d.ts +Writing src/generated//envoy/api/v2/ClusterLoadAssignment.d.ts from file deps/envoy-api/envoy/api/v2/endpoint.proto +Writing src/generated//envoy/api/v2/ClusterLoadAssignment/Policy.d.ts from file deps/envoy-api/envoy/api/v2/endpoint.proto +Writing src/generated//envoy/api/v2/ClusterLoadAssignment/Policy/DropOverload.d.ts from file deps/envoy-api/envoy/api/v2/endpoint.proto +Writing src/generated//envoy/api/v2/endpoint/Endpoint.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/endpoint/Endpoint/HealthCheckConfig.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/endpoint/LbEndpoint.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/endpoint/LocalityLbEndpoints.d.ts from file deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto +Writing src/generated//envoy/api/v2/core/RoutingPriority.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RequestMethod.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TrafficDirection.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Locality.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/BuildVersion.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Extension.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Node.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Metadata.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeUInt32.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeDouble.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFeatureFlag.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValue.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderValueOption.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/HeaderMap.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/DataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RetryPolicy.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RemoteDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/AsyncDataSource.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/TransportSocket.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/RuntimeFractionalPercent.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/ControlPlane.d.ts from file deps/envoy-api/envoy/api/v2/core/base.proto +Writing src/generated//envoy/api/v2/core/Pipe.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/SocketAddress/Protocol.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/TcpKeepalive.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/BindConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/Address.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/CidrRange.d.ts from file deps/envoy-api/envoy/api/v2/core/address.proto +Writing src/generated//envoy/api/v2/core/HealthStatus.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/Payload.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/HttpHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/TcpHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/RedisHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/GrpcHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/CustomHealthCheck.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/HealthCheck/TlsOptions.d.ts from file deps/envoy-api/envoy/api/v2/core/health_check.proto +Writing src/generated//envoy/api/v2/core/BackoffStrategy.d.ts from file deps/envoy-api/envoy/api/v2/core/backoff.proto +Writing src/generated//envoy/api/v2/core/HttpUri.d.ts from file deps/envoy-api/envoy/api/v2/core/http_uri.proto +Writing src/generated//envoy/api/v2/core/SocketOption.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/SocketOption/SocketState.d.ts from file deps/envoy-api/envoy/api/v2/core/socket_option.proto +Writing src/generated//envoy/api/v2/core/EventServiceConfig.d.ts from file deps/envoy-api/envoy/api/v2/core/event_service_config.proto +Writing src/generated//envoy/api/v2/core/GrpcService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/EnvoyGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/SslCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/GoogleLocalCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/ChannelCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/ServiceAccountJWTAccessCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/GoogleIAMCredentials.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/MetadataCredentialsFromPlugin.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/api/v2/core/GrpcService/GoogleGrpc/CallCredentials/StsService.d.ts from file deps/envoy-api/envoy/api/v2/core/grpc_service.proto +Writing src/generated//envoy/type/Percent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/FractionalPercent/DenominatorType.d.ts from file deps/envoy-api/envoy/type/percent.proto +Writing src/generated//envoy/type/matcher/StringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/matcher/ListStringMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/string.proto +Writing src/generated//envoy/type/matcher/RegexMatcher.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatcher/GoogleRE2.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/matcher/RegexMatchAndSubstitute.d.ts from file deps/envoy-api/envoy/type/matcher/regex.proto +Writing src/generated//envoy/type/SemanticVersion.d.ts from file deps/envoy-api/envoy/type/semantic_version.proto +Writing src/generated//envoy/type/CodecClientType.d.ts from file deps/envoy-api/envoy/type/http.proto +Writing src/generated//envoy/type/Int64Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/Int32Range.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//envoy/type/DoubleRange.d.ts from file deps/envoy-api/envoy/type/range.proto +Writing src/generated//udpa/annotations/MigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FieldMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/FileMigrateAnnotation.d.ts from file deps/udpa/udpa/annotations/migrate.proto +Writing src/generated//udpa/annotations/PackageVersionStatus.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//udpa/annotations/StatusAnnotation.d.ts from file deps/udpa/udpa/annotations/status.proto +Writing src/generated//validate/FieldRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/FloatRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DoubleRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Int64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/UInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SInt64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/Fixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed32Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/SFixed64Rules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BoolRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/StringRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/KnownRegex.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/BytesRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/EnumRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MessageRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/RepeatedRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/MapRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/AnyRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/DurationRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//validate/TimestampRules.d.ts from file deps/protoc-gen-validate/validate/validate.proto +Writing src/generated//google/protobuf/Duration.d.ts from file null +Writing src/generated//google/protobuf/DoubleValue.d.ts from file null +Writing src/generated//google/protobuf/FloatValue.d.ts from file null +Writing src/generated//google/protobuf/Int64Value.d.ts from file null +Writing src/generated//google/protobuf/UInt64Value.d.ts from file null +Writing src/generated//google/protobuf/Int32Value.d.ts from file null +Writing src/generated//google/protobuf/UInt32Value.d.ts from file null +Writing src/generated//google/protobuf/BoolValue.d.ts from file null +Writing src/generated//google/protobuf/StringValue.d.ts from file null +Writing src/generated//google/protobuf/BytesValue.d.ts from file null +Writing src/generated//google/protobuf/Timestamp.d.ts from file null +Writing src/generated//google/protobuf/FileDescriptorSet.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ExtensionRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/DescriptorProto/ReservedRange.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Type.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldDescriptorProto/Label.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodDescriptorProto.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FileOptions/OptimizeMode.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MessageOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/CType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/FieldOptions/JSType.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/OneofOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/EnumValueOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/ServiceOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/MethodOptions.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/UninterpretedOption/NamePart.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/SourceCodeInfo/Location.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/GeneratedCodeInfo/Annotation.d.ts from file node_modules/protobufjs/google/protobuf/descriptor.proto +Writing src/generated//google/protobuf/Any.d.ts from file null +Writing src/generated//google/protobuf/Struct.d.ts from file null +Writing src/generated//google/protobuf/Value.d.ts from file null +Writing src/generated//google/protobuf/NullValue.d.ts from file null +Writing src/generated//google/protobuf/ListValue.d.ts from file null +Writing src/generated//google/protobuf/Empty.d.ts from file null +Writing src/generated//google/api/Http.d.ts from file node_modules/protobufjs/google/api/http.proto +Writing src/generated//google/api/HttpRule.d.ts from file node_modules/protobufjs/google/api/http.proto +Writing src/generated//google/api/CustomHttpPattern.d.ts from file node_modules/protobufjs/google/api/http.proto +Success diff --git a/packages/grpc-js/package.json b/packages/grpc-js/package.json index b2804381..e9019397 100644 --- a/packages/grpc-js/package.json +++ b/packages/grpc-js/package.json @@ -15,6 +15,7 @@ "types": "build/src/index.d.ts", "license": "Apache-2.0", "devDependencies": { + "@grpc/proto-loader": "^0.5.5", "@types/gulp": "^4.0.6", "@types/gulp-mocha": "0.0.32", "@types/lodash": "^4.14.108", @@ -47,8 +48,6 @@ "clean": "node -e 'require(\"rimraf\")(\"./build\", () => {})'", "compile": "tsc -p .", "format": "clang-format -i -style=\"{Language: JavaScript, BasedOnStyle: Google, ColumnLimit: 80}\" src/*.ts test/*.ts", - "generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs deps/envoy-api/ deps/udpa/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib ../index envoy/service/discovery/v2/ads.proto envoy/service/load_stats/v2/lrs.proto envoy/api/v2/listener.proto envoy/api/v2/route.proto envoy/api/v2/cluster.proto envoy/api/v2/endpoint.proto envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto", - "generate-interop-types": "proto-loader-gen-types --keep-case --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs proto/ -O interop/generated --grpcLib ../../src grpc/testing/test.proto", "lint": "npm run check", "prepare": "npm run compile", "test": "gulp test", @@ -58,9 +57,8 @@ "posttest": "npm run check" }, "dependencies": { - "@grpc/proto-loader": "^0.6.0-pre14", "@types/node": "^12.12.47", - "google-auth-library": "^5.10.1", + "google-auth-library": "^6.1.1", "semver": "^6.2.0" }, "files": [ diff --git a/packages/grpc-js/src/experimental.ts b/packages/grpc-js/src/experimental.ts new file mode 100644 index 00000000..b88f124a --- /dev/null +++ b/packages/grpc-js/src/experimental.ts @@ -0,0 +1,13 @@ +export { trace } from './logging'; +export { Resolver, ResolverListener, registerResolver } from './resolver'; +export { GrpcUri, uriToString } from './uri-parser'; +export { ServiceConfig } from './service-config'; +export { createGoogleDefaultCredentials } from './channel-credentials'; +export { BackoffTimeout } from './backoff-timeout'; +export { LoadBalancer, LoadBalancingConfig, ChannelControlHelper, registerLoadBalancerType, getFirstUsableConfig, validateLoadBalancingConfig } from './load-balancer'; +export { SubchannelAddress, subchannelAddressToString } from './subchannel'; +export { ChildLoadBalancerHandler } from './load-balancer-child-handler'; +export { Picker, UnavailablePicker, QueuePicker, PickResult, PickArgs, PickResultType } from './picker'; +export { Call as CallStream } from './call-stream'; +export { Filter, BaseFilter, FilterFactory } from './filter'; +export { FilterStackFactory } from './filter-stack'; \ No newline at end of file diff --git a/packages/grpc-js/src/index.ts b/packages/grpc-js/src/index.ts index 89e604e3..e90ac4be 100644 --- a/packages/grpc-js/src/index.ts +++ b/packages/grpc-js/src/index.ts @@ -246,6 +246,11 @@ export { export { GrpcObject } from './make-client'; +export { ChannelOptions } from './channel-options'; + +import * as experimental from './experimental'; +export { experimental }; + import * as resolver from './resolver'; import * as load_balancer from './load-balancer'; diff --git a/packages/grpc-js/src/load-balancer-child-handler.ts b/packages/grpc-js/src/load-balancer-child-handler.ts index b0044d12..337174c0 100644 --- a/packages/grpc-js/src/load-balancer-child-handler.ts +++ b/packages/grpc-js/src/load-balancer-child-handler.ts @@ -19,9 +19,9 @@ import { LoadBalancer, ChannelControlHelper, createLoadBalancer, + LoadBalancingConfig } from './load-balancer'; import { SubchannelAddress, Subchannel } from './subchannel'; -import { LoadBalancingConfig } from './load-balancing-config'; import { ChannelOptions } from './channel-options'; import { ConnectivityState } from './channel'; import { Picker } from './picker'; @@ -90,10 +90,10 @@ export class ChildLoadBalancerHandler implements LoadBalancer { let childToUpdate: LoadBalancer; if ( this.currentChild === null || - this.currentChild.getTypeName() !== lbConfig.name + this.currentChild.getTypeName() !== lbConfig.getLoadBalancerName() ) { const newHelper = new this.ChildPolicyHelper(this); - const newChild = createLoadBalancer(lbConfig.name, newHelper)!; + const newChild = createLoadBalancer(lbConfig, newHelper)!; newHelper.setChild(newChild); if (this.currentChild === null) { this.currentChild = newChild; diff --git a/packages/grpc-js/src/load-balancer-pick-first.ts b/packages/grpc-js/src/load-balancer-pick-first.ts index b5cea06c..31dc1784 100644 --- a/packages/grpc-js/src/load-balancer-pick-first.ts +++ b/packages/grpc-js/src/load-balancer-pick-first.ts @@ -19,6 +19,7 @@ import { LoadBalancer, ChannelControlHelper, registerLoadBalancerType, + LoadBalancingConfig } from './load-balancer'; import { ConnectivityState } from './channel'; import { @@ -29,7 +30,6 @@ import { PickResultType, UnavailablePicker, } from './picker'; -import { LoadBalancingConfig } from './load-balancing-config'; import { Subchannel, ConnectivityStateListener, @@ -53,6 +53,24 @@ const TYPE_NAME = 'pick_first'; */ const CONNECTION_DELAY_INTERVAL_MS = 250; +export class PickFirstLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + + constructor() {} + + toJsonObject(): object { + return { + [TYPE_NAME]: {} + }; + } + + static createFromJson(obj: any) { + return new PickFirstLoadBalancingConfig(); + } +} + /** * Picker for a `PickFirstLoadBalancer` in the READY state. Always returns the * picked subchannel. @@ -439,5 +457,5 @@ export class PickFirstLoadBalancer implements LoadBalancer { } export function setup(): void { - registerLoadBalancerType(TYPE_NAME, PickFirstLoadBalancer); + registerLoadBalancerType(TYPE_NAME, PickFirstLoadBalancer, PickFirstLoadBalancingConfig); } diff --git a/packages/grpc-js/src/load-balancer-round-robin.ts b/packages/grpc-js/src/load-balancer-round-robin.ts index 8ee2201a..fc9bef0c 100644 --- a/packages/grpc-js/src/load-balancer-round-robin.ts +++ b/packages/grpc-js/src/load-balancer-round-robin.ts @@ -19,6 +19,7 @@ import { LoadBalancer, ChannelControlHelper, registerLoadBalancerType, + LoadBalancingConfig } from './load-balancer'; import { ConnectivityState } from './channel'; import { @@ -29,7 +30,6 @@ import { PickResultType, UnavailablePicker, } from './picker'; -import { LoadBalancingConfig } from './load-balancing-config'; import { Subchannel, ConnectivityStateListener, @@ -47,6 +47,24 @@ function trace(text: string): void { const TYPE_NAME = 'round_robin'; +class RoundRobinLoadBalancingConfig implements LoadBalancingConfig { + getLoadBalancerName(): string { + return TYPE_NAME; + } + + constructor() {} + + toJsonObject(): object { + return { + [TYPE_NAME]: {} + }; + } + + static createFromJson(obj: any) { + return new RoundRobinLoadBalancingConfig(); + } +} + class RoundRobinPicker implements Picker { constructor( private readonly subchannelList: Subchannel[], @@ -231,5 +249,5 @@ export class RoundRobinLoadBalancer implements LoadBalancer { } export function setup() { - registerLoadBalancerType(TYPE_NAME, RoundRobinLoadBalancer); + registerLoadBalancerType(TYPE_NAME, RoundRobinLoadBalancer, RoundRobinLoadBalancingConfig); } diff --git a/packages/grpc-js/src/load-balancer.ts b/packages/grpc-js/src/load-balancer.ts index 56dd06f3..8d5c7c83 100644 --- a/packages/grpc-js/src/load-balancer.ts +++ b/packages/grpc-js/src/load-balancer.ts @@ -19,14 +19,8 @@ import { ChannelOptions } from './channel-options'; import { Subchannel, SubchannelAddress } from './subchannel'; import { ConnectivityState } from './channel'; import { Picker } from './picker'; -import { LoadBalancingConfig } from './load-balancing-config'; import * as load_balancer_pick_first from './load-balancer-pick-first'; import * as load_balancer_round_robin from './load-balancer-round-robin'; -import * as load_balancer_priority from './load-balancer-priority'; -import * as load_balancer_weighted_target from './load-balancer-weighted-target'; -import * as load_balancer_eds from './load-balancer-eds'; -import * as load_balancer_cds from './load-balancer-cds'; -import * as load_balancer_lrs from './load-balancer-lrs'; /** * A collection of functions associated with a channel that a load balancer @@ -102,23 +96,41 @@ export interface LoadBalancerConstructor { new (channelControlHelper: ChannelControlHelper): LoadBalancer; } +export interface LoadBalancingConfig { + getLoadBalancerName(): string; + toJsonObject(): object; +} + +export interface LoadBalancingConfigConstructor { + new(...args: any): LoadBalancingConfig; + createFromJson(obj: any): LoadBalancingConfig; +} + const registeredLoadBalancerTypes: { - [name: string]: LoadBalancerConstructor; + [name: string]: { + LoadBalancer: LoadBalancerConstructor, + LoadBalancingConfig: LoadBalancingConfigConstructor + }; } = {}; export function registerLoadBalancerType( typeName: string, - loadBalancerType: LoadBalancerConstructor + loadBalancerType: LoadBalancerConstructor, + loadBalancingConfigType: LoadBalancingConfigConstructor ) { - registeredLoadBalancerTypes[typeName] = loadBalancerType; + registeredLoadBalancerTypes[typeName] = { + LoadBalancer: loadBalancerType, + LoadBalancingConfig: loadBalancingConfigType + }; } export function createLoadBalancer( - typeName: string, + config: LoadBalancingConfig, channelControlHelper: ChannelControlHelper ): LoadBalancer | null { + const typeName = config.getLoadBalancerName(); if (typeName in registeredLoadBalancerTypes) { - return new registeredLoadBalancerTypes[typeName](channelControlHelper); + return new registeredLoadBalancerTypes[typeName].LoadBalancer(channelControlHelper); } else { return null; } @@ -128,23 +140,40 @@ export function isLoadBalancerNameRegistered(typeName: string): boolean { return typeName in registeredLoadBalancerTypes; } +export function getFirstUsableConfig(configs: LoadBalancingConfig[], defaultPickFirst?: true): LoadBalancingConfig; export function getFirstUsableConfig( - configs: LoadBalancingConfig[] + configs: LoadBalancingConfig[], + defaultPickFirst: boolean = false ): LoadBalancingConfig | null { for (const config of configs) { - if (config.name in registeredLoadBalancerTypes) { + if (config.getLoadBalancerName() in registeredLoadBalancerTypes) { return config; } } - return null; + if (defaultPickFirst) { + return new load_balancer_pick_first.PickFirstLoadBalancingConfig() + } else { + return null; + } +} + +export function validateLoadBalancingConfig(obj: any): LoadBalancingConfig { + if (!(obj !== null && (typeof obj === 'object'))) { + throw new Error('Load balancing config must be an object'); + } + const keys = Object.keys(obj); + if (keys.length !== 1) { + throw new Error('Provided load balancing config has multiple conflicting entries'); + } + const typeName = keys[0]; + if (typeName in registeredLoadBalancerTypes) { + return registeredLoadBalancerTypes[typeName].LoadBalancingConfig.createFromJson(obj[typeName]); + } else { + throw new Error(`Unrecognized load balancing config name ${typeName}`); + } } export function registerAll() { load_balancer_pick_first.setup(); load_balancer_round_robin.setup(); - load_balancer_priority.setup(); - load_balancer_weighted_target.setup(); - load_balancer_eds.setup(); - load_balancer_cds.setup(); - load_balancer_lrs.setup(); } diff --git a/packages/grpc-js/src/load-balancing-config.ts b/packages/grpc-js/src/load-balancing-config.ts deleted file mode 100644 index d4d7792e..00000000 --- a/packages/grpc-js/src/load-balancing-config.ts +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright 2019 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -import { Locality__Output } from './generated/envoy/api/v2/core/Locality'; - -/* This file is an implementation of gRFC A24: - * https://github.com/grpc/proposal/blob/master/A24-lb-policy-config.md. Each - * function here takes an object with unknown structure and returns its - * specific object type if the input has the right structure, and throws an - * error otherwise. */ - -/* The any type is purposely used here. All functions validate their input at - * runtime */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -export type PickFirstConfig = {}; - -export type RoundRobinConfig = {}; - -export interface XdsConfig { - balancerName: string; - childPolicy: LoadBalancingConfig[]; - fallbackPolicy: LoadBalancingConfig[]; -} - -export interface GrpcLbConfig { - childPolicy: LoadBalancingConfig[]; -} - -export interface PriorityChild { - config: LoadBalancingConfig[]; -} - -export interface PriorityLbConfig { - children: Map; - priorities: string[]; -} - -export interface WeightedTarget { - weight: number; - child_policy: LoadBalancingConfig[]; -} - -export interface WeightedTargetLbConfig { - targets: Map; -} - -export interface EdsLbConfig { - cluster: string; - edsServiceName?: string; - lrsLoadReportingServerName?: string; - /** - * This policy's config is expected to be in the format used by the - * weighted_target policy. Defaults to weighted_target if not specified. - * - * This is currently not used because there is currently no other config - * that has the same format as weighted_target. - */ - localityPickingPolicy: LoadBalancingConfig[]; - /** - * Defaults to round_robin if not specified. - */ - endpointPickingPolicy: LoadBalancingConfig[]; -} - -export interface CdsLbConfig { - cluster: string; -} - -export interface LrsLbConfig { - cluster_name: string; - eds_service_name: string; - lrs_load_reporting_server_name: string; - locality: Locality__Output; - child_policy: LoadBalancingConfig[]; -} - -export interface PickFirstLoadBalancingConfig { - name: 'pick_first'; - pick_first: PickFirstConfig; -} - -export interface RoundRobinLoadBalancingConfig { - name: 'round_robin'; - round_robin: RoundRobinConfig; -} - -export interface XdsLoadBalancingConfig { - name: 'xds'; - xds: XdsConfig; -} - -export interface GrpcLbLoadBalancingConfig { - name: 'grpclb'; - grpclb: GrpcLbConfig; -} - -export interface PriorityLoadBalancingConfig { - name: 'priority'; - priority: PriorityLbConfig; -} - -export interface WeightedTargetLoadBalancingConfig { - name: 'weighted_target'; - weighted_target: WeightedTargetLbConfig; -} - -export interface EdsLoadBalancingConfig { - name: 'eds'; - eds: EdsLbConfig; -} - -export interface CdsLoadBalancingConfig { - name: 'cds'; - cds: CdsLbConfig; -} - -export interface LrsLoadBalancingConfig { - name: 'lrs'; - lrs: LrsLbConfig; -} - -export type LoadBalancingConfig = - | PickFirstLoadBalancingConfig - | RoundRobinLoadBalancingConfig - | XdsLoadBalancingConfig - | GrpcLbLoadBalancingConfig - | PriorityLoadBalancingConfig - | WeightedTargetLoadBalancingConfig - | EdsLoadBalancingConfig - | CdsLoadBalancingConfig - | LrsLoadBalancingConfig; - -export function isRoundRobinLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is RoundRobinLoadBalancingConfig { - return lbconfig.name === 'round_robin'; -} - -export function isXdsLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is XdsLoadBalancingConfig { - return lbconfig.name === 'xds'; -} - -export function isGrpcLbLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is GrpcLbLoadBalancingConfig { - return lbconfig.name === 'grpclb'; -} - -export function isPriorityLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is PriorityLoadBalancingConfig { - return lbconfig.name === 'priority'; -} - -export function isWeightedTargetLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is WeightedTargetLoadBalancingConfig { - return lbconfig.name === 'weighted_target'; -} - -export function isEdsLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is EdsLoadBalancingConfig { - return lbconfig.name === 'eds'; -} - -export function isCdsLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is CdsLoadBalancingConfig { - return lbconfig.name === 'cds'; -} - -export function isLrsLoadBalancingConfig( - lbconfig: LoadBalancingConfig -): lbconfig is LrsLoadBalancingConfig { - return lbconfig.name === 'lrs'; -} - -/* In these functions we assume the input came from a JSON object. Therefore we - * expect that the prototype is uninteresting and that `in` can be used - * effectively */ - -function validateXdsConfig(xds: any): XdsConfig { - if (!('balancerName' in xds) || typeof xds.balancerName !== 'string') { - throw new Error('Invalid xds config: invalid balancerName'); - } - const xdsConfig: XdsConfig = { - balancerName: xds.balancerName, - childPolicy: [], - fallbackPolicy: [], - }; - if ('childPolicy' in xds) { - if (!Array.isArray(xds.childPolicy)) { - throw new Error('Invalid xds config: invalid childPolicy'); - } - for (const policy of xds.childPolicy) { - xdsConfig.childPolicy.push(validateConfig(policy)); - } - } - if ('fallbackPolicy' in xds) { - if (!Array.isArray(xds.fallbackPolicy)) { - throw new Error('Invalid xds config: invalid fallbackPolicy'); - } - for (const policy of xds.fallbackPolicy) { - xdsConfig.fallbackPolicy.push(validateConfig(policy)); - } - } - return xdsConfig; -} - -function validateGrpcLbConfig(grpclb: any): GrpcLbConfig { - const grpcLbConfig: GrpcLbConfig = { - childPolicy: [], - }; - if ('childPolicy' in grpclb) { - if (!Array.isArray(grpclb.childPolicy)) { - throw new Error('Invalid xds config: invalid childPolicy'); - } - for (const policy of grpclb.childPolicy) { - grpcLbConfig.childPolicy.push(validateConfig(policy)); - } - } - return grpcLbConfig; -} - -export function validateConfig(obj: any): LoadBalancingConfig { - if ('round_robin' in obj) { - if ('xds' in obj || 'grpclb' in obj) { - throw new Error('Multiple load balancing policies configured'); - } - if (obj['round_robin'] instanceof Object) { - return { - name: 'round_robin', - round_robin: {}, - }; - } - } - if ('xds' in obj) { - if ('grpclb' in obj) { - throw new Error('Multiple load balancing policies configured'); - } - return { - name: 'xds', - xds: validateXdsConfig(obj.xds), - }; - } - if ('grpclb' in obj) { - return { - name: 'grpclb', - grpclb: validateGrpcLbConfig(obj.grpclb), - }; - } - throw new Error('No recognized load balancing policy configured'); -} diff --git a/packages/grpc-js/src/resolver.ts b/packages/grpc-js/src/resolver.ts index 0c4c0d6b..57c750ae 100644 --- a/packages/grpc-js/src/resolver.ts +++ b/packages/grpc-js/src/resolver.ts @@ -18,7 +18,6 @@ import { ServiceConfig } from './service-config'; import * as resolver_dns from './resolver-dns'; import * as resolver_uds from './resolver-uds'; -import * as resolver_xds from './resolver-xds'; import { StatusObject } from './call-stream'; import { SubchannelAddress } from './subchannel'; import { GrpcUri, uriToString } from './uri-parser'; @@ -157,5 +156,4 @@ export function mapUriDefaultScheme(target: GrpcUri): GrpcUri | null { export function registerAll() { resolver_dns.setup(); resolver_uds.setup(); - resolver_xds.setup(); } diff --git a/packages/grpc-js/src/resolving-load-balancer.ts b/packages/grpc-js/src/resolving-load-balancer.ts index 452d3c28..2ce59d0c 100644 --- a/packages/grpc-js/src/resolving-load-balancer.ts +++ b/packages/grpc-js/src/resolving-load-balancer.ts @@ -19,13 +19,13 @@ import { ChannelControlHelper, LoadBalancer, getFirstUsableConfig, + LoadBalancingConfig } from './load-balancer'; import { ServiceConfig, validateServiceConfig } from './service-config'; import { ConnectivityState } from './channel'; import { createResolver, Resolver } from './resolver'; import { ServiceError } from './call'; import { Picker, UnavailablePicker, QueuePicker } from './picker'; -import { LoadBalancingConfig } from './load-balancing-config'; import { BackoffTimeout } from './backoff-timeout'; import { Status } from './constants'; import { StatusObject } from './call-stream'; @@ -36,6 +36,7 @@ import { SubchannelAddress } from './subchannel'; import { GrpcUri, uriToString } from './uri-parser'; import { ChildLoadBalancerHandler } from './load-balancer-child-handler'; import { ChannelOptions } from './channel-options'; +import { PickFirstLoadBalancingConfig } from './load-balancer-pick-first'; const TRACER_NAME = 'resolving_load_balancer'; @@ -163,13 +164,7 @@ export class ResolvingLoadBalancer implements LoadBalancer { } const workingConfigList = workingServiceConfig?.loadBalancingConfig ?? []; - if (workingConfigList.length === 0) { - workingConfigList.push({ - name: 'pick_first', - pick_first: {}, - }); - } - const loadBalancingConfig = getFirstUsableConfig(workingConfigList); + const loadBalancingConfig = getFirstUsableConfig(workingConfigList, true); if (loadBalancingConfig === null) { // There were load balancing configs but none are supported. This counts as a resolution failure this.handleResolutionFailure({ diff --git a/packages/grpc-js/src/service-config.ts b/packages/grpc-js/src/service-config.ts index ea5c449a..ed225e08 100644 --- a/packages/grpc-js/src/service-config.ts +++ b/packages/grpc-js/src/service-config.ts @@ -26,8 +26,8 @@ * runtime */ /* eslint-disable @typescript-eslint/no-explicit-any */ -import * as lbconfig from './load-balancing-config'; import * as os from 'os'; +import { LoadBalancingConfig, validateLoadBalancingConfig } from './load-balancer'; export interface MethodConfigName { service: string; @@ -44,7 +44,7 @@ export interface MethodConfig { export interface ServiceConfig { loadBalancingPolicy?: string; - loadBalancingConfig: lbconfig.LoadBalancingConfig[]; + loadBalancingConfig: LoadBalancingConfig[]; methodConfig: MethodConfig[]; } @@ -139,7 +139,7 @@ export function validateServiceConfig(obj: any): ServiceConfig { if ('loadBalancingConfig' in obj) { if (Array.isArray(obj.loadBalancingConfig)) { for (const config of obj.loadBalancingConfig) { - result.loadBalancingConfig.push(lbconfig.validateConfig(config)); + result.loadBalancingConfig.push(validateLoadBalancingConfig(config)); } } else { throw new Error('Invalid service config: invalid loadBalancingConfig'); diff --git a/packages/grpc-js/tsconfig.json b/packages/grpc-js/tsconfig.json index 65ebf089..ba675db7 100644 --- a/packages/grpc-js/tsconfig.json +++ b/packages/grpc-js/tsconfig.json @@ -10,7 +10,6 @@ }, "include": [ "src/**/*.ts", - "test/**/*.ts", - "interop/**/*.ts" + "test/**/*.ts" ] } diff --git a/test/kokoro/xds-interop.cfg b/test/kokoro/xds-interop.cfg index 7aae7d96..16a7dc7d 100644 --- a/test/kokoro/xds-interop.cfg +++ b/test/kokoro/xds-interop.cfg @@ -15,7 +15,7 @@ # Config file for Kokoro (in protobuf text format) # Location of the continuous shell script in repository. -build_file: "grpc-node/packages/grpc-js/scripts/xds.sh" +build_file: "grpc-node/packages/grpc-js-xds/scripts/xds.sh" timeout_mins: 120 action { define_artifacts {