diff --git a/.jsdoc.js b/.jsdoc.js index 9d0b3ec37..4e00e5b8f 100644 --- a/.jsdoc.js +++ b/.jsdoc.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -40,7 +40,7 @@ module.exports = { includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2024 Google LLC', + copyright: 'Copyright 2025 Google LLC', includeDate: false, sourceFiles: false, systemName: '@google-cloud/datastore', diff --git a/package.json b/package.json index 7db79dade..a90212e2d 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,9 @@ "async-mutex": "^0.5.0", "concat-stream": "^2.0.0", "extend": "^3.0.2", - "google-gax": "^4.0.5", + "google-gax": "^5.0.1-rc.0", "is": "^3.3.0", + "protobufjs": "^6.0.0", "split-array-stream": "^2.0.0", "stream-events": "^1.0.5" }, diff --git a/protos/google/datastore/admin/v1/datastore_admin.proto b/protos/google/datastore/admin/v1/datastore_admin.proto index a8b3f9986..50c4d0cc8 100644 --- a/protos/google/datastore/admin/v1/datastore_admin.proto +++ b/protos/google/datastore/admin/v1/datastore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/admin/v1/index.proto b/protos/google/datastore/admin/v1/index.proto index 6a1d12227..c90766056 100644 --- a/protos/google/datastore/admin/v1/index.proto +++ b/protos/google/datastore/admin/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/admin/v1/migration.proto b/protos/google/datastore/admin/v1/migration.proto index 813de87dd..67ac1ab71 100644 --- a/protos/google/datastore/admin/v1/migration.proto +++ b/protos/google/datastore/admin/v1/migration.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/v1/aggregation_result.proto b/protos/google/datastore/v1/aggregation_result.proto index e31052c0d..cd51f660c 100644 --- a/protos/google/datastore/v1/aggregation_result.proto +++ b/protos/google/datastore/v1/aggregation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/v1/datastore.proto b/protos/google/datastore/v1/datastore.proto index c0683b9ba..c0a281b18 100644 --- a/protos/google/datastore/v1/datastore.proto +++ b/protos/google/datastore/v1/datastore.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/v1/entity.proto b/protos/google/datastore/v1/entity.proto index d9742d68d..fdf0a32cb 100644 --- a/protos/google/datastore/v1/entity.proto +++ b/protos/google/datastore/v1/entity.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/v1/query.proto b/protos/google/datastore/v1/query.proto index 3c2e8ae66..2e36f958b 100644 --- a/protos/google/datastore/v1/query.proto +++ b/protos/google/datastore/v1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/datastore/v1/query_profile.proto b/protos/google/datastore/v1/query_profile.proto index e00a28e3c..71a4eb599 100644 --- a/protos/google/datastore/v1/query_profile.proto +++ b/protos/google/datastore/v1/query_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/protos.js b/protos/protos.js index 88799e49a..a71f16e5f 100644 --- a/protos/protos.js +++ b/protos/protos.js @@ -430,12 +430,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CommonMetadata.decode = function decode(reader, length) { + CommonMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.CommonMetadata(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); @@ -846,12 +848,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Progress.decode = function decode(reader, length) { + Progress.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.Progress(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.workCompleted = reader.int64(); @@ -1125,12 +1129,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExportEntitiesRequest.decode = function decode(reader, length) { + ExportEntitiesRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ExportEntitiesRequest(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -1439,12 +1445,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ImportEntitiesRequest.decode = function decode(reader, length) { + ImportEntitiesRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ImportEntitiesRequest(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -1718,12 +1726,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExportEntitiesResponse.decode = function decode(reader, length) { + ExportEntitiesResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ExportEntitiesResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.outputUrl = reader.string(); @@ -1965,12 +1975,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExportEntitiesMetadata.decode = function decode(reader, length) { + ExportEntitiesMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ExportEntitiesMetadata(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.datastore.admin.v1.CommonMetadata.decode(reader, reader.uint32()); @@ -2281,12 +2293,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ImportEntitiesMetadata.decode = function decode(reader, length) { + ImportEntitiesMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ImportEntitiesMetadata(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.datastore.admin.v1.CommonMetadata.decode(reader, reader.uint32()); @@ -2568,12 +2582,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EntityFilter.decode = function decode(reader, length) { + EntityFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.EntityFilter(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.kinds && message.kinds.length)) @@ -2823,12 +2839,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateIndexRequest.decode = function decode(reader, length) { + CreateIndexRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.CreateIndexRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -3055,12 +3073,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteIndexRequest.decode = function decode(reader, length) { + DeleteIndexRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.DeleteIndexRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -3282,12 +3302,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIndexRequest.decode = function decode(reader, length) { + GetIndexRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.GetIndexRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -3531,12 +3553,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListIndexesRequest.decode = function decode(reader, length) { + ListIndexesRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ListIndexesRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -3784,12 +3808,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListIndexesResponse.decode = function decode(reader, length) { + ListIndexesResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.ListIndexesResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.indexes && message.indexes.length)) @@ -4041,12 +4067,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IndexOperationMetadata.decode = function decode(reader, length) { + IndexOperationMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.IndexOperationMetadata(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.datastore.admin.v1.CommonMetadata.decode(reader, reader.uint32()); @@ -4290,12 +4318,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatastoreFirestoreMigrationMetadata.decode = function decode(reader, length) { + DatastoreFirestoreMigrationMetadata.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.DatastoreFirestoreMigrationMetadata(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.migrationState = reader.int32(); @@ -4661,12 +4691,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Index.decode = function decode(reader, length) { + Index.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.Index(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.projectId = reader.string(); @@ -5043,12 +5075,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IndexedProperty.decode = function decode(reader, length) { + IndexedProperty.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.Index.IndexedProperty(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -5306,12 +5340,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MigrationStateEvent.decode = function decode(reader, length) { + MigrationStateEvent.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.MigrationStateEvent(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.state = reader.int32(); @@ -5574,12 +5610,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MigrationProgressEvent.decode = function decode(reader, length) { + MigrationProgressEvent.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.MigrationProgressEvent(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.step = reader.int32(); @@ -5888,12 +5926,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PrepareStepDetails.decode = function decode(reader, length) { + PrepareStepDetails.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.MigrationProgressEvent.PrepareStepDetails(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.concurrencyMode = reader.int32(); @@ -6120,12 +6160,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RedirectWritesStepDetails.decode = function decode(reader, length) { + RedirectWritesStepDetails.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.admin.v1.MigrationProgressEvent.RedirectWritesStepDetails(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.concurrencyMode = reader.int32(); @@ -6418,12 +6460,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AggregationResult.decode = function decode(reader, length) { + AggregationResult.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationResult(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { if (message.aggregateProperties === $util.emptyObject) @@ -6683,12 +6727,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AggregationResultBatch.decode = function decode(reader, length) { + AggregationResultBatch.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationResultBatch(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.aggregationResults && message.aggregationResults.length)) @@ -6992,12 +7038,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PartitionId.decode = function decode(reader, length) { + PartitionId.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PartitionId(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { message.projectId = reader.string(); @@ -7233,12 +7281,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Key.decode = function decode(reader, length) { + Key.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Key(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.partitionId = $root.google.datastore.v1.PartitionId.decode(reader, reader.uint32()); @@ -7506,12 +7556,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PathElement.decode = function decode(reader, length) { + PathElement.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Key.PathElement(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.kind = reader.string(); @@ -7759,12 +7811,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ArrayValue.decode = function decode(reader, length) { + ArrayValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ArrayValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.values && message.values.length)) @@ -8127,12 +8181,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Value.decode = function decode(reader, length) { + Value.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Value(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 11: { message.nullValue = reader.int32(); @@ -8612,12 +8668,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Entity.decode = function decode(reader, length) { + Entity.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Entity(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.key = $root.google.datastore.v1.Key.decode(reader, reader.uint32()); @@ -8915,12 +8973,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EntityResult.decode = function decode(reader, length) { + EntityResult.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.EntityResult(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.entity = $root.google.datastore.v1.Entity.decode(reader, reader.uint32()); @@ -9330,12 +9390,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Query.decode = function decode(reader, length) { + Query.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Query(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { if (!(message.projection && message.projection.length)) @@ -9780,12 +9842,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AggregationQuery.decode = function decode(reader, length) { + AggregationQuery.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationQuery(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.nestedQuery = $root.google.datastore.v1.Query.decode(reader, reader.uint32()); @@ -10069,12 +10133,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Aggregation.decode = function decode(reader, length) { + Aggregation.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationQuery.Aggregation(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.count = $root.google.datastore.v1.AggregationQuery.Aggregation.Count.decode(reader, reader.uint32()); @@ -10340,12 +10406,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Count.decode = function decode(reader, length) { + Count.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationQuery.Aggregation.Count(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.upTo = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); @@ -10548,12 +10616,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Sum.decode = function decode(reader, length) { + Sum.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationQuery.Aggregation.Sum(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.property = $root.google.datastore.v1.PropertyReference.decode(reader, reader.uint32()); @@ -10756,12 +10826,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Avg.decode = function decode(reader, length) { + Avg.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AggregationQuery.Aggregation.Avg(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.property = $root.google.datastore.v1.PropertyReference.decode(reader, reader.uint32()); @@ -10970,12 +11042,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - KindExpression.decode = function decode(reader, length) { + KindExpression.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.KindExpression(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -11173,12 +11247,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyReference.decode = function decode(reader, length) { + PropertyReference.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PropertyReference(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { message.name = reader.string(); @@ -11376,12 +11452,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Projection.decode = function decode(reader, length) { + Projection.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Projection(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.property = $root.google.datastore.v1.PropertyReference.decode(reader, reader.uint32()); @@ -11595,12 +11673,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyOrder.decode = function decode(reader, length) { + PropertyOrder.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PropertyOrder(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.property = $root.google.datastore.v1.PropertyReference.decode(reader, reader.uint32()); @@ -11881,12 +11961,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Filter.decode = function decode(reader, length) { + Filter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Filter(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.compositeFilter = $root.google.datastore.v1.CompositeFilter.decode(reader, reader.uint32()); @@ -12131,12 +12213,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CompositeFilter.decode = function decode(reader, length) { + CompositeFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.CompositeFilter(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.op = reader.int32(); @@ -12428,12 +12512,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyFilter.decode = function decode(reader, length) { + PropertyFilter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PropertyFilter(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.property = $root.google.datastore.v1.PropertyReference.decode(reader, reader.uint32()); @@ -12810,12 +12896,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FindNearest.decode = function decode(reader, length) { + FindNearest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.FindNearest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.vectorProperty = $root.google.datastore.v1.PropertyReference.decode(reader, reader.uint32()); @@ -13180,12 +13268,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GqlQuery.decode = function decode(reader, length) { + GqlQuery.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.GqlQuery(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.queryString = reader.string(); @@ -13504,12 +13594,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GqlQueryParameter.decode = function decode(reader, length) { + GqlQueryParameter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.GqlQueryParameter(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { message.value = $root.google.datastore.v1.Value.decode(reader, reader.uint32()); @@ -13817,12 +13909,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QueryResultBatch.decode = function decode(reader, length) { + QueryResultBatch.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.QueryResultBatch(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 6: { message.skippedResults = reader.int32(); @@ -14590,12 +14684,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LookupRequest.decode = function decode(reader, length) { + LookupRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.LookupRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -14922,12 +15018,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LookupResponse.decode = function decode(reader, length) { + LookupResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.LookupResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.found && message.found.length)) @@ -15338,12 +15436,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunQueryRequest.decode = function decode(reader, length) { + RunQueryRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.RunQueryRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -15702,12 +15802,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunQueryResponse.decode = function decode(reader, length) { + RunQueryResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.RunQueryResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.batch = $root.google.datastore.v1.QueryResultBatch.decode(reader, reader.uint32()); @@ -16046,12 +16148,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunAggregationQueryRequest.decode = function decode(reader, length) { + RunAggregationQueryRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.RunAggregationQueryRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -16393,12 +16497,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunAggregationQueryResponse.decode = function decode(reader, length) { + RunAggregationQueryResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.RunAggregationQueryResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.batch = $root.google.datastore.v1.AggregationResultBatch.decode(reader, reader.uint32()); @@ -16679,12 +16785,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BeginTransactionRequest.decode = function decode(reader, length) { + BeginTransactionRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.BeginTransactionRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -16912,12 +17020,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BeginTransactionResponse.decode = function decode(reader, length) { + BeginTransactionResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.BeginTransactionResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.transaction = reader.bytes(); @@ -17146,12 +17256,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RollbackRequest.decode = function decode(reader, length) { + RollbackRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.RollbackRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -17372,12 +17484,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RollbackResponse.decode = function decode(reader, length) { + RollbackResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.RollbackResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { default: reader.skipType(tag & 7); @@ -17629,12 +17743,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CommitRequest.decode = function decode(reader, length) { + CommitRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.CommitRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -17997,12 +18113,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CommitResponse.decode = function decode(reader, length) { + CommitResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.CommitResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 3: { if (!(message.mutationResults && message.mutationResults.length)) @@ -18274,12 +18392,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AllocateIdsRequest.decode = function decode(reader, length) { + AllocateIdsRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AllocateIdsRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -18524,12 +18644,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AllocateIdsResponse.decode = function decode(reader, length) { + AllocateIdsResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.AllocateIdsResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.keys && message.keys.length)) @@ -18770,12 +18892,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReserveIdsRequest.decode = function decode(reader, length) { + ReserveIdsRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ReserveIdsRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 8: { message.projectId = reader.string(); @@ -19007,12 +19131,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReserveIdsResponse.decode = function decode(reader, length) { + ReserveIdsResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ReserveIdsResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { default: reader.skipType(tag & 7); @@ -19308,12 +19434,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Mutation.decode = function decode(reader, length) { + Mutation.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.Mutation(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 4: { message.insert = $root.google.datastore.v1.Entity.decode(reader, reader.uint32()); @@ -19826,12 +19954,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyTransform.decode = function decode(reader, length) { + PropertyTransform.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PropertyTransform(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.property = reader.string(); @@ -20256,12 +20386,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MutationResult.decode = function decode(reader, length) { + MutationResult.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.MutationResult(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 3: { message.key = $root.google.datastore.v1.Key.decode(reader, reader.uint32()); @@ -20571,12 +20703,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyMask.decode = function decode(reader, length) { + PropertyMask.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PropertyMask(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.paths && message.paths.length)) @@ -20835,12 +20969,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadOptions.decode = function decode(reader, length) { + ReadOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ReadOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.readConsistency = reader.int32(); @@ -21176,12 +21312,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TransactionOptions.decode = function decode(reader, length) { + TransactionOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.TransactionOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.readWrite = $root.google.datastore.v1.TransactionOptions.ReadWrite.decode(reader, reader.uint32()); @@ -21410,12 +21548,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadWrite.decode = function decode(reader, length) { + ReadWrite.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.TransactionOptions.ReadWrite(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.previousTransaction = reader.bytes(); @@ -21622,12 +21762,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadOnly.decode = function decode(reader, length) { + ReadOnly.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.TransactionOptions.ReadOnly(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); @@ -21833,12 +21975,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExplainOptions.decode = function decode(reader, length) { + ExplainOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ExplainOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.analyze = reader.bool(); @@ -22047,12 +22191,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExplainMetrics.decode = function decode(reader, length) { + ExplainMetrics.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ExplainMetrics(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.planSummary = $root.google.datastore.v1.PlanSummary.decode(reader, reader.uint32()); @@ -22275,12 +22421,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PlanSummary.decode = function decode(reader, length) { + PlanSummary.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.PlanSummary(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.indexesUsed && message.indexesUsed.length)) @@ -22530,12 +22678,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExecutionStats.decode = function decode(reader, length) { + ExecutionStats.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.datastore.v1.ExecutionStats(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.resultsReturned = reader.int64(); @@ -22836,12 +22986,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Http.decode = function decode(reader, length) { + Http.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Http(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.rules && message.rules.length)) @@ -23186,12 +23338,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - HttpRule.decode = function decode(reader, length) { + HttpRule.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.HttpRule(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.selector = reader.string(); @@ -23570,12 +23724,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomHttpPattern.decode = function decode(reader, length) { + CustomHttpPattern.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CustomHttpPattern(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.kind = reader.string(); @@ -23802,12 +23958,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CommonLanguageSettings.decode = function decode(reader, length) { + CommonLanguageSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CommonLanguageSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.referenceDocsUri = reader.string(); @@ -24171,12 +24329,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClientLibrarySettings.decode = function decode(reader, length) { + ClientLibrarySettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ClientLibrarySettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.version = reader.string(); @@ -24700,12 +24860,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Publishing.decode = function decode(reader, length) { + Publishing.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Publishing(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { if (!(message.methodSettings && message.methodSettings.length)) @@ -25151,12 +25313,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - JavaSettings.decode = function decode(reader, length) { + JavaSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.JavaSettings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.libraryPackage = reader.string(); @@ -25418,12 +25582,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CppSettings.decode = function decode(reader, length) { + CppSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CppSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -25626,12 +25792,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PhpSettings.decode = function decode(reader, length) { + PhpSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.PhpSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -25834,12 +26002,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PythonSettings.decode = function decode(reader, length) { + PythonSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.PythonSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -26042,12 +26212,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NodeSettings.decode = function decode(reader, length) { + NodeSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.NodeSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -26315,12 +26487,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DotnetSettings.decode = function decode(reader, length) { + DotnetSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.DotnetSettings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -26694,12 +26868,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RubySettings.decode = function decode(reader, length) { + RubySettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.RubySettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -26902,12 +27078,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GoSettings.decode = function decode(reader, length) { + GoSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.GoSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); @@ -27134,12 +27312,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodSettings.decode = function decode(reader, length) { + MethodSettings.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.MethodSettings(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.selector = reader.string(); @@ -27412,12 +27592,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunning.decode = function decode(reader, length) { + LongRunning.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.MethodSettings.LongRunning(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.initialPollDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); @@ -27768,12 +27950,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RoutingRule.decode = function decode(reader, length) { + RoutingRule.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.RoutingRule(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { if (!(message.routingParameters && message.routingParameters.length)) @@ -28001,12 +28185,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RoutingParameter.decode = function decode(reader, length) { + RoutingParameter.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.RoutingParameter(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.field = reader.string(); @@ -28231,12 +28417,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FileDescriptorSet.decode = function decode(reader, length) { + FileDescriptorSet.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorSet(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.file && message.file.length)) @@ -28631,12 +28819,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FileDescriptorProto.decode = function decode(reader, length) { + FileDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -29298,12 +29488,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DescriptorProto.decode = function decode(reader, length) { + DescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -29783,12 +29975,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExtensionRange.decode = function decode(reader, length) { + ExtensionRange.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.start = reader.int32(); @@ -30027,12 +30221,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReservedRange.decode = function decode(reader, length) { + ReservedRange.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ReservedRange(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.start = reader.int32(); @@ -30283,12 +30479,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExtensionRangeOptions.decode = function decode(reader, length) { + ExtensionRangeOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) @@ -30628,12 +30826,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Declaration.decode = function decode(reader, length) { + Declaration.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions.Declaration(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.number = reader.int32(); @@ -31007,12 +31207,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FieldDescriptorProto.decode = function decode(reader, length) { + FieldDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -31532,12 +31734,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OneofDescriptorProto.decode = function decode(reader, length) { + OneofDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -31803,12 +32007,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumDescriptorProto.decode = function decode(reader, length) { + EnumDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -32122,12 +32328,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumReservedRange.decode = function decode(reader, length) { + EnumReservedRange.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.start = reader.int32(); @@ -32363,12 +32571,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumValueDescriptorProto.decode = function decode(reader, length) { + EnumValueDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -32620,12 +32830,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ServiceDescriptorProto.decode = function decode(reader, length) { + ServiceDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -32928,12 +33140,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodDescriptorProto.decode = function decode(reader, length) { + MethodDescriptorProto.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -33419,12 +33633,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FileOptions.decode = function decode(reader, length) { + FileOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.javaPackage = reader.string(); @@ -33996,12 +34212,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MessageOptions.decode = function decode(reader, length) { + MessageOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MessageOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.messageSetWireFormat = reader.bool(); @@ -34448,12 +34666,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FieldOptions.decode = function decode(reader, length) { + FieldOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.ctype = reader.int32(); @@ -35162,12 +35382,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EditionDefault.decode = function decode(reader, length) { + EditionDefault.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions.EditionDefault(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 3: { message.edition = reader.int32(); @@ -35458,12 +35680,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OneofOptions.decode = function decode(reader, length) { + OneofOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); @@ -35744,12 +35968,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumOptions.decode = function decode(reader, length) { + EnumOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { message.allowAlias = reader.bool(); @@ -36056,12 +36282,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumValueOptions.decode = function decode(reader, length) { + EnumValueOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.deprecated = reader.bool(); @@ -36378,12 +36606,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ServiceOptions.decode = function decode(reader, length) { + ServiceOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 34: { message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); @@ -36748,12 +36978,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodOptions.decode = function decode(reader, length) { + MethodOptions.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodOptions(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 33: { message.deprecated = reader.bool(); @@ -37199,12 +37431,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UninterpretedOption.decode = function decode(reader, length) { + UninterpretedOption.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 2: { if (!(message.name && message.name.length)) @@ -37538,12 +37772,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NamePart.decode = function decode(reader, length) { + NamePart.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption.NamePart(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.namePart = reader.string(); @@ -37814,12 +38050,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeatureSet.decode = function decode(reader, length) { + FeatureSet.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSet(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.fieldPresence = reader.int32(); @@ -38349,12 +38587,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeatureSetDefaults.decode = function decode(reader, length) { + FeatureSetDefaults.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSetDefaults(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.defaults && message.defaults.length)) @@ -38733,12 +38973,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeatureSetEditionDefault.decode = function decode(reader, length) { + FeatureSetEditionDefault.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 3: { message.edition = reader.int32(); @@ -39023,12 +39265,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SourceCodeInfo.decode = function decode(reader, length) { + SourceCodeInfo.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.location && message.location.length)) @@ -39298,12 +39542,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Location.decode = function decode(reader, length) { + Location.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo.Location(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.path && message.path.length)) @@ -39609,12 +39855,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GeneratedCodeInfo.decode = function decode(reader, length) { + GeneratedCodeInfo.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.annotation && message.annotation.length)) @@ -39877,12 +40125,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Annotation.decode = function decode(reader, length) { + Annotation.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.path && message.path.length)) @@ -40203,12 +40453,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Duration.decode = function decode(reader, length) { + Duration.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Duration(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.seconds = reader.int64(); @@ -40444,12 +40696,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Any.decode = function decode(reader, length) { + Any.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Any(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.type_url = reader.string(); @@ -40658,12 +40912,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Empty.decode = function decode(reader, length) { + Empty.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Empty(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { default: reader.skipType(tag & 7); @@ -40855,12 +41111,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Timestamp.decode = function decode(reader, length) { + Timestamp.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.seconds = reader.int64(); @@ -41089,12 +41347,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Struct.decode = function decode(reader, length) { + Struct.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Struct(), key, value; while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (message.fields === $util.emptyObject) @@ -41399,12 +41659,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Value.decode = function decode(reader, length) { + Value.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Value(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.nullValue = reader.int32(); @@ -41736,12 +41998,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListValue.decode = function decode(reader, length) { + ListValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ListValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.values && message.values.length)) @@ -41958,12 +42222,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DoubleValue.decode = function decode(reader, length) { + DoubleValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DoubleValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.double(); @@ -42161,12 +42427,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FloatValue.decode = function decode(reader, length) { + FloatValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FloatValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.float(); @@ -42364,12 +42632,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Int64Value.decode = function decode(reader, length) { + Int64Value.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Int64Value(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.int64(); @@ -42581,12 +42851,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UInt64Value.decode = function decode(reader, length) { + UInt64Value.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UInt64Value(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.uint64(); @@ -42798,12 +43070,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Int32Value.decode = function decode(reader, length) { + Int32Value.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Int32Value(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.int32(); @@ -43001,12 +43275,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UInt32Value.decode = function decode(reader, length) { + UInt32Value.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UInt32Value(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.uint32(); @@ -43204,12 +43480,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BoolValue.decode = function decode(reader, length) { + BoolValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.BoolValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.bool(); @@ -43407,12 +43685,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StringValue.decode = function decode(reader, length) { + StringValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.StringValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.string(); @@ -43610,12 +43890,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BytesValue.decode = function decode(reader, length) { + BytesValue.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.BytesValue(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.value = reader.bytes(); @@ -44092,12 +44374,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Operation.decode = function decode(reader, length) { + Operation.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.Operation(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -44372,12 +44656,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetOperationRequest.decode = function decode(reader, length) { + GetOperationRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.GetOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -44608,12 +44894,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsRequest.decode = function decode(reader, length) { + ListOperationsRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 4: { message.name = reader.string(); @@ -44861,12 +45149,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsResponse.decode = function decode(reader, length) { + ListOperationsResponse.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { if (!(message.operations && message.operations.length)) @@ -45096,12 +45386,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CancelOperationRequest.decode = function decode(reader, length) { + CancelOperationRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.CancelOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -45299,12 +45591,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteOperationRequest.decode = function decode(reader, length) { + DeleteOperationRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.DeleteOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -45513,12 +45807,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitOperationRequest.decode = function decode(reader, length) { + WaitOperationRequest.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.WaitOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.name = reader.string(); @@ -45745,12 +46041,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationInfo.decode = function decode(reader, length) { + OperationInfo.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.OperationInfo(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.responseType = reader.string(); @@ -45997,12 +46295,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Status.decode = function decode(reader, length) { + Status.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.rpc.Status(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.code = reader.int32(); @@ -46268,12 +46568,14 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LatLng.decode = function decode(reader, length) { + LatLng.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.type.LatLng(); while (reader.pos < end) { var tag = reader.uint32(); + if (tag === error) + break; switch (tag >>> 3) { case 1: { message.latitude = reader.double(); diff --git a/protos/protos.json b/protos/protos.json index e60b2d06b..f4728ebd1 100644 --- a/protos/protos.json +++ b/protos/protos.json @@ -1,7 +1,4 @@ { - "options": { - "syntax": "proto3" - }, "nested": { "google": { "nested": { @@ -2629,6 +2626,7 @@ }, "nested": { "FileDescriptorSet": { + "edition": "proto2", "fields": { "file": { "rule": "repeated", @@ -2638,6 +2636,7 @@ } }, "Edition": { + "edition": "proto2", "values": { "EDITION_UNKNOWN": 0, "EDITION_PROTO2": 998, @@ -2653,6 +2652,7 @@ } }, "FileDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -2670,18 +2670,12 @@ "publicDependency": { "rule": "repeated", "type": "int32", - "id": 10, - "options": { - "packed": false - } + "id": 10 }, "weakDependency": { "rule": "repeated", "type": "int32", - "id": 11, - "options": { - "packed": false - } + "id": 11 }, "messageType": { "rule": "repeated", @@ -2722,6 +2716,7 @@ } }, "DescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -2804,6 +2799,7 @@ } }, "ExtensionRangeOptions": { + "edition": "proto2", "fields": { "uninterpretedOption": { "rule": "repeated", @@ -2877,6 +2873,7 @@ } }, "FieldDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -2956,6 +2953,7 @@ } }, "OneofDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -2968,6 +2966,7 @@ } }, "EnumDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -3009,6 +3008,7 @@ } }, "EnumValueDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -3025,6 +3025,7 @@ } }, "ServiceDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -3042,6 +3043,7 @@ } }, "MethodDescriptorProto": { + "edition": "proto2", "fields": { "name": { "type": "string", @@ -3076,6 +3078,7 @@ } }, "FileOptions": { + "edition": "proto2", "fields": { "javaPackage": { "type": "string", @@ -3217,6 +3220,7 @@ } }, "MessageOptions": { + "edition": "proto2", "fields": { "messageSetWireFormat": { "type": "bool", @@ -3290,6 +3294,7 @@ ] }, "FieldOptions": { + "edition": "proto2", "fields": { "ctype": { "type": "CType", @@ -3351,10 +3356,7 @@ "targets": { "rule": "repeated", "type": "OptionTargetType", - "id": 19, - "options": { - "packed": false - } + "id": 19 }, "editionDefaults": { "rule": "repeated", @@ -3438,6 +3440,7 @@ } }, "OneofOptions": { + "edition": "proto2", "fields": { "features": { "type": "FeatureSet", @@ -3457,6 +3460,7 @@ ] }, "EnumOptions": { + "edition": "proto2", "fields": { "allowAlias": { "type": "bool", @@ -3500,6 +3504,7 @@ ] }, "EnumValueOptions": { + "edition": "proto2", "fields": { "deprecated": { "type": "bool", @@ -3533,6 +3538,7 @@ ] }, "ServiceOptions": { + "edition": "proto2", "fields": { "features": { "type": "FeatureSet", @@ -3559,6 +3565,7 @@ ] }, "MethodOptions": { + "edition": "proto2", "fields": { "deprecated": { "type": "bool", @@ -3601,6 +3608,7 @@ } }, "UninterpretedOption": { + "edition": "proto2", "fields": { "name": { "rule": "repeated", @@ -3650,6 +3658,7 @@ } }, "FeatureSet": { + "edition": "proto2", "fields": { "fieldPresence": { "type": "FieldPresence", @@ -3791,6 +3800,7 @@ } }, "FeatureSetDefaults": { + "edition": "proto2", "fields": { "defaults": { "rule": "repeated", @@ -3822,6 +3832,7 @@ } }, "SourceCodeInfo": { + "edition": "proto2", "fields": { "location": { "rule": "repeated", @@ -3835,12 +3846,18 @@ "path": { "rule": "repeated", "type": "int32", - "id": 1 + "id": 1, + "options": { + "packed": true + } }, "span": { "rule": "repeated", "type": "int32", - "id": 2 + "id": 2, + "options": { + "packed": true + } }, "leadingComments": { "type": "string", @@ -3860,6 +3877,7 @@ } }, "GeneratedCodeInfo": { + "edition": "proto2", "fields": { "annotation": { "rule": "repeated", @@ -3873,7 +3891,10 @@ "path": { "rule": "repeated", "type": "int32", - "id": 1 + "id": 1, + "options": { + "packed": true + } }, "sourceFile": { "type": "string", diff --git a/samples/generated/v1/datastore.allocate_ids.js b/samples/generated/v1/datastore.allocate_ids.js index db0090215..e47fb3a80 100644 --- a/samples/generated/v1/datastore.allocate_ids.js +++ b/samples/generated/v1/datastore.allocate_ids.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.begin_transaction.js b/samples/generated/v1/datastore.begin_transaction.js index ffc8ef3c9..048d1ef5e 100644 --- a/samples/generated/v1/datastore.begin_transaction.js +++ b/samples/generated/v1/datastore.begin_transaction.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.commit.js b/samples/generated/v1/datastore.commit.js index 4d0656958..6adbb9960 100644 --- a/samples/generated/v1/datastore.commit.js +++ b/samples/generated/v1/datastore.commit.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.lookup.js b/samples/generated/v1/datastore.lookup.js index 6d15a9048..106058967 100644 --- a/samples/generated/v1/datastore.lookup.js +++ b/samples/generated/v1/datastore.lookup.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.reserve_ids.js b/samples/generated/v1/datastore.reserve_ids.js index 32bb99e2d..d6a5b8559 100644 --- a/samples/generated/v1/datastore.reserve_ids.js +++ b/samples/generated/v1/datastore.reserve_ids.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.rollback.js b/samples/generated/v1/datastore.rollback.js index ddf208875..27757dcc8 100644 --- a/samples/generated/v1/datastore.rollback.js +++ b/samples/generated/v1/datastore.rollback.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.run_aggregation_query.js b/samples/generated/v1/datastore.run_aggregation_query.js index fcc244c18..b5c44b6ef 100644 --- a/samples/generated/v1/datastore.run_aggregation_query.js +++ b/samples/generated/v1/datastore.run_aggregation_query.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore.run_query.js b/samples/generated/v1/datastore.run_query.js index b4c6976b3..70237069d 100644 --- a/samples/generated/v1/datastore.run_query.js +++ b/samples/generated/v1/datastore.run_query.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore_admin.create_index.js b/samples/generated/v1/datastore_admin.create_index.js index 36561b327..a54d726a8 100644 --- a/samples/generated/v1/datastore_admin.create_index.js +++ b/samples/generated/v1/datastore_admin.create_index.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore_admin.delete_index.js b/samples/generated/v1/datastore_admin.delete_index.js index 0c6d2384d..8b74e8d5e 100644 --- a/samples/generated/v1/datastore_admin.delete_index.js +++ b/samples/generated/v1/datastore_admin.delete_index.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore_admin.export_entities.js b/samples/generated/v1/datastore_admin.export_entities.js index 5c90205a6..de3f89969 100644 --- a/samples/generated/v1/datastore_admin.export_entities.js +++ b/samples/generated/v1/datastore_admin.export_entities.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore_admin.get_index.js b/samples/generated/v1/datastore_admin.get_index.js index faa29110d..9c930af60 100644 --- a/samples/generated/v1/datastore_admin.get_index.js +++ b/samples/generated/v1/datastore_admin.get_index.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore_admin.import_entities.js b/samples/generated/v1/datastore_admin.import_entities.js index c277edc88..a17a03e9c 100644 --- a/samples/generated/v1/datastore_admin.import_entities.js +++ b/samples/generated/v1/datastore_admin.import_entities.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/samples/generated/v1/datastore_admin.list_indexes.js b/samples/generated/v1/datastore_admin.list_indexes.js index bafca6856..624f64231 100644 --- a/samples/generated/v1/datastore_admin.list_indexes.js +++ b/samples/generated/v1/datastore_admin.list_indexes.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/entity.ts b/src/entity.ts index c12e4ee9c..634bdf55d 100644 --- a/src/entity.ts +++ b/src/entity.ts @@ -18,7 +18,7 @@ import * as extend from 'extend'; import * as is from 'is'; import {Query, QueryProto, IntegerTypeCastOptions} from './query'; import {PathType} from '.'; -import {protobuf as Protobuf} from 'google-gax'; +import * as Protobuf from 'protobufjs'; import * as path from 'path'; import {google} from '../protos/protos'; import {and, PropertyFilter} from './filter'; diff --git a/src/v1/datastore_admin_client.ts b/src/v1/datastore_admin_client.ts index 66b310815..aaf7bfd82 100644 --- a/src/v1/datastore_admin_client.ts +++ b/src/v1/datastore_admin_client.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ import type { import {Transform} from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); +import {loggingUtils as logging} from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -101,6 +102,8 @@ export class DatastoreAdminClient { private _defaults: {[method: string]: gax.CallSettings}; private _universeDomain: string; private _servicePath: string; + private _log = logging.log('datastore-admin'); + auth: gax.GoogleAuth; descriptors: Descriptors = { page: {}, @@ -135,7 +138,7 @@ export class DatastoreAdminClient { * Developer's Console, e.g. 'grape-spaceship-123'. We will also check * the environment variable GCLOUD_PROJECT for your project ID. If your * app is running in an environment which supports - * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, + * {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials}, * your project ID will be detected automatically. * @param {string} [options.apiEndpoint] - The domain name of the * API remote host. @@ -592,8 +595,34 @@ export class DatastoreAdminClient { project_id: request.projectId ?? '', index_id: request.indexId ?? '', }); - this.initialize(); - return this.innerApiCalls.getIndex(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('getIndex request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.admin.v1.IIndex, + protos.google.datastore.admin.v1.IGetIndexRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('getIndex response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .getIndex(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.admin.v1.IIndex, + protos.google.datastore.admin.v1.IGetIndexRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getIndex response %j', response); + return [response, options, rawResponse]; + } + ); } /** @@ -725,8 +754,40 @@ export class DatastoreAdminClient { this._gaxModule.routingHeader.fromParams({ project_id: request.projectId ?? '', }); - this.initialize(); - return this.innerApiCalls.exportEntities(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + const wrappedCallback: + | Callback< + LROperation< + protos.google.datastore.admin.v1.IExportEntitiesResponse, + protos.google.datastore.admin.v1.IExportEntitiesMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, rawResponse, _) => { + this._log.info('exportEntities response %j', rawResponse); + callback!(error, response, rawResponse, _); // We verified callback above. + } + : undefined; + this._log.info('exportEntities request %j', request); + return this.innerApiCalls + .exportEntities(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.datastore.admin.v1.IExportEntitiesResponse, + protos.google.datastore.admin.v1.IExportEntitiesMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('exportEntities response %j', rawResponse); + return [response, rawResponse, _]; + } + ); } /** * Check the status of the long running operation returned by `exportEntities()`. @@ -747,6 +808,7 @@ export class DatastoreAdminClient { protos.google.datastore.admin.v1.ExportEntitiesMetadata > > { + this._log.info('exportEntities long-running'); const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( {name} @@ -887,8 +949,40 @@ export class DatastoreAdminClient { this._gaxModule.routingHeader.fromParams({ project_id: request.projectId ?? '', }); - this.initialize(); - return this.innerApiCalls.importEntities(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + const wrappedCallback: + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.datastore.admin.v1.IImportEntitiesMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, rawResponse, _) => { + this._log.info('importEntities response %j', rawResponse); + callback!(error, response, rawResponse, _); // We verified callback above. + } + : undefined; + this._log.info('importEntities request %j', request); + return this.innerApiCalls + .importEntities(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.datastore.admin.v1.IImportEntitiesMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('importEntities response %j', rawResponse); + return [response, rawResponse, _]; + } + ); } /** * Check the status of the long running operation returned by `importEntities()`. @@ -909,6 +1003,7 @@ export class DatastoreAdminClient { protos.google.datastore.admin.v1.ImportEntitiesMetadata > > { + this._log.info('importEntities long-running'); const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( {name} @@ -1039,8 +1134,40 @@ export class DatastoreAdminClient { this._gaxModule.routingHeader.fromParams({ project_id: request.projectId ?? '', }); - this.initialize(); - return this.innerApiCalls.createIndex(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + const wrappedCallback: + | Callback< + LROperation< + protos.google.datastore.admin.v1.IIndex, + protos.google.datastore.admin.v1.IIndexOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, rawResponse, _) => { + this._log.info('createIndex response %j', rawResponse); + callback!(error, response, rawResponse, _); // We verified callback above. + } + : undefined; + this._log.info('createIndex request %j', request); + return this.innerApiCalls + .createIndex(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.datastore.admin.v1.IIndex, + protos.google.datastore.admin.v1.IIndexOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('createIndex response %j', rawResponse); + return [response, rawResponse, _]; + } + ); } /** * Check the status of the long running operation returned by `createIndex()`. @@ -1061,6 +1188,7 @@ export class DatastoreAdminClient { protos.google.datastore.admin.v1.IndexOperationMetadata > > { + this._log.info('createIndex long-running'); const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( {name} @@ -1188,8 +1316,40 @@ export class DatastoreAdminClient { project_id: request.projectId ?? '', index_id: request.indexId ?? '', }); - this.initialize(); - return this.innerApiCalls.deleteIndex(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + const wrappedCallback: + | Callback< + LROperation< + protos.google.datastore.admin.v1.IIndex, + protos.google.datastore.admin.v1.IIndexOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, rawResponse, _) => { + this._log.info('deleteIndex response %j', rawResponse); + callback!(error, response, rawResponse, _); // We verified callback above. + } + : undefined; + this._log.info('deleteIndex request %j', request); + return this.innerApiCalls + .deleteIndex(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.datastore.admin.v1.IIndex, + protos.google.datastore.admin.v1.IIndexOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('deleteIndex response %j', rawResponse); + return [response, rawResponse, _]; + } + ); } /** * Check the status of the long running operation returned by `deleteIndex()`. @@ -1210,6 +1370,7 @@ export class DatastoreAdminClient { protos.google.datastore.admin.v1.IndexOperationMetadata > > { + this._log.info('deleteIndex long-running'); const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( {name} @@ -1317,12 +1478,40 @@ export class DatastoreAdminClient { this._gaxModule.routingHeader.fromParams({ project_id: request.projectId ?? '', }); - this.initialize(); - return this.innerApiCalls.listIndexes(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + const wrappedCallback: + | PaginationCallback< + protos.google.datastore.admin.v1.IListIndexesRequest, + | protos.google.datastore.admin.v1.IListIndexesResponse + | null + | undefined, + protos.google.datastore.admin.v1.IIndex + > + | undefined = callback + ? (error, values, nextPageRequest, rawResponse) => { + this._log.info('listIndexes values %j', values); + callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. + } + : undefined; + this._log.info('listIndexes request %j', request); + return this.innerApiCalls + .listIndexes(request, options, wrappedCallback) + ?.then( + ([response, input, output]: [ + protos.google.datastore.admin.v1.IIndex[], + protos.google.datastore.admin.v1.IListIndexesRequest | null, + protos.google.datastore.admin.v1.IListIndexesResponse, + ]) => { + this._log.info('listIndexes values %j', response); + return [response, input, output]; + } + ); } /** - * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * Equivalent to `listIndexes`, but returns a NodeJS Stream object. * @param {Object} request * The request object that will be sent. * @param {string} request.projectId @@ -1358,7 +1547,10 @@ export class DatastoreAdminClient { }); const defaultCallSettings = this._defaults['listIndexes']; const callSettings = defaultCallSettings.merge(options); - this.initialize(); + this.initialize().catch(err => { + throw err; + }); + this._log.info('listIndexes stream %j', request); return this.descriptors.page.listIndexes.createStream( this.innerApiCalls.listIndexes as GaxCall, request, @@ -1406,7 +1598,10 @@ export class DatastoreAdminClient { }); const defaultCallSettings = this._defaults['listIndexes']; const callSettings = defaultCallSettings.merge(options); - this.initialize(); + this.initialize().catch(err => { + throw err; + }); + this._log.info('listIndexes iterate %j', request); return this.descriptors.page.listIndexes.asyncIterate( this.innerApiCalls['listIndexes'] as GaxCall, request as {}, @@ -1445,7 +1640,7 @@ export class DatastoreAdminClient { */ getOperation( request: protos.google.longrunning.GetOperationRequest, - options?: + optionsOrCallback?: | gax.CallOptions | Callback< protos.google.longrunning.Operation, @@ -1458,6 +1653,20 @@ export class DatastoreAdminClient { {} | null | undefined > ): Promise<[protos.google.longrunning.Operation]> { + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -1493,7 +1702,14 @@ export class DatastoreAdminClient { listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, options?: gax.CallOptions - ): AsyncIterable { + ): AsyncIterable { + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -1529,11 +1745,11 @@ export class DatastoreAdminClient { */ cancelOperation( request: protos.google.longrunning.CancelOperationRequest, - options?: + optionsOrCallback?: | gax.CallOptions | Callback< - protos.google.protobuf.Empty, protos.google.longrunning.CancelOperationRequest, + protos.google.protobuf.Empty, {} | undefined | null >, callback?: Callback< @@ -1542,6 +1758,20 @@ export class DatastoreAdminClient { {} | undefined | null > ): Promise { + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } @@ -1572,7 +1802,7 @@ export class DatastoreAdminClient { */ deleteOperation( request: protos.google.longrunning.DeleteOperationRequest, - options?: + optionsOrCallback?: | gax.CallOptions | Callback< protos.google.protobuf.Empty, @@ -1585,6 +1815,20 @@ export class DatastoreAdminClient { {} | null | undefined > ): Promise { + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -1597,6 +1841,7 @@ export class DatastoreAdminClient { close(): Promise { if (this.datastoreAdminStub && !this._terminated) { return this.datastoreAdminStub.then(stub => { + this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); this.operationsClient.close(); diff --git a/src/v1/datastore_client.ts b/src/v1/datastore_client.ts index 58e07a3c6..a12ca3782 100644 --- a/src/v1/datastore_client.ts +++ b/src/v1/datastore_client.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ import type { import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); +import {loggingUtils as logging} from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -58,6 +59,8 @@ export class DatastoreClient { private _defaults: {[method: string]: gax.CallSettings}; private _universeDomain: string; private _servicePath: string; + private _log = logging.log('datastore'); + auth: gax.GoogleAuth; descriptors: Descriptors = { page: {}, @@ -92,7 +95,7 @@ export class DatastoreClient { * Developer's Console, e.g. 'grape-spaceship-123'. We will also check * the environment variable GCLOUD_PROJECT for your project ID. If your * app is running in an environment which supports - * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, + * {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials}, * your project ID will be detected automatically. * @param {string} [options.apiEndpoint] - The domain name of the * API remote host. @@ -524,8 +527,34 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.lookup(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('lookup request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.ILookupResponse, + protos.google.datastore.v1.ILookupRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('lookup response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .lookup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.ILookupResponse, + protos.google.datastore.v1.ILookupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('lookup response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Queries for entities. @@ -650,8 +679,34 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.runQuery(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('runQuery request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.IRunQueryResponse, + protos.google.datastore.v1.IRunQueryRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('runQuery response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .runQuery(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.IRunQueryResponse, + protos.google.datastore.v1.IRunQueryRequest | undefined, + {} | undefined, + ]) => { + this._log.info('runQuery response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Runs an aggregation query. @@ -772,8 +827,36 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.runAggregationQuery(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('runAggregationQuery request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.IRunAggregationQueryResponse, + | protos.google.datastore.v1.IRunAggregationQueryRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('runAggregationQuery response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .runAggregationQuery(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.IRunAggregationQueryResponse, + protos.google.datastore.v1.IRunAggregationQueryRequest | undefined, + {} | undefined, + ]) => { + this._log.info('runAggregationQuery response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Begins a new transaction. @@ -882,8 +965,36 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.beginTransaction(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('beginTransaction request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.IBeginTransactionResponse, + | protos.google.datastore.v1.IBeginTransactionRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('beginTransaction response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .beginTransaction(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.IBeginTransactionResponse, + protos.google.datastore.v1.IBeginTransactionRequest | undefined, + {} | undefined, + ]) => { + this._log.info('beginTransaction response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Commits a transaction, optionally creating, deleting or modifying some @@ -1014,8 +1125,34 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.commit(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('commit request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.ICommitResponse, + protos.google.datastore.v1.ICommitRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('commit response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .commit(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.ICommitResponse, + protos.google.datastore.v1.ICommitRequest | undefined, + {} | undefined, + ]) => { + this._log.info('commit response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Rolls back a transaction. @@ -1123,8 +1260,34 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.rollback(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('rollback request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.IRollbackResponse, + protos.google.datastore.v1.IRollbackRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('rollback response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .rollback(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.IRollbackResponse, + protos.google.datastore.v1.IRollbackRequest | undefined, + {} | undefined, + ]) => { + this._log.info('rollback response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Allocates IDs for the given keys, which is useful for referencing an entity @@ -1233,8 +1396,34 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.allocateIds(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('allocateIds request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.IAllocateIdsResponse, + protos.google.datastore.v1.IAllocateIdsRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('allocateIds response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .allocateIds(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.IAllocateIdsResponse, + protos.google.datastore.v1.IAllocateIdsRequest | undefined, + {} | undefined, + ]) => { + this._log.info('allocateIds response %j', response); + return [response, options, rawResponse]; + } + ); } /** * Prevents the supplied keys' IDs from being auto-allocated by Cloud @@ -1343,8 +1532,34 @@ export class DatastoreClient { } options.otherArgs.headers['x-goog-request-params'] = this._gaxModule.routingHeader.fromParams(routingParameter); - this.initialize(); - return this.innerApiCalls.reserveIds(request, options, callback); + this.initialize().catch(err => { + throw err; + }); + this._log.info('reserveIds request %j', request); + const wrappedCallback: + | Callback< + protos.google.datastore.v1.IReserveIdsResponse, + protos.google.datastore.v1.IReserveIdsRequest | null | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('reserveIds response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .reserveIds(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.datastore.v1.IReserveIdsResponse, + protos.google.datastore.v1.IReserveIdsRequest | undefined, + {} | undefined, + ]) => { + this._log.info('reserveIds response %j', response); + return [response, options, rawResponse]; + } + ); } /** @@ -1379,7 +1594,7 @@ export class DatastoreClient { */ getOperation( request: protos.google.longrunning.GetOperationRequest, - options?: + optionsOrCallback?: | gax.CallOptions | Callback< protos.google.longrunning.Operation, @@ -1392,6 +1607,20 @@ export class DatastoreClient { {} | null | undefined > ): Promise<[protos.google.longrunning.Operation]> { + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -1427,7 +1656,14 @@ export class DatastoreClient { listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, options?: gax.CallOptions - ): AsyncIterable { + ): AsyncIterable { + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -1463,11 +1699,11 @@ export class DatastoreClient { */ cancelOperation( request: protos.google.longrunning.CancelOperationRequest, - options?: + optionsOrCallback?: | gax.CallOptions | Callback< - protos.google.protobuf.Empty, protos.google.longrunning.CancelOperationRequest, + protos.google.protobuf.Empty, {} | undefined | null >, callback?: Callback< @@ -1476,6 +1712,20 @@ export class DatastoreClient { {} | undefined | null > ): Promise { + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } @@ -1506,7 +1756,7 @@ export class DatastoreClient { */ deleteOperation( request: protos.google.longrunning.DeleteOperationRequest, - options?: + optionsOrCallback?: | gax.CallOptions | Callback< protos.google.protobuf.Empty, @@ -1519,6 +1769,20 @@ export class DatastoreClient { {} | null | undefined > ): Promise { + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -1531,6 +1795,7 @@ export class DatastoreClient { close(): Promise { if (this.datastoreStub && !this._terminated) { return this.datastoreStub.then(stub => { + this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); this.operationsClient.close(); diff --git a/system-test/fixtures/sample/src/index.js b/system-test/fixtures/sample/src/index.js index 603621a3e..d9da9fb45 100644 --- a/system-test/fixtures/sample/src/index.js +++ b/system-test/fixtures/sample/src/index.js @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/system-test/fixtures/sample/src/index.ts b/system-test/fixtures/sample/src/index.ts index d30f40268..c0c27e781 100644 --- a/system-test/fixtures/sample/src/index.ts +++ b/system-test/fixtures/sample/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/system-test/install.ts b/system-test/install.ts index 83b83f332..d927b3436 100644 --- a/system-test/install.ts +++ b/system-test/install.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/test/gapic_datastore_admin_v1.ts b/test/gapic_datastore_admin_v1.ts index eb73aadb9..c168bcbc9 100644 --- a/test/gapic_datastore_admin_v1.ts +++ b/test/gapic_datastore_admin_v1.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -284,7 +284,9 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + client.initialize().catch((err: any) => { + throw err; + }); assert(client.datastoreAdminStub); client.close().then(() => { done(); @@ -343,7 +345,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.GetIndexRequest() ); @@ -357,7 +359,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.datastore.admin.v1.Index() ); @@ -379,7 +381,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.GetIndexRequest() ); @@ -393,7 +395,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.datastore.admin.v1.Index() ); @@ -431,7 +433,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.GetIndexRequest() ); @@ -445,7 +447,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.getIndex = stubSimpleCall(undefined, expectedError); await assert.rejects(client.getIndex(request), expectedError); @@ -464,7 +466,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.GetIndexRequest() ); @@ -490,7 +492,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ExportEntitiesRequest() ); @@ -499,7 +501,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -523,7 +525,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ExportEntitiesRequest() ); @@ -532,7 +534,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -577,7 +579,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ExportEntitiesRequest() ); @@ -586,7 +588,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.exportEntities = stubLongRunningCall( undefined, @@ -608,7 +610,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ExportEntitiesRequest() ); @@ -617,7 +619,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.exportEntities = stubLongRunningCall( undefined, @@ -641,7 +643,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedResponse = generateSampleMessage( new operationsProtos.google.longrunning.Operation() ); @@ -663,7 +665,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedError = new Error('expected'); client.operationsClient.getOperation = stubSimpleCall( @@ -684,7 +686,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ImportEntitiesRequest() ); @@ -693,7 +695,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -717,7 +719,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ImportEntitiesRequest() ); @@ -726,7 +728,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -771,7 +773,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ImportEntitiesRequest() ); @@ -780,7 +782,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.importEntities = stubLongRunningCall( undefined, @@ -802,7 +804,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ImportEntitiesRequest() ); @@ -811,7 +813,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.importEntities = stubLongRunningCall( undefined, @@ -835,7 +837,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedResponse = generateSampleMessage( new operationsProtos.google.longrunning.Operation() ); @@ -857,7 +859,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedError = new Error('expected'); client.operationsClient.getOperation = stubSimpleCall( @@ -878,7 +880,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.CreateIndexRequest() ); @@ -887,7 +889,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -910,7 +912,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.CreateIndexRequest() ); @@ -919,7 +921,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -964,7 +966,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.CreateIndexRequest() ); @@ -973,7 +975,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.createIndex = stubLongRunningCall( undefined, @@ -995,7 +997,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.CreateIndexRequest() ); @@ -1004,7 +1006,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.createIndex = stubLongRunningCall( undefined, @@ -1028,7 +1030,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedResponse = generateSampleMessage( new operationsProtos.google.longrunning.Operation() ); @@ -1050,7 +1052,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedError = new Error('expected'); client.operationsClient.getOperation = stubSimpleCall( @@ -1068,7 +1070,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.DeleteIndexRequest() ); @@ -1082,7 +1084,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -1105,7 +1107,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.DeleteIndexRequest() ); @@ -1119,7 +1121,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedResponse = generateSampleMessage( new protos.google.longrunning.Operation() ); @@ -1164,7 +1166,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.DeleteIndexRequest() ); @@ -1178,7 +1180,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteIndex = stubLongRunningCall( undefined, @@ -1200,7 +1202,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.DeleteIndexRequest() ); @@ -1214,7 +1216,7 @@ describe('v1.DatastoreAdminClient', () => { ['indexId'] ); request.indexId = defaultValue2; - const expectedHeaderRequestParams = `project_id=${defaultValue1}&index_id=${defaultValue2}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}&index_id=${defaultValue2 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.deleteIndex = stubLongRunningCall( undefined, @@ -1238,7 +1240,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedResponse = generateSampleMessage( new operationsProtos.google.longrunning.Operation() ); @@ -1260,7 +1262,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const expectedError = new Error('expected'); client.operationsClient.getOperation = stubSimpleCall( @@ -1278,7 +1280,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1287,7 +1289,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = [ generateSampleMessage(new protos.google.datastore.admin.v1.Index()), generateSampleMessage(new protos.google.datastore.admin.v1.Index()), @@ -1311,7 +1313,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1320,7 +1322,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = [ generateSampleMessage(new protos.google.datastore.admin.v1.Index()), generateSampleMessage(new protos.google.datastore.admin.v1.Index()), @@ -1360,7 +1362,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1369,7 +1371,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.innerApiCalls.listIndexes = stubSimpleCall( undefined, @@ -1391,7 +1393,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1400,7 +1402,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = [ generateSampleMessage(new protos.google.datastore.admin.v1.Index()), generateSampleMessage(new protos.google.datastore.admin.v1.Index()), @@ -1445,7 +1447,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1454,7 +1456,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.descriptors.page.listIndexes.createStream = stubPageStreamingCall( undefined, @@ -1496,7 +1498,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1505,7 +1507,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedResponse = [ generateSampleMessage(new protos.google.datastore.admin.v1.Index()), generateSampleMessage(new protos.google.datastore.admin.v1.Index()), @@ -1539,7 +1541,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.admin.v1.ListIndexesRequest() ); @@ -1548,7 +1550,7 @@ describe('v1.DatastoreAdminClient', () => { ['projectId'] ); request.projectId = defaultValue1; - const expectedHeaderRequestParams = `project_id=${defaultValue1}`; + const expectedHeaderRequestParams = `project_id=${defaultValue1 ?? ''}`; const expectedError = new Error('expected'); client.descriptors.page.listIndexes.asyncIterate = stubAsyncIterationCall( undefined, @@ -1582,7 +1584,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.GetOperationRequest() ); @@ -1661,7 +1663,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.CancelOperationRequest() ); @@ -1741,7 +1743,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.DeleteOperationRequest() ); @@ -1837,8 +1839,7 @@ describe('v1.DatastoreAdminClient', () => { ]; client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; + const responses: operationsProtos.google.longrunning.IOperation[] = []; const iterable = client.operationsClient.listOperationsAsync(request); for await (const resource of iterable) { responses.push(resource!); @@ -1857,7 +1858,7 @@ describe('v1.DatastoreAdminClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.ListOperationsRequest() ); @@ -1866,8 +1867,7 @@ describe('v1.DatastoreAdminClient', () => { stubAsyncIterationCall(undefined, expectedError); const iterable = client.operationsClient.listOperationsAsync(request); await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; + const responses: operationsProtos.google.longrunning.IOperation[] = []; for await (const resource of iterable) { responses.push(resource!); } diff --git a/test/gapic_datastore_v1.ts b/test/gapic_datastore_v1.ts index 7a23ec7d9..1c7ee6608 100644 --- a/test/gapic_datastore_v1.ts +++ b/test/gapic_datastore_v1.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -210,7 +210,9 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + client.initialize().catch((err: any) => { + throw err; + }); assert(client.datastoreStub); client.close().then(() => { done(); @@ -269,7 +271,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.LookupRequest() ); @@ -297,7 +299,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.LookupRequest() ); @@ -341,7 +343,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.LookupRequest() ); @@ -366,7 +368,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.LookupRequest() ); @@ -384,7 +386,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunQueryRequest() ); @@ -412,7 +414,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunQueryRequest() ); @@ -456,7 +458,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunQueryRequest() ); @@ -481,7 +483,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunQueryRequest() ); @@ -499,7 +501,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunAggregationQueryRequest() ); @@ -528,7 +530,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunAggregationQueryRequest() ); @@ -572,7 +574,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunAggregationQueryRequest() ); @@ -600,7 +602,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RunAggregationQueryRequest() ); @@ -618,7 +620,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.BeginTransactionRequest() ); @@ -646,7 +648,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.BeginTransactionRequest() ); @@ -690,7 +692,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.BeginTransactionRequest() ); @@ -718,7 +720,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.BeginTransactionRequest() ); @@ -736,7 +738,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.CommitRequest() ); @@ -764,7 +766,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.CommitRequest() ); @@ -808,7 +810,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.CommitRequest() ); @@ -833,7 +835,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.CommitRequest() ); @@ -851,7 +853,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RollbackRequest() ); @@ -879,7 +881,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RollbackRequest() ); @@ -923,7 +925,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RollbackRequest() ); @@ -948,7 +950,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.RollbackRequest() ); @@ -966,7 +968,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.AllocateIdsRequest() ); @@ -994,7 +996,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.AllocateIdsRequest() ); @@ -1038,7 +1040,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.AllocateIdsRequest() ); @@ -1066,7 +1068,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.AllocateIdsRequest() ); @@ -1084,7 +1086,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.ReserveIdsRequest() ); @@ -1112,7 +1114,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.ReserveIdsRequest() ); @@ -1156,7 +1158,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.ReserveIdsRequest() ); @@ -1184,7 +1186,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new protos.google.datastore.v1.ReserveIdsRequest() ); @@ -1201,7 +1203,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.GetOperationRequest() ); @@ -1280,7 +1282,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.CancelOperationRequest() ); @@ -1360,7 +1362,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.DeleteOperationRequest() ); @@ -1456,8 +1458,7 @@ describe('v1.DatastoreClient', () => { ]; client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; + const responses: operationsProtos.google.longrunning.IOperation[] = []; const iterable = client.operationsClient.listOperationsAsync(request); for await (const resource of iterable) { responses.push(resource!); @@ -1476,7 +1477,7 @@ describe('v1.DatastoreClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.initialize(); + await client.initialize(); const request = generateSampleMessage( new operationsProtos.google.longrunning.ListOperationsRequest() ); @@ -1485,8 +1486,7 @@ describe('v1.DatastoreClient', () => { stubAsyncIterationCall(undefined, expectedError); const iterable = client.operationsClient.listOperationsAsync(request); await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.ListOperationsResponse[] = - []; + const responses: operationsProtos.google.longrunning.IOperation[] = []; for await (const resource of iterable) { responses.push(resource!); } diff --git a/tsconfig.json b/tsconfig.json index c78f1c884..860d6bf02 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,6 +14,8 @@ "src/**/*.ts", "test/*.ts", "test/**/*.ts", - "system-test/*.ts" + "system-test/*.ts", + "src/**/*.json", + "protos/protos.json" ] }