diff --git a/packages/grpc-js-xds/package.json b/packages/grpc-js-xds/package.json index f2b32a773..a26e03ea3 100644 --- a/packages/grpc-js-xds/package.json +++ b/packages/grpc-js-xds/package.json @@ -42,7 +42,8 @@ "yargs": "^15.4.1" }, "dependencies": { - "@grpc/proto-loader": "^0.6.0-pre14" + "@grpc/proto-loader": "^0.6.0-pre14", + "google-auth-library": "^7.0.2" }, "peerDependencies": { "@grpc/grpc-js": "~1.2.2" diff --git a/packages/grpc-js-xds/src/google-default-credentials.ts b/packages/grpc-js-xds/src/google-default-credentials.ts new file mode 100644 index 000000000..ec765ee49 --- /dev/null +++ b/packages/grpc-js-xds/src/google-default-credentials.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2021 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 { GoogleAuth } from 'google-auth-library'; +import { ChannelCredentials, CallCredentials } from '@grpc/grpc-js'; + +export function createGoogleDefaultCredentials(): ChannelCredentials { + const sslCreds = ChannelCredentials.createSsl(); + const googleAuthCreds = CallCredentials.createFromGoogleCredential( + new GoogleAuth() + ); + return sslCreds.compose(googleAuthCreds); +} \ No newline at end of file diff --git a/packages/grpc-js-xds/src/xds-client.ts b/packages/grpc-js-xds/src/xds-client.ts index ae67960d7..bedafda9a 100644 --- a/packages/grpc-js-xds/src/xds-client.ts +++ b/packages/grpc-js-xds/src/xds-client.ts @@ -48,7 +48,7 @@ import { RouteConfiguration__Output } from './generated/envoy/api/v2/RouteConfig import { Any__Output } from './generated/google/protobuf/Any'; import BackoffTimeout = experimental.BackoffTimeout; import ServiceConfig = experimental.ServiceConfig; -import createGoogleDefaultCredentials = experimental.createGoogleDefaultCredentials; +import { createGoogleDefaultCredentials } from './google-default-credentials'; import { CdsLoadBalancingConfig } from './load-balancer-cds'; const TRACER_NAME = 'xds_client'; diff --git a/packages/grpc-js/package.json b/packages/grpc-js/package.json index 01a9d418f..5d8360e6c 100644 --- a/packages/grpc-js/package.json +++ b/packages/grpc-js/package.json @@ -58,7 +58,6 @@ }, "dependencies": { "@types/node": "^12.12.47", - "google-auth-library": "^6.1.1", "semver": "^6.2.0" }, "files": [ diff --git a/packages/grpc-js/src/channel-credentials.ts b/packages/grpc-js/src/channel-credentials.ts index aadf638b3..675e91628 100644 --- a/packages/grpc-js/src/channel-credentials.ts +++ b/packages/grpc-js/src/channel-credentials.ts @@ -19,7 +19,6 @@ import { ConnectionOptions, createSecureContext, PeerCertificate } from 'tls'; import { CallCredentials } from './call-credentials'; import { CIPHER_SUITES, getDefaultRootsData } from './tls-helpers'; -import { GoogleAuth as GoogleAuthType } from 'google-auth-library'; // eslint-disable-next-line @typescript-eslint/no-explicit-any function verifyIsBufferOrNull(obj: any, friendlyName: string): void { @@ -279,13 +278,3 @@ class ComposedChannelCredentialsImpl extends ChannelCredentials { } } } - -export function createGoogleDefaultCredentials(): ChannelCredentials { - const GoogleAuth = require('google-auth-library') - .GoogleAuth as typeof GoogleAuthType; - const sslCreds = ChannelCredentials.createSsl(); - const googleAuthCreds = CallCredentials.createFromGoogleCredential( - new GoogleAuth() - ); - return sslCreds.compose(googleAuthCreds); -} diff --git a/packages/grpc-js/src/experimental.ts b/packages/grpc-js/src/experimental.ts index b88f124ae..c27f9810a 100644 --- a/packages/grpc-js/src/experimental.ts +++ b/packages/grpc-js/src/experimental.ts @@ -2,7 +2,6 @@ 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';