From 84df4229057be1902800b861adec3d69e1307ca4 Mon Sep 17 00:00:00 2001 From: Megan Potter <57276408+feywind@users.noreply.github.com> Date: Fri, 2 Feb 2024 14:00:29 -0500 Subject: [PATCH 1/4] samples: missed import conversion in TS (#1877) I caught this while publishing all of the TypeScript samples. --- samples/typescript/createSubscription.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/typescript/createSubscription.ts b/samples/typescript/createSubscription.ts index c531c3608..61303448f 100644 --- a/samples/typescript/createSubscription.ts +++ b/samples/typescript/createSubscription.ts @@ -33,7 +33,7 @@ // const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID'; // Imports the Google Cloud client library -const {PubSub} = require('@google-cloud/pubsub'); +import {PubSub} from '@google-cloud/pubsub'; // Creates a client; cache this for further use const pubSubClient = new PubSub(); From d89fd1d90b352f0cc7a50a72c5fec4aab6660f8f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 12:50:24 -0500 Subject: [PATCH 2/4] feat: Trusted Private Cloud support, use the universeDomain parameter (#1878) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Trusted Private Cloud support, use the universeDomain parameter feat: auto populate UUID fields where needed fix: revert changes to streaming retries Use gapic-generator-typescript v4.4.0. PiperOrigin-RevId: 603757799 Source-Link: https://github.com/googleapis/googleapis/commit/1a45bf7393b52407188c82e63101db7dc9c72026 Source-Link: https://github.com/googleapis/googleapis-gen/commit/19ca4b45a53d00cb7bdd94b442b60bd237dfe123 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMTljYTRiNDVhNTNkMDBjYjdiZGQ5NGI0NDJiNjBiZDIzN2RmZTEyMyJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .gitignore | 1 - src/v1/publisher_client.ts | 65 +++++++++++++++++++++++++++++--- src/v1/schema_service_client.ts | 65 +++++++++++++++++++++++++++++--- src/v1/subscriber_client.ts | 67 ++++++++++++++++++++++++++++++--- test/gapic_publisher_v1.ts | 60 +++++++++++++++++++++++++++-- test/gapic_schema_service_v1.ts | 64 ++++++++++++++++++++++++++++--- test/gapic_subscriber_v1.ts | 60 +++++++++++++++++++++++++++-- 7 files changed, 351 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 79df01522..d4f03a0df 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,3 @@ system-test/*key.json .DS_Store package-lock.json __pycache__ -samples/build/ diff --git a/src/v1/publisher_client.ts b/src/v1/publisher_client.ts index d08e12139..6b16728f9 100644 --- a/src/v1/publisher_client.ts +++ b/src/v1/publisher_client.ts @@ -31,6 +31,7 @@ import type { import {Transform} from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); + /** * Client JSON configuration object, loaded from * `src/v1/publisher_client_config.json`. @@ -53,6 +54,8 @@ export class PublisherClient { private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; private _defaults: {[method: string]: gax.CallSettings}; + private _universeDomain: string; + private _servicePath: string; auth: gax.GoogleAuth; descriptors: Descriptors = { page: {}, @@ -111,8 +114,20 @@ export class PublisherClient { ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof PublisherClient; + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.' + ); + } + this._universeDomain = + opts?.universeDomain ?? opts?.universe_domain ?? 'googleapis.com'; + this._servicePath = 'pubsub.' + this._universeDomain; const servicePath = - opts?.servicePath || opts?.apiEndpoint || staticMembers.servicePath; + opts?.servicePath || opts?.apiEndpoint || this._servicePath; this._providedCustomServicePath = !!( opts?.servicePath || opts?.apiEndpoint ); @@ -127,7 +142,7 @@ export class PublisherClient { opts.numericEnums = true; // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. - if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { + if (servicePath !== this._servicePath && !('scopes' in opts)) { opts['scopes'] = staticMembers.scopes; } @@ -152,10 +167,10 @@ export class PublisherClient { this.auth.useJWTAccessWithScope = true; // Set defaultServicePath on the auth object. - this.auth.defaultServicePath = staticMembers.servicePath; + this.auth.defaultServicePath = this._servicePath; // Set the default scopes in auth client if needed. - if (servicePath === staticMembers.servicePath) { + if (servicePath === this._servicePath) { this.auth.defaultScopes = staticMembers.scopes; } this.iamClient = new this._gaxModule.IamClient(this._gaxGrpc, opts); @@ -330,21 +345,61 @@ export class PublisherClient { /** * The DNS address for this API service. + * @deprecated * @returns {string} The DNS address for this service. */ static get servicePath() { + if ( + typeof process !== undefined && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning' + ); + } return 'pubsub.googleapis.com'; } /** - * The DNS address for this API service - same as servicePath(), + * The DNS address for this API service - same as servicePath, * exists for compatibility reasons. + * @deprecated * @returns {string} The DNS address for this service. */ static get apiEndpoint() { + if ( + typeof process !== undefined && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning' + ); + } return 'pubsub.googleapis.com'; } + /** + * The DNS address for this API service. + * @returns {string} The DNS address for this service. + */ + get servicePath() { + return this._servicePath; + } + + /** + * The DNS address for this API service - same as servicePath(). + * @returns {string} The DNS address for this service. + */ + get apiEndpoint() { + return this._servicePath; + } + + get universeDomain() { + return this._universeDomain; + } + /** * The port for this API service. * @returns {number} The default port for this service. diff --git a/src/v1/schema_service_client.ts b/src/v1/schema_service_client.ts index 3e86492ea..c320157fd 100644 --- a/src/v1/schema_service_client.ts +++ b/src/v1/schema_service_client.ts @@ -31,6 +31,7 @@ import type { import {Transform} from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); + /** * Client JSON configuration object, loaded from * `src/v1/schema_service_client_config.json`. @@ -52,6 +53,8 @@ export class SchemaServiceClient { private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; private _defaults: {[method: string]: gax.CallSettings}; + private _universeDomain: string; + private _servicePath: string; auth: gax.GoogleAuth; descriptors: Descriptors = { page: {}, @@ -110,8 +113,20 @@ export class SchemaServiceClient { ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SchemaServiceClient; + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.' + ); + } + this._universeDomain = + opts?.universeDomain ?? opts?.universe_domain ?? 'googleapis.com'; + this._servicePath = 'pubsub.' + this._universeDomain; const servicePath = - opts?.servicePath || opts?.apiEndpoint || staticMembers.servicePath; + opts?.servicePath || opts?.apiEndpoint || this._servicePath; this._providedCustomServicePath = !!( opts?.servicePath || opts?.apiEndpoint ); @@ -126,7 +141,7 @@ export class SchemaServiceClient { opts.numericEnums = true; // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. - if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { + if (servicePath !== this._servicePath && !('scopes' in opts)) { opts['scopes'] = staticMembers.scopes; } @@ -151,10 +166,10 @@ export class SchemaServiceClient { this.auth.useJWTAccessWithScope = true; // Set defaultServicePath on the auth object. - this.auth.defaultServicePath = staticMembers.servicePath; + this.auth.defaultServicePath = this._servicePath; // Set the default scopes in auth client if needed. - if (servicePath === staticMembers.servicePath) { + if (servicePath === this._servicePath) { this.auth.defaultScopes = staticMembers.scopes; } this.iamClient = new this._gaxModule.IamClient(this._gaxGrpc, opts); @@ -306,21 +321,61 @@ export class SchemaServiceClient { /** * The DNS address for this API service. + * @deprecated * @returns {string} The DNS address for this service. */ static get servicePath() { + if ( + typeof process !== undefined && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning' + ); + } return 'pubsub.googleapis.com'; } /** - * The DNS address for this API service - same as servicePath(), + * The DNS address for this API service - same as servicePath, * exists for compatibility reasons. + * @deprecated * @returns {string} The DNS address for this service. */ static get apiEndpoint() { + if ( + typeof process !== undefined && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning' + ); + } return 'pubsub.googleapis.com'; } + /** + * The DNS address for this API service. + * @returns {string} The DNS address for this service. + */ + get servicePath() { + return this._servicePath; + } + + /** + * The DNS address for this API service - same as servicePath(). + * @returns {string} The DNS address for this service. + */ + get apiEndpoint() { + return this._servicePath; + } + + get universeDomain() { + return this._universeDomain; + } + /** * The port for this API service. * @returns {number} The default port for this service. diff --git a/src/v1/subscriber_client.ts b/src/v1/subscriber_client.ts index aab6b661a..a2b3f303a 100644 --- a/src/v1/subscriber_client.ts +++ b/src/v1/subscriber_client.ts @@ -31,6 +31,7 @@ import type { import {Transform, PassThrough} from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); + /** * Client JSON configuration object, loaded from * `src/v1/subscriber_client_config.json`. @@ -54,6 +55,8 @@ export class SubscriberClient { private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; private _defaults: {[method: string]: gax.CallSettings}; + private _universeDomain: string; + private _servicePath: string; auth: gax.GoogleAuth; descriptors: Descriptors = { page: {}, @@ -112,8 +115,20 @@ export class SubscriberClient { ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SubscriberClient; + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.' + ); + } + this._universeDomain = + opts?.universeDomain ?? opts?.universe_domain ?? 'googleapis.com'; + this._servicePath = 'pubsub.' + this._universeDomain; const servicePath = - opts?.servicePath || opts?.apiEndpoint || staticMembers.servicePath; + opts?.servicePath || opts?.apiEndpoint || this._servicePath; this._providedCustomServicePath = !!( opts?.servicePath || opts?.apiEndpoint ); @@ -128,7 +143,7 @@ export class SubscriberClient { opts.numericEnums = true; // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. - if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { + if (servicePath !== this._servicePath && !('scopes' in opts)) { opts['scopes'] = staticMembers.scopes; } @@ -153,10 +168,10 @@ export class SubscriberClient { this.auth.useJWTAccessWithScope = true; // Set defaultServicePath on the auth object. - this.auth.defaultServicePath = staticMembers.servicePath; + this.auth.defaultServicePath = this._servicePath; // Set the default scopes in auth client if needed. - if (servicePath === staticMembers.servicePath) { + if (servicePath === this._servicePath) { this.auth.defaultScopes = staticMembers.scopes; } this.iamClient = new this._gaxModule.IamClient(this._gaxGrpc, opts); @@ -222,7 +237,7 @@ export class SubscriberClient { streamingPull: new this._gaxModule.StreamDescriptor( this._gaxModule.StreamType.BIDI_STREAMING, !!opts.fallback, - /* gaxStreamingRetries: */ true + /* gaxStreamingRetries: */ false ), }; @@ -339,21 +354,61 @@ export class SubscriberClient { /** * The DNS address for this API service. + * @deprecated * @returns {string} The DNS address for this service. */ static get servicePath() { + if ( + typeof process !== undefined && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning' + ); + } return 'pubsub.googleapis.com'; } /** - * The DNS address for this API service - same as servicePath(), + * The DNS address for this API service - same as servicePath, * exists for compatibility reasons. + * @deprecated * @returns {string} The DNS address for this service. */ static get apiEndpoint() { + if ( + typeof process !== undefined && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning' + ); + } return 'pubsub.googleapis.com'; } + /** + * The DNS address for this API service. + * @returns {string} The DNS address for this service. + */ + get servicePath() { + return this._servicePath; + } + + /** + * The DNS address for this API service - same as servicePath(). + * @returns {string} The DNS address for this service. + */ + get apiEndpoint() { + return this._servicePath; + } + + get universeDomain() { + return this._universeDomain; + } + /** * The port for this API service. * @returns {number} The default port for this service. diff --git a/test/gapic_publisher_v1.ts b/test/gapic_publisher_v1.ts index b88c44333..6c2e6ae6a 100644 --- a/test/gapic_publisher_v1.ts +++ b/test/gapic_publisher_v1.ts @@ -130,13 +130,65 @@ function stubAsyncIterationCall( describe('v1.PublisherClient', () => { describe('Common methods', () => { it('has servicePath', () => { - const servicePath = publisherModule.v1.PublisherClient.servicePath; - assert(servicePath); + const client = new publisherModule.v1.PublisherClient(); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.googleapis.com'); }); it('has apiEndpoint', () => { - const apiEndpoint = publisherModule.v1.PublisherClient.apiEndpoint; - assert(apiEndpoint); + const client = new publisherModule.v1.PublisherClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'pubsub.googleapis.com'); + }); + + it('has universeDomain', () => { + const client = new publisherModule.v1.PublisherClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process !== 'undefined' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = publisherModule.v1.PublisherClient.servicePath; + assert.strictEqual(servicePath, 'pubsub.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = publisherModule.v1.PublisherClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'pubsub.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets servicePath according to universe domain camelCase', () => { + const client = new publisherModule.v1.PublisherClient({ + universeDomain: 'example.com', + }); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.example.com'); + }); + + it('sets servicePath according to universe domain snakeCase', () => { + const client = new publisherModule.v1.PublisherClient({ + universe_domain: 'example.com', + }); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.example.com'); + }); + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new publisherModule.v1.PublisherClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', + }); + }); }); it('has port', () => { diff --git a/test/gapic_schema_service_v1.ts b/test/gapic_schema_service_v1.ts index 5c87dc5b7..e7235378c 100644 --- a/test/gapic_schema_service_v1.ts +++ b/test/gapic_schema_service_v1.ts @@ -130,15 +130,67 @@ function stubAsyncIterationCall( describe('v1.SchemaServiceClient', () => { describe('Common methods', () => { it('has servicePath', () => { - const servicePath = - schemaserviceModule.v1.SchemaServiceClient.servicePath; - assert(servicePath); + const client = new schemaserviceModule.v1.SchemaServiceClient(); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.googleapis.com'); }); it('has apiEndpoint', () => { - const apiEndpoint = - schemaserviceModule.v1.SchemaServiceClient.apiEndpoint; - assert(apiEndpoint); + const client = new schemaserviceModule.v1.SchemaServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'pubsub.googleapis.com'); + }); + + it('has universeDomain', () => { + const client = new schemaserviceModule.v1.SchemaServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process !== 'undefined' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + schemaserviceModule.v1.SchemaServiceClient.servicePath; + assert.strictEqual(servicePath, 'pubsub.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + schemaserviceModule.v1.SchemaServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'pubsub.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets servicePath according to universe domain camelCase', () => { + const client = new schemaserviceModule.v1.SchemaServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.example.com'); + }); + + it('sets servicePath according to universe domain snakeCase', () => { + const client = new schemaserviceModule.v1.SchemaServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.example.com'); + }); + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new schemaserviceModule.v1.SchemaServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', + }); + }); }); it('has port', () => { diff --git a/test/gapic_subscriber_v1.ts b/test/gapic_subscriber_v1.ts index ea552b567..8bbb15095 100644 --- a/test/gapic_subscriber_v1.ts +++ b/test/gapic_subscriber_v1.ts @@ -144,13 +144,65 @@ function stubAsyncIterationCall( describe('v1.SubscriberClient', () => { describe('Common methods', () => { it('has servicePath', () => { - const servicePath = subscriberModule.v1.SubscriberClient.servicePath; - assert(servicePath); + const client = new subscriberModule.v1.SubscriberClient(); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.googleapis.com'); }); it('has apiEndpoint', () => { - const apiEndpoint = subscriberModule.v1.SubscriberClient.apiEndpoint; - assert(apiEndpoint); + const client = new subscriberModule.v1.SubscriberClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'pubsub.googleapis.com'); + }); + + it('has universeDomain', () => { + const client = new subscriberModule.v1.SubscriberClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process !== 'undefined' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = subscriberModule.v1.SubscriberClient.servicePath; + assert.strictEqual(servicePath, 'pubsub.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = subscriberModule.v1.SubscriberClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'pubsub.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets servicePath according to universe domain camelCase', () => { + const client = new subscriberModule.v1.SubscriberClient({ + universeDomain: 'example.com', + }); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.example.com'); + }); + + it('sets servicePath according to universe domain snakeCase', () => { + const client = new subscriberModule.v1.SubscriberClient({ + universe_domain: 'example.com', + }); + const servicePath = client.servicePath; + assert.strictEqual(servicePath, 'pubsub.example.com'); + }); + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new subscriberModule.v1.SubscriberClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', + }); + }); }); it('has port', () => { From 144585699595b97f1a4cc28551e45fe23305f480 Mon Sep 17 00:00:00 2001 From: Megan Potter <57276408+feywind@users.noreply.github.com> Date: Mon, 5 Feb 2024 16:15:07 -0500 Subject: [PATCH 3/4] fix: updated google-gax required for TPC (#1882) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0df8e7ed0..569587805 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "arrify": "^2.0.0", "extend": "^3.0.2", "google-auth-library": "^9.0.0", - "google-gax": "^4.0.4", + "google-gax": "^4.3.0", "heap-js": "^2.2.0", "is-stream-ended": "^0.1.4", "lodash.snakecase": "^4.1.1", From b1069e4c05541f80b29812b391cc81b1ef0bd745 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 17:15:01 -0500 Subject: [PATCH 4/4] chore(main): release 4.3.0 (#1881) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- samples/package.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c24b8ff13..1dbe83a7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ [1]: https://www.npmjs.com/package/@google-cloud/pubsub?activeTab=versions +## [4.3.0](https://github.com/googleapis/nodejs-pubsub/compare/v4.2.0...v4.3.0) (2024-02-05) + + +### Features + +* Trusted Private Cloud support, use the universeDomain parameter ([#1878](https://github.com/googleapis/nodejs-pubsub/issues/1878)) ([d89fd1d](https://github.com/googleapis/nodejs-pubsub/commit/d89fd1d90b352f0cc7a50a72c5fec4aab6660f8f)) + + +### Bug Fixes + +* Updated google-gax required for TPC ([#1882](https://github.com/googleapis/nodejs-pubsub/issues/1882)) ([1445856](https://github.com/googleapis/nodejs-pubsub/commit/144585699595b97f1a4cc28551e45fe23305f480)) + ## [4.2.0](https://github.com/googleapis/nodejs-pubsub/compare/v4.1.1...v4.2.0) (2024-02-01) diff --git a/package.json b/package.json index 569587805..884fa4a9d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/pubsub", "description": "Cloud Pub/Sub Client Library for Node.js", - "version": "4.2.0", + "version": "4.3.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { diff --git a/samples/package.json b/samples/package.json index 778c2783b..613c78741 100644 --- a/samples/package.json +++ b/samples/package.json @@ -21,7 +21,7 @@ "precompile": "npm run clean" }, "dependencies": { - "@google-cloud/pubsub": "^4.2.0", + "@google-cloud/pubsub": "^4.3.0", "@opentelemetry/api": "^1.6.0", "@opentelemetry/tracing": "^0.24.0", "avro-js": "^1.11.3",