From c0b2611e2d2b3afa4090146fd25d51f8bfb583be Mon Sep 17 00:00:00 2001 From: feywind <57276408+feywind@users.noreply.github.com> Date: Tue, 12 May 2026 15:54:17 -0400 Subject: [PATCH 1/4] chore: move typeless-sample-bot to core/packages --- core/packages/typeless-sample-bot/.gitignore | 2 + .../typeless-sample-bot/.prettierrc.cjs | 17 ++ .../packages/typeless-sample-bot/CHANGELOG.md | 129 ++++++++++ core/packages/typeless-sample-bot/README.md | 69 +++++ .../__snapshots__/index.js | 137 ++++++++++ .../packages/typeless-sample-bot/package.json | 63 +++++ core/packages/typeless-sample-bot/src/app.ts | 193 ++++++++++++++ .../src/bin/typeless-sample-bot.ts | 25 ++ .../typeless-sample-bot/src/debug-js.d.ts | 16 ++ .../typeless-sample-bot/src/gcp-debuglog.ts | 119 +++++++++ .../typeless-sample-bot/src/loggers.ts | 34 +++ .../typeless-sample-bot/src/preset-loader.ts | 20 ++ .../typeless-sample-bot/src/samples.ts | 148 +++++++++++ .../typeless-sample-bot/src/symbols.ts | 98 ++++++++ .../src/transforms/add-comments.ts | 42 ++++ .../src/transforms/babel.ts | 28 +++ .../src/transforms/import-to-require.ts | 114 +++++++++ .../src/transforms/null-coalescing.ts | 33 +++ .../src/transforms/optional-chaining.ts | 48 ++++ .../typeless-sample-bot/src/tree-walk.ts | 30 +++ .../src/typescript-preset.d.ts | 17 ++ .../test/fixtures/createTopic.js | 59 +++++ .../test/fixtures/deleteSchema.ts | 58 +++++ .../test/fixtures/empty-folder/.gitkeep | 0 .../fixtures/folder/listenForAvroRecords.ts | 111 +++++++++ .../fixtures/folder/publishAvroRecords.ts | 101 ++++++++ .../test/fixtures/folder/validateSchema.ts | 82 ++++++ .../test/fixtures/getSchema.ts | 55 ++++ .../test/fixtures/listSchemas.ts | 51 ++++ .../test/fixtures/noBlankLines.ts | 3 + .../typeless-sample-bot/test/index.ts | 235 ++++++++++++++++++ .../typeless-sample-bot/tsconfig.json | 112 +++++++++ 32 files changed, 2249 insertions(+) create mode 100644 core/packages/typeless-sample-bot/.gitignore create mode 100644 core/packages/typeless-sample-bot/.prettierrc.cjs create mode 100644 core/packages/typeless-sample-bot/CHANGELOG.md create mode 100644 core/packages/typeless-sample-bot/README.md create mode 100644 core/packages/typeless-sample-bot/__snapshots__/index.js create mode 100644 core/packages/typeless-sample-bot/package.json create mode 100644 core/packages/typeless-sample-bot/src/app.ts create mode 100644 core/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts create mode 100644 core/packages/typeless-sample-bot/src/debug-js.d.ts create mode 100644 core/packages/typeless-sample-bot/src/gcp-debuglog.ts create mode 100644 core/packages/typeless-sample-bot/src/loggers.ts create mode 100644 core/packages/typeless-sample-bot/src/preset-loader.ts create mode 100644 core/packages/typeless-sample-bot/src/samples.ts create mode 100644 core/packages/typeless-sample-bot/src/symbols.ts create mode 100644 core/packages/typeless-sample-bot/src/transforms/add-comments.ts create mode 100644 core/packages/typeless-sample-bot/src/transforms/babel.ts create mode 100644 core/packages/typeless-sample-bot/src/transforms/import-to-require.ts create mode 100644 core/packages/typeless-sample-bot/src/transforms/null-coalescing.ts create mode 100644 core/packages/typeless-sample-bot/src/transforms/optional-chaining.ts create mode 100644 core/packages/typeless-sample-bot/src/tree-walk.ts create mode 100644 core/packages/typeless-sample-bot/src/typescript-preset.d.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/createTopic.js create mode 100644 core/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/empty-folder/.gitkeep create mode 100644 core/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/getSchema.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/listSchemas.ts create mode 100644 core/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts create mode 100644 core/packages/typeless-sample-bot/test/index.ts create mode 100644 core/packages/typeless-sample-bot/tsconfig.json diff --git a/core/packages/typeless-sample-bot/.gitignore b/core/packages/typeless-sample-bot/.gitignore new file mode 100644 index 000000000000..dd87e2d73f9f --- /dev/null +++ b/core/packages/typeless-sample-bot/.gitignore @@ -0,0 +1,2 @@ +node_modules +build diff --git a/core/packages/typeless-sample-bot/.prettierrc.cjs b/core/packages/typeless-sample-bot/.prettierrc.cjs new file mode 100644 index 000000000000..d2eddc2ed894 --- /dev/null +++ b/core/packages/typeless-sample-bot/.prettierrc.cjs @@ -0,0 +1,17 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/core/packages/typeless-sample-bot/CHANGELOG.md b/core/packages/typeless-sample-bot/CHANGELOG.md new file mode 100644 index 000000000000..480e5cd7b8ad --- /dev/null +++ b/core/packages/typeless-sample-bot/CHANGELOG.md @@ -0,0 +1,129 @@ +# Changelog + +## [3.1.2](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v3.1.1...typeless-sample-bot-v3.1.2) (2026-05-01) + + +### Bug Fixes + +* Change the copyright year for files in the packages folder ([#8109](https://github.com/googleapis/google-cloud-node/issues/8109)) ([c1a03fe](https://github.com/googleapis/google-cloud-node/commit/c1a03fe604662091be283055c7d34052c64d6334)) + +## [3.1.1](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v3.1.0...typeless-sample-bot-v3.1.1) (2025-10-13) + + +### Bug Fixes + +* [gkeconnect-gateway] remove unused GatewayServiceClient ([#6775](https://github.com/googleapis/google-cloud-node/issues/6775)) ([41c2ff2](https://github.com/googleapis/google-cloud-node/commit/41c2ff2851b5fdadabf4f9bd3500167c34b32ff7)) + +## [3.1.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v3.0.0...typeless-sample-bot-v3.1.0) (2025-07-09) + + +### Features + +* [Many APIs] add methods from gax to cache proto root and process custom error details ([#6419](https://github.com/googleapis/google-cloud-node/issues/6419)) ([f8a324c](https://github.com/googleapis/google-cloud-node/commit/f8a324ca5c3bc0f730e4ed67d9407c44f2414936)) +* Add protobufjs 2023 edition support ([#6303](https://github.com/googleapis/google-cloud-node/issues/6303)) ([4a0cba1](https://github.com/googleapis/google-cloud-node/commit/4a0cba1e41a9aeb9c15ad31487ef013c8277cfef)) + +## [3.0.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v2.1.0...typeless-sample-bot-v3.0.0) (2025-03-18) + + +### ⚠ BREAKING CHANGES + +* upgrade to Node 18 ([#6096](https://github.com/googleapis/google-cloud-node/issues/6096)) + +### Miscellaneous Chores + +* Upgrade to Node 18 ([#6096](https://github.com/googleapis/google-cloud-node/issues/6096)) ([eadae64](https://github.com/googleapis/google-cloud-node/commit/eadae64d54e07aa2c65097ea52e65008d4e87436)) + +## [2.1.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v2.0.0...typeless-sample-bot-v2.1.0) (2024-05-21) + + +### Features + +* [Many APIs] update Nodejs generator to send API versions in headers for GAPICs ([#5351](https://github.com/googleapis/google-cloud-node/issues/5351)) ([01f48fc](https://github.com/googleapis/google-cloud-node/commit/01f48fce63ec4ddf801d59ee2b8c0db9f6fb8372)) +* [Many APIs] update Nodejs generator to send API versions in headers for GAPICs ([#5354](https://github.com/googleapis/google-cloud-node/issues/5354)) ([a9784ed](https://github.com/googleapis/google-cloud-node/commit/a9784ed3db6ee96d171762308bbbcd57390b6866)) + +## [2.0.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.3...typeless-sample-bot-v2.0.0) (2023-08-06) + + +### ⚠ BREAKING CHANGES + +* migrate to Node 14 ([#4443](https://github.com/googleapis/google-cloud-node/issues/4443)) + +### Miscellaneous Chores + +* Migrate to Node 14 ([#4443](https://github.com/googleapis/google-cloud-node/issues/4443)) ([2260f12](https://github.com/googleapis/google-cloud-node/commit/2260f12543d171bda95345e53475f5f0fdc45770)) + +## [1.3.3](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.2...typeless-sample-bot-v1.3.3) (2023-05-26) + + +### Bug Fixes + +* **deps:** Update dependency recast to ^0.23.0 ([#4277](https://github.com/googleapis/google-cloud-node/issues/4277)) ([b6ae70d](https://github.com/googleapis/google-cloud-node/commit/b6ae70ddcc50fc3bfd1abbb347b25e0bfcafccf0)) + +## [1.3.2](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.1...typeless-sample-bot-v1.3.2) (2023-05-11) + + +### Bug Fixes + +* Do not exit with 1 on empty folder ([#4272](https://github.com/googleapis/google-cloud-node/issues/4272)) ([a538959](https://github.com/googleapis/google-cloud-node/commit/a5389596ba5b0c707582612a6b2aa84385fefc26)) + +## [1.3.1](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.0...typeless-sample-bot-v1.3.1) (2023-04-13) + + +### Bug Fixes + +* Minify JSON and JS files, and remove .map files ([#4143](https://github.com/googleapis/google-cloud-node/issues/4143)) ([170f7d5](https://github.com/googleapis/google-cloud-node/commit/170f7d57b8fd344d182a8e758867b8124722eebc)) + +## [1.3.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.2.0...typeless-sample-bot-v1.3.0) (2023-01-28) + + +### Features + +* Add support for converting optional chaining to regular chaining ([#3891](https://github.com/googleapis/google-cloud-node/issues/3891)) ([f8414ac](https://github.com/googleapis/google-cloud-node/commit/f8414ac2f7ea1b8cd11ab49939dc2abec9fd0bb9)) + +## [1.2.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.1.0...typeless-sample-bot-v1.2.0) (2022-12-16) + + +### Features + +* Add comments about generation and 'use strict' to transformed samples ([#3696](https://github.com/googleapis/google-cloud-node/issues/3696)) ([db012f5](https://github.com/googleapis/google-cloud-node/commit/db012f5c356d858243a391d6eaac0c9b0a508e83)) +* Add downconversion from ?? to || ([#3722](https://github.com/googleapis/google-cloud-node/issues/3722)) ([4a0a105](https://github.com/googleapis/google-cloud-node/commit/4a0a10569ee80485b3d5a2fdcd8975fbd998c336)) + + +### Bug Fixes + +* **deps:** Update dependency recast to ^0.22.0 ([#3745](https://github.com/googleapis/google-cloud-node/issues/3745)) ([a9f6b83](https://github.com/googleapis/google-cloud-node/commit/a9f6b836b3f56602e5c18b1b5bce812507262f7c)) + +## [1.1.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.3...typeless-sample-bot-v1.1.0) (2022-11-10) + + +### Features + +* **typeless-sample-bot:** Add output path flag, and another pass at module resolution fixing ([#3498](https://github.com/googleapis/google-cloud-node/issues/3498)) ([192659d](https://github.com/googleapis/google-cloud-node/commit/192659d7d6109ad23d1c84eaaf7b626b9bd05be5)) + +## [1.0.3](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.2...typeless-sample-bot-v1.0.3) (2022-11-03) + + +### Bug Fixes + +* Explicitly provide path to babel plugins ([#3482](https://github.com/googleapis/google-cloud-node/issues/3482)) ([6d34a3d](https://github.com/googleapis/google-cloud-node/commit/6d34a3d99725bd2d8b90c449e27e1b6d694c8def)) + +## [1.0.2](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.1...typeless-sample-bot-v1.0.2) (2022-10-28) + + +### Bug Fixes + +* Update typeless bot build to compile before pack ([#3463](https://github.com/googleapis/google-cloud-node/issues/3463)) ([6f6fb2e](https://github.com/googleapis/google-cloud-node/commit/6f6fb2e176529e6384f2a1fb3acd627087f6d73a)) + +## [1.0.1](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.0...typeless-sample-bot-v1.0.1) (2022-10-27) + + +### Bug Fixes + +* Typeless bot updates for a fully functioning packaged version ([#3461](https://github.com/googleapis/google-cloud-node/issues/3461)) ([8e93229](https://github.com/googleapis/google-cloud-node/commit/8e9322948123465f7a0c5edbb226697505ac7b5e)) + +## 1.0.0 (2022-08-25) + + +### Features + +* new typeless sample bot, initial commit ([#3203](https://github.com/googleapis/google-cloud-node/issues/3203)) ([c57a722](https://github.com/googleapis/google-cloud-node/commit/c57a722f5dff0314e211eb68bc7b2743f53805ab)) diff --git a/core/packages/typeless-sample-bot/README.md b/core/packages/typeless-sample-bot/README.md new file mode 100644 index 000000000000..bd1f2f9d2625 --- /dev/null +++ b/core/packages/typeless-sample-bot/README.md @@ -0,0 +1,69 @@ +# typeless-sample-bot + +This bot will automatically convert sample snippets written in TypeScript into JavaScript +sample snippets. This lets you focus on writing TypeScript samples instead of having to +do only JavaScript, or having to maintain both. + +## Installation + +You will want to install this library as a globally-available, standalone binary. + +`npm i @google-cloud/typeless-sample-bot -g` + +## Usage + +The bot can convert single files or an entire tree of files. In the latter case, it +will attempt to guess which files are actually snippets before doing anything with them. + +For individual files, you can specify them as targets: + +```bash +typeless-sample-bot --targets file1.ts,file2.ts,etc +``` + +The output will be written with the same filename stem, but a js extension. + +You can also ask for recursive processing: + +```bash +typeless-sample-bot --targets samples --recursive +``` + +Note that -t may be an array, still, for processing multiple recursive trees. + +Various utility flags are also available: + +```bash +# turn on verbose output +typeless-sample-bot --verbose + +# turn on full debug output +typeless-sample-bot --debug + +# turn off ANSI colour/emojis +typeless-sample-bot --no-art +``` + +### Options + +| Option | Description | Default | +| ------ | ----------- | ------- | +| targets | List of target files or directory trees | *Required* | +| recursive | If set, targets will be directory trees processed recursively | False | +| verbose | If set, verbose output will be enabled | False | +| debug | If set, full debug output will be enabled | False | +| art | If set, ANSI colour and emojis will be used in the command output | True, use --no-art to cancel | + +## Running tests: + +`npm test` + +## Contributing + +If you have suggestions for how `typeless-sample-bot` could be improved, or want to report a bug, open an issue! We'd love all and any contributions. + +For more, check out the Contributing Guide. + +License: Apache 2.0 + +© 2022 Google LLC. diff --git a/core/packages/typeless-sample-bot/__snapshots__/index.js b/core/packages/typeless-sample-bot/__snapshots__/index.js new file mode 100644 index 000000000000..33e8c264eaf0 --- /dev/null +++ b/core/packages/typeless-sample-bot/__snapshots__/index.js @@ -0,0 +1,137 @@ +exports['sample transformation does not change JS 1'] = [ + { + "filename": "test.js", + "contents": "// Copyright 2019-2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This sample demonstrates how to perform basic operations on topics with\n * the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n'use strict';\n\n// This test fixture sample has been modified to factor out changes that\n// gts fix would reverse anyway.\n\n// sample-metadata:\n// title: Create Topic\n// description: Creates a new topic.\n// usage: node createTopic.js \n\nasync function main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') {\n // [START pubsub_create_topic]\n /**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n // const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID';\n\n // Imports the Google Cloud client library\n const { PubSub } = require('@google-cloud/pubsub');\n\n // Creates a client; cache this for further use\n const pubSubClient = new PubSub();\n\n async function createTopic() {\n // Creates a new topic\n await pubSubClient.createTopic(topicNameOrId);\n console.log(`Topic ${topicNameOrId} created.`);\n }\n\n createTopic();\n // [END pubsub_create_topic]\n}\n\nmain(...process.argv.slice(2)).catch((e) => {\n console.error(e);\n process.exitCode = -1;\n});" + } +] + +exports['sample transformation correctly transforms TS 1'] = ` +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This is a generated sample, using the typeless sample bot. Please +// look for the source TypeScript sample (.ts) for modifications. +'use strict'; + +/** + * This application demonstrates how to perform basic operations on + * schemas with the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: List schemas on a project +// description: Gets a list of schemas which were previously created in the project. +// usage: node listSchemas.js + +// [START pubsub_list_schemas] + +// Imports the Google Cloud client library +const { PubSub } = require("@google-cloud/pubsub"); + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +async function listSchemas() { + for await (const s of pubSubClient.listSchemas()) { + console.log(s.name); + } + console.log('Listed schemas.'); +} +// [END pubsub_list_schemas] + +function main() { + listSchemas().catch((err) => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(); +` + +exports['command line option "targets" works with a single sample file 1'] = ` +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This is a generated sample, using the typeless sample bot. Please +// look for the source TypeScript sample (.ts) for modifications. +'use strict'; + +/** + * This application demonstrates how to perform basic operations on + * schemas with the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: List schemas on a project +// description: Gets a list of schemas which were previously created in the project. +// usage: node listSchemas.js + +// [START pubsub_list_schemas] + +// Imports the Google Cloud client library +const { PubSub } = require("@google-cloud/pubsub"); + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +async function listSchemas() { + for await (const s of pubSubClient.listSchemas()) { + console.log(s.name); + } + console.log('Listed schemas.'); +} +// [END pubsub_list_schemas] + +function main() { + listSchemas().catch((err) => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(); +` + +exports['command line option "targets" works with multiple sample files 1'] = [ + "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Delete a previously created schema\n// description: Deletes a schema which was previously created in the project.\n// usage: node deleteSchema.js \n\n// [START pubsub_delete_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function deleteSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const name = await schema.getName();\n await schema.delete();\n console.log(`Schema ${name} deleted.`);\n}\n// [END pubsub_delete_schema]\n\nconst someValue = undefined;\nconst coalesced = someValue || 5;\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n deleteSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));", + "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Get a previously created schema\n// description: Gets information about a schema which was previously created in the project.\n// usage: node getSchema.js \n\n// [START pubsub_get_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function getSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const info = await schema.get();\n const fullName = await schema.getName();\n console.log(`Schema ${fullName} info: ${JSON.stringify(info, null, 4)}.`);\n}\n// [END pubsub_get_schema]\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n getSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));" +] + +exports['command line option "outputpath" causes the output to move 1'] = [ + "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Delete a previously created schema\n// description: Deletes a schema which was previously created in the project.\n// usage: node deleteSchema.js \n\n// [START pubsub_delete_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function deleteSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const name = await schema.getName();\n await schema.delete();\n console.log(`Schema ${name} deleted.`);\n}\n// [END pubsub_delete_schema]\n\nconst someValue = undefined;\nconst coalesced = someValue || 5;\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n deleteSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));", + "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Get a previously created schema\n// description: Gets information about a schema which was previously created in the project.\n// usage: node getSchema.js \n\n// [START pubsub_get_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function getSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const info = await schema.get();\n const fullName = await schema.getName();\n console.log(`Schema ${fullName} info: ${JSON.stringify(info, null, 4)}.`);\n}\n// [END pubsub_get_schema]\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n getSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));" +] + +exports['command line option "recursive" causes recursion and only matches samples 1'] = [ + "// Copyright 2019-2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * subscriptions with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Listen For Avro Records\n// description: Listens for records in Avro encoding from a subscription.\n// usage: node listenForAvroRecords.js [timeout-in-seconds]\n\n// [START pubsub_subscribe_avro_records]\n/**\n * TODO(developer): Uncomment these variables before running the sample.\n */\n// const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID';\n// const timeout = 60;\n\n// Imports the Google Cloud client library\nconst { PubSub, Schema, Encodings } = require(\"@google-cloud/pubsub\");\n\n// Node FS library, to load definitions\nconst fs = require(\"fs\");\n\n// And the Apache Avro library\nconst avro = require(\"avro-js\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nfunction listenForAvroRecords(subscriptionNameOrId, timeout) {\n // References an existing subscription\n const subscription = pubSubClient.subscription(subscriptionNameOrId);\n\n // Make an encoder using the official avro-js library.\n const definition = fs.\n readFileSync('system-test/fixtures/provinces.avsc').\n toString();\n const type = avro.parse(definition);\n\n // Create an event handler to handle messages\n let messageCount = 0;\n const messageHandler = async (message) => {\n // \"Ack\" (acknowledge receipt of) the message\n message.ack();\n\n // Get the schema metadata from the message.\n const schemaMetadata = Schema.metadataFromMessage(message.attributes);\n\n let result;\n switch (schemaMetadata.encoding) {\n case Encodings.Binary:\n result = type.fromBuffer(message.data);\n break;\n case Encodings.Json:\n result = type.fromString(message.data.toString());\n break;\n default:\n console.log(`Unknown schema encoding: ${schemaMetadata.encoding}`);\n break;\n }\n\n console.log(`Received message ${message.id}:`);\n console.log(`\\tData: ${JSON.stringify(result, null, 4)}`);\n console.log(`\\tAttributes: ${message.attributes}`);\n messageCount += 1;\n };\n\n // Listen for new messages until timeout is hit\n subscription.on('message', messageHandler);\n\n setTimeout(() => {\n subscription.removeListener('message', messageHandler);\n console.log(`${messageCount} message(s) received.`);\n }, timeout * 1000);\n\n use.optional.chaining();\n}\n// [END pubsub_subscribe_avro_records]\n\nfunction main(\nsubscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID',\ntimeout = 60)\n{\n timeout = Number(timeout);\n\n try {\n listenForAvroRecords(subscriptionNameOrId, timeout);\n } catch (err) {\n console.error(err.message);\n process.exitCode = 1;\n }\n}\n\nmain(...process.argv.slice(2));", + "// Copyright 2019-2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This sample demonstrates how to perform basic operations on topics with\n * the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Publish Avro Records to a Topic\n// description: Publishes a record in Avro to a topic with a schema.\n// usage: node publishAvroRecords.js \n\n// [START pubsub_publish_avro_records]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub, Encodings } = require(\"@google-cloud/pubsub\");\n\n// And the Apache Avro library\nconst avro = require(\"avro-js\");\nconst fs = require(\"fs\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\n\n\n\n\n\nasync function publishAvroRecords(topicNameOrId) {\n // Get the topic metadata to learn about its schema encoding.\n const topic = pubSubClient.topic(topicNameOrId);\n const [topicMetadata] = await topic.getMetadata();\n const topicSchemaMetadata = topicMetadata.schemaSettings;\n\n if (!topicSchemaMetadata) {\n console.log(`Topic ${topicNameOrId} doesn't seem to have a schema.`);\n return;\n }\n const schemaEncoding = topicSchemaMetadata.encoding;\n\n // Make an encoder using the official avro-js library.\n const definition = fs.\n readFileSync('system-test/fixtures/provinces.avsc').\n toString();\n const type = avro.parse(definition);\n\n // Encode the message.\n const province = {\n name: 'Ontario',\n post_abbr: 'ON'\n };\n let dataBuffer;\n switch (schemaEncoding) {\n case Encodings.Binary:\n dataBuffer = type.toBuffer(province);\n break;\n case Encodings.Json:\n dataBuffer = Buffer.from(type.toString(province));\n break;\n default:\n console.log(`Unknown schema encoding: ${schemaEncoding}`);\n break;\n }\n if (!dataBuffer) {\n console.log(`Invalid encoding ${schemaEncoding} on the topic.`);\n return;\n }\n\n const messageId = await topic.publish(dataBuffer);\n console.log(`Avro record ${messageId} published.`);\n}\n// [END pubsub_publish_avro_records]\n\nfunction main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') {\n publishAvroRecords(topicNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));" +] diff --git a/core/packages/typeless-sample-bot/package.json b/core/packages/typeless-sample-bot/package.json new file mode 100644 index 000000000000..3c0424c91be0 --- /dev/null +++ b/core/packages/typeless-sample-bot/package.json @@ -0,0 +1,63 @@ +{ + "name": "@google-cloud/typeless-sample-bot", + "description": "Google Cloud GitHub bot that converts TypeScript snippets into JavaScript", + "version": "3.1.2", + "license": "Apache-2.0", + "author": "Google LLC", + "engines": { + "node": ">=18" + }, + "repository": "googleapis/google-cloud-node", + "bin": "./build/src/bin/typeless-sample-bot.js", + "main": "./build/src/app.js", + "type": "module", + "files": [ + "build/src" + ], + "scripts": { + "compile": "tsc -p .", + "prepare": "npm run compile", + "pretest": "npm run compile", + "test": "c8 mocha build/test --recursive", + "snapshots-update": "SNAPSHOT_UPDATE=1 npm test", + "samples-test": "echo no system tests yet 🙀", + "system-test": "echo no system tests yet 🙀", + "lint": "gts check", + "fix": "gts fix" + }, + "dependencies": { + "@babel/core": "^7.26.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/preset-env": "^7.26.9", + "@babel/preset-typescript": "^7.26.0", + "@babel/traverse": "^7.26.9", + "chalk": "^5.4.1", + "debug": "^4.4.0", + "recast": "^0.23.11", + "yargs": "^17.7.2" + }, + "devDependencies": { + "@babel/cli": "^7.26.4", + "@babel/types": "^7.26.9", + "@types/babel__core": "^7.20.5", + "@types/babel__traverse": "^7.20.6", + "@types/mocha": "^10.0.10", + "@types/node": "^22.13.9", + "@types/sinon": "^17.0.4", + "@types/yargs": "^17.0.33", + "c8": "^10.1.3", + "gts": "^6.0.2", + "mocha": "^11.1.0", + "sinon": "21.0.3", + "snap-shot-it": "^7.9.10", + "typescript": "^5.8.2" + }, + "overrides": { + "@sinonjs/fake-timers": "15.2.1" + }, + "pnpm": { + "overrides": { + "@sinonjs/fake-timers": "15.2.1" + } + } +} diff --git a/core/packages/typeless-sample-bot/src/app.ts b/core/packages/typeless-sample-bot/src/app.ts new file mode 100644 index 000000000000..02d43246f821 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/app.ts @@ -0,0 +1,193 @@ +#!/usr/bin/env node +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import yargs from 'yargs'; +import loggers from './loggers.js'; +import {createLoggers} from './loggers.js'; +import util from 'node:util'; +import {symbols} from './symbols.js'; +import { + filterByContents, + findSamples, + transformSamples, + writeSamples, + waitForAllSamples, + fromArray, +} from './samples.js'; + +let returnValue = 0; + +// Converts an array of unknown-type items into a string suitable for +// printing to the console. +export function consolize(args: unknown[]): string { + const strings = args.map(a => { + if (typeof a === 'string') { + return a; + } else if (typeof a === 'number') { + return `${a}`; + } else { + return util.inspect(a, false, 2, true); + } + }); + return strings.join(' '); +} + +async function processArgs(args: string[]) { + const argv = await yargs(args) + .options({ + targets: { + demandOption: true, + type: 'array', + describe: 'one or more items to process', + alias: ['t'], + }, + recursive: { + demandOption: false, + boolean: true, + describe: 'process the target(s) as directories, recursively', + alias: ['r'], + }, + outputpath: { + demandOption: false, + type: 'string', + describe: + 'outputs default to being next to the original; if set, this option will specify the output for all files', + alias: ['o'], + }, + verbose: { + demandOption: false, + default: false, + boolean: true, + describe: + 'set flag to get verbose output about actions (GCP_DEBUG=verbose)', + alias: ['v'], + }, + debug: { + demandOption: false, + default: false, + boolean: true, + describe: 'same as using GCP_DEBUG=*', + alias: ['d'], + }, + art: { + demandOption: false, + boolean: true, + default: true, + describe: 'allow ASCII/ANSI art/colours', + alias: ['c'], + }, + }) + .help().argv; + + if (argv.mode === 'help') { + return undefined; + } + + symbols.art = argv.art; + + return argv; +} + +let loggersSetUp = false; +async function setupLoggers(verbose: boolean) { + // This may be needed on subsequent testing runs. + returnValue = 0; + + // Don't double-create or .on() anything. This can happen + // during testing. + if (loggersSetUp) { + return; + } + + await createLoggers(); + + // Set up our log outputs as needed + if (verbose) { + loggers.verbose.on('log', (args: unknown[]) => + console.debug(symbols.grey(consolize([symbols.bug, ...args]))) + ); + } + loggers.step.on('log', (args: unknown[]) => + console.log(consolize([symbols.step, ...args])) + ); + loggers.error.on('log', (args: unknown[]) => { + console.error(symbols.red(consolize([symbols.failure, ...args]))); + + // Also cause main() to return a failure. + returnValue = 1; + }); + + loggersSetUp = true; +} + +export async function main(args: string[]): Promise { + console.log( + symbols.green('Typeless sample bot, converts TS to JS sample snippets') + ); + + // Process command line args and get loggers configured. + const argv = await processArgs(args); + if (!argv) { + return 0; + } + await setupLoggers(argv.verbose); + + // Find all of the samples we're interested in working on. + let sampleFns: AsyncIterable; + if (argv.recursive) { + sampleFns = findSamples( + argv.targets.map(i => i.toString()), + /(?!node_modules).*\.ts$/ + ); + } else { + sampleFns = fromArray(argv.targets.map(i => i.toString())); + } + + // Filter down to samples that have a snippet tag. + const filtered = filterByContents(sampleFns); + + // Transform those samples using Babel. + const transformed = transformSamples(filtered); + + // Write out all of the output samples. + const written = writeSamples(transformed, argv.outputpath); + + try { + // Wait for the pipeline to complete. + const count = await waitForAllSamples(written); + + if (!count && !argv.recursive) { + // Should this be considred a failure? + loggers.error('No samples were selected.'); + } else { + console.log('No samples were found.'); + } + } catch (e) { + loggers.error('Exception during processing:', e); + } + + if (!returnValue) { + console.log(symbols.success, symbols.green('Generation complete!')); + } else { + console.log( + symbols.failure, + symbols.redBright( + 'Something failed. (Maybe not everything, check the log above.)' + ) + ); + } + + return returnValue; +} diff --git a/core/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts b/core/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts new file mode 100644 index 000000000000..eecae61de0d3 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts @@ -0,0 +1,25 @@ +#!/usr/bin/env node +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import {main} from '../app.js'; + +main(process.argv.slice(2)) + .then(e => process.exit(e)) + .catch((e: Error) => { + console.error( + `Top level exception: ${e.toString()} ${e.stack?.toString()}` + ); + process.exit(1); + }); diff --git a/core/packages/typeless-sample-bot/src/debug-js.d.ts b/core/packages/typeless-sample-bot/src/debug-js.d.ts new file mode 100644 index 000000000000..35da50a4b6d8 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/debug-js.d.ts @@ -0,0 +1,16 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Sadly this debug-js module doesn't seem to have typings. +declare module 'debug'; diff --git a/core/packages/typeless-sample-bot/src/gcp-debuglog.ts b/core/packages/typeless-sample-bot/src/gcp-debuglog.ts new file mode 100644 index 000000000000..869db73b6514 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/gcp-debuglog.ts @@ -0,0 +1,119 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import EventEmitter from 'node:events'; +import * as process from 'node:process'; +import * as util from 'node:util'; + +// Adds typings for event sinks. +export declare interface GcpDebugLogger { + on(event: 'log', listener: (args: unknown[]) => void): this; + on(event: string, listener: Function): this; +} + +// Our logger instance. This actually contains the meat of dealing +// with log lines, including EventEmitter +export class GcpDebugLogger extends EventEmitter { + // The function we'll call with new log lines. + // Should be built in Node util stuff, or the "debug" package, or whatever. + upstream: Function; + + // Self-referential function wrapper that calls invoke() on us. + func: GcpDebugLogFunction; + + constructor(upstream: Function) { + super(); + + this.upstream = upstream; + this.func = Object.assign(this.invoke.bind(this), { + // Also add an instance pointer back to us. + instance: this, + + // And pull over the EventEmitter functionality. + on: (event: string, listener: (args: unknown[]) => void) => + this.on(event, listener), + }) as unknown as GcpDebugLogFunction; + } + + invoke(...args: unknown[]): void { + // Push out any upstream logger first. + if (this.upstream) { + this.upstream(...args); + } + + // Emit sink events. + this.emit('log', args); + } +} + +// This can be used in place of a real logger while waiting for Promises. +export const placeholder = new GcpDebugLogger(() => {}).func; + +// Add typing info for the EventEmitter we're adding to the returned function. +export interface GcpDebugLogFunction extends Function { + instance: GcpDebugLogger; + on(event: 'log', listener: (args: unknown[]) => void): this; +} + +// Keep a copy of all namespaced loggers so users can reliably .on() them. +const loggerCache = new Map(); + +// True once we've imported any GCP logging variables into upstream loggers. +let varsSet = false; + +export default async function makeLogger( + namespace: string +): Promise { + // Reuse loggers so things like sinks are persistent. + if (loggerCache.has(namespace)) { + return loggerCache.get(namespace)!.func; + } + + // Look for the GCP debug variable shared across languages. + // Not sure what the format of this will be yet. + const gcpEnv = (process.env['GCP_DEBUG'] ?? '').split(','); + + // Are we plugging into any other popular frameworks? + const debugPkg = (await import('debug')).default; + let logOutput: Function; + if (debugPkg) { + logOutput = debugPkg(namespace); + + if (!varsSet) { + // Also copy over any GCP global enables. + const existingEnables = process.env['DEBUG'] ?? ''; + debugPkg.enable( + `${existingEnables}${existingEnables ? ',' : ''}${gcpEnv}` + ); + + varsSet = true; + } + } else { + logOutput = util.debuglog(namespace); + + if (!varsSet) { + // Also copy over any GCP global enables. + const existingEnables = process.env['NODE_DEBUG'] ?? ''; + process.env['NODE_DEBUG'] = `${existingEnables}${ + existingEnables ? ',' : '' + }${gcpEnv}`; + + varsSet = true; + } + } + + const logger = new GcpDebugLogger(logOutput); + loggerCache.set(namespace, logger); + return logger.func; +} diff --git a/core/packages/typeless-sample-bot/src/loggers.ts b/core/packages/typeless-sample-bot/src/loggers.ts new file mode 100644 index 000000000000..2903de6e8c12 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/loggers.ts @@ -0,0 +1,34 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import {placeholder} from './gcp-debuglog.js'; +import makeLog from './gcp-debuglog.js'; + +// This creates our topical loggers. Since this is ESM, loading modules is +// now an async operation, so we have to put some placeholders in (to get +// typings) until these are actually ready. + +const loggers = { + verbose: placeholder, + step: placeholder, + error: placeholder, +}; + +export async function createLoggers() { + loggers.verbose = await makeLog('verbose'); + loggers.step = await makeLog('step'); + loggers.error = await makeLog('error'); +} + +export default loggers; diff --git a/core/packages/typeless-sample-bot/src/preset-loader.ts b/core/packages/typeless-sample-bot/src/preset-loader.ts new file mode 100644 index 000000000000..2d46d7c4106a --- /dev/null +++ b/core/packages/typeless-sample-bot/src/preset-loader.ts @@ -0,0 +1,20 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Presets are loaded by proxy here so that we can circumvent the Babel +// path resolution process during load. + +import psTypescript from '@babel/preset-typescript'; + +export const typescript = psTypescript; diff --git a/core/packages/typeless-sample-bot/src/samples.ts b/core/packages/typeless-sample-bot/src/samples.ts new file mode 100644 index 000000000000..7c8dbc9e285d --- /dev/null +++ b/core/packages/typeless-sample-bot/src/samples.ts @@ -0,0 +1,148 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// TODO(feywind) - Don't lose spaces at the front of comments +// TODO(feywind) - Also add 'use strict' and a comment about being generated + +import loggers from './loggers.js'; +import {treeWalk} from './tree-walk.js'; +import {readFile, writeFile} from 'fs/promises'; +import babel from '@babel/core'; +import path from 'node:path'; +import {typescript as presetTypescript} from './preset-loader.js'; +import importToRequire from './transforms/import-to-require.js'; +import nullCoalescing from './transforms/null-coalescing.js'; +import optionalChaining from './transforms/optional-chaining.js'; +import {addComments} from './transforms/add-comments.js'; + +// Converts an async iterable into an array of the same type. +export async function toArray(iterable: AsyncIterable): Promise { + const output: T[] = []; + for await (const i of iterable) { + output.push(i); + } + + return output; +} + +// Converts an array into an async iterable of the same type. +export async function* fromArray(array: T[]): AsyncIterable { + for (const i of array) { + yield i; + } +} + +// Given a set of starting paths, search down for anything that matches the regex. +export async function* findSamples( + rootDirs: string[], + matcher?: RegExp +): AsyncIterable { + for (const rootDir of rootDirs) { + for await (const fn of treeWalk(rootDir)) { + if (matcher && !matcher.test(fn)) { + continue; + } + yield fn; + } + } +} + +// Ironically, this triggers snippet-bot, so there's a nonce in the middle: ()? +const sampleChecker = /\[()?START .*\]/; + +export interface Sample { + filename: string; + contents: string; +} + +// Filter an async iterable by file conents. This also loads the file contents +// and caches them, since we'll be needing them anyway. +export async function* filterByContents( + filenames: AsyncIterable +): AsyncIterable { + for await (const fn of filenames) { + const contents = (await readFile(fn)).toString(); + if (sampleChecker.test(contents)) { + yield { + filename: fn, + contents, + }; + } + } +} + +// Instead of a babelrc, this is used so that we can get more control over +// the transform process. +const babelConfig = { + presets: [[presetTypescript, {}]], + plugins: [[importToRequire], [nullCoalescing], [optionalChaining]], + parserOpts: {} as babel.ParserOptions, + generatorOpts: { + // Ensures that Babel keeps newlines so that comments end up + // on separate lines as before. + retainLines: true, + } as babel.GeneratorOptions, +}; + +// Transform all of the loaded samples from the async iterator, +// producing output samples that have been transformed, with a new filename. +export async function* transformSamples( + samples: AsyncIterable +): AsyncIterable { + for await (const s of samples) { + const config = Object.assign({}, babelConfig, {filename: s.filename}); + const transformed = await babel.transformAsync(s.contents, config); + let contents = transformed?.code || ''; + contents = addComments(contents); + yield { + filename: s.filename.replace(/\.ts$/g, '.js'), + contents, + }; + } +} + +// Write out all samples to the file system. +export async function* writeSamples( + samples: AsyncIterable, + outputPath?: string +): AsyncIterable { + for await (const s of samples) { + // If requested, rewrite the output path to be elsewhere. + const newName = outputPath + ? path.join(outputPath, path.basename(s.filename)) + : s.filename; + + loggers.verbose('writing new sample', newName); + await writeFile(newName, s.contents); + + yield { + filename: newName, + contents: s.contents, + }; + } +} + +// Terminator function that waits for everything else to complete, +// and returns a count of how many we processed. +export async function waitForAllSamples( + samples: AsyncIterable +): Promise { + let count = 0; + for await (const s of samples) { + loggers.step('Generated', s.filename); + count++; + } + + return count; +} diff --git a/core/packages/typeless-sample-bot/src/symbols.ts b/core/packages/typeless-sample-bot/src/symbols.ts new file mode 100644 index 000000000000..d7295ee39e2c --- /dev/null +++ b/core/packages/typeless-sample-bot/src/symbols.ts @@ -0,0 +1,98 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import chalk from 'chalk'; + +/** + * `Symbols` is our switchboard for accessing things that we might + * need to disable for accessibility or other reasons. This takes care + * of getting back reasonable text for symbols, as well as coloration. + * + * This module serves a secondary goal of containing all emoji text + * to the one file, to avoid messy unicode source files. + */ +class Symbols { + // Controlled by the arg parser. + private _art = true; + + get art() { + return this._art; + } + + set art(useArt: boolean) { + this._art = useArt; + } + + // Looks up the symbol set to use, based on `art`. + private get symbolSet(): string[] { + if (this._art) { + return emojiSymbols; + } else { + return plainSymbols; + } + } + + // Wrapper for chalk.green() that turns off if `art` is false. + green(str: string): string { + return this._art ? chalk.green(str) : str; + } + + // Wrapper for chalk.grey() that turns off if `art` is false. + grey(str: string): string { + return this._art ? chalk.grey(str) : str; + } + + // Wrapper for chalk.red() that turns off if `art` is false. + red(str: string): string { + return this._art ? chalk.red(str) : str; + } + + // Wrapper for chalk.redBright() that turns off if `art` is false. + redBright(str: string): string { + return this._art ? chalk.redBright(str) : str; + } + + // Returns an appropriate symbol text for "debug", based on `art`. + get bug(): string { + return this.symbolSet[symbolEnum.bug]; + } + + // Returns an appropriate symbol text for a "failure", based on `art`. + get failure(): string { + return this.symbolSet[symbolEnum.failure]; + } + + // Returns an appropriate symbol text for a "success", based on `art`. + get success(): string { + return this.symbolSet[symbolEnum.success]; + } + + // Returns an appropriate symbol text for a "step", based on `art`. + get step(): string { + return this.symbolSet[symbolEnum.step]; + } +} + +export const symbols = new Symbols(); + +const symbolEnum = { + bug: 0, + failure: 1, + success: 2, + step: 3, +}; + +const emojiSymbols = ['🐞', '❌', '✅', '✨']; + +const plainSymbols = ['[bug]', '[error]', '[success]', '[step]']; diff --git a/core/packages/typeless-sample-bot/src/transforms/add-comments.ts b/core/packages/typeless-sample-bot/src/transforms/add-comments.ts new file mode 100644 index 000000000000..076c9453fa67 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/transforms/add-comments.ts @@ -0,0 +1,42 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const headerText = ` +// This is a generated sample, using the typeless sample bot. Please +// look for the source TypeScript sample (.ts) for modifications. +'use strict'; + +`.trim(); + +/** + * Adds the header comments about the generation of the sample and the + * 'use strict' line for JS. Rather than Babel, this just uses simple + * text searching. The reason for that is that it's much simpler to do + * this particular transform that way. Rather than traversing an AST, + * this simply looks for the first blank line and inserts the block there. + * If it can't find one, it puts it at the top. + */ +export function addComments(text: string): string { + text = text.replace('\r', ''); + const lines = text.split('\n'); + const firstBlank = lines.findIndex(l => l.length === 0); + if (firstBlank < 0) { + // Apparently the whole file has no blank lines? + return headerText + text + '\n\n'; + } else { + lines.splice(firstBlank, 0, '\n' + headerText); + } + + return lines.join('\n'); +} diff --git a/core/packages/typeless-sample-bot/src/transforms/babel.ts b/core/packages/typeless-sample-bot/src/transforms/babel.ts new file mode 100644 index 000000000000..5cc1b22240ee --- /dev/null +++ b/core/packages/typeless-sample-bot/src/transforms/babel.ts @@ -0,0 +1,28 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Reference notes: +// https://lihautan.com/step-by-step-guide-for-writing-a-babel-transformation/ +// https://lihautan.com/babel-ast-explorer/ +// https://github.com/esamattis/babel-plugin-ts-optchain/blob/master/packages/babel-plugin-ts-optchain/src/plugin.ts + +import {NodePath, Visitor} from '@babel/traverse'; +import * as Babel from '@babel/types'; + +export interface VisitorPlugin { + visitor: Visitor; +} + +export type NodePathArray = NodePath[]; +export type NodePathSingle = NodePath; diff --git a/core/packages/typeless-sample-bot/src/transforms/import-to-require.ts b/core/packages/typeless-sample-bot/src/transforms/import-to-require.ts new file mode 100644 index 000000000000..7ef0081503d7 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/transforms/import-to-require.ts @@ -0,0 +1,114 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import * as Babel from '@babel/types'; +import {NodePath} from '@babel/traverse'; +import {NodePathArray, NodePathSingle, VisitorPlugin} from './babel'; + +function getArray(path: NodePathSingle, subPathName: string): NodePathArray { + return path.get(subPathName) as NodePathArray; +} + +function getIdentifier(path: NodePath, subPathName: string): string { + const nodeSingle = path.get(subPathName) as NodePathSingle; + const nodeIdentifier = nodeSingle.node as Babel.Identifier; + return nodeIdentifier.name; +} + +function getStringValue(path: NodePath, subPathName: string): string { + const nodeSingle = path.get(subPathName) as NodePathSingle; + const stringLiteral = nodeSingle.node as Babel.StringLiteral; + return stringLiteral.value; +} + +// ImportDeclaration +function specificImport(path: NodePathSingle) { + const specifiers: NodePathArray = getArray(path, 'specifiers'); + const ids = specifiers.map((s: NodePathSingle) => { + // s: ImportSpecifier + const importedName = getIdentifier(s, 'imported'); + const localName = getIdentifier(s, 'local'); + if (importedName !== localName) { + console.error( + 'Imported name', + importedName, + 'is not the same as local name', + localName + ); + return ''; + } else { + return importedName; + } + }); + const from = getStringValue(path, 'source'); + const properties = ids.map(id => { + return Babel.objectProperty( + /* key */ Babel.identifier(id), + /* value */ Babel.identifier(id), + /* computed */ false, + /* shorthand */ true + ); + }); + + const declarator = Babel.variableDeclarator( + Babel.objectPattern(properties), + Babel.callExpression(Babel.identifier('require'), [ + Babel.stringLiteral(from), + ]) + ); + + const replacement = Babel.inherits( + Babel.variableDeclaration('const', [declarator]), + path.node + ); + path.replaceWith(replacement); +} + +// ImportDeclaration +function wildcardImport(path: NodePathSingle) { + const specifiers: NodePathArray = getArray(path, 'specifiers'); + const ns = getIdentifier(specifiers[0], 'local'); + const from = getStringValue(path, 'source'); + + const declarator = Babel.variableDeclarator( + Babel.identifier(ns), + Babel.callExpression(Babel.identifier('require'), [ + Babel.stringLiteral(from), + ]) + ); + + const replacement = Babel.inherits( + Babel.variableDeclaration('const', [declarator]), + path.node + ); + path.replaceWith(replacement); +} + +export default function importToRequire(): VisitorPlugin { + return { + visitor: { + ImportDeclaration(path: NodePathSingle) { + const specifiers = path.get('specifiers') as NodePathArray; + if (specifiers && specifiers.length > 0) { + if (specifiers[0].isImportSpecifier()) { + specificImport(path); + } else if (specifiers[0].isImportNamespaceSpecifier()) { + wildcardImport(path); + } + path.skip(); + } + }, + }, + }; +} diff --git a/core/packages/typeless-sample-bot/src/transforms/null-coalescing.ts b/core/packages/typeless-sample-bot/src/transforms/null-coalescing.ts new file mode 100644 index 000000000000..a78be5989a38 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/transforms/null-coalescing.ts @@ -0,0 +1,33 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import * as Babel from '@babel/types'; +import {NodePathSingle, VisitorPlugin} from './babel'; + +// Because null coalescing is still a proposal in many versions of Node, +// go ahead and convert it to plain ||. It should work in TypeScript. +export default function nullCoalescing(): VisitorPlugin { + return { + visitor: { + LogicalExpression(path: NodePathSingle) { + const node = path.node as Babel.LogicalExpression; + if (node.operator === '??') { + path.replaceWith( + Babel.logicalExpression('||', node.left, node.right) + ); + } + }, + }, + }; +} diff --git a/core/packages/typeless-sample-bot/src/transforms/optional-chaining.ts b/core/packages/typeless-sample-bot/src/transforms/optional-chaining.ts new file mode 100644 index 000000000000..ad9246610004 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/transforms/optional-chaining.ts @@ -0,0 +1,48 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import * as Babel from '@babel/types'; +import {NodePathSingle, VisitorPlugin} from './babel.js'; + +// Because optional chaining is still a proposal in many versions of Node, +// go ahead and convert it to plain '.'. It should work in TypeScript. +export default function optionalChaining(): VisitorPlugin { + return { + visitor: { + OptionalCallExpression(path: NodePathSingle) { + const node = path.node as Babel.OptionalCallExpression; + path.replaceWith(Babel.callExpression(node.callee, node.arguments)); + }, + OptionalMemberExpression(path: NodePathSingle) { + const node = path.node as Babel.OptionalMemberExpression; + path.replaceWith( + Babel.memberExpression( + node.object, + node.property, + node.computed, + node.optional + ) + ); + }, + LogicalExpression(path: NodePathSingle) { + const node = path.node as Babel.LogicalExpression; + if (node.operator === '??') { + path.replaceWith( + Babel.logicalExpression('||', node.left, node.right) + ); + } + }, + }, + }; +} diff --git a/core/packages/typeless-sample-bot/src/tree-walk.ts b/core/packages/typeless-sample-bot/src/tree-walk.ts new file mode 100644 index 000000000000..41aaf05ec302 --- /dev/null +++ b/core/packages/typeless-sample-bot/src/tree-walk.ts @@ -0,0 +1,30 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import {resolve} from 'node:path'; +import {readdir} from 'node:fs/promises'; + +// Given a root directory, traverse its tree to find all files. This +// will be done using async iterators, returning results opportunistically. +export async function* treeWalk(rootDir: string): AsyncIterable { + const entries = await readdir(rootDir, {withFileTypes: true}); + for (const entry of entries) { + const resolved = resolve(rootDir, entry.name); + if (entry.isDirectory()) { + yield* treeWalk(resolved); + } else { + yield resolved; + } + } +} diff --git a/core/packages/typeless-sample-bot/src/typescript-preset.d.ts b/core/packages/typeless-sample-bot/src/typescript-preset.d.ts new file mode 100644 index 000000000000..3e4e4990bb8b --- /dev/null +++ b/core/packages/typeless-sample-bot/src/typescript-preset.d.ts @@ -0,0 +1,17 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This is needed to work around Babel's preset loading logic, since we +// may need to run from a path that's not our node_modules. +declare module '@babel/preset-typescript'; diff --git a/core/packages/typeless-sample-bot/test/fixtures/createTopic.js b/core/packages/typeless-sample-bot/test/fixtures/createTopic.js new file mode 100644 index 000000000000..6e9ac0b967bd --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/createTopic.js @@ -0,0 +1,59 @@ +// Copyright 2019-2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This sample demonstrates how to perform basic operations on topics with + * the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +'use strict'; + +// This test fixture sample has been modified to factor out changes that +// gts fix would reverse anyway. + +// sample-metadata: +// title: Create Topic +// description: Creates a new topic. +// usage: node createTopic.js + +async function main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') { + // [START pubsub_create_topic] + /** + * TODO(developer): Uncomment this variable before running the sample. + */ + // const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID'; + + // Imports the Google Cloud client library + const {PubSub} = require('@google-cloud/pubsub'); + + // Creates a client; cache this for further use + const pubSubClient = new PubSub(); + + async function createTopic() { + // Creates a new topic + await pubSubClient.createTopic(topicNameOrId); + console.log(`Topic ${topicNameOrId} created.`); + } + + createTopic(); + // [END pubsub_create_topic] +} + +main(...process.argv.slice(2)).catch((e) => { + console.error(e); + process.exitCode = -1; +}); diff --git a/core/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts b/core/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts new file mode 100644 index 000000000000..c2d6eb1420cd --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This application demonstrates how to perform basic operations on + * schemas with the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: Delete a previously created schema +// description: Deletes a schema which was previously created in the project. +// usage: node deleteSchema.js + +// [START pubsub_delete_schema] +/** + * TODO(developer): Uncomment this variable before running the sample. + */ +// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID'; + +// Imports the Google Cloud client library +import {PubSub} from '@google-cloud/pubsub'; + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +async function deleteSchema(schemaNameOrId: string) { + const schema = pubSubClient.schema(schemaNameOrId); + const name = await schema.getName(); + await schema.delete(); + console.log(`Schema ${name} deleted.`); +} +// [END pubsub_delete_schema] + +const someValue: number | undefined = undefined; +const coalesced = someValue ?? 5; + +function main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') { + deleteSchema(schemaNameOrId).catch(err => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(...process.argv.slice(2)); diff --git a/core/packages/typeless-sample-bot/test/fixtures/empty-folder/.gitkeep b/core/packages/typeless-sample-bot/test/fixtures/empty-folder/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/core/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts b/core/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts new file mode 100644 index 000000000000..b363885b6fda --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts @@ -0,0 +1,111 @@ +// Copyright 2019-2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This application demonstrates how to perform basic operations on + * subscriptions with the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: Listen For Avro Records +// description: Listens for records in Avro encoding from a subscription. +// usage: node listenForAvroRecords.js [timeout-in-seconds] + +// [START pubsub_subscribe_avro_records] +/** + * TODO(developer): Uncomment these variables before running the sample. + */ +// const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID'; +// const timeout = 60; + +// Imports the Google Cloud client library +import {PubSub, Schema, Encodings, Message} from '@google-cloud/pubsub'; + +// Node FS library, to load definitions +import * as fs from 'fs'; + +// And the Apache Avro library +import * as avro from 'avro-js'; + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +function listenForAvroRecords(subscriptionNameOrId: string, timeout: number) { + // References an existing subscription + const subscription = pubSubClient.subscription(subscriptionNameOrId); + + // Make an encoder using the official avro-js library. + const definition = fs + .readFileSync('system-test/fixtures/provinces.avsc') + .toString(); + const type = avro.parse(definition); + + // Create an event handler to handle messages + let messageCount = 0; + const messageHandler = async (message: Message) => { + // "Ack" (acknowledge receipt of) the message + message.ack(); + + // Get the schema metadata from the message. + const schemaMetadata = Schema.metadataFromMessage(message.attributes); + + let result: object | undefined; + switch (schemaMetadata.encoding) { + case Encodings.Binary: + result = type.fromBuffer(message.data); + break; + case Encodings.Json: + result = type.fromString(message.data.toString()); + break; + default: + console.log(`Unknown schema encoding: ${schemaMetadata.encoding}`); + break; + } + + console.log(`Received message ${message.id}:`); + console.log(`\tData: ${JSON.stringify(result, null, 4)}`); + console.log(`\tAttributes: ${message.attributes}`); + messageCount += 1; + }; + + // Listen for new messages until timeout is hit + subscription.on('message', messageHandler); + + setTimeout(() => { + subscription.removeListener('message', messageHandler); + console.log(`${messageCount} message(s) received.`); + }, timeout * 1000); + + use?.optional?.chaining?.(); +} +// [END pubsub_subscribe_avro_records] + +function main( + subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID', + timeout = 60 +) { + timeout = Number(timeout); + + try { + listenForAvroRecords(subscriptionNameOrId, timeout); + } catch (err) { + console.error(err.message); + process.exitCode = 1; + } +} + +main(...process.argv.slice(2)); diff --git a/core/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts b/core/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts new file mode 100644 index 000000000000..d269f5479266 --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts @@ -0,0 +1,101 @@ +// Copyright 2019-2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This sample demonstrates how to perform basic operations on topics with + * the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: Publish Avro Records to a Topic +// description: Publishes a record in Avro to a topic with a schema. +// usage: node publishAvroRecords.js + +// [START pubsub_publish_avro_records] +/** + * TODO(developer): Uncomment this variable before running the sample. + */ +// const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID'; + +// Imports the Google Cloud client library +import {PubSub, Encodings} from '@google-cloud/pubsub'; + +// And the Apache Avro library +import * as avro from 'avro-js'; +import * as fs from 'fs'; + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +interface ProvinceObject { + name: string; + post_abbr: string; +} + +async function publishAvroRecords(topicNameOrId: string) { + // Get the topic metadata to learn about its schema encoding. + const topic = pubSubClient.topic(topicNameOrId); + const [topicMetadata] = await topic.getMetadata(); + const topicSchemaMetadata = topicMetadata.schemaSettings; + + if (!topicSchemaMetadata) { + console.log(`Topic ${topicNameOrId} doesn't seem to have a schema.`); + return; + } + const schemaEncoding = topicSchemaMetadata.encoding; + + // Make an encoder using the official avro-js library. + const definition = fs + .readFileSync('system-test/fixtures/provinces.avsc') + .toString(); + const type = avro.parse(definition); + + // Encode the message. + const province: ProvinceObject = { + name: 'Ontario', + post_abbr: 'ON', + }; + let dataBuffer: Buffer | undefined; + switch (schemaEncoding) { + case Encodings.Binary: + dataBuffer = type.toBuffer(province); + break; + case Encodings.Json: + dataBuffer = Buffer.from(type.toString(province)); + break; + default: + console.log(`Unknown schema encoding: ${schemaEncoding}`); + break; + } + if (!dataBuffer) { + console.log(`Invalid encoding ${schemaEncoding} on the topic.`); + return; + } + + const messageId = await topic.publish(dataBuffer); + console.log(`Avro record ${messageId} published.`); +} +// [END pubsub_publish_avro_records] + +function main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') { + publishAvroRecords(topicNameOrId).catch(err => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(...process.argv.slice(2)); diff --git a/core/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts b/core/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts new file mode 100644 index 000000000000..fd9282e0b0af --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts @@ -0,0 +1,82 @@ +// Copyright 2019-2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This sample demonstrates how to perform basic operations on topics with + * the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: Validate a schema definition +// description: Validates an Avro-based schema definition before creation (or other use). +// usage: node validateSchema.js + +// (No tag, currently - this sample is non-canonical) +/** + * TODO(developer): Uncomment this variable before running the sample. + */ +// const schemaText = 'YOUR_SCHEMA_TEXT'; + +// Imports the Google Cloud client library +import {PubSub, SchemaTypes} from '@google-cloud/pubsub'; + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +async function validateSchema(schemaText: string) { + try { + await pubSubClient.validateSchema({ + type: SchemaTypes.Avro, + definition: schemaText, + }); + console.log('Validated with no error.'); + } catch (e) { + console.log('Received error:', e); + } +} +// (No tag, currently - this sample is non-canonical) + +// Just a sample AVSC definition to try. +const sampleAvsc = ` +{ + "type":"record", + "name":"Province", + "namespace":"utilities", + "doc":"A list of provinces in Canada.", + "fields":[ + { + "name":"name", + "type":"string", + "doc":"The common name of the province." + }, + { + "name":"post_abbr", + "type":"string", + "doc":"The postal code abbreviation of the province." + } + ] +} +`; + +function main(schemaText = sampleAvsc) { + validateSchema(schemaText).catch(err => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(...process.argv.slice(2)); diff --git a/core/packages/typeless-sample-bot/test/fixtures/getSchema.ts b/core/packages/typeless-sample-bot/test/fixtures/getSchema.ts new file mode 100644 index 000000000000..bd7e618e8427 --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/getSchema.ts @@ -0,0 +1,55 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This application demonstrates how to perform basic operations on + * schemas with the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: Get a previously created schema +// description: Gets information about a schema which was previously created in the project. +// usage: node getSchema.js + +// [START pubsub_get_schema] +/** + * TODO(developer): Uncomment this variable before running the sample. + */ +// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID'; + +// Imports the Google Cloud client library +import {PubSub} from '@google-cloud/pubsub'; + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +async function getSchema(schemaNameOrId: string) { + const schema = pubSubClient.schema(schemaNameOrId); + const info = await schema.get(); + const fullName = await schema.getName(); + console.log(`Schema ${fullName} info: ${JSON.stringify(info, null, 4)}.`); +} +// [END pubsub_get_schema] + +function main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') { + getSchema(schemaNameOrId).catch(err => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(...process.argv.slice(2)); diff --git a/core/packages/typeless-sample-bot/test/fixtures/listSchemas.ts b/core/packages/typeless-sample-bot/test/fixtures/listSchemas.ts new file mode 100644 index 000000000000..4b94ef6be54e --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/listSchemas.ts @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * This application demonstrates how to perform basic operations on + * schemas with the Google Cloud Pub/Sub API. + * + * For more information, see the README.md under /pubsub and the documentation + * at https://cloud.google.com/pubsub/docs. + */ + +// sample-metadata: +// title: List schemas on a project +// description: Gets a list of schemas which were previously created in the project. +// usage: node listSchemas.js + +// [START pubsub_list_schemas] + +// Imports the Google Cloud client library +import {PubSub} from '@google-cloud/pubsub'; + +// Creates a client; cache this for further use +const pubSubClient = new PubSub(); + +async function listSchemas() { + for await (const s of pubSubClient.listSchemas()) { + console.log(s.name); + } + console.log('Listed schemas.'); +} +// [END pubsub_list_schemas] + +function main() { + listSchemas().catch(err => { + console.error(err.message); + process.exitCode = 1; + }); +} + +main(); diff --git a/core/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts b/core/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts new file mode 100644 index 000000000000..4d3833e88369 --- /dev/null +++ b/core/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts @@ -0,0 +1,3 @@ +// This file +// has no +// blank lines \ No newline at end of file diff --git a/core/packages/typeless-sample-bot/test/index.ts b/core/packages/typeless-sample-bot/test/index.ts new file mode 100644 index 000000000000..6b55c5fb5d2e --- /dev/null +++ b/core/packages/typeless-sample-bot/test/index.ts @@ -0,0 +1,235 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import * as assert from 'assert'; +import {describe, it} from 'mocha'; +import snapshot from 'snap-shot-it'; +import * as samples from '../src/samples.js'; +import * as main from '../src/app.js'; +import {readFile, rm, stat, mkdir} from 'node:fs/promises'; +import * as url from 'node:url'; +import * as path from 'node:path'; +import * as sinon from 'sinon'; + +// ESM removes __dirname. +const dirName = url.fileURLToPath(new URL('.', import.meta.url)); + +// We're in 'build' here, need to back out. +const fixturePath = path.join(dirName, '..', '..', 'test', 'fixtures'); + +async function loadFixture(name: string): Promise { + const fn = name.includes(path.sep) ? name : path.join(fixturePath, name); + return (await readFile(fn)).toString(); +} + +describe('sample transformation', () => { + it('does not change JS', async () => { + const fixture = await loadFixture('createTopic.js'); + + const sIn = samples.fromArray([ + { + filename: 'test.js', + contents: fixture, + }, + ]); + const sOut = await samples.toArray(samples.transformSamples(sIn)); + snapshot(sOut); + }); + + it('correctly transforms TS', async () => { + const fixture = await loadFixture('listSchemas.ts'); + + const sIn = samples.fromArray([ + { + filename: 'listSchemas.ts', + contents: fixture, + }, + ]); + + const sOut = await samples.toArray(samples.transformSamples(sIn)); + + snapshot(sOut[0].contents); + }); + + it('correctly adds use strict when the sample has a licence block', async () => { + const fixture = await loadFixture('listSchemas.ts'); + + const sIn = samples.fromArray([ + { + filename: 'listSchemas.ts', + contents: fixture, + }, + ]); + + const sOut = await samples.toArray(samples.transformSamples(sIn)); + assert.strictEqual(sOut[0].contents.includes('use strict'), true); + }); + + it('correctly adds use strict when the sample has no blank lines', async () => { + const fixture = await loadFixture('noBlankLines.ts'); + + const sIn = samples.fromArray([ + { + filename: 'listSchemas.ts', + contents: fixture, + }, + ]); + + const sOut = await samples.toArray(samples.transformSamples(sIn)); + assert.strictEqual(sOut[0].contents.includes('use strict'), true); + }); +}); + +describe('command line option', () => { + const sandbox = sinon.createSandbox(); + + afterEach(() => { + sandbox.restore(); + }); + + it('"no-art" removes emojis and colours', async () => { + const cmdline = ['node', 'index.ts', '--no-art', '-t', 'foo.ts']; + sandbox.stub(console, 'error').callsFake((...params) => { + if (typeof params[0] === 'string') { + assert.strictEqual(params[0].includes('[error]'), true); + } + }); + + const retcode = await main.main(cmdline); + assert.strictEqual(retcode, 1); + }); + + it('"targets" works with a single sample file', async () => { + try { + const cmdline = [ + 'node', + 'index.ts', + '--targets', + path.join(fixturePath, 'listSchemas.ts'), + ]; + const retcode = await main.main(cmdline); + assert.strictEqual(retcode, 0); + const contents = await loadFixture('listSchemas.js'); + snapshot(contents); + } finally { + rm(path.join(fixturePath, 'listSchemas.js')).catch(() => {}); + } + }); + + it('"targets" works with multiple sample files', async () => { + try { + const cmdline = [ + 'node', + 'index.ts', + '--targets', + path.join(fixturePath, 'deleteSchema.ts'), + path.join(fixturePath, 'getSchema.ts'), + ]; + const retcode = await main.main(cmdline); + assert.strictEqual(retcode, 0); + const contents = [ + await loadFixture('deleteSchema.js'), + await loadFixture('getSchema.js'), + ]; + snapshot(contents); + } finally { + rm(path.join(fixturePath, 'deleteSchema.js')).catch(() => {}); + rm(path.join(fixturePath, 'getSchema.js')).catch(() => {}); + } + }); + + it('"outputpath" causes the output to move', async () => { + const testOutputPath = path.join(fixturePath, 'alternate'); + const cmdline = [ + 'node', + 'index.ts', + '--targets', + path.join(fixturePath, 'deleteSchema.ts'), + path.join(fixturePath, 'getSchema.ts'), + '--outputpath', + testOutputPath, + ]; + const outputs = [ + path.join(testOutputPath, 'deleteSchema.js'), + path.join(testOutputPath, 'getSchema.js'), + ]; + try { + await mkdir(testOutputPath); + const retcode = await main.main(cmdline); + assert.strictEqual(retcode, 0); + const contents = [ + await loadFixture(outputs[0]), + await loadFixture(outputs[1]), + ]; + snapshot(contents); + } finally { + rm(testOutputPath, { + recursive: true, + }).catch(() => {}); + } + }); + + it('"recursive" causes recursion and only matches samples', async () => { + const targets = [ + path.join(fixturePath, 'folder', 'listenForAvroRecords.js'), + path.join(fixturePath, 'folder', 'publishAvroRecords.js'), + ]; + const antiTarget = path.join(fixturePath, 'folder', 'validateSchema.js'); + try { + const cmdline = [ + 'node', + 'index.ts', + '--recursive', + '--targets', + path.join(fixturePath, 'folder'), + ]; + const retcode = await main.main(cmdline); + assert.strictEqual(retcode, 0); + + const contents = [ + await loadFixture(targets[0]), + await loadFixture(targets[1]), + ]; + snapshot(contents); + + await assert.rejects(stat(antiTarget)); + } finally { + targets.forEach(t => { + rm(t).catch(() => {}); + }); + } + }); + + it('does not exit with 0 when run on empty folder', async () => { + const cmdline = [ + 'node', + 'index.ts', + '--recursive', + '--targets', + path.join(fixturePath, 'empty-folder'), + ]; + const retcode = await main.main(cmdline); + assert.strictEqual(retcode, 0); + }); +}); +/* + +More test ideas: + +- TS samples should come out with 'use require' and a "generated" comment + This is not in the generator yet. + +- Separate tests for debuglog? + +*/ diff --git a/core/packages/typeless-sample-bot/tsconfig.json b/core/packages/typeless-sample-bot/tsconfig.json new file mode 100644 index 000000000000..695d9e5159b4 --- /dev/null +++ b/core/packages/typeless-sample-bot/tsconfig.json @@ -0,0 +1,112 @@ +{ + // This file is handwritten since this library is also handwritten + "extends": "./node_modules/gts/tsconfig-google.json", + "include": [ + "src/*.ts", + "src/**/*.ts", + "test/*.ts", + "tests/**/*.ts" + ], + "exclude": [ + "test/fixtures/*.ts" + ], + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + // "incremental": true, /* Enable incremental compilation */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "lib": ["es2020"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ + // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + + /* Modules */ + "module": "ES2022", /* Specify what module code is generated. */ + "rootDir": ".", /* Specify the root folder within your source files. */ + "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + "resolveJsonModule": true, /* Enable importing .json files */ + // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + "outDir": "build", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ + // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ + // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} From cf30b243b2cbea00faec984e548b39b55b217068 Mon Sep 17 00:00:00 2001 From: feywind <57276408+feywind@users.noreply.github.com> Date: Tue, 12 May 2026 15:53:59 -0400 Subject: [PATCH 2/4] chore: move gapic-node-processing to core/packages --- .../gapic-node-processing/.c8rc.json | 0 .../gapic-node-processing/.gitignore | 0 .../gapic-node-processing/.mocharc.js | 0 .../packages}/gapic-node-processing/.nycrc | 0 .../gapic-node-processing/CHANGELOG.md | 0 .../packages}/gapic-node-processing/README.md | 0 .../__snapshots__/templating.test.js | 0 .../gapic-node-processing/package.json | 0 .../gapic-node-processing/src/cli.ts | 0 .../src/combine-libraries.ts | 0 .../src/commands/bootstrap-library.ts | 0 .../src/commands/generate-combined-library.ts | 0 .../src/commands/generate-readme.ts | 0 .../src/generate-index.ts | 0 .../src/generate-readme.ts | 0 .../src/get-bootstrap-template-vars.ts | 0 .../gapic-node-processing/src/library.ts | 0 .../gapic-node-processing/src/templating.ts | 0 .../bootstrap-templates/.OwlBot.yaml | 0 .../.repo-metadata.json.njk | 0 .../templates/bootstrap-templates/LICENSE | 0 .../bootstrap-templates/package.json | 0 .../post-processing-templates/index.ts.njk | 0 .../post-processing-templates/sample.njk | 0 .../test/bootstrap-library-command.test.ts | 0 .../test/combine-libraries.test.ts | 0 .../analytics-data-v1alpha-nodejs/.gitignore | 0 .../analytics-data-v1alpha-nodejs/.jsdoc.js | 0 .../analytics-data-v1alpha-nodejs/.mocharc.js | 0 .../analytics-data-v1alpha-nodejs/.nycrc | 0 .../CODE_OF_CONDUCT.md | 0 .../CONTRIBUTING.md | 0 .../analytics-data-v1alpha-nodejs/LICENSE | 0 .../analytics-data-v1alpha-nodejs/README.md | 0 .../package.json | 0 .../data/v1alpha/analytics_data_api.proto | 0 .../google/analytics/data/v1alpha/data.proto | 0 .../protos/protos.d.ts | 0 .../protos/protos.js | 0 .../protos/protos.json | 0 ...pha_analytics_data.create_audience_list.js | 0 ...ics_data.create_recurring_audience_list.js | 0 ...alpha_analytics_data.create_report_task.js | 0 .../alpha_analytics_data.get_audience_list.js | 0 ...ytics_data.get_property_quotas_snapshot.js | 0 ...lytics_data.get_recurring_audience_list.js | 0 .../alpha_analytics_data.get_report_task.js | 0 ...lpha_analytics_data.list_audience_lists.js | 0 ...tics_data.list_recurring_audience_lists.js | 0 .../alpha_analytics_data.list_report_tasks.js | 0 ...lpha_analytics_data.query_audience_list.js | 0 .../alpha_analytics_data.query_report_task.js | 0 .../alpha_analytics_data.run_funnel_report.js | 0 ...alytics_data.sheet_export_audience_list.js | 0 ...etadata_google.analytics.data.v1alpha.json | 0 .../src/index.ts | 0 .../v1alpha/alpha_analytics_data_client.ts | 0 .../alpha_analytics_data_client_config.json | 0 .../alpha_analytics_data_proto_list.json | 0 .../src/v1alpha/gapic_metadata.json | 0 .../src/v1alpha/index.ts | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../system-test/install.ts | 0 .../gapic_alpha_analytics_data_v1alpha.ts | 0 .../tsconfig.json | 0 .../webpack.config.js | 0 .../.gitignore | 0 .../.jsdoc.js | 0 .../.mocharc.js | 0 .../.nycrc | 0 .../CODE_OF_CONDUCT.md | 0 .../CONTRIBUTING.md | 0 .../LICENSE | 0 .../README.md | 0 .../package.json | 0 .../data/v1beta/analytics_data_api.proto | 0 .../google/analytics/data/v1beta/data.proto | 0 .../protos/protos.d.ts | 0 .../protos/protos.js | 0 .../protos/protos.json | 0 ..._analytics_data.batch_run_pivot_reports.js | 0 .../beta_analytics_data.batch_run_reports.js | 0 ...beta_analytics_data.check_compatibility.js | 0 ...a_analytics_data.create_audience_export.js | 0 ...beta_analytics_data.get_audience_export.js | 0 .../beta_analytics_data.get_metadata.js | 0 ...ta_analytics_data.list_audience_exports.js | 0 ...ta_analytics_data.query_audience_export.js | 0 .../beta_analytics_data.run_pivot_report.js | 0 ...beta_analytics_data.run_realtime_report.js | 0 .../v1beta/beta_analytics_data.run_report.js | 0 ...metadata_google.analytics.data.v1beta.json | 0 .../src/index.ts | 0 .../src/v1beta/beta_analytics_data_client.ts | 0 .../beta_analytics_data_client_config.json | 0 .../beta_analytics_data_proto_list.json | 0 .../src/v1beta/gapic_metadata.json | 0 .../src/v1beta/index.ts | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../system-test/install.ts | 0 .../test/gapic_beta_analytics_data_v1beta.ts | 0 .../tsconfig.json | 0 .../webpack.config.js | 0 .../google-analytics-data/.gitignore | 0 .../google-analytics-data/.jsdoc.js | 0 .../google-analytics-data/.mocharc.js | 0 .../google-analytics-data/.nycrc | 0 .../google-analytics-data/CODE_OF_CONDUCT.md | 0 .../google-analytics-data/CONTRIBUTING.md | 0 .../google-analytics-data/LICENSE | 0 .../google-analytics-data/README.md | 0 .../google-analytics-data/package.json | 0 .../data/v1alpha/analytics_data_api.proto | 0 .../google/analytics/data/v1alpha/data.proto | 0 .../data/v1beta/analytics_data_api.proto | 0 .../google/analytics/data/v1beta/data.proto | 0 .../google-analytics-data/protos/protos.d.ts | 0 .../google-analytics-data/protos/protos.js | 0 .../google-analytics-data/protos/protos.json | 0 ...pha_analytics_data.create_audience_list.js | 0 ...ics_data.create_recurring_audience_list.js | 0 ...alpha_analytics_data.create_report_task.js | 0 .../alpha_analytics_data.get_audience_list.js | 0 ...ytics_data.get_property_quotas_snapshot.js | 0 ...lytics_data.get_recurring_audience_list.js | 0 .../alpha_analytics_data.get_report_task.js | 0 ...lpha_analytics_data.list_audience_lists.js | 0 ...tics_data.list_recurring_audience_lists.js | 0 .../alpha_analytics_data.list_report_tasks.js | 0 ...lpha_analytics_data.query_audience_list.js | 0 .../alpha_analytics_data.query_report_task.js | 0 .../alpha_analytics_data.run_funnel_report.js | 0 ...alytics_data.sheet_export_audience_list.js | 0 ...etadata_google.analytics.data.v1alpha.json | 0 ..._analytics_data.batch_run_pivot_reports.js | 0 .../beta_analytics_data.batch_run_reports.js | 0 ...beta_analytics_data.check_compatibility.js | 0 ...a_analytics_data.create_audience_export.js | 0 ...beta_analytics_data.get_audience_export.js | 0 .../beta_analytics_data.get_metadata.js | 0 ...ta_analytics_data.list_audience_exports.js | 0 ...ta_analytics_data.query_audience_export.js | 0 .../beta_analytics_data.run_pivot_report.js | 0 ...beta_analytics_data.run_realtime_report.js | 0 .../v1beta/beta_analytics_data.run_report.js | 0 ...metadata_google.analytics.data.v1beta.json | 0 .../google-analytics-data/src/index.ts | 0 .../v1alpha/alpha_analytics_data_client.ts | 0 .../alpha_analytics_data_client_config.json | 0 .../alpha_analytics_data_proto_list.json | 0 .../src/v1alpha/gapic_metadata.json | 0 .../src/v1alpha/index.ts | 0 .../src/v1beta/beta_analytics_data_client.ts | 0 .../beta_analytics_data_client_config.json | 0 .../beta_analytics_data_proto_list.json | 0 .../src/v1beta/gapic_metadata.json | 0 .../google-analytics-data/src/v1beta/index.ts | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../system-test/install.ts | 0 .../gapic_alpha_analytics_data_v1alpha.ts | 0 .../test/gapic_beta_analytics_data_v1beta.ts | 0 .../google-analytics-data/tsconfig.json | 0 .../google-analytics-data/webpack.config.js | 0 .../speech-v1-nodejs/.gitignore | 0 .../speech-v1-nodejs/.jsdoc.js | 0 .../speech-v1-nodejs/.mocharc.js | 0 .../speech-v1-nodejs/README.md | 0 .../speech-v1-nodejs/package.json | 0 .../google/cloud/speech/v1/cloud_speech.proto | 0 .../speech/v1/cloud_speech_adaptation.proto | 0 .../google/cloud/speech/v1/resource.proto | 0 .../speech-v1-nodejs/protos/protos.d.ts | 0 .../speech-v1-nodejs/protos/protos.js | 0 .../speech-v1-nodejs/protos/protos.json | 0 .../v1/adaptation.create_custom_class.js | 0 .../v1/adaptation.create_phrase_set.js | 0 .../v1/adaptation.delete_custom_class.js | 0 .../v1/adaptation.delete_phrase_set.js | 0 .../v1/adaptation.get_custom_class.js | 0 .../generated/v1/adaptation.get_phrase_set.js | 0 .../v1/adaptation.list_custom_classes.js | 0 .../v1/adaptation.list_phrase_set.js | 0 .../v1/adaptation.update_custom_class.js | 0 .../v1/adaptation.update_phrase_set.js | 0 ...ippet_metadata_google.cloud.speech.v1.json | 0 .../v1/speech.long_running_recognize.js | 0 .../samples/generated/v1/speech.recognize.js | 0 .../v1/speech.streaming_recognize.js | 0 .../speech-v1-nodejs/src/index.ts | 0 .../src/v1/adaptation_client.ts | 0 .../src/v1/adaptation_client_config.json | 0 .../src/v1/adaptation_proto_list.json | 0 .../src/v1/gapic_metadata.json | 0 .../speech-v1-nodejs/src/v1/index.ts | 0 .../speech-v1-nodejs/src/v1/speech_client.ts | 0 .../src/v1/speech_client_config.json | 0 .../src/v1/speech_proto_list.json | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../speech-v1-nodejs/system-test/install.ts | 0 .../test/gapic_adaptation_v1.ts | 0 .../speech-v1-nodejs/test/gapic_speech_v1.ts | 0 .../speech-v1-nodejs/tsconfig.json | 0 .../speech-v1-nodejs/webpack.config.js | 0 .../speech-v1p1beta1-nodejs/.gitignore | 0 .../speech-v1p1beta1-nodejs/.jsdoc.js | 0 .../speech-v1p1beta1-nodejs/.mocharc.js | 0 .../speech-v1p1beta1-nodejs/README.md | 0 .../speech-v1p1beta1-nodejs/package.json | 0 .../cloud/speech/v1p1beta1/cloud_speech.proto | 0 .../v1p1beta1/cloud_speech_adaptation.proto | 0 .../cloud/speech/v1p1beta1/resource.proto | 0 .../protos/protos.d.ts | 0 .../speech-v1p1beta1-nodejs/protos/protos.js | 0 .../protos/protos.json | 0 .../adaptation.create_custom_class.js | 0 .../v1p1beta1/adaptation.create_phrase_set.js | 0 .../adaptation.delete_custom_class.js | 0 .../v1p1beta1/adaptation.delete_phrase_set.js | 0 .../v1p1beta1/adaptation.get_custom_class.js | 0 .../v1p1beta1/adaptation.get_phrase_set.js | 0 .../adaptation.list_custom_classes.js | 0 .../v1p1beta1/adaptation.list_phrase_set.js | 0 .../adaptation.update_custom_class.js | 0 .../v1p1beta1/adaptation.update_phrase_set.js | 0 ...etadata_google.cloud.speech.v1p1beta1.json | 0 .../speech.long_running_recognize.js | 0 .../generated/v1p1beta1/speech.recognize.js | 0 .../v1p1beta1/speech.streaming_recognize.js | 0 .../speech-v1p1beta1-nodejs/src/index.ts | 0 .../src/v1p1beta1/adaptation_client.ts | 0 .../v1p1beta1/adaptation_client_config.json | 0 .../src/v1p1beta1/adaptation_proto_list.json | 0 .../src/v1p1beta1/gapic_metadata.json | 0 .../src/v1p1beta1/index.ts | 0 .../src/v1p1beta1/speech_client.ts | 0 .../src/v1p1beta1/speech_client_config.json | 0 .../src/v1p1beta1/speech_proto_list.json | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../system-test/install.ts | 0 .../test/gapic_adaptation_v1p1beta1.ts | 0 .../test/gapic_speech_v1p1beta1.ts | 0 .../speech-v1p1beta1-nodejs/tsconfig.json | 0 .../speech-v1p1beta1-nodejs/webpack.config.js | 0 .../speech-v2-nodejs/.gitignore | 0 .../speech-v2-nodejs/.jsdoc.js | 0 .../speech-v2-nodejs/.mocharc.js | 0 .../speech-v2-nodejs/README.md | 0 .../speech-v2-nodejs/package.json | 0 .../google/cloud/speech/v2/cloud_speech.proto | 0 .../cloud/speech/v2/locations_metadata.proto | 0 .../speech-v2-nodejs/protos/protos.d.ts | 0 .../speech-v2-nodejs/protos/protos.js | 0 .../speech-v2-nodejs/protos/protos.json | 0 ...ippet_metadata_google.cloud.speech.v2.json | 0 .../generated/v2/speech.batch_recognize.js | 0 .../v2/speech.create_custom_class.js | 0 .../generated/v2/speech.create_phrase_set.js | 0 .../generated/v2/speech.create_recognizer.js | 0 .../v2/speech.delete_custom_class.js | 0 .../generated/v2/speech.delete_phrase_set.js | 0 .../generated/v2/speech.delete_recognizer.js | 0 .../samples/generated/v2/speech.get_config.js | 0 .../generated/v2/speech.get_custom_class.js | 0 .../generated/v2/speech.get_phrase_set.js | 0 .../generated/v2/speech.get_recognizer.js | 0 .../v2/speech.list_custom_classes.js | 0 .../generated/v2/speech.list_phrase_sets.js | 0 .../generated/v2/speech.list_recognizers.js | 0 .../samples/generated/v2/speech.recognize.js | 0 .../v2/speech.streaming_recognize.js | 0 .../v2/speech.undelete_custom_class.js | 0 .../v2/speech.undelete_phrase_set.js | 0 .../v2/speech.undelete_recognizer.js | 0 .../generated/v2/speech.update_config.js | 0 .../v2/speech.update_custom_class.js | 0 .../generated/v2/speech.update_phrase_set.js | 0 .../generated/v2/speech.update_recognizer.js | 0 .../speech-v2-nodejs/src/index.ts | 0 .../src/v2/gapic_metadata.json | 0 .../speech-v2-nodejs/src/v2/index.ts | 0 .../speech-v2-nodejs/src/v2/speech_client.ts | 0 .../src/v2/speech_client_config.json | 0 .../src/v2/speech_proto_list.json | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../speech-v2-nodejs/system-test/install.ts | 0 .../speech-v2-nodejs/test/gapic_speech_v2.ts | 0 .../speech-v2-nodejs/tsconfig.json | 0 .../speech-v2-nodejs/webpack.config.js | 0 .../google-cloud-speech/.gitignore | 0 .../google-cloud-speech/.jsdoc.js | 0 .../google-cloud-speech/.mocharc.js | 0 .../google-cloud-speech/README.md | 0 .../google-cloud-speech/package.json | 0 .../google/cloud/speech/v1/cloud_speech.proto | 0 .../speech/v1/cloud_speech_adaptation.proto | 0 .../google/cloud/speech/v1/resource.proto | 0 .../cloud/speech/v1p1beta1/cloud_speech.proto | 0 .../v1p1beta1/cloud_speech_adaptation.proto | 0 .../cloud/speech/v1p1beta1/resource.proto | 0 .../google/cloud/speech/v2/cloud_speech.proto | 0 .../cloud/speech/v2/locations_metadata.proto | 0 .../google-cloud-speech/protos/protos.d.ts | 0 .../google-cloud-speech/protos/protos.js | 0 .../google-cloud-speech/protos/protos.json | 0 .../v1/adaptation.create_custom_class.js | 0 .../v1/adaptation.create_phrase_set.js | 0 .../v1/adaptation.delete_custom_class.js | 0 .../v1/adaptation.delete_phrase_set.js | 0 .../v1/adaptation.get_custom_class.js | 0 .../generated/v1/adaptation.get_phrase_set.js | 0 .../v1/adaptation.list_custom_classes.js | 0 .../v1/adaptation.list_phrase_set.js | 0 .../v1/adaptation.update_custom_class.js | 0 .../v1/adaptation.update_phrase_set.js | 0 ...ippet_metadata_google.cloud.speech.v1.json | 0 .../v1/speech.long_running_recognize.js | 0 .../samples/generated/v1/speech.recognize.js | 0 .../v1/speech.streaming_recognize.js | 0 .../adaptation.create_custom_class.js | 0 .../v1p1beta1/adaptation.create_phrase_set.js | 0 .../adaptation.delete_custom_class.js | 0 .../v1p1beta1/adaptation.delete_phrase_set.js | 0 .../v1p1beta1/adaptation.get_custom_class.js | 0 .../v1p1beta1/adaptation.get_phrase_set.js | 0 .../adaptation.list_custom_classes.js | 0 .../v1p1beta1/adaptation.list_phrase_set.js | 0 .../adaptation.update_custom_class.js | 0 .../v1p1beta1/adaptation.update_phrase_set.js | 0 ...etadata_google.cloud.speech.v1p1beta1.json | 0 .../speech.long_running_recognize.js | 0 .../generated/v1p1beta1/speech.recognize.js | 0 .../v1p1beta1/speech.streaming_recognize.js | 0 ...ippet_metadata_google.cloud.speech.v2.json | 0 .../generated/v2/speech.batch_recognize.js | 0 .../v2/speech.create_custom_class.js | 0 .../generated/v2/speech.create_phrase_set.js | 0 .../generated/v2/speech.create_recognizer.js | 0 .../v2/speech.delete_custom_class.js | 0 .../generated/v2/speech.delete_phrase_set.js | 0 .../generated/v2/speech.delete_recognizer.js | 0 .../samples/generated/v2/speech.get_config.js | 0 .../generated/v2/speech.get_custom_class.js | 0 .../generated/v2/speech.get_phrase_set.js | 0 .../generated/v2/speech.get_recognizer.js | 0 .../v2/speech.list_custom_classes.js | 0 .../generated/v2/speech.list_phrase_sets.js | 0 .../generated/v2/speech.list_recognizers.js | 0 .../samples/generated/v2/speech.recognize.js | 0 .../v2/speech.streaming_recognize.js | 0 .../v2/speech.undelete_custom_class.js | 0 .../v2/speech.undelete_phrase_set.js | 0 .../v2/speech.undelete_recognizer.js | 0 .../generated/v2/speech.update_config.js | 0 .../v2/speech.update_custom_class.js | 0 .../generated/v2/speech.update_phrase_set.js | 0 .../generated/v2/speech.update_recognizer.js | 0 .../google-cloud-speech/src/index.ts | 0 .../src/v1/adaptation_client.ts | 0 .../src/v1/adaptation_client_config.json | 0 .../src/v1/adaptation_proto_list.json | 0 .../src/v1/gapic_metadata.json | 0 .../google-cloud-speech/src/v1/index.ts | 0 .../src/v1/speech_client.ts | 0 .../src/v1/speech_client_config.json | 0 .../src/v1/speech_proto_list.json | 0 .../src/v1p1beta1/adaptation_client.ts | 0 .../v1p1beta1/adaptation_client_config.json | 0 .../src/v1p1beta1/adaptation_proto_list.json | 0 .../src/v1p1beta1/gapic_metadata.json | 0 .../src/v1p1beta1/index.ts | 0 .../src/v1p1beta1/speech_client.ts | 0 .../src/v1p1beta1/speech_client_config.json | 0 .../src/v1p1beta1/speech_proto_list.json | 0 .../src/v2/gapic_metadata.json | 0 .../google-cloud-speech/src/v2/index.ts | 0 .../src/v2/speech_client.ts | 0 .../src/v2/speech_client_config.json | 0 .../src/v2/speech_proto_list.json | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../system-test/install.ts | 0 .../test/gapic_adaptation_v1.ts | 0 .../test/gapic_adaptation_v1p1beta1.ts | 0 .../test/gapic_speech_v1.ts | 0 .../test/gapic_speech_v1p1beta1.ts | 0 .../test/gapic_speech_v2.ts | 0 .../google-cloud-speech/tsconfig.json | 0 .../google-cloud-speech/webpack.config.js | 0 .../tasks-v2-nodejs/.babelrc.json | 0 .../tasks-v2-nodejs/.gitignore | 0 .../tasks-v2-nodejs/.jsdoc.cjs | 0 .../tasks-v2-nodejs/.mocharc.cjs | 0 .../tasks-v2-nodejs/.nycrc | 0 .../tasks-v2-nodejs/.prettierrc.cjs | 0 .../tasks-v2-nodejs/CODE_OF_CONDUCT.md | 0 .../tasks-v2-nodejs/CONTRIBUTING.md | 0 .../tasks-v2-nodejs/LICENSE | 0 .../tasks-v2-nodejs/README.md | 0 .../tasks-v2-nodejs/esm/src/index.ts | 0 .../tasks-v2-nodejs/esm/src/json-helper.cjs | 0 .../esm/src/v2/cloud_tasks_client.ts | 0 .../esm/src/v2/cloud_tasks_client_config.json | 0 .../esm/src/v2/cloud_tasks_proto_list.json | 0 .../esm/src/v2/gapic_metadata.json | 0 .../tasks-v2-nodejs/esm/src/v2/index.ts | 0 .../system-test/fixtures/sample/src/index.cjs | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../esm/system-test/install.ts | 0 .../esm/test/gapic_cloud_tasks_v2.ts | 0 .../tasks-v2-nodejs/package.json | 0 .../google/cloud/tasks/v2/cloudtasks.proto | 0 .../protos/google/cloud/tasks/v2/queue.proto | 0 .../protos/google/cloud/tasks/v2/target.proto | 0 .../protos/google/cloud/tasks/v2/task.proto | 0 .../tasks-v2-nodejs/protos/protos.cjs | 0 .../tasks-v2-nodejs/protos/protos.d.ts | 0 .../tasks-v2-nodejs/protos/protos.js | 0 .../tasks-v2-nodejs/protos/protos.json | 0 .../generated/v2/cloud_tasks.create_queue.js | 0 .../generated/v2/cloud_tasks.create_task.js | 0 .../generated/v2/cloud_tasks.delete_queue.js | 0 .../generated/v2/cloud_tasks.delete_task.js | 0 .../v2/cloud_tasks.get_iam_policy.js | 0 .../generated/v2/cloud_tasks.get_queue.js | 0 .../generated/v2/cloud_tasks.get_task.js | 0 .../generated/v2/cloud_tasks.list_queues.js | 0 .../generated/v2/cloud_tasks.list_tasks.js | 0 .../generated/v2/cloud_tasks.pause_queue.js | 0 .../generated/v2/cloud_tasks.purge_queue.js | 0 .../generated/v2/cloud_tasks.resume_queue.js | 0 .../generated/v2/cloud_tasks.run_task.js | 0 .../v2/cloud_tasks.set_iam_policy.js | 0 .../v2/cloud_tasks.test_iam_permissions.js | 0 .../generated/v2/cloud_tasks.update_queue.js | 0 ...nippet_metadata_google.cloud.tasks.v2.json | 0 .../tasks-v2-nodejs/tsconfig.esm.json | 0 .../tasks-v2-nodejs/tsconfig.json | 0 .../tasks-v2-nodejs/webpack.config.cjs | 0 .../tasks-v2beta2-nodejs/.babelrc.json | 0 .../tasks-v2beta2-nodejs/.gitignore | 0 .../tasks-v2beta2-nodejs/.jsdoc.cjs | 0 .../tasks-v2beta2-nodejs/.mocharc.cjs | 0 .../tasks-v2beta2-nodejs/.nycrc | 0 .../tasks-v2beta2-nodejs/.prettierrc.cjs | 0 .../tasks-v2beta2-nodejs/CODE_OF_CONDUCT.md | 0 .../tasks-v2beta2-nodejs/CONTRIBUTING.md | 0 .../tasks-v2beta2-nodejs/LICENSE | 0 .../tasks-v2beta2-nodejs/README.md | 0 .../tasks-v2beta2-nodejs/esm/src/index.ts | 0 .../esm/src/json-helper.cjs | 0 .../esm/src/v2beta2/cloud_tasks_client.ts | 0 .../v2beta2/cloud_tasks_client_config.json | 0 .../src/v2beta2/cloud_tasks_proto_list.json | 0 .../esm/src/v2beta2/gapic_metadata.json | 0 .../esm/src/v2beta2/index.ts | 0 .../system-test/fixtures/sample/src/index.cjs | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../esm/system-test/install.ts | 0 .../esm/test/gapic_cloud_tasks_v2beta2.ts | 0 .../tasks-v2beta2-nodejs/package.json | 0 .../cloud/tasks/v2beta2/cloudtasks.proto | 0 .../cloud/tasks/v2beta2/old_target.proto | 0 .../google/cloud/tasks/v2beta2/queue.proto | 0 .../google/cloud/tasks/v2beta2/target.proto | 0 .../google/cloud/tasks/v2beta2/task.proto | 0 .../tasks-v2beta2-nodejs/protos/protos.cjs | 0 .../tasks-v2beta2-nodejs/protos/protos.d.ts | 0 .../tasks-v2beta2-nodejs/protos/protos.js | 0 .../tasks-v2beta2-nodejs/protos/protos.json | 0 .../v2beta2/cloud_tasks.acknowledge_task.js | 0 .../v2beta2/cloud_tasks.cancel_lease.js | 0 .../v2beta2/cloud_tasks.create_queue.js | 0 .../v2beta2/cloud_tasks.create_task.js | 0 .../v2beta2/cloud_tasks.delete_queue.js | 0 .../v2beta2/cloud_tasks.delete_task.js | 0 .../v2beta2/cloud_tasks.get_iam_policy.js | 0 .../v2beta2/cloud_tasks.get_queue.js | 0 .../generated/v2beta2/cloud_tasks.get_task.js | 0 .../v2beta2/cloud_tasks.lease_tasks.js | 0 .../v2beta2/cloud_tasks.list_queues.js | 0 .../v2beta2/cloud_tasks.list_tasks.js | 0 .../v2beta2/cloud_tasks.pause_queue.js | 0 .../v2beta2/cloud_tasks.purge_queue.js | 0 .../v2beta2/cloud_tasks.renew_lease.js | 0 .../v2beta2/cloud_tasks.resume_queue.js | 0 .../generated/v2beta2/cloud_tasks.run_task.js | 0 .../v2beta2/cloud_tasks.set_iam_policy.js | 0 .../cloud_tasks.test_iam_permissions.js | 0 .../v2beta2/cloud_tasks.update_queue.js | 0 .../v2beta2/cloud_tasks.upload_queue_yaml.js | 0 ...t_metadata_google.cloud.tasks.v2beta2.json | 0 .../tasks-v2beta2-nodejs/tsconfig.esm.json | 0 .../tasks-v2beta2-nodejs/tsconfig.json | 0 .../tasks-v2beta2-nodejs/webpack.config.cjs | 0 .../google-cloud-tasks/.babelrc.json | 0 .../google-cloud-tasks/.gitignore | 0 .../google-cloud-tasks/.jsdoc.cjs | 0 .../google-cloud-tasks/.mocharc.cjs | 0 .../google-cloud-tasks/.nycrc | 0 .../google-cloud-tasks/.prettierrc.cjs | 0 .../google-cloud-tasks/CODE_OF_CONDUCT.md | 0 .../google-cloud-tasks/CONTRIBUTING.md | 0 .../google-cloud-tasks/LICENSE | 0 .../google-cloud-tasks/README.md | 0 .../google-cloud-tasks/esm/src/index.ts | 0 .../esm/src/json-helper.cjs | 0 .../esm/src/v2/cloud_tasks_client.ts | 0 .../esm/src/v2/cloud_tasks_client_config.json | 0 .../esm/src/v2/cloud_tasks_proto_list.json | 0 .../esm/src/v2/gapic_metadata.json | 0 .../google-cloud-tasks/esm/src/v2/index.ts | 0 .../esm/src/v2beta2/cloud_tasks_client.ts | 0 .../v2beta2/cloud_tasks_client_config.json | 0 .../src/v2beta2/cloud_tasks_proto_list.json | 0 .../esm/src/v2beta2/gapic_metadata.json | 0 .../esm/src/v2beta2/index.ts | 0 .../system-test/fixtures/sample/src/index.cjs | 0 .../system-test/fixtures/sample/src/index.js | 0 .../system-test/fixtures/sample/src/index.ts | 0 .../esm/system-test/install.ts | 0 .../esm/test/gapic_cloud_tasks_v2.ts | 0 .../esm/test/gapic_cloud_tasks_v2beta2.ts | 0 .../google-cloud-tasks/package.json | 0 .../google/cloud/tasks/v2/cloudtasks.proto | 0 .../protos/google/cloud/tasks/v2/queue.proto | 0 .../protos/google/cloud/tasks/v2/target.proto | 0 .../protos/google/cloud/tasks/v2/task.proto | 0 .../cloud/tasks/v2beta2/cloudtasks.proto | 0 .../cloud/tasks/v2beta2/old_target.proto | 0 .../google/cloud/tasks/v2beta2/queue.proto | 0 .../google/cloud/tasks/v2beta2/target.proto | 0 .../google/cloud/tasks/v2beta2/task.proto | 0 .../google-cloud-tasks/protos/protos.cjs | 0 .../google-cloud-tasks/protos/protos.d.ts | 0 .../google-cloud-tasks/protos/protos.js | 0 .../google-cloud-tasks/protos/protos.json | 0 .../generated/v2/cloud_tasks.create_queue.js | 0 .../generated/v2/cloud_tasks.create_task.js | 0 .../generated/v2/cloud_tasks.delete_queue.js | 0 .../generated/v2/cloud_tasks.delete_task.js | 0 .../v2/cloud_tasks.get_iam_policy.js | 0 .../generated/v2/cloud_tasks.get_queue.js | 0 .../generated/v2/cloud_tasks.get_task.js | 0 .../generated/v2/cloud_tasks.list_queues.js | 0 .../generated/v2/cloud_tasks.list_tasks.js | 0 .../generated/v2/cloud_tasks.pause_queue.js | 0 .../generated/v2/cloud_tasks.purge_queue.js | 0 .../generated/v2/cloud_tasks.resume_queue.js | 0 .../generated/v2/cloud_tasks.run_task.js | 0 .../v2/cloud_tasks.set_iam_policy.js | 0 .../v2/cloud_tasks.test_iam_permissions.js | 0 .../generated/v2/cloud_tasks.update_queue.js | 0 ...nippet_metadata_google.cloud.tasks.v2.json | 0 .../v2beta2/cloud_tasks.acknowledge_task.js | 0 .../v2beta2/cloud_tasks.cancel_lease.js | 0 .../v2beta2/cloud_tasks.create_queue.js | 0 .../v2beta2/cloud_tasks.create_task.js | 0 .../v2beta2/cloud_tasks.delete_queue.js | 0 .../v2beta2/cloud_tasks.delete_task.js | 0 .../v2beta2/cloud_tasks.get_iam_policy.js | 0 .../v2beta2/cloud_tasks.get_queue.js | 0 .../generated/v2beta2/cloud_tasks.get_task.js | 0 .../v2beta2/cloud_tasks.lease_tasks.js | 0 .../v2beta2/cloud_tasks.list_queues.js | 0 .../v2beta2/cloud_tasks.list_tasks.js | 0 .../v2beta2/cloud_tasks.pause_queue.js | 0 .../v2beta2/cloud_tasks.purge_queue.js | 0 .../v2beta2/cloud_tasks.renew_lease.js | 0 .../v2beta2/cloud_tasks.resume_queue.js | 0 .../generated/v2beta2/cloud_tasks.run_task.js | 0 .../v2beta2/cloud_tasks.set_iam_policy.js | 0 .../cloud_tasks.test_iam_permissions.js | 0 .../v2beta2/cloud_tasks.update_queue.js | 0 .../v2beta2/cloud_tasks.upload_queue_yaml.js | 0 ...t_metadata_google.cloud.tasks.v2beta2.json | 0 .../google-cloud-tasks/tsconfig.esm.json | 0 .../google-cloud-tasks/tsconfig.json | 0 .../google-cloud-tasks/webpack.config.cjs | 0 .../test/fixtures/serviceConfig.yaml | 0 .../test/fixtures/test-input-readme/README.md | 0 .../test/fixtures/untemplated-README.md | 0 .../generate-combined-library-command.test.ts | 0 .../test/generate-index.test.ts | 0 .../test/generate-readme-command.test.ts | 0 .../test/generate-readme.test.ts | 0 .../test/get-bootstrap-template-vars.test.ts | 0 .../test/library.test.ts | 0 .../test/templating.test.ts | 0 .../gapic-node-processing/tsconfig.json | 0 packages/typeless-sample-bot/.gitignore | 2 - packages/typeless-sample-bot/.prettierrc.cjs | 17 -- packages/typeless-sample-bot/CHANGELOG.md | 129 ---------- packages/typeless-sample-bot/README.md | 69 ----- .../__snapshots__/index.js | 137 ---------- packages/typeless-sample-bot/package.json | 63 ----- packages/typeless-sample-bot/src/app.ts | 193 -------------- .../src/bin/typeless-sample-bot.ts | 25 -- .../typeless-sample-bot/src/debug-js.d.ts | 16 -- .../typeless-sample-bot/src/gcp-debuglog.ts | 119 --------- packages/typeless-sample-bot/src/loggers.ts | 34 --- .../typeless-sample-bot/src/preset-loader.ts | 20 -- packages/typeless-sample-bot/src/samples.ts | 148 ----------- packages/typeless-sample-bot/src/symbols.ts | 98 -------- .../src/transforms/add-comments.ts | 42 ---- .../src/transforms/babel.ts | 28 --- .../src/transforms/import-to-require.ts | 114 --------- .../src/transforms/null-coalescing.ts | 33 --- .../src/transforms/optional-chaining.ts | 48 ---- packages/typeless-sample-bot/src/tree-walk.ts | 30 --- .../src/typescript-preset.d.ts | 17 -- .../test/fixtures/createTopic.js | 59 ----- .../test/fixtures/deleteSchema.ts | 58 ----- .../test/fixtures/empty-folder/.gitkeep | 0 .../fixtures/folder/listenForAvroRecords.ts | 111 --------- .../fixtures/folder/publishAvroRecords.ts | 101 -------- .../test/fixtures/folder/validateSchema.ts | 82 ------ .../test/fixtures/getSchema.ts | 55 ---- .../test/fixtures/listSchemas.ts | 51 ---- .../test/fixtures/noBlankLines.ts | 3 - packages/typeless-sample-bot/test/index.ts | 235 ------------------ packages/typeless-sample-bot/tsconfig.json | 112 --------- 629 files changed, 2249 deletions(-) rename {packages => core/packages}/gapic-node-processing/.c8rc.json (100%) rename {packages => core/packages}/gapic-node-processing/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/CHANGELOG.md (100%) rename {packages => core/packages}/gapic-node-processing/README.md (100%) rename {packages => core/packages}/gapic-node-processing/__snapshots__/templating.test.js (100%) rename {packages => core/packages}/gapic-node-processing/package.json (100%) rename {packages => core/packages}/gapic-node-processing/src/cli.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/combine-libraries.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/commands/bootstrap-library.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/commands/generate-combined-library.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/commands/generate-readme.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/generate-index.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/generate-readme.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/get-bootstrap-template-vars.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/library.ts (100%) rename {packages => core/packages}/gapic-node-processing/src/templating.ts (100%) rename {packages => core/packages}/gapic-node-processing/templates/bootstrap-templates/.OwlBot.yaml (100%) rename {packages => core/packages}/gapic-node-processing/templates/bootstrap-templates/.repo-metadata.json.njk (100%) rename {packages => core/packages}/gapic-node-processing/templates/bootstrap-templates/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/templates/bootstrap-templates/package.json (100%) rename {packages => core/packages}/gapic-node-processing/templates/post-processing-templates/index.ts.njk (100%) rename {packages => core/packages}/gapic-node-processing/templates/post-processing-templates/sample.njk (100%) rename {packages => core/packages}/gapic-node-processing/test/bootstrap-library-command.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/combine-libraries.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CODE_OF_CONDUCT.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CONTRIBUTING.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/analytics_data_api.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/data.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/test/gapic_alpha_analytics_data_v1alpha.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CODE_OF_CONDUCT.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CONTRIBUTING.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/analytics_data_api.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/data.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.check_compatibility.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.create_audience_export.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_audience_export.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_metadata.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.query_audience_export.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/test/gapic_beta_analytics_data_v1beta.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CODE_OF_CONDUCT.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CONTRIBUTING.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/analytics_data_api.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/data.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.check_compatibility.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.create_audience_export.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_audience_export.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_metadata.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.query_audience_export.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_report.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_beta_analytics_data_v1beta.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/resource.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_custom_classes.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.long_running_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.streaming_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_adaptation_v1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_speech_v1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/resource.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_custom_classes.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.long_running_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.streaming_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_adaptation_v1p1beta1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_speech_v1p1beta1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/cloud_speech.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/locations_metadata.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.batch_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_custom_classes.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_phrase_sets.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_recognizers.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.streaming_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/test/gapic_speech_v2.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.jsdoc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.mocharc.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/resource.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/resource.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/cloud_speech.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/locations_metadata.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_custom_classes.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.long_running_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.streaming_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_custom_classes.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.long_running_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.streaming_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.batch_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_custom_classes.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_phrase_sets.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_recognizers.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.streaming_recognize.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_custom_class.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_phrase_set.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_recognizer.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1p1beta1.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v2.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/webpack.config.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.babelrc.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.jsdoc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.mocharc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.prettierrc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CODE_OF_CONDUCT.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CONTRIBUTING.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/json-helper.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/test/gapic_cloud_tasks_v2.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/cloudtasks.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/queue.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/target.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/task.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_queues.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.pause_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.purge_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.resume_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.run_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.set_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.test_iam_permissions.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.update_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.esm.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/webpack.config.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.babelrc.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.jsdoc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.mocharc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.prettierrc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CODE_OF_CONDUCT.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CONTRIBUTING.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/json-helper.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/test/gapic_cloud_tasks_v2beta2.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/cloudtasks.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/old_target.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/queue.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/target.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/task.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.cancel_lease.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.lease_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_queues.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.pause_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.purge_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.renew_lease.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.resume_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.run_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.update_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.esm.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/webpack.config.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.babelrc.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.gitignore (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.jsdoc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.mocharc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.nycrc (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.prettierrc.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CODE_OF_CONDUCT.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CONTRIBUTING.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/LICENSE (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/json-helper.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client_config.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_proto_list.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/gapic_metadata.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/install.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2beta2.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/cloudtasks.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/queue.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/target.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/task.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/cloudtasks.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/old_target.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/queue.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/target.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/task.proto (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.d.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_queues.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.pause_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.purge_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.resume_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.run_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.set_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.test_iam_permissions.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.update_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.cancel_lease.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.lease_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_queues.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_tasks.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.pause_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.purge_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.renew_lease.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.resume_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.run_task.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.update_queue.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.esm.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.json (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/webpack.config.cjs (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/serviceConfig.yaml (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/test-input-readme/README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/fixtures/untemplated-README.md (100%) rename {packages => core/packages}/gapic-node-processing/test/generate-combined-library-command.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/generate-index.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/generate-readme-command.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/generate-readme.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/get-bootstrap-template-vars.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/library.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/test/templating.test.ts (100%) rename {packages => core/packages}/gapic-node-processing/tsconfig.json (100%) delete mode 100644 packages/typeless-sample-bot/.gitignore delete mode 100644 packages/typeless-sample-bot/.prettierrc.cjs delete mode 100644 packages/typeless-sample-bot/CHANGELOG.md delete mode 100644 packages/typeless-sample-bot/README.md delete mode 100644 packages/typeless-sample-bot/__snapshots__/index.js delete mode 100644 packages/typeless-sample-bot/package.json delete mode 100644 packages/typeless-sample-bot/src/app.ts delete mode 100644 packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts delete mode 100644 packages/typeless-sample-bot/src/debug-js.d.ts delete mode 100644 packages/typeless-sample-bot/src/gcp-debuglog.ts delete mode 100644 packages/typeless-sample-bot/src/loggers.ts delete mode 100644 packages/typeless-sample-bot/src/preset-loader.ts delete mode 100644 packages/typeless-sample-bot/src/samples.ts delete mode 100644 packages/typeless-sample-bot/src/symbols.ts delete mode 100644 packages/typeless-sample-bot/src/transforms/add-comments.ts delete mode 100644 packages/typeless-sample-bot/src/transforms/babel.ts delete mode 100644 packages/typeless-sample-bot/src/transforms/import-to-require.ts delete mode 100644 packages/typeless-sample-bot/src/transforms/null-coalescing.ts delete mode 100644 packages/typeless-sample-bot/src/transforms/optional-chaining.ts delete mode 100644 packages/typeless-sample-bot/src/tree-walk.ts delete mode 100644 packages/typeless-sample-bot/src/typescript-preset.d.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/createTopic.js delete mode 100644 packages/typeless-sample-bot/test/fixtures/deleteSchema.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/empty-folder/.gitkeep delete mode 100644 packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/getSchema.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/listSchemas.ts delete mode 100644 packages/typeless-sample-bot/test/fixtures/noBlankLines.ts delete mode 100644 packages/typeless-sample-bot/test/index.ts delete mode 100644 packages/typeless-sample-bot/tsconfig.json diff --git a/packages/gapic-node-processing/.c8rc.json b/core/packages/gapic-node-processing/.c8rc.json similarity index 100% rename from packages/gapic-node-processing/.c8rc.json rename to core/packages/gapic-node-processing/.c8rc.json diff --git a/packages/gapic-node-processing/.gitignore b/core/packages/gapic-node-processing/.gitignore similarity index 100% rename from packages/gapic-node-processing/.gitignore rename to core/packages/gapic-node-processing/.gitignore diff --git a/packages/gapic-node-processing/.mocharc.js b/core/packages/gapic-node-processing/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/.mocharc.js rename to core/packages/gapic-node-processing/.mocharc.js diff --git a/packages/gapic-node-processing/.nycrc b/core/packages/gapic-node-processing/.nycrc similarity index 100% rename from packages/gapic-node-processing/.nycrc rename to core/packages/gapic-node-processing/.nycrc diff --git a/packages/gapic-node-processing/CHANGELOG.md b/core/packages/gapic-node-processing/CHANGELOG.md similarity index 100% rename from packages/gapic-node-processing/CHANGELOG.md rename to core/packages/gapic-node-processing/CHANGELOG.md diff --git a/packages/gapic-node-processing/README.md b/core/packages/gapic-node-processing/README.md similarity index 100% rename from packages/gapic-node-processing/README.md rename to core/packages/gapic-node-processing/README.md diff --git a/packages/gapic-node-processing/__snapshots__/templating.test.js b/core/packages/gapic-node-processing/__snapshots__/templating.test.js similarity index 100% rename from packages/gapic-node-processing/__snapshots__/templating.test.js rename to core/packages/gapic-node-processing/__snapshots__/templating.test.js diff --git a/packages/gapic-node-processing/package.json b/core/packages/gapic-node-processing/package.json similarity index 100% rename from packages/gapic-node-processing/package.json rename to core/packages/gapic-node-processing/package.json diff --git a/packages/gapic-node-processing/src/cli.ts b/core/packages/gapic-node-processing/src/cli.ts similarity index 100% rename from packages/gapic-node-processing/src/cli.ts rename to core/packages/gapic-node-processing/src/cli.ts diff --git a/packages/gapic-node-processing/src/combine-libraries.ts b/core/packages/gapic-node-processing/src/combine-libraries.ts similarity index 100% rename from packages/gapic-node-processing/src/combine-libraries.ts rename to core/packages/gapic-node-processing/src/combine-libraries.ts diff --git a/packages/gapic-node-processing/src/commands/bootstrap-library.ts b/core/packages/gapic-node-processing/src/commands/bootstrap-library.ts similarity index 100% rename from packages/gapic-node-processing/src/commands/bootstrap-library.ts rename to core/packages/gapic-node-processing/src/commands/bootstrap-library.ts diff --git a/packages/gapic-node-processing/src/commands/generate-combined-library.ts b/core/packages/gapic-node-processing/src/commands/generate-combined-library.ts similarity index 100% rename from packages/gapic-node-processing/src/commands/generate-combined-library.ts rename to core/packages/gapic-node-processing/src/commands/generate-combined-library.ts diff --git a/packages/gapic-node-processing/src/commands/generate-readme.ts b/core/packages/gapic-node-processing/src/commands/generate-readme.ts similarity index 100% rename from packages/gapic-node-processing/src/commands/generate-readme.ts rename to core/packages/gapic-node-processing/src/commands/generate-readme.ts diff --git a/packages/gapic-node-processing/src/generate-index.ts b/core/packages/gapic-node-processing/src/generate-index.ts similarity index 100% rename from packages/gapic-node-processing/src/generate-index.ts rename to core/packages/gapic-node-processing/src/generate-index.ts diff --git a/packages/gapic-node-processing/src/generate-readme.ts b/core/packages/gapic-node-processing/src/generate-readme.ts similarity index 100% rename from packages/gapic-node-processing/src/generate-readme.ts rename to core/packages/gapic-node-processing/src/generate-readme.ts diff --git a/packages/gapic-node-processing/src/get-bootstrap-template-vars.ts b/core/packages/gapic-node-processing/src/get-bootstrap-template-vars.ts similarity index 100% rename from packages/gapic-node-processing/src/get-bootstrap-template-vars.ts rename to core/packages/gapic-node-processing/src/get-bootstrap-template-vars.ts diff --git a/packages/gapic-node-processing/src/library.ts b/core/packages/gapic-node-processing/src/library.ts similarity index 100% rename from packages/gapic-node-processing/src/library.ts rename to core/packages/gapic-node-processing/src/library.ts diff --git a/packages/gapic-node-processing/src/templating.ts b/core/packages/gapic-node-processing/src/templating.ts similarity index 100% rename from packages/gapic-node-processing/src/templating.ts rename to core/packages/gapic-node-processing/src/templating.ts diff --git a/packages/gapic-node-processing/templates/bootstrap-templates/.OwlBot.yaml b/core/packages/gapic-node-processing/templates/bootstrap-templates/.OwlBot.yaml similarity index 100% rename from packages/gapic-node-processing/templates/bootstrap-templates/.OwlBot.yaml rename to core/packages/gapic-node-processing/templates/bootstrap-templates/.OwlBot.yaml diff --git a/packages/gapic-node-processing/templates/bootstrap-templates/.repo-metadata.json.njk b/core/packages/gapic-node-processing/templates/bootstrap-templates/.repo-metadata.json.njk similarity index 100% rename from packages/gapic-node-processing/templates/bootstrap-templates/.repo-metadata.json.njk rename to core/packages/gapic-node-processing/templates/bootstrap-templates/.repo-metadata.json.njk diff --git a/packages/gapic-node-processing/templates/bootstrap-templates/LICENSE b/core/packages/gapic-node-processing/templates/bootstrap-templates/LICENSE similarity index 100% rename from packages/gapic-node-processing/templates/bootstrap-templates/LICENSE rename to core/packages/gapic-node-processing/templates/bootstrap-templates/LICENSE diff --git a/packages/gapic-node-processing/templates/bootstrap-templates/package.json b/core/packages/gapic-node-processing/templates/bootstrap-templates/package.json similarity index 100% rename from packages/gapic-node-processing/templates/bootstrap-templates/package.json rename to core/packages/gapic-node-processing/templates/bootstrap-templates/package.json diff --git a/packages/gapic-node-processing/templates/post-processing-templates/index.ts.njk b/core/packages/gapic-node-processing/templates/post-processing-templates/index.ts.njk similarity index 100% rename from packages/gapic-node-processing/templates/post-processing-templates/index.ts.njk rename to core/packages/gapic-node-processing/templates/post-processing-templates/index.ts.njk diff --git a/packages/gapic-node-processing/templates/post-processing-templates/sample.njk b/core/packages/gapic-node-processing/templates/post-processing-templates/sample.njk similarity index 100% rename from packages/gapic-node-processing/templates/post-processing-templates/sample.njk rename to core/packages/gapic-node-processing/templates/post-processing-templates/sample.njk diff --git a/packages/gapic-node-processing/test/bootstrap-library-command.test.ts b/core/packages/gapic-node-processing/test/bootstrap-library-command.test.ts similarity index 100% rename from packages/gapic-node-processing/test/bootstrap-library-command.test.ts rename to core/packages/gapic-node-processing/test/bootstrap-library-command.test.ts diff --git a/packages/gapic-node-processing/test/combine-libraries.test.ts b/core/packages/gapic-node-processing/test/combine-libraries.test.ts similarity index 100% rename from packages/gapic-node-processing/test/combine-libraries.test.ts rename to core/packages/gapic-node-processing/test/combine-libraries.test.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.nycrc b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.nycrc similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.nycrc rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/.nycrc diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CODE_OF_CONDUCT.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CODE_OF_CONDUCT.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CODE_OF_CONDUCT.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CODE_OF_CONDUCT.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CONTRIBUTING.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CONTRIBUTING.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CONTRIBUTING.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/CONTRIBUTING.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/LICENSE b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/LICENSE similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/LICENSE rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/LICENSE diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/analytics_data_api.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/analytics_data_api.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/analytics_data_api.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/analytics_data_api.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/data.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/data.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/data.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/google/analytics/data/v1alpha/data.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/alpha_analytics_data_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/src/v1alpha/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/test/gapic_alpha_analytics_data_v1alpha.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/test/gapic_alpha_analytics_data_v1alpha.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/test/gapic_alpha_analytics_data_v1alpha.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/test/gapic_alpha_analytics_data_v1alpha.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.nycrc b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.nycrc similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.nycrc rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/.nycrc diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CODE_OF_CONDUCT.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CODE_OF_CONDUCT.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CODE_OF_CONDUCT.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CODE_OF_CONDUCT.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CONTRIBUTING.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CONTRIBUTING.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CONTRIBUTING.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/CONTRIBUTING.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/LICENSE b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/LICENSE similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/LICENSE rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/LICENSE diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/analytics_data_api.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/analytics_data_api.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/analytics_data_api.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/analytics_data_api.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/data.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/data.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/data.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/google/analytics/data/v1beta/data.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.check_compatibility.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.check_compatibility.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.check_compatibility.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.check_compatibility.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.create_audience_export.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.create_audience_export.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.create_audience_export.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.create_audience_export.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_audience_export.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_audience_export.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_audience_export.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_audience_export.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_metadata.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_metadata.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_metadata.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.get_metadata.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.query_audience_export.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.query_audience_export.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.query_audience_export.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.query_audience_export.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/beta_analytics_data.run_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/beta_analytics_data_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/src/v1beta/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/test/gapic_beta_analytics_data_v1beta.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/test/gapic_beta_analytics_data_v1beta.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/test/gapic_beta_analytics_data_v1beta.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/test/gapic_beta_analytics_data_v1beta.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.nycrc b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.nycrc similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.nycrc rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/.nycrc diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CODE_OF_CONDUCT.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CODE_OF_CONDUCT.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CODE_OF_CONDUCT.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CODE_OF_CONDUCT.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CONTRIBUTING.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CONTRIBUTING.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CONTRIBUTING.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/CONTRIBUTING.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/LICENSE b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/LICENSE similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/LICENSE rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/LICENSE diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/analytics_data_api.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/analytics_data_api.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/analytics_data_api.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/analytics_data_api.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/data.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/data.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/data.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/google/analytics/data/v1beta/data.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_recurring_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.create_report_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_property_quotas_snapshot.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_recurring_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.get_report_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_audience_lists.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_recurring_audience_lists.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.list_report_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.query_report_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.sheet_export_audience_list.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1alpha/snippet_metadata_google.analytics.data.v1alpha.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_pivot_reports.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.batch_run_reports.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.check_compatibility.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.check_compatibility.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.check_compatibility.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.check_compatibility.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.create_audience_export.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.create_audience_export.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.create_audience_export.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.create_audience_export.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_audience_export.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_audience_export.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_audience_export.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_audience_export.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_metadata.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_metadata.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_metadata.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.get_metadata.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.list_audience_exports.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.query_audience_export.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.query_audience_export.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.query_audience_export.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.query_audience_export.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_pivot_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_realtime_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_report.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_report.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_report.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/beta_analytics_data.run_report.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/samples/generated/v1beta/snippet_metadata_google.analytics.data.v1beta.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/alpha_analytics_data_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1alpha/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/beta_analytics_data_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/src/v1beta/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_beta_analytics_data_v1beta.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_beta_analytics_data_v1beta.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_beta_analytics_data_v1beta.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/test/gapic_beta_analytics_data_v1beta.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/resource.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/resource.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/resource.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/google/cloud/speech/v1/resource.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.create_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.delete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.get_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_custom_classes.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_custom_classes.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_custom_classes.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_custom_classes.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.list_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/adaptation.update_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.long_running_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.long_running_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.long_running_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.long_running_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.streaming_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.streaming_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.streaming_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/samples/generated/v1/speech.streaming_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/adaptation_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/src/v1/speech_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_adaptation_v1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_adaptation_v1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_adaptation_v1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_adaptation_v1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_speech_v1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_speech_v1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_speech_v1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/test/gapic_speech_v1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/resource.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/resource.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/resource.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/google/cloud/speech/v1p1beta1/resource.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.create_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.get_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_custom_classes.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_custom_classes.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_custom_classes.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_custom_classes.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.list_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/adaptation.update_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.long_running_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.long_running_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.long_running_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.long_running_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.streaming_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.streaming_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.streaming_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/samples/generated/v1p1beta1/speech.streaming_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/adaptation_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/src/v1p1beta1/speech_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_adaptation_v1p1beta1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_adaptation_v1p1beta1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_adaptation_v1p1beta1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_adaptation_v1p1beta1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_speech_v1p1beta1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_speech_v1p1beta1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_speech_v1p1beta1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/test/gapic_speech_v1p1beta1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/cloud_speech.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/cloud_speech.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/cloud_speech.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/cloud_speech.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/locations_metadata.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/locations_metadata.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/locations_metadata.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/google/cloud/speech/v2/locations_metadata.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.batch_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.batch_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.batch_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.batch_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.create_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.delete_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.get_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_custom_classes.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_custom_classes.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_custom_classes.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_custom_classes.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_phrase_sets.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_phrase_sets.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_phrase_sets.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_phrase_sets.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_recognizers.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_recognizers.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_recognizers.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.list_recognizers.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.streaming_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.streaming_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.streaming_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.streaming_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.undelete_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/samples/generated/v2/speech.update_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/src/v2/speech_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/test/gapic_speech_v2.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/test/gapic_speech_v2.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/test/gapic_speech_v2.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/test/gapic_speech_v2.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.jsdoc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.jsdoc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.jsdoc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.jsdoc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.mocharc.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.mocharc.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.mocharc.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/.mocharc.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/cloud_speech_adaptation.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/resource.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/resource.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/resource.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1/resource.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/resource.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/resource.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/resource.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v1p1beta1/resource.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/cloud_speech.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/cloud_speech.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/cloud_speech.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/cloud_speech.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/locations_metadata.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/locations_metadata.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/locations_metadata.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/google/cloud/speech/v2/locations_metadata.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.create_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.delete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.get_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_custom_classes.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_custom_classes.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_custom_classes.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_custom_classes.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.list_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/adaptation.update_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.long_running_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.long_running_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.long_running_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.long_running_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.streaming_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.streaming_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.streaming_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1/speech.streaming_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.create_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.delete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.get_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_custom_classes.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_custom_classes.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_custom_classes.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_custom_classes.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.long_running_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.long_running_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.long_running_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.long_running_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.streaming_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.streaming_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.streaming_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v1p1beta1/speech.streaming_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.batch_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.batch_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.batch_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.batch_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.create_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.delete_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.get_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_custom_classes.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_custom_classes.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_custom_classes.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_custom_classes.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_phrase_sets.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_phrase_sets.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_phrase_sets.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_phrase_sets.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_recognizers.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_recognizers.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_recognizers.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.list_recognizers.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.streaming_recognize.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.streaming_recognize.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.streaming_recognize.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.streaming_recognize.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.undelete_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_custom_class.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_custom_class.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_custom_class.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_custom_class.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_phrase_set.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_phrase_set.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_phrase_set.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_phrase_set.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_recognizer.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_recognizer.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_recognizer.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/samples/generated/v2/speech.update_recognizer.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/adaptation_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1/speech_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/adaptation_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v1p1beta1/speech_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/src/v2/speech_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1p1beta1.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1p1beta1.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1p1beta1.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v1p1beta1.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v2.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v2.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v2.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/test/gapic_speech_v2.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/webpack.config.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/webpack.config.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/webpack.config.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/webpack.config.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.babelrc.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.babelrc.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.babelrc.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.babelrc.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.jsdoc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.jsdoc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.jsdoc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.jsdoc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.mocharc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.mocharc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.mocharc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.mocharc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.nycrc b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.nycrc similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.nycrc rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.nycrc diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.prettierrc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.prettierrc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.prettierrc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/.prettierrc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CODE_OF_CONDUCT.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CODE_OF_CONDUCT.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CODE_OF_CONDUCT.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CODE_OF_CONDUCT.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CONTRIBUTING.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CONTRIBUTING.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CONTRIBUTING.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/CONTRIBUTING.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/LICENSE b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/LICENSE similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/LICENSE rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/LICENSE diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/json-helper.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/json-helper.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/json-helper.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/json-helper.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/cloud_tasks_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/src/v2/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/test/gapic_cloud_tasks_v2.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/test/gapic_cloud_tasks_v2.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/test/gapic_cloud_tasks_v2.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/esm/test/gapic_cloud_tasks_v2.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/cloudtasks.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/cloudtasks.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/cloudtasks.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/cloudtasks.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/queue.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/queue.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/queue.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/queue.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/target.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/target.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/target.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/target.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/task.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/task.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/task.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/google/cloud/tasks/v2/task.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.create_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.delete_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.get_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_queues.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_queues.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_queues.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_queues.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.list_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.pause_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.pause_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.pause_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.pause_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.purge_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.purge_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.purge_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.purge_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.resume_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.resume_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.resume_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.resume_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.run_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.run_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.run_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.run_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.set_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.set_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.set_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.set_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.test_iam_permissions.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.test_iam_permissions.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.test_iam_permissions.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.test_iam_permissions.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.update_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.update_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.update_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/cloud_tasks.update_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.esm.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.esm.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.esm.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.esm.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/webpack.config.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/webpack.config.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/webpack.config.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/webpack.config.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.babelrc.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.babelrc.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.babelrc.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.babelrc.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.jsdoc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.jsdoc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.jsdoc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.jsdoc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.mocharc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.mocharc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.mocharc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.mocharc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.nycrc b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.nycrc similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.nycrc rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.nycrc diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.prettierrc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.prettierrc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.prettierrc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/.prettierrc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CODE_OF_CONDUCT.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CODE_OF_CONDUCT.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CODE_OF_CONDUCT.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CODE_OF_CONDUCT.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CONTRIBUTING.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CONTRIBUTING.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CONTRIBUTING.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/CONTRIBUTING.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/LICENSE b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/LICENSE similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/LICENSE rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/LICENSE diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/json-helper.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/json-helper.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/json-helper.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/json-helper.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/cloud_tasks_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/src/v2beta2/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/test/gapic_cloud_tasks_v2beta2.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/test/gapic_cloud_tasks_v2beta2.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/test/gapic_cloud_tasks_v2beta2.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/esm/test/gapic_cloud_tasks_v2beta2.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/cloudtasks.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/cloudtasks.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/cloudtasks.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/cloudtasks.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/old_target.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/old_target.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/old_target.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/old_target.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/queue.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/queue.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/queue.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/queue.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/target.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/target.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/target.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/target.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/task.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/task.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/task.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/google/cloud/tasks/v2beta2/task.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.cancel_lease.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.cancel_lease.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.cancel_lease.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.cancel_lease.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.create_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.delete_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.get_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.lease_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.lease_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.lease_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.lease_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_queues.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_queues.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_queues.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_queues.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.list_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.pause_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.pause_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.pause_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.pause_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.purge_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.purge_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.purge_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.purge_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.renew_lease.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.renew_lease.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.renew_lease.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.renew_lease.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.resume_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.resume_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.resume_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.resume_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.run_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.run_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.run_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.run_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.update_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.update_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.update_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.update_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.esm.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.esm.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.esm.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.esm.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/webpack.config.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/webpack.config.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/webpack.config.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/webpack.config.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.babelrc.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.babelrc.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.babelrc.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.babelrc.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.gitignore b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.gitignore similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.gitignore rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.gitignore diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.jsdoc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.jsdoc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.jsdoc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.jsdoc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.mocharc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.mocharc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.mocharc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.mocharc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.nycrc b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.nycrc similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.nycrc rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.nycrc diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.prettierrc.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.prettierrc.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.prettierrc.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/.prettierrc.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CODE_OF_CONDUCT.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CODE_OF_CONDUCT.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CODE_OF_CONDUCT.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CODE_OF_CONDUCT.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CONTRIBUTING.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CONTRIBUTING.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CONTRIBUTING.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/CONTRIBUTING.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/LICENSE b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/LICENSE similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/LICENSE rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/LICENSE diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/README.md b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/README.md rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/README.md diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/json-helper.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/json-helper.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/json-helper.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/json-helper.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/cloud_tasks_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client_config.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client_config.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client_config.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_client_config.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_proto_list.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_proto_list.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_proto_list.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/cloud_tasks_proto_list.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/gapic_metadata.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/gapic_metadata.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/gapic_metadata.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/gapic_metadata.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/src/v2beta2/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/fixtures/sample/src/index.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/install.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/install.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/install.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/system-test/install.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2beta2.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2beta2.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2beta2.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/esm/test/gapic_cloud_tasks_v2beta2.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/cloudtasks.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/cloudtasks.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/cloudtasks.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/cloudtasks.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/queue.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/queue.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/queue.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/queue.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/target.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/target.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/target.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/target.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/task.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/task.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/task.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2/task.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/cloudtasks.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/cloudtasks.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/cloudtasks.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/cloudtasks.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/old_target.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/old_target.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/old_target.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/old_target.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/queue.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/queue.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/queue.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/queue.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/target.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/target.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/target.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/target.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/task.proto b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/task.proto similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/task.proto rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/google/cloud/tasks/v2beta2/task.proto diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.cjs diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.d.ts b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.d.ts similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.d.ts rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.d.ts diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/protos/protos.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.create_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.delete_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.get_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_queues.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_queues.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_queues.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_queues.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.list_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.pause_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.pause_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.pause_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.pause_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.purge_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.purge_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.purge_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.purge_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.resume_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.resume_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.resume_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.resume_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.run_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.run_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.run_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.run_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.set_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.set_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.set_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.set_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.test_iam_permissions.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.test_iam_permissions.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.test_iam_permissions.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.test_iam_permissions.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.update_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.update_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.update_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/cloud_tasks.update_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2/snippet_metadata_google.cloud.tasks.v2.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.acknowledge_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.cancel_lease.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.cancel_lease.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.cancel_lease.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.cancel_lease.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.create_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.delete_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.get_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.lease_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.lease_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.lease_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.lease_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_queues.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_queues.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_queues.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_queues.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_tasks.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_tasks.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_tasks.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.list_tasks.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.pause_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.pause_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.pause_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.pause_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.purge_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.purge_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.purge_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.purge_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.renew_lease.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.renew_lease.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.renew_lease.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.renew_lease.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.resume_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.resume_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.resume_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.resume_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.run_task.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.run_task.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.run_task.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.run_task.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.set_iam_policy.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.test_iam_permissions.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.update_queue.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.update_queue.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.update_queue.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.update_queue.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/cloud_tasks.upload_queue_yaml.js diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/samples/generated/v2beta2/snippet_metadata_google.cloud.tasks.v2beta2.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.esm.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.esm.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.esm.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.esm.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.json rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/tsconfig.json diff --git a/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/webpack.config.cjs b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/webpack.config.cjs similarity index 100% rename from packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/webpack.config.cjs rename to core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/webpack.config.cjs diff --git a/packages/gapic-node-processing/test/fixtures/serviceConfig.yaml b/core/packages/gapic-node-processing/test/fixtures/serviceConfig.yaml similarity index 100% rename from packages/gapic-node-processing/test/fixtures/serviceConfig.yaml rename to core/packages/gapic-node-processing/test/fixtures/serviceConfig.yaml diff --git a/packages/gapic-node-processing/test/fixtures/test-input-readme/README.md b/core/packages/gapic-node-processing/test/fixtures/test-input-readme/README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/test-input-readme/README.md rename to core/packages/gapic-node-processing/test/fixtures/test-input-readme/README.md diff --git a/packages/gapic-node-processing/test/fixtures/untemplated-README.md b/core/packages/gapic-node-processing/test/fixtures/untemplated-README.md similarity index 100% rename from packages/gapic-node-processing/test/fixtures/untemplated-README.md rename to core/packages/gapic-node-processing/test/fixtures/untemplated-README.md diff --git a/packages/gapic-node-processing/test/generate-combined-library-command.test.ts b/core/packages/gapic-node-processing/test/generate-combined-library-command.test.ts similarity index 100% rename from packages/gapic-node-processing/test/generate-combined-library-command.test.ts rename to core/packages/gapic-node-processing/test/generate-combined-library-command.test.ts diff --git a/packages/gapic-node-processing/test/generate-index.test.ts b/core/packages/gapic-node-processing/test/generate-index.test.ts similarity index 100% rename from packages/gapic-node-processing/test/generate-index.test.ts rename to core/packages/gapic-node-processing/test/generate-index.test.ts diff --git a/packages/gapic-node-processing/test/generate-readme-command.test.ts b/core/packages/gapic-node-processing/test/generate-readme-command.test.ts similarity index 100% rename from packages/gapic-node-processing/test/generate-readme-command.test.ts rename to core/packages/gapic-node-processing/test/generate-readme-command.test.ts diff --git a/packages/gapic-node-processing/test/generate-readme.test.ts b/core/packages/gapic-node-processing/test/generate-readme.test.ts similarity index 100% rename from packages/gapic-node-processing/test/generate-readme.test.ts rename to core/packages/gapic-node-processing/test/generate-readme.test.ts diff --git a/packages/gapic-node-processing/test/get-bootstrap-template-vars.test.ts b/core/packages/gapic-node-processing/test/get-bootstrap-template-vars.test.ts similarity index 100% rename from packages/gapic-node-processing/test/get-bootstrap-template-vars.test.ts rename to core/packages/gapic-node-processing/test/get-bootstrap-template-vars.test.ts diff --git a/packages/gapic-node-processing/test/library.test.ts b/core/packages/gapic-node-processing/test/library.test.ts similarity index 100% rename from packages/gapic-node-processing/test/library.test.ts rename to core/packages/gapic-node-processing/test/library.test.ts diff --git a/packages/gapic-node-processing/test/templating.test.ts b/core/packages/gapic-node-processing/test/templating.test.ts similarity index 100% rename from packages/gapic-node-processing/test/templating.test.ts rename to core/packages/gapic-node-processing/test/templating.test.ts diff --git a/packages/gapic-node-processing/tsconfig.json b/core/packages/gapic-node-processing/tsconfig.json similarity index 100% rename from packages/gapic-node-processing/tsconfig.json rename to core/packages/gapic-node-processing/tsconfig.json diff --git a/packages/typeless-sample-bot/.gitignore b/packages/typeless-sample-bot/.gitignore deleted file mode 100644 index dd87e2d73f9f..000000000000 --- a/packages/typeless-sample-bot/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -build diff --git a/packages/typeless-sample-bot/.prettierrc.cjs b/packages/typeless-sample-bot/.prettierrc.cjs deleted file mode 100644 index d2eddc2ed894..000000000000 --- a/packages/typeless-sample-bot/.prettierrc.cjs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -module.exports = { - ...require('gts/.prettierrc.json') -} diff --git a/packages/typeless-sample-bot/CHANGELOG.md b/packages/typeless-sample-bot/CHANGELOG.md deleted file mode 100644 index 480e5cd7b8ad..000000000000 --- a/packages/typeless-sample-bot/CHANGELOG.md +++ /dev/null @@ -1,129 +0,0 @@ -# Changelog - -## [3.1.2](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v3.1.1...typeless-sample-bot-v3.1.2) (2026-05-01) - - -### Bug Fixes - -* Change the copyright year for files in the packages folder ([#8109](https://github.com/googleapis/google-cloud-node/issues/8109)) ([c1a03fe](https://github.com/googleapis/google-cloud-node/commit/c1a03fe604662091be283055c7d34052c64d6334)) - -## [3.1.1](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v3.1.0...typeless-sample-bot-v3.1.1) (2025-10-13) - - -### Bug Fixes - -* [gkeconnect-gateway] remove unused GatewayServiceClient ([#6775](https://github.com/googleapis/google-cloud-node/issues/6775)) ([41c2ff2](https://github.com/googleapis/google-cloud-node/commit/41c2ff2851b5fdadabf4f9bd3500167c34b32ff7)) - -## [3.1.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v3.0.0...typeless-sample-bot-v3.1.0) (2025-07-09) - - -### Features - -* [Many APIs] add methods from gax to cache proto root and process custom error details ([#6419](https://github.com/googleapis/google-cloud-node/issues/6419)) ([f8a324c](https://github.com/googleapis/google-cloud-node/commit/f8a324ca5c3bc0f730e4ed67d9407c44f2414936)) -* Add protobufjs 2023 edition support ([#6303](https://github.com/googleapis/google-cloud-node/issues/6303)) ([4a0cba1](https://github.com/googleapis/google-cloud-node/commit/4a0cba1e41a9aeb9c15ad31487ef013c8277cfef)) - -## [3.0.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v2.1.0...typeless-sample-bot-v3.0.0) (2025-03-18) - - -### ⚠ BREAKING CHANGES - -* upgrade to Node 18 ([#6096](https://github.com/googleapis/google-cloud-node/issues/6096)) - -### Miscellaneous Chores - -* Upgrade to Node 18 ([#6096](https://github.com/googleapis/google-cloud-node/issues/6096)) ([eadae64](https://github.com/googleapis/google-cloud-node/commit/eadae64d54e07aa2c65097ea52e65008d4e87436)) - -## [2.1.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v2.0.0...typeless-sample-bot-v2.1.0) (2024-05-21) - - -### Features - -* [Many APIs] update Nodejs generator to send API versions in headers for GAPICs ([#5351](https://github.com/googleapis/google-cloud-node/issues/5351)) ([01f48fc](https://github.com/googleapis/google-cloud-node/commit/01f48fce63ec4ddf801d59ee2b8c0db9f6fb8372)) -* [Many APIs] update Nodejs generator to send API versions in headers for GAPICs ([#5354](https://github.com/googleapis/google-cloud-node/issues/5354)) ([a9784ed](https://github.com/googleapis/google-cloud-node/commit/a9784ed3db6ee96d171762308bbbcd57390b6866)) - -## [2.0.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.3...typeless-sample-bot-v2.0.0) (2023-08-06) - - -### ⚠ BREAKING CHANGES - -* migrate to Node 14 ([#4443](https://github.com/googleapis/google-cloud-node/issues/4443)) - -### Miscellaneous Chores - -* Migrate to Node 14 ([#4443](https://github.com/googleapis/google-cloud-node/issues/4443)) ([2260f12](https://github.com/googleapis/google-cloud-node/commit/2260f12543d171bda95345e53475f5f0fdc45770)) - -## [1.3.3](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.2...typeless-sample-bot-v1.3.3) (2023-05-26) - - -### Bug Fixes - -* **deps:** Update dependency recast to ^0.23.0 ([#4277](https://github.com/googleapis/google-cloud-node/issues/4277)) ([b6ae70d](https://github.com/googleapis/google-cloud-node/commit/b6ae70ddcc50fc3bfd1abbb347b25e0bfcafccf0)) - -## [1.3.2](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.1...typeless-sample-bot-v1.3.2) (2023-05-11) - - -### Bug Fixes - -* Do not exit with 1 on empty folder ([#4272](https://github.com/googleapis/google-cloud-node/issues/4272)) ([a538959](https://github.com/googleapis/google-cloud-node/commit/a5389596ba5b0c707582612a6b2aa84385fefc26)) - -## [1.3.1](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.3.0...typeless-sample-bot-v1.3.1) (2023-04-13) - - -### Bug Fixes - -* Minify JSON and JS files, and remove .map files ([#4143](https://github.com/googleapis/google-cloud-node/issues/4143)) ([170f7d5](https://github.com/googleapis/google-cloud-node/commit/170f7d57b8fd344d182a8e758867b8124722eebc)) - -## [1.3.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.2.0...typeless-sample-bot-v1.3.0) (2023-01-28) - - -### Features - -* Add support for converting optional chaining to regular chaining ([#3891](https://github.com/googleapis/google-cloud-node/issues/3891)) ([f8414ac](https://github.com/googleapis/google-cloud-node/commit/f8414ac2f7ea1b8cd11ab49939dc2abec9fd0bb9)) - -## [1.2.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.1.0...typeless-sample-bot-v1.2.0) (2022-12-16) - - -### Features - -* Add comments about generation and 'use strict' to transformed samples ([#3696](https://github.com/googleapis/google-cloud-node/issues/3696)) ([db012f5](https://github.com/googleapis/google-cloud-node/commit/db012f5c356d858243a391d6eaac0c9b0a508e83)) -* Add downconversion from ?? to || ([#3722](https://github.com/googleapis/google-cloud-node/issues/3722)) ([4a0a105](https://github.com/googleapis/google-cloud-node/commit/4a0a10569ee80485b3d5a2fdcd8975fbd998c336)) - - -### Bug Fixes - -* **deps:** Update dependency recast to ^0.22.0 ([#3745](https://github.com/googleapis/google-cloud-node/issues/3745)) ([a9f6b83](https://github.com/googleapis/google-cloud-node/commit/a9f6b836b3f56602e5c18b1b5bce812507262f7c)) - -## [1.1.0](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.3...typeless-sample-bot-v1.1.0) (2022-11-10) - - -### Features - -* **typeless-sample-bot:** Add output path flag, and another pass at module resolution fixing ([#3498](https://github.com/googleapis/google-cloud-node/issues/3498)) ([192659d](https://github.com/googleapis/google-cloud-node/commit/192659d7d6109ad23d1c84eaaf7b626b9bd05be5)) - -## [1.0.3](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.2...typeless-sample-bot-v1.0.3) (2022-11-03) - - -### Bug Fixes - -* Explicitly provide path to babel plugins ([#3482](https://github.com/googleapis/google-cloud-node/issues/3482)) ([6d34a3d](https://github.com/googleapis/google-cloud-node/commit/6d34a3d99725bd2d8b90c449e27e1b6d694c8def)) - -## [1.0.2](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.1...typeless-sample-bot-v1.0.2) (2022-10-28) - - -### Bug Fixes - -* Update typeless bot build to compile before pack ([#3463](https://github.com/googleapis/google-cloud-node/issues/3463)) ([6f6fb2e](https://github.com/googleapis/google-cloud-node/commit/6f6fb2e176529e6384f2a1fb3acd627087f6d73a)) - -## [1.0.1](https://github.com/googleapis/google-cloud-node/compare/typeless-sample-bot-v1.0.0...typeless-sample-bot-v1.0.1) (2022-10-27) - - -### Bug Fixes - -* Typeless bot updates for a fully functioning packaged version ([#3461](https://github.com/googleapis/google-cloud-node/issues/3461)) ([8e93229](https://github.com/googleapis/google-cloud-node/commit/8e9322948123465f7a0c5edbb226697505ac7b5e)) - -## 1.0.0 (2022-08-25) - - -### Features - -* new typeless sample bot, initial commit ([#3203](https://github.com/googleapis/google-cloud-node/issues/3203)) ([c57a722](https://github.com/googleapis/google-cloud-node/commit/c57a722f5dff0314e211eb68bc7b2743f53805ab)) diff --git a/packages/typeless-sample-bot/README.md b/packages/typeless-sample-bot/README.md deleted file mode 100644 index bd1f2f9d2625..000000000000 --- a/packages/typeless-sample-bot/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# typeless-sample-bot - -This bot will automatically convert sample snippets written in TypeScript into JavaScript -sample snippets. This lets you focus on writing TypeScript samples instead of having to -do only JavaScript, or having to maintain both. - -## Installation - -You will want to install this library as a globally-available, standalone binary. - -`npm i @google-cloud/typeless-sample-bot -g` - -## Usage - -The bot can convert single files or an entire tree of files. In the latter case, it -will attempt to guess which files are actually snippets before doing anything with them. - -For individual files, you can specify them as targets: - -```bash -typeless-sample-bot --targets file1.ts,file2.ts,etc -``` - -The output will be written with the same filename stem, but a js extension. - -You can also ask for recursive processing: - -```bash -typeless-sample-bot --targets samples --recursive -``` - -Note that -t may be an array, still, for processing multiple recursive trees. - -Various utility flags are also available: - -```bash -# turn on verbose output -typeless-sample-bot --verbose - -# turn on full debug output -typeless-sample-bot --debug - -# turn off ANSI colour/emojis -typeless-sample-bot --no-art -``` - -### Options - -| Option | Description | Default | -| ------ | ----------- | ------- | -| targets | List of target files or directory trees | *Required* | -| recursive | If set, targets will be directory trees processed recursively | False | -| verbose | If set, verbose output will be enabled | False | -| debug | If set, full debug output will be enabled | False | -| art | If set, ANSI colour and emojis will be used in the command output | True, use --no-art to cancel | - -## Running tests: - -`npm test` - -## Contributing - -If you have suggestions for how `typeless-sample-bot` could be improved, or want to report a bug, open an issue! We'd love all and any contributions. - -For more, check out the Contributing Guide. - -License: Apache 2.0 - -© 2022 Google LLC. diff --git a/packages/typeless-sample-bot/__snapshots__/index.js b/packages/typeless-sample-bot/__snapshots__/index.js deleted file mode 100644 index 33e8c264eaf0..000000000000 --- a/packages/typeless-sample-bot/__snapshots__/index.js +++ /dev/null @@ -1,137 +0,0 @@ -exports['sample transformation does not change JS 1'] = [ - { - "filename": "test.js", - "contents": "// Copyright 2019-2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This sample demonstrates how to perform basic operations on topics with\n * the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n'use strict';\n\n// This test fixture sample has been modified to factor out changes that\n// gts fix would reverse anyway.\n\n// sample-metadata:\n// title: Create Topic\n// description: Creates a new topic.\n// usage: node createTopic.js \n\nasync function main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') {\n // [START pubsub_create_topic]\n /**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n // const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID';\n\n // Imports the Google Cloud client library\n const { PubSub } = require('@google-cloud/pubsub');\n\n // Creates a client; cache this for further use\n const pubSubClient = new PubSub();\n\n async function createTopic() {\n // Creates a new topic\n await pubSubClient.createTopic(topicNameOrId);\n console.log(`Topic ${topicNameOrId} created.`);\n }\n\n createTopic();\n // [END pubsub_create_topic]\n}\n\nmain(...process.argv.slice(2)).catch((e) => {\n console.error(e);\n process.exitCode = -1;\n});" - } -] - -exports['sample transformation correctly transforms TS 1'] = ` -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// This is a generated sample, using the typeless sample bot. Please -// look for the source TypeScript sample (.ts) for modifications. -'use strict'; - -/** - * This application demonstrates how to perform basic operations on - * schemas with the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: List schemas on a project -// description: Gets a list of schemas which were previously created in the project. -// usage: node listSchemas.js - -// [START pubsub_list_schemas] - -// Imports the Google Cloud client library -const { PubSub } = require("@google-cloud/pubsub"); - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -async function listSchemas() { - for await (const s of pubSubClient.listSchemas()) { - console.log(s.name); - } - console.log('Listed schemas.'); -} -// [END pubsub_list_schemas] - -function main() { - listSchemas().catch((err) => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(); -` - -exports['command line option "targets" works with a single sample file 1'] = ` -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// This is a generated sample, using the typeless sample bot. Please -// look for the source TypeScript sample (.ts) for modifications. -'use strict'; - -/** - * This application demonstrates how to perform basic operations on - * schemas with the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: List schemas on a project -// description: Gets a list of schemas which were previously created in the project. -// usage: node listSchemas.js - -// [START pubsub_list_schemas] - -// Imports the Google Cloud client library -const { PubSub } = require("@google-cloud/pubsub"); - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -async function listSchemas() { - for await (const s of pubSubClient.listSchemas()) { - console.log(s.name); - } - console.log('Listed schemas.'); -} -// [END pubsub_list_schemas] - -function main() { - listSchemas().catch((err) => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(); -` - -exports['command line option "targets" works with multiple sample files 1'] = [ - "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Delete a previously created schema\n// description: Deletes a schema which was previously created in the project.\n// usage: node deleteSchema.js \n\n// [START pubsub_delete_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function deleteSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const name = await schema.getName();\n await schema.delete();\n console.log(`Schema ${name} deleted.`);\n}\n// [END pubsub_delete_schema]\n\nconst someValue = undefined;\nconst coalesced = someValue || 5;\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n deleteSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));", - "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Get a previously created schema\n// description: Gets information about a schema which was previously created in the project.\n// usage: node getSchema.js \n\n// [START pubsub_get_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function getSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const info = await schema.get();\n const fullName = await schema.getName();\n console.log(`Schema ${fullName} info: ${JSON.stringify(info, null, 4)}.`);\n}\n// [END pubsub_get_schema]\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n getSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));" -] - -exports['command line option "outputpath" causes the output to move 1'] = [ - "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Delete a previously created schema\n// description: Deletes a schema which was previously created in the project.\n// usage: node deleteSchema.js \n\n// [START pubsub_delete_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function deleteSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const name = await schema.getName();\n await schema.delete();\n console.log(`Schema ${name} deleted.`);\n}\n// [END pubsub_delete_schema]\n\nconst someValue = undefined;\nconst coalesced = someValue || 5;\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n deleteSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));", - "// Copyright 2026 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * schemas with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Get a previously created schema\n// description: Gets information about a schema which was previously created in the project.\n// usage: node getSchema.js \n\n// [START pubsub_get_schema]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub } = require(\"@google-cloud/pubsub\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nasync function getSchema(schemaNameOrId) {\n const schema = pubSubClient.schema(schemaNameOrId);\n const info = await schema.get();\n const fullName = await schema.getName();\n console.log(`Schema ${fullName} info: ${JSON.stringify(info, null, 4)}.`);\n}\n// [END pubsub_get_schema]\n\nfunction main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') {\n getSchema(schemaNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));" -] - -exports['command line option "recursive" causes recursion and only matches samples 1'] = [ - "// Copyright 2019-2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This application demonstrates how to perform basic operations on\n * subscriptions with the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Listen For Avro Records\n// description: Listens for records in Avro encoding from a subscription.\n// usage: node listenForAvroRecords.js [timeout-in-seconds]\n\n// [START pubsub_subscribe_avro_records]\n/**\n * TODO(developer): Uncomment these variables before running the sample.\n */\n// const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID';\n// const timeout = 60;\n\n// Imports the Google Cloud client library\nconst { PubSub, Schema, Encodings } = require(\"@google-cloud/pubsub\");\n\n// Node FS library, to load definitions\nconst fs = require(\"fs\");\n\n// And the Apache Avro library\nconst avro = require(\"avro-js\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\nfunction listenForAvroRecords(subscriptionNameOrId, timeout) {\n // References an existing subscription\n const subscription = pubSubClient.subscription(subscriptionNameOrId);\n\n // Make an encoder using the official avro-js library.\n const definition = fs.\n readFileSync('system-test/fixtures/provinces.avsc').\n toString();\n const type = avro.parse(definition);\n\n // Create an event handler to handle messages\n let messageCount = 0;\n const messageHandler = async (message) => {\n // \"Ack\" (acknowledge receipt of) the message\n message.ack();\n\n // Get the schema metadata from the message.\n const schemaMetadata = Schema.metadataFromMessage(message.attributes);\n\n let result;\n switch (schemaMetadata.encoding) {\n case Encodings.Binary:\n result = type.fromBuffer(message.data);\n break;\n case Encodings.Json:\n result = type.fromString(message.data.toString());\n break;\n default:\n console.log(`Unknown schema encoding: ${schemaMetadata.encoding}`);\n break;\n }\n\n console.log(`Received message ${message.id}:`);\n console.log(`\\tData: ${JSON.stringify(result, null, 4)}`);\n console.log(`\\tAttributes: ${message.attributes}`);\n messageCount += 1;\n };\n\n // Listen for new messages until timeout is hit\n subscription.on('message', messageHandler);\n\n setTimeout(() => {\n subscription.removeListener('message', messageHandler);\n console.log(`${messageCount} message(s) received.`);\n }, timeout * 1000);\n\n use.optional.chaining();\n}\n// [END pubsub_subscribe_avro_records]\n\nfunction main(\nsubscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID',\ntimeout = 60)\n{\n timeout = Number(timeout);\n\n try {\n listenForAvroRecords(subscriptionNameOrId, timeout);\n } catch (err) {\n console.error(err.message);\n process.exitCode = 1;\n }\n}\n\nmain(...process.argv.slice(2));", - "// Copyright 2019-2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a generated sample, using the typeless sample bot. Please\n// look for the source TypeScript sample (.ts) for modifications.\n'use strict';\n\n/**\n * This sample demonstrates how to perform basic operations on topics with\n * the Google Cloud Pub/Sub API.\n *\n * For more information, see the README.md under /pubsub and the documentation\n * at https://cloud.google.com/pubsub/docs.\n */\n\n// sample-metadata:\n// title: Publish Avro Records to a Topic\n// description: Publishes a record in Avro to a topic with a schema.\n// usage: node publishAvroRecords.js \n\n// [START pubsub_publish_avro_records]\n/**\n * TODO(developer): Uncomment this variable before running the sample.\n */\n// const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID';\n\n// Imports the Google Cloud client library\nconst { PubSub, Encodings } = require(\"@google-cloud/pubsub\");\n\n// And the Apache Avro library\nconst avro = require(\"avro-js\");\nconst fs = require(\"fs\");\n\n// Creates a client; cache this for further use\nconst pubSubClient = new PubSub();\n\n\n\n\n\n\nasync function publishAvroRecords(topicNameOrId) {\n // Get the topic metadata to learn about its schema encoding.\n const topic = pubSubClient.topic(topicNameOrId);\n const [topicMetadata] = await topic.getMetadata();\n const topicSchemaMetadata = topicMetadata.schemaSettings;\n\n if (!topicSchemaMetadata) {\n console.log(`Topic ${topicNameOrId} doesn't seem to have a schema.`);\n return;\n }\n const schemaEncoding = topicSchemaMetadata.encoding;\n\n // Make an encoder using the official avro-js library.\n const definition = fs.\n readFileSync('system-test/fixtures/provinces.avsc').\n toString();\n const type = avro.parse(definition);\n\n // Encode the message.\n const province = {\n name: 'Ontario',\n post_abbr: 'ON'\n };\n let dataBuffer;\n switch (schemaEncoding) {\n case Encodings.Binary:\n dataBuffer = type.toBuffer(province);\n break;\n case Encodings.Json:\n dataBuffer = Buffer.from(type.toString(province));\n break;\n default:\n console.log(`Unknown schema encoding: ${schemaEncoding}`);\n break;\n }\n if (!dataBuffer) {\n console.log(`Invalid encoding ${schemaEncoding} on the topic.`);\n return;\n }\n\n const messageId = await topic.publish(dataBuffer);\n console.log(`Avro record ${messageId} published.`);\n}\n// [END pubsub_publish_avro_records]\n\nfunction main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') {\n publishAvroRecords(topicNameOrId).catch((err) => {\n console.error(err.message);\n process.exitCode = 1;\n });\n}\n\nmain(...process.argv.slice(2));" -] diff --git a/packages/typeless-sample-bot/package.json b/packages/typeless-sample-bot/package.json deleted file mode 100644 index 3c0424c91be0..000000000000 --- a/packages/typeless-sample-bot/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "@google-cloud/typeless-sample-bot", - "description": "Google Cloud GitHub bot that converts TypeScript snippets into JavaScript", - "version": "3.1.2", - "license": "Apache-2.0", - "author": "Google LLC", - "engines": { - "node": ">=18" - }, - "repository": "googleapis/google-cloud-node", - "bin": "./build/src/bin/typeless-sample-bot.js", - "main": "./build/src/app.js", - "type": "module", - "files": [ - "build/src" - ], - "scripts": { - "compile": "tsc -p .", - "prepare": "npm run compile", - "pretest": "npm run compile", - "test": "c8 mocha build/test --recursive", - "snapshots-update": "SNAPSHOT_UPDATE=1 npm test", - "samples-test": "echo no system tests yet 🙀", - "system-test": "echo no system tests yet 🙀", - "lint": "gts check", - "fix": "gts fix" - }, - "dependencies": { - "@babel/core": "^7.26.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/preset-env": "^7.26.9", - "@babel/preset-typescript": "^7.26.0", - "@babel/traverse": "^7.26.9", - "chalk": "^5.4.1", - "debug": "^4.4.0", - "recast": "^0.23.11", - "yargs": "^17.7.2" - }, - "devDependencies": { - "@babel/cli": "^7.26.4", - "@babel/types": "^7.26.9", - "@types/babel__core": "^7.20.5", - "@types/babel__traverse": "^7.20.6", - "@types/mocha": "^10.0.10", - "@types/node": "^22.13.9", - "@types/sinon": "^17.0.4", - "@types/yargs": "^17.0.33", - "c8": "^10.1.3", - "gts": "^6.0.2", - "mocha": "^11.1.0", - "sinon": "21.0.3", - "snap-shot-it": "^7.9.10", - "typescript": "^5.8.2" - }, - "overrides": { - "@sinonjs/fake-timers": "15.2.1" - }, - "pnpm": { - "overrides": { - "@sinonjs/fake-timers": "15.2.1" - } - } -} diff --git a/packages/typeless-sample-bot/src/app.ts b/packages/typeless-sample-bot/src/app.ts deleted file mode 100644 index 02d43246f821..000000000000 --- a/packages/typeless-sample-bot/src/app.ts +++ /dev/null @@ -1,193 +0,0 @@ -#!/usr/bin/env node -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import yargs from 'yargs'; -import loggers from './loggers.js'; -import {createLoggers} from './loggers.js'; -import util from 'node:util'; -import {symbols} from './symbols.js'; -import { - filterByContents, - findSamples, - transformSamples, - writeSamples, - waitForAllSamples, - fromArray, -} from './samples.js'; - -let returnValue = 0; - -// Converts an array of unknown-type items into a string suitable for -// printing to the console. -export function consolize(args: unknown[]): string { - const strings = args.map(a => { - if (typeof a === 'string') { - return a; - } else if (typeof a === 'number') { - return `${a}`; - } else { - return util.inspect(a, false, 2, true); - } - }); - return strings.join(' '); -} - -async function processArgs(args: string[]) { - const argv = await yargs(args) - .options({ - targets: { - demandOption: true, - type: 'array', - describe: 'one or more items to process', - alias: ['t'], - }, - recursive: { - demandOption: false, - boolean: true, - describe: 'process the target(s) as directories, recursively', - alias: ['r'], - }, - outputpath: { - demandOption: false, - type: 'string', - describe: - 'outputs default to being next to the original; if set, this option will specify the output for all files', - alias: ['o'], - }, - verbose: { - demandOption: false, - default: false, - boolean: true, - describe: - 'set flag to get verbose output about actions (GCP_DEBUG=verbose)', - alias: ['v'], - }, - debug: { - demandOption: false, - default: false, - boolean: true, - describe: 'same as using GCP_DEBUG=*', - alias: ['d'], - }, - art: { - demandOption: false, - boolean: true, - default: true, - describe: 'allow ASCII/ANSI art/colours', - alias: ['c'], - }, - }) - .help().argv; - - if (argv.mode === 'help') { - return undefined; - } - - symbols.art = argv.art; - - return argv; -} - -let loggersSetUp = false; -async function setupLoggers(verbose: boolean) { - // This may be needed on subsequent testing runs. - returnValue = 0; - - // Don't double-create or .on() anything. This can happen - // during testing. - if (loggersSetUp) { - return; - } - - await createLoggers(); - - // Set up our log outputs as needed - if (verbose) { - loggers.verbose.on('log', (args: unknown[]) => - console.debug(symbols.grey(consolize([symbols.bug, ...args]))) - ); - } - loggers.step.on('log', (args: unknown[]) => - console.log(consolize([symbols.step, ...args])) - ); - loggers.error.on('log', (args: unknown[]) => { - console.error(symbols.red(consolize([symbols.failure, ...args]))); - - // Also cause main() to return a failure. - returnValue = 1; - }); - - loggersSetUp = true; -} - -export async function main(args: string[]): Promise { - console.log( - symbols.green('Typeless sample bot, converts TS to JS sample snippets') - ); - - // Process command line args and get loggers configured. - const argv = await processArgs(args); - if (!argv) { - return 0; - } - await setupLoggers(argv.verbose); - - // Find all of the samples we're interested in working on. - let sampleFns: AsyncIterable; - if (argv.recursive) { - sampleFns = findSamples( - argv.targets.map(i => i.toString()), - /(?!node_modules).*\.ts$/ - ); - } else { - sampleFns = fromArray(argv.targets.map(i => i.toString())); - } - - // Filter down to samples that have a snippet tag. - const filtered = filterByContents(sampleFns); - - // Transform those samples using Babel. - const transformed = transformSamples(filtered); - - // Write out all of the output samples. - const written = writeSamples(transformed, argv.outputpath); - - try { - // Wait for the pipeline to complete. - const count = await waitForAllSamples(written); - - if (!count && !argv.recursive) { - // Should this be considred a failure? - loggers.error('No samples were selected.'); - } else { - console.log('No samples were found.'); - } - } catch (e) { - loggers.error('Exception during processing:', e); - } - - if (!returnValue) { - console.log(symbols.success, symbols.green('Generation complete!')); - } else { - console.log( - symbols.failure, - symbols.redBright( - 'Something failed. (Maybe not everything, check the log above.)' - ) - ); - } - - return returnValue; -} diff --git a/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts b/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts deleted file mode 100644 index eecae61de0d3..000000000000 --- a/packages/typeless-sample-bot/src/bin/typeless-sample-bot.ts +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env node -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import {main} from '../app.js'; - -main(process.argv.slice(2)) - .then(e => process.exit(e)) - .catch((e: Error) => { - console.error( - `Top level exception: ${e.toString()} ${e.stack?.toString()}` - ); - process.exit(1); - }); diff --git a/packages/typeless-sample-bot/src/debug-js.d.ts b/packages/typeless-sample-bot/src/debug-js.d.ts deleted file mode 100644 index 35da50a4b6d8..000000000000 --- a/packages/typeless-sample-bot/src/debug-js.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Sadly this debug-js module doesn't seem to have typings. -declare module 'debug'; diff --git a/packages/typeless-sample-bot/src/gcp-debuglog.ts b/packages/typeless-sample-bot/src/gcp-debuglog.ts deleted file mode 100644 index 869db73b6514..000000000000 --- a/packages/typeless-sample-bot/src/gcp-debuglog.ts +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import EventEmitter from 'node:events'; -import * as process from 'node:process'; -import * as util from 'node:util'; - -// Adds typings for event sinks. -export declare interface GcpDebugLogger { - on(event: 'log', listener: (args: unknown[]) => void): this; - on(event: string, listener: Function): this; -} - -// Our logger instance. This actually contains the meat of dealing -// with log lines, including EventEmitter -export class GcpDebugLogger extends EventEmitter { - // The function we'll call with new log lines. - // Should be built in Node util stuff, or the "debug" package, or whatever. - upstream: Function; - - // Self-referential function wrapper that calls invoke() on us. - func: GcpDebugLogFunction; - - constructor(upstream: Function) { - super(); - - this.upstream = upstream; - this.func = Object.assign(this.invoke.bind(this), { - // Also add an instance pointer back to us. - instance: this, - - // And pull over the EventEmitter functionality. - on: (event: string, listener: (args: unknown[]) => void) => - this.on(event, listener), - }) as unknown as GcpDebugLogFunction; - } - - invoke(...args: unknown[]): void { - // Push out any upstream logger first. - if (this.upstream) { - this.upstream(...args); - } - - // Emit sink events. - this.emit('log', args); - } -} - -// This can be used in place of a real logger while waiting for Promises. -export const placeholder = new GcpDebugLogger(() => {}).func; - -// Add typing info for the EventEmitter we're adding to the returned function. -export interface GcpDebugLogFunction extends Function { - instance: GcpDebugLogger; - on(event: 'log', listener: (args: unknown[]) => void): this; -} - -// Keep a copy of all namespaced loggers so users can reliably .on() them. -const loggerCache = new Map(); - -// True once we've imported any GCP logging variables into upstream loggers. -let varsSet = false; - -export default async function makeLogger( - namespace: string -): Promise { - // Reuse loggers so things like sinks are persistent. - if (loggerCache.has(namespace)) { - return loggerCache.get(namespace)!.func; - } - - // Look for the GCP debug variable shared across languages. - // Not sure what the format of this will be yet. - const gcpEnv = (process.env['GCP_DEBUG'] ?? '').split(','); - - // Are we plugging into any other popular frameworks? - const debugPkg = (await import('debug')).default; - let logOutput: Function; - if (debugPkg) { - logOutput = debugPkg(namespace); - - if (!varsSet) { - // Also copy over any GCP global enables. - const existingEnables = process.env['DEBUG'] ?? ''; - debugPkg.enable( - `${existingEnables}${existingEnables ? ',' : ''}${gcpEnv}` - ); - - varsSet = true; - } - } else { - logOutput = util.debuglog(namespace); - - if (!varsSet) { - // Also copy over any GCP global enables. - const existingEnables = process.env['NODE_DEBUG'] ?? ''; - process.env['NODE_DEBUG'] = `${existingEnables}${ - existingEnables ? ',' : '' - }${gcpEnv}`; - - varsSet = true; - } - } - - const logger = new GcpDebugLogger(logOutput); - loggerCache.set(namespace, logger); - return logger.func; -} diff --git a/packages/typeless-sample-bot/src/loggers.ts b/packages/typeless-sample-bot/src/loggers.ts deleted file mode 100644 index 2903de6e8c12..000000000000 --- a/packages/typeless-sample-bot/src/loggers.ts +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import {placeholder} from './gcp-debuglog.js'; -import makeLog from './gcp-debuglog.js'; - -// This creates our topical loggers. Since this is ESM, loading modules is -// now an async operation, so we have to put some placeholders in (to get -// typings) until these are actually ready. - -const loggers = { - verbose: placeholder, - step: placeholder, - error: placeholder, -}; - -export async function createLoggers() { - loggers.verbose = await makeLog('verbose'); - loggers.step = await makeLog('step'); - loggers.error = await makeLog('error'); -} - -export default loggers; diff --git a/packages/typeless-sample-bot/src/preset-loader.ts b/packages/typeless-sample-bot/src/preset-loader.ts deleted file mode 100644 index 2d46d7c4106a..000000000000 --- a/packages/typeless-sample-bot/src/preset-loader.ts +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Presets are loaded by proxy here so that we can circumvent the Babel -// path resolution process during load. - -import psTypescript from '@babel/preset-typescript'; - -export const typescript = psTypescript; diff --git a/packages/typeless-sample-bot/src/samples.ts b/packages/typeless-sample-bot/src/samples.ts deleted file mode 100644 index 7c8dbc9e285d..000000000000 --- a/packages/typeless-sample-bot/src/samples.ts +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// TODO(feywind) - Don't lose spaces at the front of comments -// TODO(feywind) - Also add 'use strict' and a comment about being generated - -import loggers from './loggers.js'; -import {treeWalk} from './tree-walk.js'; -import {readFile, writeFile} from 'fs/promises'; -import babel from '@babel/core'; -import path from 'node:path'; -import {typescript as presetTypescript} from './preset-loader.js'; -import importToRequire from './transforms/import-to-require.js'; -import nullCoalescing from './transforms/null-coalescing.js'; -import optionalChaining from './transforms/optional-chaining.js'; -import {addComments} from './transforms/add-comments.js'; - -// Converts an async iterable into an array of the same type. -export async function toArray(iterable: AsyncIterable): Promise { - const output: T[] = []; - for await (const i of iterable) { - output.push(i); - } - - return output; -} - -// Converts an array into an async iterable of the same type. -export async function* fromArray(array: T[]): AsyncIterable { - for (const i of array) { - yield i; - } -} - -// Given a set of starting paths, search down for anything that matches the regex. -export async function* findSamples( - rootDirs: string[], - matcher?: RegExp -): AsyncIterable { - for (const rootDir of rootDirs) { - for await (const fn of treeWalk(rootDir)) { - if (matcher && !matcher.test(fn)) { - continue; - } - yield fn; - } - } -} - -// Ironically, this triggers snippet-bot, so there's a nonce in the middle: ()? -const sampleChecker = /\[()?START .*\]/; - -export interface Sample { - filename: string; - contents: string; -} - -// Filter an async iterable by file conents. This also loads the file contents -// and caches them, since we'll be needing them anyway. -export async function* filterByContents( - filenames: AsyncIterable -): AsyncIterable { - for await (const fn of filenames) { - const contents = (await readFile(fn)).toString(); - if (sampleChecker.test(contents)) { - yield { - filename: fn, - contents, - }; - } - } -} - -// Instead of a babelrc, this is used so that we can get more control over -// the transform process. -const babelConfig = { - presets: [[presetTypescript, {}]], - plugins: [[importToRequire], [nullCoalescing], [optionalChaining]], - parserOpts: {} as babel.ParserOptions, - generatorOpts: { - // Ensures that Babel keeps newlines so that comments end up - // on separate lines as before. - retainLines: true, - } as babel.GeneratorOptions, -}; - -// Transform all of the loaded samples from the async iterator, -// producing output samples that have been transformed, with a new filename. -export async function* transformSamples( - samples: AsyncIterable -): AsyncIterable { - for await (const s of samples) { - const config = Object.assign({}, babelConfig, {filename: s.filename}); - const transformed = await babel.transformAsync(s.contents, config); - let contents = transformed?.code || ''; - contents = addComments(contents); - yield { - filename: s.filename.replace(/\.ts$/g, '.js'), - contents, - }; - } -} - -// Write out all samples to the file system. -export async function* writeSamples( - samples: AsyncIterable, - outputPath?: string -): AsyncIterable { - for await (const s of samples) { - // If requested, rewrite the output path to be elsewhere. - const newName = outputPath - ? path.join(outputPath, path.basename(s.filename)) - : s.filename; - - loggers.verbose('writing new sample', newName); - await writeFile(newName, s.contents); - - yield { - filename: newName, - contents: s.contents, - }; - } -} - -// Terminator function that waits for everything else to complete, -// and returns a count of how many we processed. -export async function waitForAllSamples( - samples: AsyncIterable -): Promise { - let count = 0; - for await (const s of samples) { - loggers.step('Generated', s.filename); - count++; - } - - return count; -} diff --git a/packages/typeless-sample-bot/src/symbols.ts b/packages/typeless-sample-bot/src/symbols.ts deleted file mode 100644 index d7295ee39e2c..000000000000 --- a/packages/typeless-sample-bot/src/symbols.ts +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import chalk from 'chalk'; - -/** - * `Symbols` is our switchboard for accessing things that we might - * need to disable for accessibility or other reasons. This takes care - * of getting back reasonable text for symbols, as well as coloration. - * - * This module serves a secondary goal of containing all emoji text - * to the one file, to avoid messy unicode source files. - */ -class Symbols { - // Controlled by the arg parser. - private _art = true; - - get art() { - return this._art; - } - - set art(useArt: boolean) { - this._art = useArt; - } - - // Looks up the symbol set to use, based on `art`. - private get symbolSet(): string[] { - if (this._art) { - return emojiSymbols; - } else { - return plainSymbols; - } - } - - // Wrapper for chalk.green() that turns off if `art` is false. - green(str: string): string { - return this._art ? chalk.green(str) : str; - } - - // Wrapper for chalk.grey() that turns off if `art` is false. - grey(str: string): string { - return this._art ? chalk.grey(str) : str; - } - - // Wrapper for chalk.red() that turns off if `art` is false. - red(str: string): string { - return this._art ? chalk.red(str) : str; - } - - // Wrapper for chalk.redBright() that turns off if `art` is false. - redBright(str: string): string { - return this._art ? chalk.redBright(str) : str; - } - - // Returns an appropriate symbol text for "debug", based on `art`. - get bug(): string { - return this.symbolSet[symbolEnum.bug]; - } - - // Returns an appropriate symbol text for a "failure", based on `art`. - get failure(): string { - return this.symbolSet[symbolEnum.failure]; - } - - // Returns an appropriate symbol text for a "success", based on `art`. - get success(): string { - return this.symbolSet[symbolEnum.success]; - } - - // Returns an appropriate symbol text for a "step", based on `art`. - get step(): string { - return this.symbolSet[symbolEnum.step]; - } -} - -export const symbols = new Symbols(); - -const symbolEnum = { - bug: 0, - failure: 1, - success: 2, - step: 3, -}; - -const emojiSymbols = ['🐞', '❌', '✅', '✨']; - -const plainSymbols = ['[bug]', '[error]', '[success]', '[step]']; diff --git a/packages/typeless-sample-bot/src/transforms/add-comments.ts b/packages/typeless-sample-bot/src/transforms/add-comments.ts deleted file mode 100644 index 076c9453fa67..000000000000 --- a/packages/typeless-sample-bot/src/transforms/add-comments.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -const headerText = ` -// This is a generated sample, using the typeless sample bot. Please -// look for the source TypeScript sample (.ts) for modifications. -'use strict'; - -`.trim(); - -/** - * Adds the header comments about the generation of the sample and the - * 'use strict' line for JS. Rather than Babel, this just uses simple - * text searching. The reason for that is that it's much simpler to do - * this particular transform that way. Rather than traversing an AST, - * this simply looks for the first blank line and inserts the block there. - * If it can't find one, it puts it at the top. - */ -export function addComments(text: string): string { - text = text.replace('\r', ''); - const lines = text.split('\n'); - const firstBlank = lines.findIndex(l => l.length === 0); - if (firstBlank < 0) { - // Apparently the whole file has no blank lines? - return headerText + text + '\n\n'; - } else { - lines.splice(firstBlank, 0, '\n' + headerText); - } - - return lines.join('\n'); -} diff --git a/packages/typeless-sample-bot/src/transforms/babel.ts b/packages/typeless-sample-bot/src/transforms/babel.ts deleted file mode 100644 index 5cc1b22240ee..000000000000 --- a/packages/typeless-sample-bot/src/transforms/babel.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Reference notes: -// https://lihautan.com/step-by-step-guide-for-writing-a-babel-transformation/ -// https://lihautan.com/babel-ast-explorer/ -// https://github.com/esamattis/babel-plugin-ts-optchain/blob/master/packages/babel-plugin-ts-optchain/src/plugin.ts - -import {NodePath, Visitor} from '@babel/traverse'; -import * as Babel from '@babel/types'; - -export interface VisitorPlugin { - visitor: Visitor; -} - -export type NodePathArray = NodePath[]; -export type NodePathSingle = NodePath; diff --git a/packages/typeless-sample-bot/src/transforms/import-to-require.ts b/packages/typeless-sample-bot/src/transforms/import-to-require.ts deleted file mode 100644 index 7ef0081503d7..000000000000 --- a/packages/typeless-sample-bot/src/transforms/import-to-require.ts +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import * as Babel from '@babel/types'; -import {NodePath} from '@babel/traverse'; -import {NodePathArray, NodePathSingle, VisitorPlugin} from './babel'; - -function getArray(path: NodePathSingle, subPathName: string): NodePathArray { - return path.get(subPathName) as NodePathArray; -} - -function getIdentifier(path: NodePath, subPathName: string): string { - const nodeSingle = path.get(subPathName) as NodePathSingle; - const nodeIdentifier = nodeSingle.node as Babel.Identifier; - return nodeIdentifier.name; -} - -function getStringValue(path: NodePath, subPathName: string): string { - const nodeSingle = path.get(subPathName) as NodePathSingle; - const stringLiteral = nodeSingle.node as Babel.StringLiteral; - return stringLiteral.value; -} - -// ImportDeclaration -function specificImport(path: NodePathSingle) { - const specifiers: NodePathArray = getArray(path, 'specifiers'); - const ids = specifiers.map((s: NodePathSingle) => { - // s: ImportSpecifier - const importedName = getIdentifier(s, 'imported'); - const localName = getIdentifier(s, 'local'); - if (importedName !== localName) { - console.error( - 'Imported name', - importedName, - 'is not the same as local name', - localName - ); - return ''; - } else { - return importedName; - } - }); - const from = getStringValue(path, 'source'); - const properties = ids.map(id => { - return Babel.objectProperty( - /* key */ Babel.identifier(id), - /* value */ Babel.identifier(id), - /* computed */ false, - /* shorthand */ true - ); - }); - - const declarator = Babel.variableDeclarator( - Babel.objectPattern(properties), - Babel.callExpression(Babel.identifier('require'), [ - Babel.stringLiteral(from), - ]) - ); - - const replacement = Babel.inherits( - Babel.variableDeclaration('const', [declarator]), - path.node - ); - path.replaceWith(replacement); -} - -// ImportDeclaration -function wildcardImport(path: NodePathSingle) { - const specifiers: NodePathArray = getArray(path, 'specifiers'); - const ns = getIdentifier(specifiers[0], 'local'); - const from = getStringValue(path, 'source'); - - const declarator = Babel.variableDeclarator( - Babel.identifier(ns), - Babel.callExpression(Babel.identifier('require'), [ - Babel.stringLiteral(from), - ]) - ); - - const replacement = Babel.inherits( - Babel.variableDeclaration('const', [declarator]), - path.node - ); - path.replaceWith(replacement); -} - -export default function importToRequire(): VisitorPlugin { - return { - visitor: { - ImportDeclaration(path: NodePathSingle) { - const specifiers = path.get('specifiers') as NodePathArray; - if (specifiers && specifiers.length > 0) { - if (specifiers[0].isImportSpecifier()) { - specificImport(path); - } else if (specifiers[0].isImportNamespaceSpecifier()) { - wildcardImport(path); - } - path.skip(); - } - }, - }, - }; -} diff --git a/packages/typeless-sample-bot/src/transforms/null-coalescing.ts b/packages/typeless-sample-bot/src/transforms/null-coalescing.ts deleted file mode 100644 index a78be5989a38..000000000000 --- a/packages/typeless-sample-bot/src/transforms/null-coalescing.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import * as Babel from '@babel/types'; -import {NodePathSingle, VisitorPlugin} from './babel'; - -// Because null coalescing is still a proposal in many versions of Node, -// go ahead and convert it to plain ||. It should work in TypeScript. -export default function nullCoalescing(): VisitorPlugin { - return { - visitor: { - LogicalExpression(path: NodePathSingle) { - const node = path.node as Babel.LogicalExpression; - if (node.operator === '??') { - path.replaceWith( - Babel.logicalExpression('||', node.left, node.right) - ); - } - }, - }, - }; -} diff --git a/packages/typeless-sample-bot/src/transforms/optional-chaining.ts b/packages/typeless-sample-bot/src/transforms/optional-chaining.ts deleted file mode 100644 index ad9246610004..000000000000 --- a/packages/typeless-sample-bot/src/transforms/optional-chaining.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import * as Babel from '@babel/types'; -import {NodePathSingle, VisitorPlugin} from './babel.js'; - -// Because optional chaining is still a proposal in many versions of Node, -// go ahead and convert it to plain '.'. It should work in TypeScript. -export default function optionalChaining(): VisitorPlugin { - return { - visitor: { - OptionalCallExpression(path: NodePathSingle) { - const node = path.node as Babel.OptionalCallExpression; - path.replaceWith(Babel.callExpression(node.callee, node.arguments)); - }, - OptionalMemberExpression(path: NodePathSingle) { - const node = path.node as Babel.OptionalMemberExpression; - path.replaceWith( - Babel.memberExpression( - node.object, - node.property, - node.computed, - node.optional - ) - ); - }, - LogicalExpression(path: NodePathSingle) { - const node = path.node as Babel.LogicalExpression; - if (node.operator === '??') { - path.replaceWith( - Babel.logicalExpression('||', node.left, node.right) - ); - } - }, - }, - }; -} diff --git a/packages/typeless-sample-bot/src/tree-walk.ts b/packages/typeless-sample-bot/src/tree-walk.ts deleted file mode 100644 index 41aaf05ec302..000000000000 --- a/packages/typeless-sample-bot/src/tree-walk.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import {resolve} from 'node:path'; -import {readdir} from 'node:fs/promises'; - -// Given a root directory, traverse its tree to find all files. This -// will be done using async iterators, returning results opportunistically. -export async function* treeWalk(rootDir: string): AsyncIterable { - const entries = await readdir(rootDir, {withFileTypes: true}); - for (const entry of entries) { - const resolved = resolve(rootDir, entry.name); - if (entry.isDirectory()) { - yield* treeWalk(resolved); - } else { - yield resolved; - } - } -} diff --git a/packages/typeless-sample-bot/src/typescript-preset.d.ts b/packages/typeless-sample-bot/src/typescript-preset.d.ts deleted file mode 100644 index 3e4e4990bb8b..000000000000 --- a/packages/typeless-sample-bot/src/typescript-preset.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// This is needed to work around Babel's preset loading logic, since we -// may need to run from a path that's not our node_modules. -declare module '@babel/preset-typescript'; diff --git a/packages/typeless-sample-bot/test/fixtures/createTopic.js b/packages/typeless-sample-bot/test/fixtures/createTopic.js deleted file mode 100644 index 6e9ac0b967bd..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/createTopic.js +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2019-2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This sample demonstrates how to perform basic operations on topics with - * the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -'use strict'; - -// This test fixture sample has been modified to factor out changes that -// gts fix would reverse anyway. - -// sample-metadata: -// title: Create Topic -// description: Creates a new topic. -// usage: node createTopic.js - -async function main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') { - // [START pubsub_create_topic] - /** - * TODO(developer): Uncomment this variable before running the sample. - */ - // const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID'; - - // Imports the Google Cloud client library - const {PubSub} = require('@google-cloud/pubsub'); - - // Creates a client; cache this for further use - const pubSubClient = new PubSub(); - - async function createTopic() { - // Creates a new topic - await pubSubClient.createTopic(topicNameOrId); - console.log(`Topic ${topicNameOrId} created.`); - } - - createTopic(); - // [END pubsub_create_topic] -} - -main(...process.argv.slice(2)).catch((e) => { - console.error(e); - process.exitCode = -1; -}); diff --git a/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts b/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts deleted file mode 100644 index c2d6eb1420cd..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/deleteSchema.ts +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This application demonstrates how to perform basic operations on - * schemas with the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: Delete a previously created schema -// description: Deletes a schema which was previously created in the project. -// usage: node deleteSchema.js - -// [START pubsub_delete_schema] -/** - * TODO(developer): Uncomment this variable before running the sample. - */ -// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID'; - -// Imports the Google Cloud client library -import {PubSub} from '@google-cloud/pubsub'; - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -async function deleteSchema(schemaNameOrId: string) { - const schema = pubSubClient.schema(schemaNameOrId); - const name = await schema.getName(); - await schema.delete(); - console.log(`Schema ${name} deleted.`); -} -// [END pubsub_delete_schema] - -const someValue: number | undefined = undefined; -const coalesced = someValue ?? 5; - -function main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') { - deleteSchema(schemaNameOrId).catch(err => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(...process.argv.slice(2)); diff --git a/packages/typeless-sample-bot/test/fixtures/empty-folder/.gitkeep b/packages/typeless-sample-bot/test/fixtures/empty-folder/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts b/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts deleted file mode 100644 index b363885b6fda..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/folder/listenForAvroRecords.ts +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2019-2021 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This application demonstrates how to perform basic operations on - * subscriptions with the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: Listen For Avro Records -// description: Listens for records in Avro encoding from a subscription. -// usage: node listenForAvroRecords.js [timeout-in-seconds] - -// [START pubsub_subscribe_avro_records] -/** - * TODO(developer): Uncomment these variables before running the sample. - */ -// const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID'; -// const timeout = 60; - -// Imports the Google Cloud client library -import {PubSub, Schema, Encodings, Message} from '@google-cloud/pubsub'; - -// Node FS library, to load definitions -import * as fs from 'fs'; - -// And the Apache Avro library -import * as avro from 'avro-js'; - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -function listenForAvroRecords(subscriptionNameOrId: string, timeout: number) { - // References an existing subscription - const subscription = pubSubClient.subscription(subscriptionNameOrId); - - // Make an encoder using the official avro-js library. - const definition = fs - .readFileSync('system-test/fixtures/provinces.avsc') - .toString(); - const type = avro.parse(definition); - - // Create an event handler to handle messages - let messageCount = 0; - const messageHandler = async (message: Message) => { - // "Ack" (acknowledge receipt of) the message - message.ack(); - - // Get the schema metadata from the message. - const schemaMetadata = Schema.metadataFromMessage(message.attributes); - - let result: object | undefined; - switch (schemaMetadata.encoding) { - case Encodings.Binary: - result = type.fromBuffer(message.data); - break; - case Encodings.Json: - result = type.fromString(message.data.toString()); - break; - default: - console.log(`Unknown schema encoding: ${schemaMetadata.encoding}`); - break; - } - - console.log(`Received message ${message.id}:`); - console.log(`\tData: ${JSON.stringify(result, null, 4)}`); - console.log(`\tAttributes: ${message.attributes}`); - messageCount += 1; - }; - - // Listen for new messages until timeout is hit - subscription.on('message', messageHandler); - - setTimeout(() => { - subscription.removeListener('message', messageHandler); - console.log(`${messageCount} message(s) received.`); - }, timeout * 1000); - - use?.optional?.chaining?.(); -} -// [END pubsub_subscribe_avro_records] - -function main( - subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID', - timeout = 60 -) { - timeout = Number(timeout); - - try { - listenForAvroRecords(subscriptionNameOrId, timeout); - } catch (err) { - console.error(err.message); - process.exitCode = 1; - } -} - -main(...process.argv.slice(2)); diff --git a/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts b/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts deleted file mode 100644 index d269f5479266..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/folder/publishAvroRecords.ts +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2019-2021 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This sample demonstrates how to perform basic operations on topics with - * the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: Publish Avro Records to a Topic -// description: Publishes a record in Avro to a topic with a schema. -// usage: node publishAvroRecords.js - -// [START pubsub_publish_avro_records] -/** - * TODO(developer): Uncomment this variable before running the sample. - */ -// const topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID'; - -// Imports the Google Cloud client library -import {PubSub, Encodings} from '@google-cloud/pubsub'; - -// And the Apache Avro library -import * as avro from 'avro-js'; -import * as fs from 'fs'; - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -interface ProvinceObject { - name: string; - post_abbr: string; -} - -async function publishAvroRecords(topicNameOrId: string) { - // Get the topic metadata to learn about its schema encoding. - const topic = pubSubClient.topic(topicNameOrId); - const [topicMetadata] = await topic.getMetadata(); - const topicSchemaMetadata = topicMetadata.schemaSettings; - - if (!topicSchemaMetadata) { - console.log(`Topic ${topicNameOrId} doesn't seem to have a schema.`); - return; - } - const schemaEncoding = topicSchemaMetadata.encoding; - - // Make an encoder using the official avro-js library. - const definition = fs - .readFileSync('system-test/fixtures/provinces.avsc') - .toString(); - const type = avro.parse(definition); - - // Encode the message. - const province: ProvinceObject = { - name: 'Ontario', - post_abbr: 'ON', - }; - let dataBuffer: Buffer | undefined; - switch (schemaEncoding) { - case Encodings.Binary: - dataBuffer = type.toBuffer(province); - break; - case Encodings.Json: - dataBuffer = Buffer.from(type.toString(province)); - break; - default: - console.log(`Unknown schema encoding: ${schemaEncoding}`); - break; - } - if (!dataBuffer) { - console.log(`Invalid encoding ${schemaEncoding} on the topic.`); - return; - } - - const messageId = await topic.publish(dataBuffer); - console.log(`Avro record ${messageId} published.`); -} -// [END pubsub_publish_avro_records] - -function main(topicNameOrId = 'YOUR_TOPIC_NAME_OR_ID') { - publishAvroRecords(topicNameOrId).catch(err => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(...process.argv.slice(2)); diff --git a/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts b/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts deleted file mode 100644 index fd9282e0b0af..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/folder/validateSchema.ts +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2019-2021 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This sample demonstrates how to perform basic operations on topics with - * the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: Validate a schema definition -// description: Validates an Avro-based schema definition before creation (or other use). -// usage: node validateSchema.js - -// (No tag, currently - this sample is non-canonical) -/** - * TODO(developer): Uncomment this variable before running the sample. - */ -// const schemaText = 'YOUR_SCHEMA_TEXT'; - -// Imports the Google Cloud client library -import {PubSub, SchemaTypes} from '@google-cloud/pubsub'; - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -async function validateSchema(schemaText: string) { - try { - await pubSubClient.validateSchema({ - type: SchemaTypes.Avro, - definition: schemaText, - }); - console.log('Validated with no error.'); - } catch (e) { - console.log('Received error:', e); - } -} -// (No tag, currently - this sample is non-canonical) - -// Just a sample AVSC definition to try. -const sampleAvsc = ` -{ - "type":"record", - "name":"Province", - "namespace":"utilities", - "doc":"A list of provinces in Canada.", - "fields":[ - { - "name":"name", - "type":"string", - "doc":"The common name of the province." - }, - { - "name":"post_abbr", - "type":"string", - "doc":"The postal code abbreviation of the province." - } - ] -} -`; - -function main(schemaText = sampleAvsc) { - validateSchema(schemaText).catch(err => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(...process.argv.slice(2)); diff --git a/packages/typeless-sample-bot/test/fixtures/getSchema.ts b/packages/typeless-sample-bot/test/fixtures/getSchema.ts deleted file mode 100644 index bd7e618e8427..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/getSchema.ts +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This application demonstrates how to perform basic operations on - * schemas with the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: Get a previously created schema -// description: Gets information about a schema which was previously created in the project. -// usage: node getSchema.js - -// [START pubsub_get_schema] -/** - * TODO(developer): Uncomment this variable before running the sample. - */ -// const schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID'; - -// Imports the Google Cloud client library -import {PubSub} from '@google-cloud/pubsub'; - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -async function getSchema(schemaNameOrId: string) { - const schema = pubSubClient.schema(schemaNameOrId); - const info = await schema.get(); - const fullName = await schema.getName(); - console.log(`Schema ${fullName} info: ${JSON.stringify(info, null, 4)}.`); -} -// [END pubsub_get_schema] - -function main(schemaNameOrId = 'YOUR_SCHEMA_NAME_OR_ID') { - getSchema(schemaNameOrId).catch(err => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(...process.argv.slice(2)); diff --git a/packages/typeless-sample-bot/test/fixtures/listSchemas.ts b/packages/typeless-sample-bot/test/fixtures/listSchemas.ts deleted file mode 100644 index 4b94ef6be54e..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/listSchemas.ts +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * This application demonstrates how to perform basic operations on - * schemas with the Google Cloud Pub/Sub API. - * - * For more information, see the README.md under /pubsub and the documentation - * at https://cloud.google.com/pubsub/docs. - */ - -// sample-metadata: -// title: List schemas on a project -// description: Gets a list of schemas which were previously created in the project. -// usage: node listSchemas.js - -// [START pubsub_list_schemas] - -// Imports the Google Cloud client library -import {PubSub} from '@google-cloud/pubsub'; - -// Creates a client; cache this for further use -const pubSubClient = new PubSub(); - -async function listSchemas() { - for await (const s of pubSubClient.listSchemas()) { - console.log(s.name); - } - console.log('Listed schemas.'); -} -// [END pubsub_list_schemas] - -function main() { - listSchemas().catch(err => { - console.error(err.message); - process.exitCode = 1; - }); -} - -main(); diff --git a/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts b/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts deleted file mode 100644 index 4d3833e88369..000000000000 --- a/packages/typeless-sample-bot/test/fixtures/noBlankLines.ts +++ /dev/null @@ -1,3 +0,0 @@ -// This file -// has no -// blank lines \ No newline at end of file diff --git a/packages/typeless-sample-bot/test/index.ts b/packages/typeless-sample-bot/test/index.ts deleted file mode 100644 index 6b55c5fb5d2e..000000000000 --- a/packages/typeless-sample-bot/test/index.ts +++ /dev/null @@ -1,235 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import * as assert from 'assert'; -import {describe, it} from 'mocha'; -import snapshot from 'snap-shot-it'; -import * as samples from '../src/samples.js'; -import * as main from '../src/app.js'; -import {readFile, rm, stat, mkdir} from 'node:fs/promises'; -import * as url from 'node:url'; -import * as path from 'node:path'; -import * as sinon from 'sinon'; - -// ESM removes __dirname. -const dirName = url.fileURLToPath(new URL('.', import.meta.url)); - -// We're in 'build' here, need to back out. -const fixturePath = path.join(dirName, '..', '..', 'test', 'fixtures'); - -async function loadFixture(name: string): Promise { - const fn = name.includes(path.sep) ? name : path.join(fixturePath, name); - return (await readFile(fn)).toString(); -} - -describe('sample transformation', () => { - it('does not change JS', async () => { - const fixture = await loadFixture('createTopic.js'); - - const sIn = samples.fromArray([ - { - filename: 'test.js', - contents: fixture, - }, - ]); - const sOut = await samples.toArray(samples.transformSamples(sIn)); - snapshot(sOut); - }); - - it('correctly transforms TS', async () => { - const fixture = await loadFixture('listSchemas.ts'); - - const sIn = samples.fromArray([ - { - filename: 'listSchemas.ts', - contents: fixture, - }, - ]); - - const sOut = await samples.toArray(samples.transformSamples(sIn)); - - snapshot(sOut[0].contents); - }); - - it('correctly adds use strict when the sample has a licence block', async () => { - const fixture = await loadFixture('listSchemas.ts'); - - const sIn = samples.fromArray([ - { - filename: 'listSchemas.ts', - contents: fixture, - }, - ]); - - const sOut = await samples.toArray(samples.transformSamples(sIn)); - assert.strictEqual(sOut[0].contents.includes('use strict'), true); - }); - - it('correctly adds use strict when the sample has no blank lines', async () => { - const fixture = await loadFixture('noBlankLines.ts'); - - const sIn = samples.fromArray([ - { - filename: 'listSchemas.ts', - contents: fixture, - }, - ]); - - const sOut = await samples.toArray(samples.transformSamples(sIn)); - assert.strictEqual(sOut[0].contents.includes('use strict'), true); - }); -}); - -describe('command line option', () => { - const sandbox = sinon.createSandbox(); - - afterEach(() => { - sandbox.restore(); - }); - - it('"no-art" removes emojis and colours', async () => { - const cmdline = ['node', 'index.ts', '--no-art', '-t', 'foo.ts']; - sandbox.stub(console, 'error').callsFake((...params) => { - if (typeof params[0] === 'string') { - assert.strictEqual(params[0].includes('[error]'), true); - } - }); - - const retcode = await main.main(cmdline); - assert.strictEqual(retcode, 1); - }); - - it('"targets" works with a single sample file', async () => { - try { - const cmdline = [ - 'node', - 'index.ts', - '--targets', - path.join(fixturePath, 'listSchemas.ts'), - ]; - const retcode = await main.main(cmdline); - assert.strictEqual(retcode, 0); - const contents = await loadFixture('listSchemas.js'); - snapshot(contents); - } finally { - rm(path.join(fixturePath, 'listSchemas.js')).catch(() => {}); - } - }); - - it('"targets" works with multiple sample files', async () => { - try { - const cmdline = [ - 'node', - 'index.ts', - '--targets', - path.join(fixturePath, 'deleteSchema.ts'), - path.join(fixturePath, 'getSchema.ts'), - ]; - const retcode = await main.main(cmdline); - assert.strictEqual(retcode, 0); - const contents = [ - await loadFixture('deleteSchema.js'), - await loadFixture('getSchema.js'), - ]; - snapshot(contents); - } finally { - rm(path.join(fixturePath, 'deleteSchema.js')).catch(() => {}); - rm(path.join(fixturePath, 'getSchema.js')).catch(() => {}); - } - }); - - it('"outputpath" causes the output to move', async () => { - const testOutputPath = path.join(fixturePath, 'alternate'); - const cmdline = [ - 'node', - 'index.ts', - '--targets', - path.join(fixturePath, 'deleteSchema.ts'), - path.join(fixturePath, 'getSchema.ts'), - '--outputpath', - testOutputPath, - ]; - const outputs = [ - path.join(testOutputPath, 'deleteSchema.js'), - path.join(testOutputPath, 'getSchema.js'), - ]; - try { - await mkdir(testOutputPath); - const retcode = await main.main(cmdline); - assert.strictEqual(retcode, 0); - const contents = [ - await loadFixture(outputs[0]), - await loadFixture(outputs[1]), - ]; - snapshot(contents); - } finally { - rm(testOutputPath, { - recursive: true, - }).catch(() => {}); - } - }); - - it('"recursive" causes recursion and only matches samples', async () => { - const targets = [ - path.join(fixturePath, 'folder', 'listenForAvroRecords.js'), - path.join(fixturePath, 'folder', 'publishAvroRecords.js'), - ]; - const antiTarget = path.join(fixturePath, 'folder', 'validateSchema.js'); - try { - const cmdline = [ - 'node', - 'index.ts', - '--recursive', - '--targets', - path.join(fixturePath, 'folder'), - ]; - const retcode = await main.main(cmdline); - assert.strictEqual(retcode, 0); - - const contents = [ - await loadFixture(targets[0]), - await loadFixture(targets[1]), - ]; - snapshot(contents); - - await assert.rejects(stat(antiTarget)); - } finally { - targets.forEach(t => { - rm(t).catch(() => {}); - }); - } - }); - - it('does not exit with 0 when run on empty folder', async () => { - const cmdline = [ - 'node', - 'index.ts', - '--recursive', - '--targets', - path.join(fixturePath, 'empty-folder'), - ]; - const retcode = await main.main(cmdline); - assert.strictEqual(retcode, 0); - }); -}); -/* - -More test ideas: - -- TS samples should come out with 'use require' and a "generated" comment - This is not in the generator yet. - -- Separate tests for debuglog? - -*/ diff --git a/packages/typeless-sample-bot/tsconfig.json b/packages/typeless-sample-bot/tsconfig.json deleted file mode 100644 index 695d9e5159b4..000000000000 --- a/packages/typeless-sample-bot/tsconfig.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - // This file is handwritten since this library is also handwritten - "extends": "./node_modules/gts/tsconfig-google.json", - "include": [ - "src/*.ts", - "src/**/*.ts", - "test/*.ts", - "tests/**/*.ts" - ], - "exclude": [ - "test/fixtures/*.ts" - ], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - "lib": ["es2020"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ - "module": "ES2022", /* Specify what module code is generated. */ - "rootDir": ".", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "build", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} From cae4b1a9efa868b9536bea7beb67ab82177c30bc Mon Sep 17 00:00:00 2001 From: feywind <57276408+feywind@users.noreply.github.com> Date: Thu, 14 May 2026 15:10:57 -0400 Subject: [PATCH 3/4] chore: move google-cloud-dns to handwritten --- handwritten/google-cloud-dns/.OwlBot.yaml | 15 + handwritten/google-cloud-dns/.gitignore | 13 + handwritten/google-cloud-dns/.jsdoc.js | 51 + handwritten/google-cloud-dns/.mocharc.js | 29 + handwritten/google-cloud-dns/.nycrc | 24 + .../google-cloud-dns/.repo-metadata.json | 15 + handwritten/google-cloud-dns/CHANGELOG.md | 517 +++++++ handwritten/google-cloud-dns/README.md | 157 ++ .../google-cloud-dns/linkinator.config.json | 9 + handwritten/google-cloud-dns/package.json | 83 + .../google-cloud-dns/samples/.eslintrc.yml | 3 + .../google-cloud-dns/samples/README.md | 52 + .../google-cloud-dns/samples/package.json | 25 + .../google-cloud-dns/samples/quickstart.js | 40 + .../samples/test/quickstart.test.js | 47 + handwritten/google-cloud-dns/src/change.ts | 259 ++++ handwritten/google-cloud-dns/src/index.ts | 468 ++++++ handwritten/google-cloud-dns/src/record.ts | 229 +++ handwritten/google-cloud-dns/src/zone.ts | 1363 +++++++++++++++++ .../system-test/data/zonefile.zone | 9 + .../google-cloud-dns/system-test/dns.ts | 347 +++++ handwritten/google-cloud-dns/test/change.ts | 162 ++ handwritten/google-cloud-dns/test/index.ts | 431 ++++++ handwritten/google-cloud-dns/test/record.ts | 357 +++++ handwritten/google-cloud-dns/test/zone.ts | 1067 +++++++++++++ handwritten/google-cloud-dns/tsconfig.json | 19 + 26 files changed, 5791 insertions(+) create mode 100644 handwritten/google-cloud-dns/.OwlBot.yaml create mode 100644 handwritten/google-cloud-dns/.gitignore create mode 100644 handwritten/google-cloud-dns/.jsdoc.js create mode 100644 handwritten/google-cloud-dns/.mocharc.js create mode 100644 handwritten/google-cloud-dns/.nycrc create mode 100644 handwritten/google-cloud-dns/.repo-metadata.json create mode 100644 handwritten/google-cloud-dns/CHANGELOG.md create mode 100644 handwritten/google-cloud-dns/README.md create mode 100644 handwritten/google-cloud-dns/linkinator.config.json create mode 100644 handwritten/google-cloud-dns/package.json create mode 100644 handwritten/google-cloud-dns/samples/.eslintrc.yml create mode 100644 handwritten/google-cloud-dns/samples/README.md create mode 100644 handwritten/google-cloud-dns/samples/package.json create mode 100644 handwritten/google-cloud-dns/samples/quickstart.js create mode 100644 handwritten/google-cloud-dns/samples/test/quickstart.test.js create mode 100644 handwritten/google-cloud-dns/src/change.ts create mode 100644 handwritten/google-cloud-dns/src/index.ts create mode 100644 handwritten/google-cloud-dns/src/record.ts create mode 100644 handwritten/google-cloud-dns/src/zone.ts create mode 100644 handwritten/google-cloud-dns/system-test/data/zonefile.zone create mode 100644 handwritten/google-cloud-dns/system-test/dns.ts create mode 100644 handwritten/google-cloud-dns/test/change.ts create mode 100644 handwritten/google-cloud-dns/test/index.ts create mode 100644 handwritten/google-cloud-dns/test/record.ts create mode 100644 handwritten/google-cloud-dns/test/zone.ts create mode 100644 handwritten/google-cloud-dns/tsconfig.json diff --git a/handwritten/google-cloud-dns/.OwlBot.yaml b/handwritten/google-cloud-dns/.OwlBot.yaml new file mode 100644 index 000000000000..4935bf466f98 --- /dev/null +++ b/handwritten/google-cloud-dns/.OwlBot.yaml @@ -0,0 +1,15 @@ +# Copyright 2021 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +begin-after-commit-hash: 397c0bfd367a2427104f988d5329bc117caafd95 diff --git a/handwritten/google-cloud-dns/.gitignore b/handwritten/google-cloud-dns/.gitignore new file mode 100644 index 000000000000..2036b7c65835 --- /dev/null +++ b/handwritten/google-cloud-dns/.gitignore @@ -0,0 +1,13 @@ +**/*.log +**/node_modules +.coverage +.nyc_output +docs/ +out/ +system-test/secrets.js +system-test/*key.json +*.lock +package-lock.json +build/ +__pycache__ +.DS_Store \ No newline at end of file diff --git a/handwritten/google-cloud-dns/.jsdoc.js b/handwritten/google-cloud-dns/.jsdoc.js new file mode 100644 index 000000000000..779da8bc1614 --- /dev/null +++ b/handwritten/google-cloud-dns/.jsdoc.js @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/jsdoc-fresh', + recurse: true, + verbose: true, + destination: './docs/' + }, + plugins: [ + 'plugins/markdown', + 'jsdoc-region-tag' + ], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: [ + 'build/src' + ], + includePattern: '\\.js$' + }, + templates: { + copyright: 'Copyright 2019 Google, LLC.', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/dns', + theme: 'lumen', + default: { + "outputSourceFiles": false + } + }, + markdown: { + idInHeadings: true + } +}; diff --git a/handwritten/google-cloud-dns/.mocharc.js b/handwritten/google-cloud-dns/.mocharc.js new file mode 100644 index 000000000000..2431859019f8 --- /dev/null +++ b/handwritten/google-cloud-dns/.mocharc.js @@ -0,0 +1,29 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +const config = { + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000, + "recursive": true +} +if (process.env.MOCHA_THROW_DEPRECATION === 'false') { + delete config['throw-deprecation']; +} +if (process.env.MOCHA_REPORTER) { + config.reporter = process.env.MOCHA_REPORTER; +} +if (process.env.MOCHA_REPORTER_OUTPUT) { + config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; +} +module.exports = config diff --git a/handwritten/google-cloud-dns/.nycrc b/handwritten/google-cloud-dns/.nycrc new file mode 100644 index 000000000000..b18d5472b62b --- /dev/null +++ b/handwritten/google-cloud-dns/.nycrc @@ -0,0 +1,24 @@ +{ + "report-dir": "./.coverage", + "reporter": ["text", "lcov"], + "exclude": [ + "**/*-test", + "**/.coverage", + "**/apis", + "**/benchmark", + "**/conformance", + "**/docs", + "**/samples", + "**/scripts", + "**/protos", + "**/test", + "**/*.d.ts", + ".jsdoc.js", + "**/.jsdoc.js", + "karma.conf.js", + "webpack-tests.config.js", + "webpack.config.js" + ], + "exclude-after-remap": false, + "all": true +} diff --git a/handwritten/google-cloud-dns/.repo-metadata.json b/handwritten/google-cloud-dns/.repo-metadata.json new file mode 100644 index 000000000000..d2f8c93fe56a --- /dev/null +++ b/handwritten/google-cloud-dns/.repo-metadata.json @@ -0,0 +1,15 @@ +{ + "name": "dns", + "name_pretty": "Cloud DNS", + "product_documentation": "https://cloud.google.com/dns", + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/dns/latest", + "issue_tracker": "https://issuetracker.google.com/savedsearches/559772", + "release_level": "stable", + "language": "nodejs", + "repo": "googleapis/google-cloud-node", + "distribution_name": "@google-cloud/dns", + "api_id": "dns.googleapis.com", + "requires_billing": true, + "api_shortname": "dns", + "library_type": "REST" +} diff --git a/handwritten/google-cloud-dns/CHANGELOG.md b/handwritten/google-cloud-dns/CHANGELOG.md new file mode 100644 index 000000000000..9f82bd83b2e0 --- /dev/null +++ b/handwritten/google-cloud-dns/CHANGELOG.md @@ -0,0 +1,517 @@ +# Changelog + +[npm history][1] + +[1]: https://www.npmjs.com/package/@google-cloud/dns?activeTab=versions + +## [5.3.2](https://github.com/googleapis/google-cloud-node/compare/dns-v5.3.1...dns-v5.3.2) (2026-05-01) + + +### Bug Fixes + +* Change the copyright year for files in the packages folder ([#8109](https://github.com/googleapis/google-cloud-node/issues/8109)) ([c1a03fe](https://github.com/googleapis/google-cloud-node/commit/c1a03fe604662091be283055c7d34052c64d6334)) + +## [5.3.1](https://github.com/googleapis/google-cloud-node/compare/dns-v5.3.0...dns-v5.3.1) (2025-10-13) + + +### Bug Fixes + +* [gkeconnect-gateway] remove unused GatewayServiceClient ([#6775](https://github.com/googleapis/google-cloud-node/issues/6775)) ([41c2ff2](https://github.com/googleapis/google-cloud-node/commit/41c2ff2851b5fdadabf4f9bd3500167c34b32ff7)) + +## [5.3.0](https://github.com/googleapis/google-cloud-node/compare/dns-v5.2.0...dns-v5.3.0) (2025-07-09) + + +### Features + +* [Many APIs] add methods from gax to cache proto root and process custom error details ([#6419](https://github.com/googleapis/google-cloud-node/issues/6419)) ([f8a324c](https://github.com/googleapis/google-cloud-node/commit/f8a324ca5c3bc0f730e4ed67d9407c44f2414936)) +* Add protobufjs 2023 edition support ([#6303](https://github.com/googleapis/google-cloud-node/issues/6303)) ([4a0cba1](https://github.com/googleapis/google-cloud-node/commit/4a0cba1e41a9aeb9c15ad31487ef013c8277cfef)) + +## [5.2.0](https://github.com/googleapis/google-cloud-node/compare/dns-v5.1.0...dns-v5.2.0) (2025-05-09) + + +### Features + +* Multiple ai-platform updates ([0b8b1a7](https://github.com/googleapis/google-cloud-node/commit/0b8b1a75f33bdf94000321d239834b9b10757862)) + + +### Bug Fixes + +* Update outdated types for DNS ([#6238](https://github.com/googleapis/google-cloud-node/issues/6238)) ([96aa3d8](https://github.com/googleapis/google-cloud-node/commit/96aa3d809b7cfff6410ce89b177ba3fbc6a607da)) +* Update Record typings ([7aa1c72](https://github.com/googleapis/google-cloud-node/commit/7aa1c72d37b636a6fde876758701a9b37c7a609c)) + +## [5.1.0](https://github.com/googleapis/google-cloud-node/compare/dns-v5.0.0...dns-v5.1.0) (2025-03-19) + + +### Features + +* [Many APIs] await/catch promises, and update listOperationsAsync return type ([#6182](https://github.com/googleapis/google-cloud-node/issues/6182)) ([c41ff07](https://github.com/googleapis/google-cloud-node/commit/c41ff0729b65a1207978b4029d6369cc0552e0bf)) + + +### Bug Fixes + +* **deps:** Update dependency @google-cloud/promisify to v5 ([#6150](https://github.com/googleapis/google-cloud-node/issues/6150)) ([1135b86](https://github.com/googleapis/google-cloud-node/commit/1135b8610b2471249dc3aec47eb0f985ded13f93)) + +## [5.0.0](https://github.com/googleapis/google-cloud-node/compare/dns-v4.1.0...dns-v5.0.0) (2025-03-18) + + +### ⚠ BREAKING CHANGES + +* upgrade to Node 18 ([#6096](https://github.com/googleapis/google-cloud-node/issues/6096)) + +### Bug Fixes + +* **deps:** Update dependency @google-cloud/paginator to v6 ([#6128](https://github.com/googleapis/google-cloud-node/issues/6128)) ([3e16aca](https://github.com/googleapis/google-cloud-node/commit/3e16acaf81165b03bfbb636ca8f24197c971443a)) + + +### Miscellaneous Chores + +* Upgrade to Node 18 ([#6096](https://github.com/googleapis/google-cloud-node/issues/6096)) ([eadae64](https://github.com/googleapis/google-cloud-node/commit/eadae64d54e07aa2c65097ea52e65008d4e87436)) + +## [4.1.0](https://github.com/googleapis/google-cloud-node/compare/dns-v4.0.0...dns-v4.1.0) (2024-05-21) + + +### Features + +* [Many APIs] update Nodejs generator to send API versions in headers for GAPICs ([#5351](https://github.com/googleapis/google-cloud-node/issues/5351)) ([01f48fc](https://github.com/googleapis/google-cloud-node/commit/01f48fce63ec4ddf801d59ee2b8c0db9f6fb8372)) +* [Many APIs] update Nodejs generator to send API versions in headers for GAPICs ([#5354](https://github.com/googleapis/google-cloud-node/issues/5354)) ([a9784ed](https://github.com/googleapis/google-cloud-node/commit/a9784ed3db6ee96d171762308bbbcd57390b6866)) + +## [4.0.0](https://github.com/googleapis/nodejs-dns/compare/v3.0.2...v4.0.0) (2023-08-10) + + +### ⚠ BREAKING CHANGES + +* upgrade to Node 14 ([#556](https://github.com/googleapis/nodejs-dns/issues/556)) + +### Miscellaneous Chores + +* Upgrade to Node 14 ([#556](https://github.com/googleapis/nodejs-dns/issues/556)) ([75b5a56](https://github.com/googleapis/nodejs-dns/commit/75b5a56993e74826b69650c8c7601e977802b15f)) + +## [3.0.2](https://github.com/googleapis/nodejs-dns/compare/v3.0.1...v3.0.2) (2022-08-23) + + +### Bug Fixes + +* remove pip install statements ([#1546](https://github.com/googleapis/nodejs-dns/issues/1546)) ([#534](https://github.com/googleapis/nodejs-dns/issues/534)) ([b3a77f0](https://github.com/googleapis/nodejs-dns/commit/b3a77f071df17739c2fcd682f181ac5bdddffae6)) + +## [3.0.1](https://github.com/googleapis/nodejs-dns/compare/v3.0.0...v3.0.1) (2022-06-09) + + +### Bug Fixes + +* **deps:** update dependency @google-cloud/common to v4 ([#529](https://github.com/googleapis/nodejs-dns/issues/529)) ([4e8b02f](https://github.com/googleapis/nodejs-dns/commit/4e8b02ff70ce3158d10cf37970f4d9ea371a2fcb)) + +## [3.0.0](https://github.com/googleapis/nodejs-dns/compare/v2.2.4...v3.0.0) (2022-06-06) + + +### ⚠ BREAKING CHANGES + +* update library to use Node 12 (#524) + +### Bug Fixes + +* **deps:** update dependency @google-cloud/paginator to v4 ([#525](https://github.com/googleapis/nodejs-dns/issues/525)) ([e82ead7](https://github.com/googleapis/nodejs-dns/commit/e82ead7460db28e4a434ba321e1e1d0e3f7b12ed)) +* **deps:** update dependency @google-cloud/promisify to v3 ([#523](https://github.com/googleapis/nodejs-dns/issues/523)) ([7cfb445](https://github.com/googleapis/nodejs-dns/commit/7cfb445dd432ccdc71d13ef1eea43797dc898157)) + + +### Build System + +* update library to use Node 12 ([#524](https://github.com/googleapis/nodejs-dns/issues/524)) ([ab3ce39](https://github.com/googleapis/nodejs-dns/commit/ab3ce39f2257cde3740bd51302667d2f24111aa8)) + +### [2.2.4](https://www.github.com/googleapis/nodejs-dns/compare/v2.2.3...v2.2.4) (2022-01-06) + + +### Bug Fixes + +* **deps:** update dependency dns-zonefile to v0.2.10 ([#503](https://www.github.com/googleapis/nodejs-dns/issues/503)) ([dc59d1c](https://www.github.com/googleapis/nodejs-dns/commit/dc59d1c8c733348e8500a751a71ccb0a9b13656d)) + +### [2.2.3](https://www.github.com/googleapis/nodejs-dns/compare/v2.2.2...v2.2.3) (2021-09-22) + + +### Bug Fixes + +* **deps:** update dependency dns-zonefile to v0.2.9 ([#487](https://www.github.com/googleapis/nodejs-dns/issues/487)) ([53788bd](https://www.github.com/googleapis/nodejs-dns/commit/53788bd5676bf0f5dfd35dde18c912eb98247aa1)) + +### [2.2.2](https://www.github.com/googleapis/nodejs-dns/compare/v2.2.1...v2.2.2) (2021-08-09) + + +### Bug Fixes + +* **build:** migrate to using main branch ([#478](https://www.github.com/googleapis/nodejs-dns/issues/478)) ([2f19b00](https://www.github.com/googleapis/nodejs-dns/commit/2f19b0066a26910262abff94974c55cda41b3fae)) + +### [2.2.1](https://www.github.com/googleapis/nodejs-dns/compare/v2.2.0...v2.2.1) (2021-08-06) + + +### Bug Fixes + +* **deps:** update dependency dns-zonefile to v0.2.8 ([#469](https://www.github.com/googleapis/nodejs-dns/issues/469)) ([3a9bb0e](https://www.github.com/googleapis/nodejs-dns/commit/3a9bb0ebcb9a77fbfe7ee911929c780d5ae2d28b)) + +## [2.2.0](https://www.github.com/googleapis/nodejs-dns/compare/v2.1.0...v2.2.0) (2021-06-07) + + +### Features + +* add `gcf-owl-bot[bot]` to `ignoreAuthors` ([#452](https://www.github.com/googleapis/nodejs-dns/issues/452)) ([6148f03](https://www.github.com/googleapis/nodejs-dns/commit/6148f03b37be1960bd5ed6ce32d696a8c0acdd2f)) + +## [2.1.0](https://www.github.com/googleapis/nodejs-dns/compare/v2.0.2...v2.1.0) (2020-12-22) + + +### Features + +* add support for setting DNS Sec ([#439](https://www.github.com/googleapis/nodejs-dns/issues/439)) ([32792e1](https://www.github.com/googleapis/nodejs-dns/commit/32792e1659bb7df5b15a65b5ff3f0c6f5e80b949)) + +### [2.0.2](https://www.github.com/googleapis/nodejs-dns/compare/v2.0.1...v2.0.2) (2020-07-09) + + +### Bug Fixes + +* typeo in nodejs .gitattribute ([#401](https://www.github.com/googleapis/nodejs-dns/issues/401)) ([c02a9da](https://www.github.com/googleapis/nodejs-dns/commit/c02a9daa5290922928f313a59a59af0f244d8eb9)) + +### [2.0.1](https://www.github.com/googleapis/nodejs-dns/compare/v2.0.0...v2.0.1) (2020-06-04) + + +### Bug Fixes + +* **autosynth:** synthesis was failing due to breaking TypeScript changes ([#392](https://www.github.com/googleapis/nodejs-dns/issues/392)) ([cf32c50](https://www.github.com/googleapis/nodejs-dns/commit/cf32c506c878052867abbc148818f1f3e2747c1c)) + +## [2.0.0](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.9...v2.0.0) (2020-04-14) + + +### ⚠ BREAKING CHANGES + +* update to latest version of gts and typescript (#376) +* require node 10 in engines field (#374) + +### Features + +* require node 10 in engines field ([#374](https://www.github.com/googleapis/nodejs-dns/issues/374)) ([aba0475](https://www.github.com/googleapis/nodejs-dns/commit/aba047555b12b8c6a243581fc65579381d497b1f)) + + +### Bug Fixes + +* apache license URL ([#468](https://www.github.com/googleapis/nodejs-dns/issues/468)) ([#372](https://www.github.com/googleapis/nodejs-dns/issues/372)) ([32e13a1](https://www.github.com/googleapis/nodejs-dns/commit/32e13a10bdcbea7abaa25add7cb133e5bf854c60)) +* **deps:** update dependency @google-cloud/common to v3 ([#367](https://www.github.com/googleapis/nodejs-dns/issues/367)) ([3d8b083](https://www.github.com/googleapis/nodejs-dns/commit/3d8b08380e56dfb62d7b596fde9624119d08b4ec)) +* **deps:** update dependency @google-cloud/paginator to v3 ([#365](https://www.github.com/googleapis/nodejs-dns/issues/365)) ([25ea868](https://www.github.com/googleapis/nodejs-dns/commit/25ea86858f27afbcda7bf8370ac742d0a8abbcb6)) +* **deps:** update dependency @google-cloud/promisify to v2 ([#364](https://www.github.com/googleapis/nodejs-dns/issues/364)) ([2f732bf](https://www.github.com/googleapis/nodejs-dns/commit/2f732bf6fdc44c0f7c471126935ddb62cba5fbd3)) + + +### Build System + +* update to latest version of gts and typescript ([#376](https://www.github.com/googleapis/nodejs-dns/issues/376)) ([c35b94e](https://www.github.com/googleapis/nodejs-dns/commit/c35b94e4a49c5d2644aa64fe4ad85b2de4002e01)) + +### [1.2.9](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.8...v1.2.9) (2020-03-17) + + +### Bug Fixes + +* **deps:** update dependency dns-zonefile to v0.2.6 ([#351](https://www.github.com/googleapis/nodejs-dns/issues/351)) ([437505b](https://www.github.com/googleapis/nodejs-dns/commit/437505b52ab43d7beeb5ce3f5bd6266c1067db96)) + +### [1.2.8](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.7...v1.2.8) (2019-12-05) + + +### Bug Fixes + +* **deps:** pin TypeScript below 3.7.0 ([609120a](https://www.github.com/googleapis/nodejs-dns/commit/609120a5cf39a54f0187fb0a6e4907548a488aa0)) + +### [1.2.7](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.6...v1.2.7) (2019-11-19) + + +### Bug Fixes + +* **docs:** bump release level to GA ([#319](https://www.github.com/googleapis/nodejs-dns/issues/319)) ([8de7f06](https://www.github.com/googleapis/nodejs-dns/commit/8de7f06c178ce07e106f21b922fc9a86ada7964c)) + +### [1.2.6](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.5...v1.2.6) (2019-11-15) + + +### Bug Fixes + +* **docs:** bump release level to beta ([f8ffa40](https://www.github.com/googleapis/nodejs-dns/commit/f8ffa401842cce93565ab8f5aedc47289f62cf39)) +* **docs:** snippets are now replaced in jsdoc comments ([#314](https://www.github.com/googleapis/nodejs-dns/issues/314)) ([06cb858](https://www.github.com/googleapis/nodejs-dns/commit/06cb858d1623b7382c794805571b8311916e20e2)) + +### [1.2.5](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.4...v1.2.5) (2019-10-21) + + +### Bug Fixes + +* **typescript:** make dnsName a required field ([#310](https://www.github.com/googleapis/nodejs-dns/issues/310)) ([887f42a](https://www.github.com/googleapis/nodejs-dns/commit/887f42a7a9389460cc566293d7525b94eccb39e4)) + +### [1.2.4](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.3...v1.2.4) (2019-10-16) + + +### Bug Fixes + +* **typescript:** add correct type safety to zone#create ([#307](https://www.github.com/googleapis/nodejs-dns/issues/307)) ([d5b78b8](https://www.github.com/googleapis/nodejs-dns/commit/d5b78b836d02e7c990b9ae51c932a8b93b451520)) + +### [1.2.3](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.2...v1.2.3) (2019-09-11) + + +### Bug Fixes + +* **deps:** update dependency dns-zonefile to v0.2.3 ([#296](https://www.github.com/googleapis/nodejs-dns/issues/296)) ([06b3f04](https://www.github.com/googleapis/nodejs-dns/commit/06b3f04)) + +### [1.2.2](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.1...v1.2.2) (2019-09-06) + + +### Bug Fixes + +* **docs:** remove anchor from reference doc link ([8e68f6e](https://www.github.com/googleapis/nodejs-dns/commit/8e68f6e)) + +### [1.2.1](https://www.github.com/googleapis/nodejs-dns/compare/v1.2.0...v1.2.1) (2019-07-26) + + +### Bug Fixes + +* **deps:** update dependency @google-cloud/paginator to v2 ([#286](https://www.github.com/googleapis/nodejs-dns/issues/286)) ([bc30fcc](https://www.github.com/googleapis/nodejs-dns/commit/bc30fcc)) + +## [1.2.0](https://www.github.com/googleapis/nodejs-dns/compare/v1.1.2...v1.2.0) (2019-07-14) + + +### Features + +* switch to dns endpoint (options.apiEndpoint is available if time is needed to migrate) ([#283](https://www.github.com/googleapis/nodejs-dns/issues/283)) ([5c180b4](https://www.github.com/googleapis/nodejs-dns/commit/5c180b4)) + +### [1.1.2](https://www.github.com/googleapis/nodejs-dns/compare/v1.1.1...v1.1.2) (2019-06-26) + + +### Bug Fixes + +* **docs:** link to reference docs section on googleapis.dev ([#279](https://www.github.com/googleapis/nodejs-dns/issues/279)) ([a13e5a1](https://www.github.com/googleapis/nodejs-dns/commit/a13e5a1)) + +### [1.1.1](https://www.github.com/googleapis/nodejs-dns/compare/v1.1.0...v1.1.1) (2019-06-14) + + +### Bug Fixes + +* **docs:** move to new client docs URL ([#276](https://www.github.com/googleapis/nodejs-dns/issues/276)) ([53cebe1](https://www.github.com/googleapis/nodejs-dns/commit/53cebe1)) + +## [1.1.0](https://www.github.com/googleapis/nodejs-dns/compare/v1.0.1...v1.1.0) (2019-06-05) + + +### Features + +* support apiEndpoint overrides ([#272](https://www.github.com/googleapis/nodejs-dns/issues/272)) ([2c42f20](https://www.github.com/googleapis/nodejs-dns/commit/2c42f20)) + +### [1.0.1](https://www.github.com/googleapis/nodejs-dns/compare/v1.0.0...v1.0.1) (2019-05-24) + + +### Bug Fixes + +* **types:** use Metadata type instead of r.Response ([#266](https://www.github.com/googleapis/nodejs-dns/issues/266)) ([cf32552](https://www.github.com/googleapis/nodejs-dns/commit/cf32552)) + +## [1.0.0](https://www.github.com/googleapis/nodejs-dns/compare/v0.9.2...v1.0.0) (2019-05-20) + + +### ⚠ BREAKING CHANGES + +* upgrade engines field to >=8.10.0 (#246) + +### Bug Fixes + +* **deps:** update dependency @google-cloud/common to ^0.32.0 ([#238](https://www.github.com/googleapis/nodejs-dns/issues/238)) ([e1ba124](https://www.github.com/googleapis/nodejs-dns/commit/e1ba124)) +* **deps:** update dependency @google-cloud/common to v1 ([#257](https://www.github.com/googleapis/nodejs-dns/issues/257)) ([f8f7398](https://www.github.com/googleapis/nodejs-dns/commit/f8f7398)) +* **deps:** update dependency @google-cloud/paginator to v1 ([#250](https://www.github.com/googleapis/nodejs-dns/issues/250)) ([002e85a](https://www.github.com/googleapis/nodejs-dns/commit/002e85a)) +* **deps:** update dependency @google-cloud/promisify to v1 ([#249](https://www.github.com/googleapis/nodejs-dns/issues/249)) ([25319bf](https://www.github.com/googleapis/nodejs-dns/commit/25319bf)) +* **deps:** update dependency arrify to v2 ([#240](https://www.github.com/googleapis/nodejs-dns/issues/240)) ([5f86971](https://www.github.com/googleapis/nodejs-dns/commit/5f86971)) + + +### Build System + +* upgrade engines field to >=8.10.0 ([#246](https://www.github.com/googleapis/nodejs-dns/issues/246)) ([30d840b](https://www.github.com/googleapis/nodejs-dns/commit/30d840b)) + +## v0.9.2 + +03-12-2019 13:47 PDT + +This patch release has a few bug fixes, and dependency updates. Enjoy! + +### Bug Fixes +- fix: improve types for zone.get ([#201](https://github.com/googleapis/nodejs-dns/pull/201)) + +### Dependencies +- fix(deps): update dependency @google-cloud/paginator to ^0.2.0 +- fix(deps): update dependency @google-cloud/promisify to ^0.4.0 ([#218](https://github.com/googleapis/nodejs-dns/pull/218)) +- fix(deps): update dependency @google-cloud/common to ^0.31.0 ([#209](https://github.com/googleapis/nodejs-dns/pull/209)) + +### Documentation +- docs: update links in contrib guide ([#219](https://github.com/googleapis/nodejs-dns/pull/219)) +- docs: update contributing path in README ([#212](https://github.com/googleapis/nodejs-dns/pull/212)) +- docs: move CONTRIBUTING.md to root ([#211](https://github.com/googleapis/nodejs-dns/pull/211)) +- docs: add lint/fix example to contributing guide ([#208](https://github.com/googleapis/nodejs-dns/pull/208)) + +### Internal / Testing Changes +- build: Add docuploader credentials to node publish jobs ([#223](https://github.com/googleapis/nodejs-dns/pull/223)) +- build: use node10 to run samples-test, system-test etc ([#222](https://github.com/googleapis/nodejs-dns/pull/222)) +- build: update release configuration +- chore(deps): update dependency mocha to v6 +- build: use linkinator for docs test ([#216](https://github.com/googleapis/nodejs-dns/pull/216)) +- chore(deps): update dependency @types/tmp to v0.0.34 ([#217](https://github.com/googleapis/nodejs-dns/pull/217)) +- fix(deps): update dependency yargs to v13 ([#215](https://github.com/googleapis/nodejs-dns/pull/215)) +- build: create docs test npm scripts ([#214](https://github.com/googleapis/nodejs-dns/pull/214)) +- build: test using @grpc/grpc-js in CI ([#213](https://github.com/googleapis/nodejs-dns/pull/213)) +- chore(deps): update dependency eslint-config-prettier to v4 ([#206](https://github.com/googleapis/nodejs-dns/pull/206)) +- build: ignore googleapis.com in doc link check ([#204](https://github.com/googleapis/nodejs-dns/pull/204)) +- build: check broken links in generated docs ([#202](https://github.com/googleapis/nodejs-dns/pull/202)) +- refactor: modernize the sample tests ([#199](https://github.com/googleapis/nodejs-dns/pull/199)) + +## v0.9.1 + +### Dependencies +- chore(deps): update dependency typescript to ~3.2.0 ([#177](https://github.com/googleapis/nodejs-dns/pull/177)) +- fix(deps): update dependency @google-cloud/common to ^0.27.0 ([#176](https://github.com/googleapis/nodejs-dns/pull/176)) + +### Documentation +- fix(docs): place doc comment above the last overload ([#187](https://github.com/googleapis/nodejs-dns/pull/187)) +- docs: update readme badges ([#180](https://github.com/googleapis/nodejs-dns/pull/180)) + +### Internal / Testing Changes +- chore: always nyc report before calling codecov ([#185](https://github.com/googleapis/nodejs-dns/pull/185)) +- chore: nyc ignore build/test by default ([#184](https://github.com/googleapis/nodejs-dns/pull/184)) +- chore: update license file ([#182](https://github.com/googleapis/nodejs-dns/pull/182)) +- fix(build): fix system key decryption ([#178](https://github.com/googleapis/nodejs-dns/pull/178)) +- chore: add synth.metadata + +## v0.9.0 + +11-16-2018 14:11 PST + +### Bug fixes +- fix: fix typescript build ([#171](https://github.com/googleapis/nodejs-dns/pull/171)) +- refactor: remove dependency on extend ([#163](https://github.com/googleapis/nodejs-dns/pull/163)) +- refactor: reduce the number of deps ([#161](https://github.com/googleapis/nodejs-dns/pull/161)) +- fix(deps): update dependency @google-cloud/common to ^0.26.0 ([#145](https://github.com/googleapis/nodejs-dns/pull/145)) +- fix(types): A few more promisified method overloads ([#134](https://github.com/googleapis/nodejs-dns/pull/134)) +- fix(types): Consolidate "createChange" wrappers, add overloads ([#133](https://github.com/googleapis/nodejs-dns/pull/133)) +- fix(docs): add missing methods jsdoc declaration ([#129](https://github.com/googleapis/nodejs-dns/pull/129)) +- docs: First argument of Zone#create is required ([#125](https://github.com/googleapis/nodejs-dns/pull/125)) +- fix: Don't publish sourcemaps ([#120](https://github.com/googleapis/nodejs-dns/pull/120)) + +### Internal / Testing Changes +- chore(deps): update dependency gts to ^0.9.0 ([#169](https://github.com/googleapis/nodejs-dns/pull/169)) +- chore: update eslintignore config ([#168](https://github.com/googleapis/nodejs-dns/pull/168)) +- refactor(samples): convert samples test from ava to mocha ([#154](https://github.com/googleapis/nodejs-dns/pull/154)) +- chore(deps): update dependency @google-cloud/nodejs-repo-tools to v3 ([#165](https://github.com/googleapis/nodejs-dns/pull/165)) +- chore: drop contributors from multiple places ([#164](https://github.com/googleapis/nodejs-dns/pull/164)) +- chore(deps): update dependency @types/is to v0.0.21 ([#162](https://github.com/googleapis/nodejs-dns/pull/162)) +- chore: use latest npm on Windows ([#160](https://github.com/googleapis/nodejs-dns/pull/160)) +- docs(samples): Update samples to use async/await ([#159](https://github.com/googleapis/nodejs-dns/pull/159)) +- chore: update CircleCI config ([#158](https://github.com/googleapis/nodejs-dns/pull/158)) +- chore: include build in eslintignore ([#155](https://github.com/googleapis/nodejs-dns/pull/155)) +- chore(deps): update dependency eslint-plugin-node to v8 ([#150](https://github.com/googleapis/nodejs-dns/pull/150)) +- chore: update issue templates ([#149](https://github.com/googleapis/nodejs-dns/pull/149)) +- chore: remove old issue template ([#147](https://github.com/googleapis/nodejs-dns/pull/147)) +- build: run tests on node11 ([#146](https://github.com/googleapis/nodejs-dns/pull/146)) +- chores(build): do not collect sponge.xml from windows builds ([#144](https://github.com/googleapis/nodejs-dns/pull/144)) +- chores(build): run codecov on continuous builds ([#143](https://github.com/googleapis/nodejs-dns/pull/143)) +- refactor: Use @types/lodash.groupBy ([#136](https://github.com/googleapis/nodejs-dns/pull/136)) +- chore: update new issue template ([#141](https://github.com/googleapis/nodejs-dns/pull/141)) +- chore(deps): update dependency sinon to v7 ([#137](https://github.com/googleapis/nodejs-dns/pull/137)) +- build: fix codecov uploading on Kokoro ([#138](https://github.com/googleapis/nodejs-dns/pull/138)) +- Update kokoro config ([#130](https://github.com/googleapis/nodejs-dns/pull/130)) +- chore(deps): update dependency eslint-plugin-prettier to v3 ([#128](https://github.com/googleapis/nodejs-dns/pull/128)) +- chore(deps): update dependency typescript to ~3.1.0 ([#123](https://github.com/googleapis/nodejs-dns/pull/123)) +- Update CI config ([#122](https://github.com/googleapis/nodejs-dns/pull/122)) +- build: prevent system/sample-test from leaking credentials + +## v0.8.0 + +**THIS RELEASE HAS BREAKING CHANGES**. It also has a few new great features like TypeScript support. Enjoy 🎉 + +#### Support for node.js 4.x and 9.x has ended +Please upgrade to an LTS version of node. + +#### es-style imports +This module now supports es module style imports. This provides forward compatibility with TypeScript, Babel, and the new es module spec. + +#### Old code +```js +const DNS = require('@google-cloud/dns'); +const dns = new DNS(); +// OR... +const dns = require('@google-cloud/dns')(); +``` + +#### New code +```js +const {DNS} = require('@google-cloud/dns'); +const dns = new DNS(); +``` + +### Bug fixes +- fix: improve the types ([#114](https://github.com/googleapis/nodejs-dns/pull/114)) +- fix(DNS): Refine type of getZonesStream ([#113](https://github.com/googleapis/nodejs-dns/pull/113)) +- fix(DNS): Add post-promisify type overloads to DNS methods ([#112](https://github.com/googleapis/nodejs-dns/pull/112)) +- fix: Improve typescript types ([#109](https://github.com/googleapis/nodejs-dns/pull/109)) +- fix: drop support for node.js 4.x and 9.x ([#68](https://github.com/googleapis/nodejs-dns/pull/68)) +- fix: update all dependencies ([#43](https://github.com/googleapis/nodejs-dns/pull/43)) + +### New Features +- feat: use small HTTP dependency ([#93](https://github.com/googleapis/nodejs-dns/pull/93)) +- feat: Convert to TypeScript ([#97](https://github.com/googleapis/nodejs-dns/pull/97)) + +### Dependencies +- fix(deps): update dependency @google-cloud/common to ^0.25.0 ([#107](https://github.com/googleapis/nodejs-dns/pull/107)) +- chore(deps): update dependency @google-cloud/common to ^0.23.0 ([#92](https://github.com/googleapis/nodejs-dns/pull/92)) +- fix(deps): update dependency @google-cloud/common to ^0.22.0 ([#87](https://github.com/googleapis/nodejs-dns/pull/87)) +- fix(deps): update dependency @google-cloud/common to ^0.21.0 ([#82](https://github.com/googleapis/nodejs-dns/pull/82)) +- fix(package): update @google-cloud/common to version 0.20.0 ([#52](https://github.com/googleapis/nodejs-dns/pull/52)) +- Update @google-cloud/common to the latest version 🚀 ([#31](https://github.com/googleapis/nodejs-dns/pull/31)) + +### Documentation +- docs(DNS): Remove extra space in "high- performance" ([#111](https://github.com/googleapis/nodejs-dns/pull/111)) + +### Internal / Testing Changes +- fix: Remove "prettier" from "npm run fix" ([#116](https://github.com/googleapis/nodejs-dns/pull/116)) +- Update kokoro config ([#117](https://github.com/googleapis/nodejs-dns/pull/117)) +- test: remove appveyor config ([#115](https://github.com/googleapis/nodejs-dns/pull/115)) +- Update kokoro config ([#110](https://github.com/googleapis/nodejs-dns/pull/110)) +- Enable prefer-const in the eslint config ([#108](https://github.com/googleapis/nodejs-dns/pull/108)) +- Enable no-var in eslint ([#106](https://github.com/googleapis/nodejs-dns/pull/106)) +- Enable noImplicitAny ([#105](https://github.com/googleapis/nodejs-dns/pull/105)) +- Improve the types ([#103](https://github.com/googleapis/nodejs-dns/pull/103)) +- Update CI config ([#104](https://github.com/googleapis/nodejs-dns/pull/104)) +- Enable noImplicitThis ([#102](https://github.com/googleapis/nodejs-dns/pull/102)) +- chore(deps): update dependency typescript to v3 ([#101](https://github.com/googleapis/nodejs-dns/pull/101)) +- Enable gts fix ([#98](https://github.com/googleapis/nodejs-dns/pull/98)) +- Add synth script and update CI ([#96](https://github.com/googleapis/nodejs-dns/pull/96)) +- Retry npm install in CI ([#95](https://github.com/googleapis/nodejs-dns/pull/95)) +- chore(deps): update dependency nyc to v13 ([#90](https://github.com/googleapis/nodejs-dns/pull/90)) +- chore: use es classes ([#88](https://github.com/googleapis/nodejs-dns/pull/88)) +- test: fail when system-tests do not run ([#86](https://github.com/googleapis/nodejs-dns/pull/86)) +- chore(deps): update dependency eslint-config-prettier to v3 ([#85](https://github.com/googleapis/nodejs-dns/pull/85)) +- chore: split the usage of common ([#84](https://github.com/googleapis/nodejs-dns/pull/84)) +- chore: ignore package-lock.json ([#83](https://github.com/googleapis/nodejs-dns/pull/83)) +- chore(deps): lock file maintenance ([#81](https://github.com/googleapis/nodejs-dns/pull/81)) +- chore: update renovate config ([#80](https://github.com/googleapis/nodejs-dns/pull/80)) +- remove that whitespace ([#79](https://github.com/googleapis/nodejs-dns/pull/79)) +- chore(deps): lock file maintenance ([#78](https://github.com/googleapis/nodejs-dns/pull/78)) +- chore: assert.deelEqual => assert.deepStrictEqual ([#77](https://github.com/googleapis/nodejs-dns/pull/77)) +- chore: move mocha options to mocha.opts ([#75](https://github.com/googleapis/nodejs-dns/pull/75)) +- chore: require node 8 for samples ([#76](https://github.com/googleapis/nodejs-dns/pull/76)) +- chore(deps): lock file maintenance ([#74](https://github.com/googleapis/nodejs-dns/pull/74)) +- chore(deps): update dependency eslint-plugin-node to v7 ([#72](https://github.com/googleapis/nodejs-dns/pull/72)) +- test: use strictEqual in tests ([#73](https://github.com/googleapis/nodejs-dns/pull/73)) +- chore(deps): lock file maintenance ([#71](https://github.com/googleapis/nodejs-dns/pull/71)) +- chore(deps): lock file maintenance ([#70](https://github.com/googleapis/nodejs-dns/pull/70)) +- chore(deps): lock file maintenance ([#69](https://github.com/googleapis/nodejs-dns/pull/69)) +- chore(deps): lock file maintenance ([#67](https://github.com/googleapis/nodejs-dns/pull/67)) +- chore(deps): lock file maintenance ([#66](https://github.com/googleapis/nodejs-dns/pull/66)) +- chore(deps): lock file maintenance ([#65](https://github.com/googleapis/nodejs-dns/pull/65)) +- chore(deps): lock file maintenance ([#64](https://github.com/googleapis/nodejs-dns/pull/64)) +- fix(deps): update dependency yargs to v12 ([#63](https://github.com/googleapis/nodejs-dns/pull/63)) +- chore(deps): update dependency uuid to v3.3.0 ([#59](https://github.com/googleapis/nodejs-dns/pull/59)) +- chore(deps): update dependency sinon to v6 ([#60](https://github.com/googleapis/nodejs-dns/pull/60)) +- Configure Renovate ([#54](https://github.com/googleapis/nodejs-dns/pull/54)) +- refactor: drop repo-tool as an exec wrapper ([#58](https://github.com/googleapis/nodejs-dns/pull/58)) +- chore: update sample lockfiles ([#57](https://github.com/googleapis/nodejs-dns/pull/57)) +- fix: update linking for samples ([#56](https://github.com/googleapis/nodejs-dns/pull/56)) +- chore(package): update eslint to version 5.0.0 ([#55](https://github.com/googleapis/nodejs-dns/pull/55)) +- refactor: switch from var => let/const ([#53](https://github.com/googleapis/nodejs-dns/pull/53)) +- chore(package): update nyc to version 12.0.2 ([#42](https://github.com/googleapis/nodejs-dns/pull/42)) +- chore: lock files maintenance ([#40](https://github.com/googleapis/nodejs-dns/pull/40)) +- chore: timeout for system test ([#38](https://github.com/googleapis/nodejs-dns/pull/38)) +- chore: lock files maintenance ([#37](https://github.com/googleapis/nodejs-dns/pull/37)) +- chore: test on node10 ([#36](https://github.com/googleapis/nodejs-dns/pull/36)) +- chore: lock files maintenance ([#35](https://github.com/googleapis/nodejs-dns/pull/35)) +- chore: one more workaround for repo-tools EPERM ([#33](https://github.com/googleapis/nodejs-dns/pull/33)) +- chore: workaround for repo-tools EPERM ([#32](https://github.com/googleapis/nodejs-dns/pull/32)) +- chore: setup nighty build in CircleCI ([#30](https://github.com/googleapis/nodejs-dns/pull/30)) +- Upgrade repo-tools and regenerate scaffolding. ([#29](https://github.com/googleapis/nodejs-dns/pull/29)) diff --git a/handwritten/google-cloud-dns/README.md b/handwritten/google-cloud-dns/README.md new file mode 100644 index 000000000000..580d17d4d490 --- /dev/null +++ b/handwritten/google-cloud-dns/README.md @@ -0,0 +1,157 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." +Google Cloud Platform logo + +# [Cloud DNS: Node.js Client](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-cloud-dns) + +[![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![npm version](https://img.shields.io/npm/v/@google-cloud/dns.svg)](https://www.npmjs.org/package/@google-cloud/dns) + + + + +Cloud DNS Client Library for Node.js + + +A comprehensive list of changes in each version may be found in +[the CHANGELOG](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-cloud-dns/CHANGELOG.md). + +* [Cloud DNS Node.js Client API Reference][client-docs] +* [Cloud DNS Documentation][product-docs] +* [github.com/googleapis/google-cloud-node/packages/google-cloud-dns](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-cloud-dns) + +Read more about the client libraries for Cloud APIs, including the older +Google APIs Client Libraries, in [Client Libraries Explained][explained]. + +[explained]: https://cloud.google.com/apis/docs/client-libraries-explained + +**Table of contents:** + + +* [Quickstart](#quickstart) + * [Before you begin](#before-you-begin) + * [Installing the client library](#installing-the-client-library) + * [Using the client library](#using-the-client-library) +* [Samples](#samples) +* [Versioning](#versioning) +* [Contributing](#contributing) +* [License](#license) + +## Quickstart + +### Before you begin + +1. [Select or create a Cloud Platform project][projects]. +1. [Enable billing for your project][billing]. +1. [Enable the Cloud DNS API][enable_api]. +1. [Set up authentication][auth] so you can access the + API from your local workstation. + +### Installing the client library + +```bash +npm install @google-cloud/dns +``` + + +### Using the client library + +```javascript +// Imports the Google Cloud client library +const {DNS} = require('@google-cloud/dns'); + +// Creates a client +const dns = new DNS(); + +async function quickstart() { + // Lists all zones in the current project + const [zones] = await dns.getZones(); + console.log('Zones:'); + zones.forEach(zone => console.log(zone.name)); +} +quickstart(); + +``` + + + +## Samples + +Samples are in the [`samples/`](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-cloud-dns/samples) directory. Each sample's `README.md` has instructions for running its sample. + +| Sample | Source Code | Try it | +| --------------------------- | --------------------------------- | ------ | +| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dns/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-dns/samples/quickstart.js,packages/google-cloud-dns/samples/README.md) | + + + +The [Cloud DNS Node.js Client API Reference][client-docs] documentation +also contains samples. + +## Supported Node.js Versions + +Our client libraries follow the [Node.js release schedule](https://github.com/nodejs/release#release-schedule). +Libraries are compatible with all current _active_ and _maintenance_ versions of +Node.js. +If you are using an end-of-life version of Node.js, we recommend that you update +as soon as possible to an actively supported LTS version. + +Google's client libraries support legacy versions of Node.js runtimes on a +best-efforts basis with the following warnings: + +* Legacy versions are not tested in continuous integration. +* Some security patches and features cannot be backported. +* Dependencies cannot be kept up-to-date. + +Client libraries targeting some end-of-life versions of Node.js are available, and +can be installed through npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). +The dist-tags follow the naming convention `legacy-(version)`. +For example, `npm install @google-cloud/dns@legacy-8` installs client libraries +for versions compatible with Node.js 8. + +## Versioning + +This library follows [Semantic Versioning](http://semver.org/). + + + +This library is considered to be **stable**. The code surface will not change in backwards-incompatible ways +unless absolutely necessary (e.g. because of critical security issues) or with +an extensive deprecation period. Issues and requests against **stable** libraries +are addressed with the highest priority. + + + + + + +More Information: [Google Cloud Platform Launch Stages][launch_stages] + +[launch_stages]: https://cloud.google.com/terms/launch-stages + +## Contributing + +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md). + +Please note that this `README.md`, the `samples/README.md`, +and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) +are generated from a central template. To edit one of these files, make an edit +to its templates in +[directory](https://github.com/googleapis/synthtool). + +## License + +Apache Version 2.0 + +See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) + +[client-docs]: https://cloud.google.com/nodejs/docs/reference/dns/latest +[product-docs]: https://cloud.google.com/dns +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png +[projects]: https://console.cloud.google.com/project +[billing]: https://support.google.com/cloud/answer/6293499#enable-billing +[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=dns.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local + + +[//]: # "partials.introduction" \ No newline at end of file diff --git a/handwritten/google-cloud-dns/linkinator.config.json b/handwritten/google-cloud-dns/linkinator.config.json new file mode 100644 index 000000000000..30840bc10c36 --- /dev/null +++ b/handwritten/google-cloud-dns/linkinator.config.json @@ -0,0 +1,9 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "img.shields.io" + ], + "silent": true, + "concurrency": 10 +} diff --git a/handwritten/google-cloud-dns/package.json b/handwritten/google-cloud-dns/package.json new file mode 100644 index 000000000000..b88ab2b4c7a8 --- /dev/null +++ b/handwritten/google-cloud-dns/package.json @@ -0,0 +1,83 @@ +{ + "name": "@google-cloud/dns", + "description": "Cloud DNS Client Library for Node.js", + "version": "5.3.2", + "license": "Apache-2.0", + "author": "Google Inc.", + "engines": { + "node": ">=18" + }, + "repository": { + "type": "git", + "directory": "packages/google-cloud-dns", + "url": "https://github.com/googleapis/google-cloud-node.git" + }, + "main": "./build/src/index.js", + "types": "./build/src/index.d.ts", + "files": [ + "build/src", + "!build/src/**/*.map" + ], + "keywords": [ + "google apis client", + "google api client", + "google apis", + "google api", + "google", + "google cloud platform", + "google cloud", + "cloud", + "google dns", + "dns" + ], + "scripts": { + "docs": "jsdoc -c .jsdoc.js", + "lint": "gts check", + "test": "c8 mocha build/test", + "samples-test": "npm run compile && cd samples/ && npm link ../ && npm i && npm test", + "presystem-test": "npm run compile", + "system-test": "npm run compile && c8 mocha build/system-test", + "clean": "gts clean", + "compile": "tsc -p .", + "fix": "gts fix", + "prepare": "npm run compile", + "pretest": "npm run compile", + "docs-test": "linkinator docs", + "predocs-test": "npm run docs", + "prelint": "cd samples; npm link ../; npm install", + "precompile": "gts clean" + }, + "dependencies": { + "@google-cloud/common": "^6.0.0", + "@google-cloud/paginator": "^6.0.0", + "@google-cloud/promisify": "^5.0.0", + "arrify": "^2.0.0", + "dns-zonefile": "0.2.10", + "google-gax": "^5.0.0", + "lodash.groupby": "^4.6.0", + "string-format-obj": "^1.1.1" + }, + "devDependencies": { + "@types/lodash.groupby": "^4.6.9", + "@types/mocha": "^10.0.10", + "@types/node": "^22.13.9", + "@types/proxyquire": "^1.3.31", + "@types/request": "^2.48.12", + "@types/tmp": "^0.2.6", + "@types/uuid": "^11.0.0", + "c8": "^10.1.3", + "codecov": "^3.8.3", + "gts": "^6.0.2", + "jsdoc": "^4.0.4", + "jsdoc-fresh": "^4.0.0", + "jsdoc-region-tag": "^3.0.0", + "linkinator": "^6.1.2", + "long": "^5.3.1", + "mocha": "^11.1.0", + "proxyquire": "^2.1.3", + "tmp": "^0.2.3", + "typescript": "^5.8.2", + "uuid": "^11.1.0" + }, + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/packages/google-cloud-dns" +} diff --git a/handwritten/google-cloud-dns/samples/.eslintrc.yml b/handwritten/google-cloud-dns/samples/.eslintrc.yml new file mode 100644 index 000000000000..282535f55f6a --- /dev/null +++ b/handwritten/google-cloud-dns/samples/.eslintrc.yml @@ -0,0 +1,3 @@ +--- +rules: + no-console: off diff --git a/handwritten/google-cloud-dns/samples/README.md b/handwritten/google-cloud-dns/samples/README.md new file mode 100644 index 000000000000..8ae6c20a689d --- /dev/null +++ b/handwritten/google-cloud-dns/samples/README.md @@ -0,0 +1,52 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." +Google Cloud Platform logo + +# [Cloud DNS: Node.js Samples](https://github.com/googleapis/google-cloud-node) + +[![Open in Cloud Shell][shell_img]][shell_link] + + + +## Table of Contents + +* [Before you begin](#before-you-begin) +* [Samples](#samples) + * [Quickstart](#quickstart) + +## Before you begin + +Before running the samples, make sure you've followed the steps outlined in +[Using the client library](https://github.com/googleapis/google-cloud-node#using-the-client-library). + +`cd samples` + +`npm install` + +`cd ..` + +## Samples + + + +### Quickstart + +Fetches a list of all available zones. + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dns/samples/quickstart.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-dns/samples/quickstart.js,samples/README.md) + +__Usage:__ + + +`node quickstart` + + + + + + +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png +[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=samples/README.md +[product-docs]: https://cloud.google.com/dns diff --git a/handwritten/google-cloud-dns/samples/package.json b/handwritten/google-cloud-dns/samples/package.json new file mode 100644 index 000000000000..6a8f73b5187d --- /dev/null +++ b/handwritten/google-cloud-dns/samples/package.json @@ -0,0 +1,25 @@ +{ + "name": "nodejs-docs-samples-dns", + "private": true, + "license": "Apache-2.0", + "author": "Google Inc.", + "repository": "googleapis/nodejs-dns", + "engines": { + "node": ">=18" + }, + "files": [ + "*.js", + "!test/" + ], + "scripts": { + "test": "mocha --timeout 600000" + }, + "dependencies": { + "@google-cloud/dns": "^5.3.2" + }, + "devDependencies": { + "chai": "^4.2.0", + "mocha": "^8.0.0", + "uuid": "^9.0.0" + } +} \ No newline at end of file diff --git a/handwritten/google-cloud-dns/samples/quickstart.js b/handwritten/google-cloud-dns/samples/quickstart.js new file mode 100644 index 000000000000..e15b629a696f --- /dev/null +++ b/handwritten/google-cloud-dns/samples/quickstart.js @@ -0,0 +1,40 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +// sample-metadata: +// name: Quickstart +// description: Fetches a list of all available zones. +// usage: node quickstart + +async function main() { + // [START dns_quickstart] + // Imports the Google Cloud client library + const {DNS} = require('@google-cloud/dns'); + + // Creates a client + const dns = new DNS(); + + async function quickstart() { + // Lists all zones in the current project + const [zones] = await dns.getZones(); + console.log('Zones:'); + zones.forEach(zone => console.log(zone.name)); + } + quickstart(); + // [END dns_quickstart] +} + +main(); diff --git a/handwritten/google-cloud-dns/samples/test/quickstart.test.js b/handwritten/google-cloud-dns/samples/test/quickstart.test.js new file mode 100644 index 000000000000..9a9463ce991d --- /dev/null +++ b/handwritten/google-cloud-dns/samples/test/quickstart.test.js @@ -0,0 +1,47 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +const {execSync} = require('child_process'); +const {assert} = require('chai'); +const {describe, it, before, after} = require('mocha'); +const {DNS} = require('@google-cloud/dns'); +const {v4} = require('uuid'); + +const exec = cmd => execSync(cmd, {encoding: 'utf8'}); + +describe(__filename, () => { + const zoneName = `test-${v4().substr(0, 13)}`; + const dns = new DNS(); + + before(async () => { + const projectId = await dns.getProjectId(); + await dns.createZone(zoneName, { + dnsName: `${projectId}.appspot.com.`, + dnssecConfig: { + state: 'on', + }, + }); + }); + + after(async () => { + await dns.zone(zoneName).delete(); + }); + + it('should run the quickstart', () => { + const output = exec('node quickstart'); + assert.include(output, 'Zones:'); + }); +}); diff --git a/handwritten/google-cloud-dns/src/change.ts b/handwritten/google-cloud-dns/src/change.ts new file mode 100644 index 000000000000..b10d59ae6e29 --- /dev/null +++ b/handwritten/google-cloud-dns/src/change.ts @@ -0,0 +1,259 @@ +/*! + * Copyright 2014 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {Metadata, ServiceObject} from '@google-cloud/common'; +import {promisifyAll} from '@google-cloud/promisify'; + +import {Record} from './record'; +import {Zone} from './zone'; + +export interface CreateChangeRequest { + add?: Record | Record[]; + delete?: Record | Record[]; +} + +export type CreateChangeResponse = [Change, Metadata]; + +export interface CreateChangeCallback { + (err: Error | null, change?: Change | null, apiResponse?: Metadata): void; +} + +/** + * @class + * + * @param {Zone} zone The parent zone object. + * @param {string} id ID of the change. + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const change = zone.change('change-id'); + */ +export class Change extends ServiceObject { + declare parent: Zone; + constructor(zone: Zone, id?: string) { + const methods = { + /** + * @typedef {array} ChangeExistsResponse + * @property {boolean} 0 Whether the {@link Change} exists. + */ + /** + * @callback ChangeExistsCallback + * @param {?Error} err Request error, if any. + * @param {boolean} exists Whether the {@link Change} exists. + */ + /** + * Check if the change exists. + * + * @method Change#exists + * @param {ChangeExistsCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const change = zone.change('change-id'); + * + * change.exists((err, exists) => {}); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * change.exists().then((data) => { + * const exists = data[0]; + * }); + */ + exists: true, + /** + * @typedef {array} GetChangeResponse + * @property {Change} 0 The {@link Change}. + * @property {object} 1 The full API response. + */ + /** + * @callback GetChangeCallback + * @param {?Error} err Request error, if any. + * @param {Change} change The {@link Change}. + * @param {object} apiResponse The full API response. + */ + /** + * Get a change if it exists. + * + * You may optionally use this to "get or create" an object by providing + * an object with `autoCreate` set to `true`. Any extra configuration that + * is normally required for the `create` method must be contained within + * this object as well. + * + * @method Change#get + * @param {options} [options] Configuration object. + * @param {boolean} [options.autoCreate=false] Automatically create the + * object if it does not exist. + * @param {GetChangeCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const change = zone.change('change-id'); + * + * change.get((err, change, apiResponse) => { + * // `change.metadata` has been populated. + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * change.get().then((data) => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + get: true, + /** + * @typedef {array} GetChangeMetadataResponse + * @property {object} 0 The {@link Change} metadata. + * @property {object} 1 The full API response. + */ + /** + * @callback GetChangeMetadataCallback + * @param {?Error} err Request error, if any. + * @param {object} metadata The {@link Change} metadata. + * @param {object} apiResponse The full API response. + */ + /** + * Get the metadata for the change in the zone. + * + * @see [Changes: get API Documentation]{@link https://cloud.google.com/dns/api/v1/changes/get} + * + * @method Change#getMetadata + * @param {GetChangeMetadataCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const change = zone.change('change-id'); + * + * change.getMetadata((err, metadata, apiResponse) => { + * if (!err) { + * // metadata = { + * // kind: 'dns#change', + * // additions: [{...}], + * // deletions: [{...}], + * // startTime: '2015-07-21T14:40:06.056Z', + * // id: '1', + * // status: 'done' + * // } + * } + * }); + * + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * change.getMetadata().then((data) => { + * const metadata = data[0]; + * const apiResponse = data[1]; + * }); + */ + getMetadata: true, + }; + /** + * @name Change#metadata + * @type {object} + */ + super({ + parent: zone, + /** + * @name Zone#baseUrl + * @type {string} + * @default "/changes" + */ + baseUrl: '/changes', + /** + * @name Change#id + * @type {string} + */ + id, + methods, + }); + } + + create(config?: CreateChangeRequest): Promise; + create(config: CreateChangeRequest, callback: CreateChangeCallback): void; + create(callback: CreateChangeCallback): void; + /** + * Create a change. + * + * @method Change#create + * @param {CreateChangeRequest} config The configuration object. + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const change = zone.change('change-id'); + * + * const config = { + * add: { + * // ... + * } + * }; + * + * change.create(config, (err, change, apiResponse) => { + * if (!err) { + * // The change was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * change.create(config).then((data) => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + create( + configOrCallback?: CreateChangeRequest | CreateChangeCallback, + callback?: CreateChangeCallback + ): void | Promise { + const config = typeof configOrCallback === 'object' ? configOrCallback : {}; + callback = + typeof configOrCallback === 'function' ? configOrCallback! : callback; + this.parent.createChange(config, (err, change, apiResponse) => { + if (err) { + callback!(err, null, apiResponse); + return; + } + this.id = change!.id; + this.metadata = change!.metadata; + callback!(null, this, apiResponse); + }); + } +} + +/*! Developer Documentation + * + * All async methods (except for streams) will return a Promise in the event + * that a callback is omitted. + */ +promisifyAll(Change); diff --git a/handwritten/google-cloud-dns/src/index.ts b/handwritten/google-cloud-dns/src/index.ts new file mode 100644 index 000000000000..3bcf8ff9af01 --- /dev/null +++ b/handwritten/google-cloud-dns/src/index.ts @@ -0,0 +1,468 @@ +/*! + * Copyright 2014 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {GoogleAuthOptions, Metadata, Service} from '@google-cloud/common'; +import {paginator} from '@google-cloud/paginator'; +import {promisifyAll} from '@google-cloud/promisify'; +import arrify = require('arrify'); +import {Stream} from 'stream'; + +import {Zone} from './zone'; + +export {Record, RecordMetadata} from './record'; + +export interface GetZonesRequest { + autoPaginate?: boolean; + maxApiCalls?: number; + maxResults?: number; + pageToken?: string; +} + +export interface DNSConfig extends GoogleAuthOptions { + autoRetry?: boolean; + maxRetries?: number; +} + +export interface GetZonesCallback { + ( + err: Error | null, + zones: Zone[] | null, + nextQuery?: GetZonesRequest | null, + apiResponse?: Metadata + ): void; +} + +export type GetZonesResponse = [Zone[], GetZonesRequest | null, Metadata]; + +export interface GetZoneCallback { + (err: Error | null, zone?: Zone | null, apiResponse?: Metadata): void; +} + +export interface CreateZoneRequest { + dnsName: string; + description?: string; + name?: string; + dnssecConfig?: ManagedZoneDnsSecConfig; +} + +export interface ManagedZoneDnsSecConfig { + /** + * Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF. + */ + defaultKeySpecs?: DnsKeySpec[]; + kind?: string | null; + /** + * Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF. + */ + nonExistence?: string | null; + /** + * Specifies whether DNSSEC is enabled, and what mode it is in. + */ + state?: 'on' | 'off' | null; +} + +export interface DnsKeySpec { + /** + * String mnemonic specifying the DNSSEC algorithm of this key. + */ + algorithm?: string | null; + /** + * Length of the keys in bits. + */ + keyLength?: number | null; + /** + * Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, will only be used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and will be used to sign all other types of resource record sets. + */ + keyType?: string | null; + kind?: string | null; +} + +export type CreateZoneResponse = [Zone, Metadata]; +export type CreateZoneCallback = GetZoneCallback; + +export interface DNSOptions extends GoogleAuthOptions { + /** + * The API endpoint of the service used to make requests. + * Defaults to `dns.googleapis.com`. + */ + apiEndpoint?: string; +} + +/** + * @typedef {object} ClientConfig + * @property {string} [projectId] The project ID from the Google 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://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application + * Application Default Credentials}, your project ID will be detected + * automatically. + * @property {string} [keyFilename] Full path to the a .json, .pem, or .p12 key + * downloaded from the Google Developers Console. If you provide a path to a + * JSON file, the `projectId` option above is not necessary. NOTE: .pem and + * .p12 require you to specify the `email` option as well. + * @property {string} [email] Account email address. Required when using a .pem + * or .p12 keyFilename. + * @property {object} [credentials] Credentials object. + * @property {string} [credentials.client_email] + * @property {string} [credentials.private_key] + * @property {boolean} [autoRetry=true] Automatically retry requests if the + * response is related to rate limits or certain intermittent server errors. + * We will exponentially backoff subsequent requests by default. + * @property {number} [maxRetries=3] Maximum number of automatic retries + * attempted before returning the error. + * @property {Constructor} [promise] Custom promise module to use instead of + * native Promises. + */ +/** + * [Cloud DNS](https://cloud.google.com/dns/what-is-cloud-dns) is a + * high-performance, resilient, global DNS service that provides a + * cost-effective way to make your applications and services available to your + * users. This programmable, authoritative DNS service can be used to easily + * publish and manage DNS records using the same infrastructure relied upon by + * Google. + * + * @class + * + * @see [What is Cloud DNS?]{@link https://cloud.google.com/dns/what-is-cloud-dns} + * + * @param {ClientConfig} [options] Configuration options. + * + * @example Import the client library + * const {DNS} = require('@google-cloud/dns'); + * + * @example Create a client that uses Application + * Default Credentials (ADC): const dns = new DNS(); + * + * @example Create a client with explicit + * credentials: const dns = new DNS({ projectId: + * 'your-project-id', keyFilename: '/path/to/keyfile.json' + * }); + * + * @example include:samples/quickstart.js + * region_tag:dns_quickstart + * Full quickstart example: + */ +class DNS extends Service { + getZonesStream: (query: GetZonesRequest) => Stream; + constructor(options: DNSOptions = {}) { + options.apiEndpoint = options.apiEndpoint || 'dns.googleapis.com'; + const config = { + apiEndpoint: options.apiEndpoint, + baseUrl: `https://${options.apiEndpoint}/dns/v1`, + scopes: [ + 'https://www.googleapis.com/auth/ndev.clouddns.readwrite', + 'https://www.googleapis.com/auth/cloud-platform', + ], + packageJson: require('../../package.json'), + }; + super(config, options); + + /** + * Get {@link Zone} objects for all of the zones in your project as + * a readable object stream. + * + * @method DNS#getZonesStream + * @param {GetZonesRequest} [query] Query object for listing zones. + * @returns {ReadableStream} A readable stream that emits {@link Zone} instances. + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * dns.getZonesStream() + * .on('error', console.error) + * .on('data', function(zone) { + * // zone is a Zone object. + * }) + * .on('end', () => { + * // All zones retrieved. + * }); + * + * //- + * // If you anticipate many results, you can end a stream early to prevent + * // unnecessary processing and API requests. + * //- + * dns.getZonesStream() + * .on('data', function(zone) { + * this.end(); + * }); + */ + this.getZonesStream = paginator.streamify('getZones'); + } + + createZone( + name: string, + config: CreateZoneRequest + ): Promise; + createZone( + name: string, + config: CreateZoneRequest, + callback: GetZoneCallback + ): void; + /** + * Config to set for the zone. + * + * @typedef {object} CreateZoneRequest + * @property {string} dnsName DNS name for the zone. E.g. "example.com." + * @property {string} [description] Description text for the zone. + */ + /** + * @typedef {array} CreateZoneResponse + * @property {Zone} 0 The new {@link Zone}. + * @property {object} 1 The full API response. + */ + /** + * @callback CreateZoneCallback + * @param {?Error} err Request error, if any. + * @param {Zone} zone The new {@link Zone}. + * @param {object} apiResponse The full API response. + */ + /** + * Create a managed zone. + * + * @method DNS#createZone + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @throws {error} If a zone name is not provided. + * @throws {error} If a zone dnsName is not provided. + * + * @param {string} name Name of the zone to create, e.g. "my-zone". + * @param {CreateZoneRequest} config Config to set for the zone. + * @param {CreateZoneCallback} [callback] Callback function. + * @returns {Promise} + * @throws {Error} If a name is not provided. + * @see Zone#create + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const config = { + * dnsName: 'example.com.', // note the period at the end of the domain. + * description: 'This zone is awesome!' + * }; + * + * dns.createZone('my-awesome-zone', config, (err, zone, apiResponse) => { + * if (!err) { + * // The zone was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * dns.createZone('my-awesome-zone', config).then((data) => { + * const zone = data[0]; + * const apiResponse = data[1]; + * }); + */ + createZone( + name: string, + config: CreateZoneRequest, + callback?: GetZoneCallback + ): void | Promise { + if (!name) { + throw new Error('A zone name is required.'); + } + if (!config || !config.dnsName) { + throw new Error('A zone dnsName is required.'); + } + config.name = name; + // Required by the API. + config.description = config.description || ''; + this.request( + { + method: 'POST', + uri: '/managedZones', + json: config, + }, + (err, resp) => { + if (err) { + callback!(err, null, resp); + return; + } + const zone = this.zone(resp.name); + zone.metadata = resp; + callback!(null, zone, resp); + } + ); + } + + getZones(query?: GetZonesRequest): Promise; + getZones(callback: GetZonesCallback): void; + getZones(query: GetZonesRequest, callback: GetZonesCallback): void; + /** + * Query object for listing zones. + * + * @typedef {object} GetZonesRequest + * @property {boolean} [autoPaginate=true] Have pagination handled + * automatically. + * @property {number} [maxApiCalls] Maximum number of API calls to make. + * @property {number} [maxResults] Maximum number of items plus prefixes to + * return. + * @property {string} [pageToken] A previously-returned page token + * representing part of the larger set of results to view. + */ + /** + * @typedef {array} GetZonesResponse + * @property {Zone[]} 0 Array of {@link Zone} instances. + * @property {object} 1 The full API response. + */ + /** + * @callback GetZonesCallback + * @param {?Error} err Request error, if any. + * @param {Zone[]} zones Array of {@link Zone} instances. + * @param {object} apiResponse The full API response. + */ + /** + * Gets a list of managed zones for the project. + * + * @method DNS#getZones + * @see [ManagedZones: list API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/list} + * + * @param {GetZonesRequest} [query] Query object for listing zones. + * @param {GetZonesCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * dns.getZones((err, zones, apiResponse) {}); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * dns.getZones().then(data => { + * const zones = data[0]; + * }); + */ + getZones( + queryOrCallback?: GetZonesRequest | GetZonesCallback, + callback?: GetZonesCallback + ): void | Promise { + const query = typeof queryOrCallback === 'object' ? queryOrCallback : {}; + callback = + typeof queryOrCallback === 'function' ? queryOrCallback : callback; + this.request( + { + uri: '/managedZones', + qs: query, + }, + (err, resp) => { + if (err) { + callback!(err, null, null, resp); + return; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const zones = arrify(resp.managedZones).map((zone: any) => { + const zoneInstance = this.zone(zone.name); + zoneInstance.metadata = zone; + return zoneInstance; + }); + let nextQuery: GetZonesRequest | null = null; + if (resp.nextPageToken) { + nextQuery = Object.assign({}, query, { + pageToken: resp.nextPageToken, + }); + } + callback!(null, zones, nextQuery, resp); + } + ); + } + + /** + * Get a reference to a Zone. + * + * @param {string} name The unique name of the zone. + * @returns {Zone} + * @see Zone + * + * @throws {error} If a zone name is not provided. + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const zone = dns.zone('my-zone'); + */ + zone(name: string) { + if (!name) { + throw new Error('A zone name is required.'); + } + return new Zone(this, name); + } +} + +/*! Developer Documentation + * + * These methods can be auto-paginated. + */ +paginator.extend(DNS, 'getZones'); + +/*! Developer Documentation + * + * All async methods (except for streams) will return a Promise in the event + * that a callback is omitted. + */ +promisifyAll(DNS, { + exclude: ['zone'], +}); + +/** + * {@link Zone} class. + * + * @name DNS.Zone + * @see Zone + * @type {Constructor} + */ +export {Zone}; + +/** + * The default export of the `@google-cloud/dns` package is the {@link DNS} + * class. + * + * See {@link DNS} and {@link ClientConfig} for client methods and + * configuration options. + * + * @module {DNS} @google-cloud/dns + * @alias nodejs-dns + * + * @example Install the client library with npm: npm install --save + * @google-cloud/dns + * + * @example Import the client library + * const {DNS} = require('@google-cloud/dns'); + * + * @example Create a client that uses Application + * Default Credentials (ADC): const dns = new DNS(); + * + * @example Create a client with explicit + * credentials: const dns = new DNS({ projectId: + * 'your-project-id', keyFilename: '/path/to/keyfile.json' + * }); + * + * @example include:samples/quickstart.js + * region_tag:dns_quickstart + * Full quickstart example: + */ +export {DNS}; diff --git a/handwritten/google-cloud-dns/src/record.ts b/handwritten/google-cloud-dns/src/record.ts new file mode 100644 index 000000000000..45dcdc7c63a5 --- /dev/null +++ b/handwritten/google-cloud-dns/src/record.ts @@ -0,0 +1,229 @@ +/*! + * Copyright 2014 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {promisifyAll} from '@google-cloud/promisify'; +import arrify = require('arrify'); +import {Change, CreateChangeCallback} from './change'; +import {Zone} from './zone'; +import {Metadata} from '@google-cloud/common'; + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const format = require('string-format-obj'); + +export interface RecordObject { + rrdatas?: string[]; + rrdata?: {}; + data?: string | string[]; + type?: string; +} + +export interface RecordMetadata { + name: string; + data?: string | string[]; + ttl: number; + type?: string; + rrdatas?: string[]; + signatureRrdatas?: string[]; +} + +/** + * @typedef {array} DeleteRecordResponse + * @property {Change} 0 A {@link Change} object. + * @property {object} 1 The full API response. + */ +export type DeleteRecordResponse = [Change, Metadata]; + +/** + * @callback DeleteRecordCallback + * @param {?Error} err Request error, if any. + * @param {?Change} change A {@link Change} object. + * @param {object} apiResponse The full API response. + */ +export interface DeleteRecordCallback { + (err: Error | null, change?: Change, apiResponse?: Metadata): void; +} + +/** + * Create a Resource Record object. + * + * @class + * + * @param {string} type The record type, e.g. `A`, `AAAA`, `MX`. + * @param {object} metadata The metadata of this record. + * @param {string} metadata.name The name of the record, e.g. + * `www.example.com.`. + * @param {string[]} metadata.data Defined in + * [RFC 1035, section 5](https://goo.gl/9EiM0e) and + * [RFC 1034, section 3.6.1](https://goo.gl/Hwhsu9). + * @param {number} metadata.ttl Seconds that the resource is cached by + * resolvers. + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('my-awesome-zone'); + * + * const record = zone.record('a', { + * name: 'example.com.', + * ttl: 86400, + * data: '1.2.3.4' + * }); + */ +export class Record implements RecordObject { + zone_: Zone; + type: string; + metadata: RecordMetadata; + rrdatas?: string[]; + data?: string[]; + constructor(zone: Zone, type: string, metadata: RecordMetadata) { + this.zone_ = zone; + /** + * @name Record#type + * @type {string} + */ + this.type = type; + /** + * @name Record#metadata + * @type {object} + * @property {string} name + * @property {string[]} data + * @property {number} metadata.ttl + */ + this.metadata = metadata; + Object.assign(this, this.toJSON()); + if (this.rrdatas) { + /** + * @name Record#data + * @type {?object[]} + */ + this.data = this.rrdatas; + delete this.rrdatas; + } + } + + delete(): Promise; + delete(callback: CreateChangeCallback): void; + /** + * Delete this record by creating a change on your zone. This is a convenience + * method for: + * + * zone.createChange({ + * delete: record + * }, (err, change, apiResponse) => {}); + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {DeleteRecordCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const record = zone.record('a', { + * name: 'example.com.', + * ttl: 86400, + * data: '1.2.3.4' + * }); + * + * record.delete((err, change, apiResponse) => { + * if (!err) { + * // Delete change modification was created. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * record.delete().then((data) => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + delete( + callback?: CreateChangeCallback + ): void | Promise { + this.zone_.deleteRecords(this, callback!); + } + /** + * Serialize the record instance to the format the API expects. + * + * @returns {object} + */ + toJSON() { + const recordObject: RecordObject = Object.assign({}, this.metadata, { + type: this.type.toUpperCase(), + }); + if (recordObject.data) { + recordObject.rrdatas = arrify(recordObject.data); + delete recordObject.data; + } + return recordObject; + } + /** + * Convert the record to a string, formatted for a zone file. + * + * @returns {string} + */ + toString() { + const json = this.toJSON(); + return (json.rrdatas || [{}]) + .map(data => { + json.rrdata = data; + return format('{name} {ttl} IN {type} {rrdata}', json); + }) + .join('\n'); + } + /** + * Create a Record instance from a resource record set in a zone file. + * + * @private + * + * @param {Zone} zone The zone. + * @param {string} type The record type, e.g. `A`, `AAAA`, `MX`. + * @param {object} bindData Metadata parsed from dns-zonefile. Properties vary + * based on the type of record. + * @returns {Record} + */ + static fromZoneRecord_(zone: Zone, type: string, bindData: RecordMetadata) { + const typeToZoneFormat = { + a: '{ip}', + aaaa: '{ip}', + cname: '{alias}', + mx: '{preference} {host}', + ns: '{host}', + soa: '{mname} {rname} {serial} {retry} {refresh} {expire} {minimum}', + spf: '{data}', + srv: '{priority} {weight} {port} {target}', + txt: '{txt}', + } as {[index: string]: string}; + const metadata = { + data: format(typeToZoneFormat[type.toLowerCase()], bindData), + name: bindData.name, + ttl: bindData.ttl, + }; + return new Record(zone, type, metadata); + } +} + +/*! Developer Documentation + * + * All async methods (except for streams) will return a Promise in the event + * that a callback is omitted. + */ +promisifyAll(Record, { + exclude: ['toJSON', 'toString'], +}); diff --git a/handwritten/google-cloud-dns/src/zone.ts b/handwritten/google-cloud-dns/src/zone.ts new file mode 100644 index 000000000000..03df70aca66e --- /dev/null +++ b/handwritten/google-cloud-dns/src/zone.ts @@ -0,0 +1,1363 @@ +/*! + * Copyright 2014 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + DeleteCallback, + GetConfig, + Metadata, + ServiceObject, + ServiceObjectConfig, +} from '@google-cloud/common'; +import {paginator} from '@google-cloud/paginator'; +import {promisifyAll} from '@google-cloud/promisify'; +import arrify = require('arrify'); +import * as fs from 'fs'; + +import groupBy = require('lodash.groupby'); + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const zonefile = require('dns-zonefile'); + +import {Change} from './change'; +import {Record, RecordMetadata, RecordObject} from './record'; +import { + DNS, + CreateZoneRequest, + CreateZoneResponse, + CreateZoneCallback, +} from '.'; +import {Readable} from 'stream'; +import {InstanceResponseCallback} from '@google-cloud/common'; +import {GetResponse} from '@google-cloud/common/build/src/service-object'; + +/** + * Config to set for the change. + * + * @typedef {object} CreateChangeRequest + * @property {Record|Record[]} add {@link Record} objects to add to this zone. + * @property {Record|Record[]} delete {@link Record} objects to delete + * from this zone. Be aware that the resource records here must match + * exactly to be deleted. + */ +export interface CreateChangeRequest { + add?: Record | Record[]; + delete?: Record | Record[]; +} + +/** + * @typedef {array} CreateChangeResponse + * @property {Change} 0 A {@link Change} object. + * @property {object} 1 The full API response. + */ +export type CreateChangeResponse = [Change, Metadata]; + +/** + * @callback CreateChangeCallback + * @param {?Error} err Request error, if any. + * @param {?Change} change A {@link Change} object. + * @param {object} apiResponse The full API response. + */ +export interface CreateChangeCallback { + (err: Error | null, change?: Change, apiResponse?: Metadata): void; +} + +/** + * @typedef {array} DeleteZoneResponse + * @property {object} 0 The full API response. + */ +export type DeleteZoneResponse = [Metadata]; + +/** + * @callback DeleteZoneCallback + * @param {?Error} err Request error, if any. + * @param {object} apiResponse The full API response. + */ +export type DeleteZoneCallback = DeleteCallback; + +export interface DeleteZoneConfig { + force?: boolean; +} + +export interface GetRecordsCallback { + ( + err: Error | null, + records?: Record[] | null, + nextQuery?: {} | null, + apiResponse?: Metadata + ): void; +} + +export type GetRecordsResponse = [Record[], Metadata]; + +export interface GetRecordsRequest { + autoPaginate?: boolean; + maxApiCalls?: number; + maxResults?: number; + name?: string; + pageToken?: string; + type?: string; + filterByTypes_?: {[index: string]: boolean}; +} + +export interface GetZoneRequest extends CreateZoneRequest, GetConfig {} + +/** + * Query object for listing changes. + * + * @typedef {object} GetChangesRequest + * @property {boolean} [autoPaginate=true] Have pagination handled automatically. + * @property {number} [maxApiCalls] Maximum number of API calls to make. + * @property {number} [maxResults] Maximum number of items plus prefixes to + * return. + * @property {string} [pageToken] A previously-returned page token + * representing part of the larger set of results to view. + * @property {string} [sort] Set to 'asc' for ascending, and 'desc' for + * descending or omit for no sorting. + */ +export interface GetChangesRequest { + autoPaginate?: boolean; + maxApiCalls?: number; + maxResults?: number; + pageToken?: string; + sort?: string; + sortOrder?: string; +} + +/** + * @typedef {array} GetChangesResponse + * @property {Change[]} 0 Array of {@link Change} instances. + * @property {object} 1 The full API response. + */ +export type GetChangesResponse = [Change[], Metadata]; + +/** + * @callback GetChangesCallback + * @param {?Error} err Request error, if any. + * @param {Change[]} changes Array of {@link Change} instances. + * @param {object} apiResponse The full API response. + */ + +export interface GetChangesCallback { + ( + err: Error | null, + changes?: Change[] | null, + nextQuery?: {} | null, + apiResponse?: Metadata + ): void; +} + +/** + * @typedef {array} ZoneExportResponse + * @property {object} 0 The full API response. + */ +export type ZoneExportResponse = [Metadata]; + +/** + * @callback ZoneExportCallback + * @param {?Error} err Request error, if any. + * @param {object} apiResponse The full API response. + */ +export interface ZoneExportCallback { + (err: Error | null): void; +} + +// This type essentially just clones a class but allows us to exclude methods +// from the type itself. In this case it is useful because we want to override +// the Zone#create signature that is defined in the common library. +type Without = { + [P in Exclude]: T[P]; +}; + +// Using the Without type, we essentially make a new ServiceObject type that +// doesn't contain any of the methods that have signatures we wish to override. +type ZoneServiceObject = new ( + config: ServiceObjectConfig +) => Without, 'create' | 'delete' | 'get'>; + +// This is used purely for making TypeScript think that the object we are +// subclassing does not contain a signature mismatch for methods we are +// overriding. +// tslint:disable-next-line variable-name +const ZoneServiceObject = ServiceObject as ZoneServiceObject; + +/** + * A Zone object is used to interact with your project's managed zone. It will + * help you add or delete records, delete your zone, and many other convenience + * methods. + * + * @class + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const zone = dns.zone('zone-id'); + */ +class Zone extends ZoneServiceObject { + name: string; + getRecordsStream: (query?: GetRecordsRequest | string | string[]) => Readable; + getChangesStream: (query?: GetChangesRequest) => Readable; + constructor(dns: DNS, name: string) { + const methods = { + /** + * Create a zone. + * + * @method Zone#create + * @param {CreateZoneRequest} metadata Metadata to set for the zone. + * @param {CreateZoneCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * const config = { + * dnsName: 'example.com.', + * // ... + * }; + * + * zone.create(config, (err, zone, apiResponse) => { + * if (!err) { + * // The zone was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.create(config).then((data) => { + * const zone = data[0]; + * const apiResponse = data[1]; + * }); + */ + create: true, + /** + * @typedef {array} ZoneExistsResponse + * @property {boolean} 0 Whether the {@link Zone} exists. + */ + /** + * @callback ZoneExistsCallback + * @param {?Error} err Request error, if any. + * @param {boolean} exists Whether the {@link Zone} exists. + */ + /** + * Check if the zone exists. + * + * @method Zone#exists + * @param {ZoneExistsCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * zone.exists((err, exists) => {}); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.exists().then((data) => { + * const exists = data[0]; + * }); + */ + exists: true, + /** + * @typedef {array} GetZoneResponse + * @property {Zone} 0 The {@link Zone}. + * @property {object} 1 The full API response. + */ + /** + * @callback GetZoneCallback + * @param {?Error} err Request error, if any. + * @param {Zone} zone The {@link Zone}. + * @param {object} apiResponse The full API response. + */ + /** + * Get a zone if it exists. + * + * You may optionally use this to "get or create" an object by providing + * an object with `autoCreate` set to `true`. Any extra configuration that + * is normally required for the `create` method must be contained within + * this object as well. + * + * @method Zone#get + * @param {options} [options] Configuration object. + * @param {boolean} [options.autoCreate=false] Automatically create the + * object if it does not exist. + * @param {GetZoneCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * zone.get((err, zone, apiResponse) => { + * // `zone.metadata` has been populated. + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.get().then(data => { + * const zone = data[0]; + * const apiResponse = data[1]; + * }); + */ + get: true, + /** + * @typedef {array} GetZoneMetadataResponse + * @property {object} 0 The {@link Zone} metadata. + * @property {object} 1 The full API response. + */ + /** + * @callback GetZoneMetadataCallback + * @param {?Error} err Request error, if any. + * @param {object} metadata The {@link Zone} metadata. + * @param {object} apiResponse The full API response. + */ + /** + * Get the metadata for the zone. + * + * @see [ManagedZones: get API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/get} + * + * @method Zone#getMetadata + * @param {GetZoneMetadataCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * zone.getMetadata((err, metadata, apiResponse) => {}); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.getMetadata().then((data) => { + * const metadata = data[0]; + * const apiResponse = data[1]; + * }); + */ + getMetadata: true, + }; + /** + * @name Zone#metadata + * @type {object} + */ + super({ + parent: dns, + /** + * @name Zone#baseUrl + * @type {string} + * @default "/managedZones" + */ + baseUrl: '/managedZones', + /** + * @name Zone#id + * @type {string} + */ + id: name, + createMethod: dns.createZone.bind(dns), + methods, + }); + /** + * @name Zone#name + * @type {string} + */ + this.name = name; + this.getRecordsStream = paginator.streamify('getRecords'); + this.getChangesStream = paginator.streamify('getChanges'); + } + + create(config: CreateZoneRequest): Promise; + create(config: CreateZoneRequest, callback: CreateZoneCallback): void; + create( + config: CreateZoneRequest, + callback?: CreateZoneCallback + ): void | Promise { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const args = [config, callback!] as any; + ServiceObject.prototype.create.apply(this, args); + } + + get(config?: GetZoneRequest): Promise>; + get(callback: InstanceResponseCallback): void; + get(config: GetZoneRequest, callback: InstanceResponseCallback): void; + get( + configOrCallback?: GetZoneRequest | InstanceResponseCallback, + callback?: InstanceResponseCallback + ): void | Promise> { + const config = typeof configOrCallback === 'object' ? configOrCallback : {}; + callback = + typeof configOrCallback === 'function' ? configOrCallback : callback; + ServiceObject.prototype.get.call(this, config, callback!); + } + + addRecords(records: Record | Record[]): Promise; + addRecords(records: Record | Record[], callback: CreateChangeCallback): void; + /** + * Add records to this zone. This is a convenience wrapper around + * {@link Zone#createChange}. + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {Record|Record[]} record The {@link Record} object(s) to add. + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + */ + addRecords( + records: Record | Record[], + callback?: CreateChangeCallback + ): void | Promise { + this.createChange({add: records}, callback!); + } + /** + * Create a reference to a {@link Change} object in this zone. + * + * @param {string} id The change id. + * @returns {Change} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * const change = zone.change('change-id'); + */ + change(id?: string) { + return new Change(this, id); + } + + createChange(config: CreateChangeRequest): Promise; + createChange( + config: CreateChangeRequest, + callback: CreateChangeCallback + ): void; + /** + * Create a change of resource record sets for the zone. + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {CreateChangeRequest} config The configuration object. + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * const oldARecord = zone.record('a', { + * name: 'example.com.', + * data: '1.2.3.4', + * ttl: 86400 + * }); + * + * const newARecord = zone.record('a', { + * name: 'example.com.', + * data: '5.6.7.8', + * ttl: 86400 + * }); + * + * const config = { + * add: newARecord, + * delete: oldARecord + * }; + * + * zone.createChange(config, (err, change, apiResponse) => { + * if (!err) { + * // The change was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.createChange(config).then((data) => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + createChange( + config: CreateChangeRequest, + callback?: CreateChangeCallback + ): void | Promise { + if (!config || (!config.add && !config.delete)) { + throw new Error('Cannot create a change with no additions or deletions.'); + } + const groupByType = (recordsIn: RecordObject[]) => { + const recordsByType = groupBy(recordsIn, 'type'); + const recordsOut: RecordObject[] = []; + // tslint:disable-next-line:forin + for (const recordType in recordsByType) { + const recordsByName = groupBy(recordsByType[recordType], 'name'); + // tslint:disable-next-line:forin + for (const recordName in recordsByName) { + const records = recordsByName[recordName]; + const templateRecord = Object.assign({}, records[0]); + if (records.length > 1) { + // Combine the `rrdatas` values from all records of the same type. + templateRecord.rrdatas = records + .map(x => x.rrdatas) + .reduce((acc, rrdata) => acc!.concat(rrdata!), []); + } + recordsOut.push(templateRecord); + } + } + return recordsOut; + }; + const body = Object.assign( + { + additions: groupByType( + (arrify(config.add) as Record[]).map(x => x.toJSON()) + ), + deletions: groupByType( + (arrify(config.delete) as Record[]).map(x => x.toJSON()) + ), + }, + config + ); + delete body.add; + delete body.delete; + this.request( + { + method: 'POST', + uri: '/changes', + json: body, + }, + (err, resp) => { + if (err) { + callback!(err, undefined, resp); + return; + } + const change = this.change(resp.id); + change.metadata = resp; + callback!(null, change, resp); + } + ); + } + + delete(options?: DeleteZoneConfig): Promise; + delete(callback: DeleteZoneCallback): void; + delete(options: DeleteZoneConfig, callback: DeleteZoneCallback): void; + /** + * Delete the zone. + * + * Only empty zones can be deleted. Set `options.force` to `true` to call + * {@link Zone#empty} before deleting the zone. Two API calls will then be + * made (one to empty, another to delete), which means this is not an + * atomic request. + * + * @see [ManagedZones: delete API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/delete} + * + * @param {object} [options] Configuration object. + * @param {boolean} [options.force=false] Empty the zone before deleting. + * @param {DeleteZoneCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * zone.delete((err, apiResponse) => { + * if (!err) { + * // The zone is now deleted. + * } + * }); + * + * //- + * // Use `force` to first empty the zone before deleting it. + * //- + * zone.delete({ + * force: true + * }, (err, apiResponse) => { + * if (!err) { + * // The zone is now deleted. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.delete().then(data => { + * const apiResponse = data[0]; + * }); + */ + delete( + optionsOrCallback?: DeleteZoneConfig | DeleteZoneCallback, + callback?: DeleteZoneCallback + ): void | Promise { + const options = + typeof optionsOrCallback === 'object' ? optionsOrCallback : {}; + callback = + typeof optionsOrCallback === 'function' ? optionsOrCallback : callback; + if (options.force) { + this.empty(err => { + if (err) { + callback!(err); + return; + } + this.delete(callback!); + }); + return; + } + + ServiceObject.prototype.delete.call(this, callback!); + } + + deleteRecords( + records?: Record | Record[] | string + ): Promise; + deleteRecords(callback: CreateChangeCallback): void; + deleteRecords( + records: Record | Record[] | string, + callback: CreateChangeCallback + ): void; + /** + * Delete records from this zone. This is a convenience wrapper around + * {@link Zone#createChange}. + * + * This method accepts {@link Record} objects or string record types in + * its place. This means that you can delete all A records or NS records, etc. + * If used this way, two API requests are made (one to get, then another to + * delete), which means **the operation is not atomic** and could result in + * unexpected changes. + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {Record|Record[]|string} record If given a string, it is interpreted + * as a record type. All records that match that type will be retrieved + * and then deleted. You can also provide a {@link Record} object or array of + * {@link Record} objects. + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * const oldARecord = zone.record('a', { + * name: 'example.com.', + * data: '1.2.3.4', + * ttl: 86400 + * }); + * + * const callback = (err, change, apiResponse) => { + * if (!err) { + * // Delete change modification was created. + * } + * }; + * + * zone.deleteRecords(oldARecord, callback); + * + * //- + * // Delete multiple records at once. + * //- + * const oldNs1Record = zone.record('ns', { + * name: 'example.com.', + * data: 'ns-cloud1.googledomains.com.', + * ttl: 86400 + * }); + * + * const oldNs2Record = zone.record('ns', { + * name: 'example.com.', + * data: 'ns-cloud2.googledomains.com.', + * ttl: 86400 + * }); + * + * zone.deleteRecords([ + * oldNs1Record, + * oldNs2Record + * ], callback); + * + * //- + * // Possibly a simpler way to perform the above change is deleting records + * by + * // type. + * //- + * zone.deleteRecords('ns', callback); + * + * //- + * // You can also delete records of multiple types. + * //- + * zone.deleteRecords(['ns', 'a'], callback); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.deleteRecords(oldARecord).then((data) => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + deleteRecords( + recordsOrCallback?: Record | Record[] | string | CreateChangeCallback, + callback?: CreateChangeCallback + ): void | Promise { + let records: Array; + if (typeof recordsOrCallback === 'function') { + callback = recordsOrCallback; + records = []; + } else { + records = arrify(recordsOrCallback) as Array; + } + + if (typeof records[0] === 'string') { + this.deleteRecordsByType_(records as string[], callback!); + return; + } + this.createChange({delete: records as Record[]}, callback!); + } + + empty(): Promise; + empty(callback: CreateChangeCallback): void; + /** + * Emptying your zone means leaving only 'NS' and 'SOA' records. This method + * will first fetch the non-NS and non-SOA records from your zone using + * {@link Zone#getRecords}, then use {@link Zone#createChange} to + * create a deletion change. + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + */ + empty( + callback?: CreateChangeCallback + ): void | Promise { + this.getRecords((err, records) => { + if (err) { + callback!(err); + return; + } + const recordsToDelete = records!.filter(record => { + return record.type !== 'NS' && record.type !== 'SOA'; + }); + if (recordsToDelete.length === 0) { + callback!(null); + } else { + this.deleteRecords(recordsToDelete, callback!); + } + }); + } + + export(localPath: string): Promise; + export(localPath: string, callback: ZoneExportCallback): void; + /** + * Provide a path to a zone file to copy records into the zone. + * + * @see [ResourceRecordSets: list API Documentation]{@link https://cloud.google.com/dns/api/v1/resourceRecordSets/list} + * + * @param {string} localPath The fully qualified path to the zone file. + * @param {ZoneExportCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * const zoneFilename = '/Users/stephen/zonefile.zone'; + * + * zone.export(zoneFilename, err => { + * if (!err) { + * // The zone file was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.export(zoneFilename).then(() => {}); + */ + export( + localPath: string, + callback?: ZoneExportCallback + ): void | Promise { + this.getRecords((err, records) => { + if (err) { + callback!(err); + return; + } + const stringRecords = records!.map(x => x.toString()).join('\n'); + fs.writeFile(localPath, stringRecords, 'utf-8', err => { + callback!(err || null); + }); + }); + } + + getChanges(query?: GetChangesRequest): Promise; + getChanges(callback: GetChangesCallback): void; + getChanges(query: GetChangesRequest, callback: GetChangesCallback): void; + /** + * Get the list of changes associated with this zone. A change is an atomic + * update to a collection of records. + * + * @see [Changes: get API Documentation]{@link https://cloud.google.com/dns/api/v1/changes/get} + * + * @param {GetChangesRequest} [query] Query object for listing changes. + * @param {GetChangesCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const callback = (err, changes, nextQuery, apiResponse) => { + * // The `metadata` property is populated for you with the metadata at the + * // time of fetching. + * changes[0].metadata; + * + * // However, in cases where you are concerned the metadata could have + * // changed, use the `getMetadata` method. + * changes[0].getMetadata((err, metadata) => {}); + * if (nextQuery) { + * // nextQuery will be non-null if there are more results. + * zone.getChanges(nextQuery, callback); + * } + * }; + * + * const zone = dns.zone('zone-id'); + * + * zone.getChanges(callback); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.getChanges().then((data) => { + * const changes = data[0]; + * }); + */ + getChanges( + queryOrCallback?: GetChangesRequest | GetChangesCallback, + callback?: GetChangesCallback + ): void | Promise { + let query = queryOrCallback as GetChangesRequest; + if (typeof query === 'function') { + callback = query; + query = {}; + } + if (query.sort) { + query.sortOrder = query.sort === 'asc' ? 'ascending' : 'descending'; + delete query.sort; + } + this.request( + { + uri: '/changes', + qs: query, + }, + (err, resp) => { + if (err) { + callback!(err, null, null, resp); + return; + } + const changes = (resp.changes || []).map((change: Change) => { + const changeInstance = this.change(change.id); + changeInstance.metadata = change; + return changeInstance; + }); + let nextQuery = null; + if (resp.nextPageToken) { + nextQuery = Object.assign({}, query, { + pageToken: resp.nextPageToken, + }); + } + callback!(null, changes, nextQuery, resp); + } + ); + } + + getRecords( + query?: GetRecordsRequest | string | string[] + ): Promise; + getRecords(callback: GetRecordsCallback): void; + getRecords( + query: GetRecordsRequest | string | string[], + callback: GetRecordsCallback + ): void; + /** + * Query object for listing records. + * + * @typedef {object} GetRecordsRequest + * @property {boolean} [autoPaginate=true] Have pagination handled automatically. + * @property {number} [maxApiCalls] Maximum number of API calls to make. + * @property {number} [maxResults] Maximum number of items plus prefixes to + * return. + * @property {string} [name] Restricts the list to return only records with this + * fully qualified domain name. + * @property {string} [pageToken] A previously-returned page token + * representing part of the larger set of results to view. + * @property {string} [type] Restricts the list to return only records of this + * type. If present, the "name" parameter must also be present. + */ + /** + * @typedef {array} GetRecordsResponse + * @property {Record[]} 0 Array of {@link Record} instances. + * @property {object} 1 The full API response. + */ + /** + * @callback GetRecordsCallback + * @param {?Error} err Request error, if any. + * @param {Record[]} records Array of {@link Record} instances. + * @param {object} apiResponse The full API response. + */ + /** + * Get the list of records for this zone. + * + * @see [ResourceRecordSets: list API Documentation]{@link https://cloud.google.com/dns/api/v1/resourceRecordSets/list} + * + * @param {GetRecordsRequest} [query] Query object for listing records. + * @param {GetRecordsCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const callback = (err, records, nextQuery, apiResponse) => { + * if (!err) { + * // records is an array of Record objects. + * } + * + * if (nextQuery) { + * zone.getRecords(nextQuery, callback); + * } + * }; + * + * const zone = dns.zone('zone-id'); + * + * zone.getRecords(callback); + * + * //- + * // Provide a query for further customization. + * //- + * + * // Get the namespace records for example.com. + * const query = { + * name: 'example.com.', + * type: 'NS' + * }; + * + * zone.getRecords(query, callback); + * + * //- + * // If you only want records of a specific type or types, provide them in + * // place of the query object. + * //- + * zone.getRecords('ns', (err, records) => { + * if (!err) { + * // records is an array of NS Record objects in your zone. + * } + * }); + * + * //- + * // You can also specify multiple record types. + * //- + * zone.getRecords(['ns', 'a', 'cname'], (err, records) => { + * if (!err) { + * // records is an array of NS, A, and CNAME records in your zone. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.getRecords(query).then(data => { + * const records = data[0]; + * }); + */ + getRecords( + queryOrCallback?: + | GetRecordsRequest + | GetRecordsCallback + | string + | string[], + callback?: GetRecordsCallback + ): void | Promise { + let query: string | string[] | GetRecordsRequest; + if (typeof queryOrCallback === 'function') { + callback = queryOrCallback; + query = []; + } else { + query = queryOrCallback!; + } + + if (typeof query === 'string' || Array.isArray(query)) { + const filterByTypes_: {[index: string]: boolean} = {}; + // For faster lookups, store the record types the user wants in an object. + arrify(query as string).forEach(type => { + filterByTypes_[type.toUpperCase()] = true; + }); + query = { + filterByTypes_, + }; + } + const requestQuery = Object.assign({}, query) as GetRecordsRequest; + delete requestQuery.filterByTypes_; + this.request( + { + uri: '/rrsets', + qs: requestQuery, + }, + (err, resp) => { + if (err) { + callback!(err, null, null, resp); + return; + } + let records = (resp.rrsets || []).map((record: RecordMetadata) => { + return this.record(record.type!, record); + }); + if ((query as GetRecordsRequest).filterByTypes_) { + records = records.filter((record: RecordMetadata) => { + return (query as GetRecordsRequest).filterByTypes_![record.type!]; + }); + } + let nextQuery: {} | null = null; + if (resp.nextPageToken) { + nextQuery = Object.assign({}, query, { + pageToken: resp.nextPageToken, + }); + } + callback!(null, records, nextQuery, resp); + } + ); + } + + import(localPath: string): Promise; + import(localPath: string, callback: CreateChangeCallback): void; + /** + * Copy the records from a zone file into this zone. + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {string} localPath The fully qualified path to the zone file. + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * const zoneFilename = '/Users/dave/zonefile.zone'; + * + * zone.import(zoneFilename, (err, change, apiResponse) => { + * if (!err) { + * // The change was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.import(zoneFilename).then(data => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + import( + localPath: string, + callback?: CreateChangeCallback + ): void | Promise { + fs.readFile(localPath, 'utf-8', (err, file) => { + if (err) { + callback!(err); + return; + } + const parsedZonefile = zonefile.parse(file); + const defaultTTL = parsedZonefile.$ttl; + delete parsedZonefile.$ttl; + const recordTypes = Object.keys(parsedZonefile); + const recordsToCreate: Record[] = []; + recordTypes.forEach(recordType => { + const recordTypeSet = arrify(parsedZonefile[recordType]); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + recordTypeSet.forEach((record: any) => { + record.ttl = record.ttl || defaultTTL; + recordsToCreate.push( + Record.fromZoneRecord_(this, recordType, record) + ); + }); + }); + this.addRecords(recordsToCreate, callback!); + }); + } + /** + * A {@link Record} object can be used to construct a record you want to + * add to your zone, or to refer to an existing one. + * + * Note that using this method will not itself make any API requests. You will + * use the object returned in other API calls, for example to add a record to + * your zone or to delete an existing one. + * + * @param {string} type The type of record to construct or the type of record + * you are referencing. + * @param {object} metadata The metadata of this record. + * @param {string} metadata.name The name of the record, e.g. + * `www.example.com.`. + * @param {string[]} metadata.data Defined in + * [RFC 1035, section 5](https://goo.gl/9EiM0e) and + * [RFC 1034, section 3.6.1](https://goo.gl/Hwhsu9). + * @param {number} metadata.ttl Seconds that the resource is cached by + * resolvers. + * @returns {Record} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const zone = dns.zone('zone-id'); + * + * //- + * // Reference an existing record to delete from your zone. + * //- + * const oldARecord = zone.record('a', { + * name: 'example.com.', + * data: '1.2.3.4', + * ttl: 86400 + * }); + * + * //- + * // Construct a record to add to your zone. + * //- + * const newARecord = zone.record('a', { + * name: 'example.com.', + * data: '5.6.7.8', + * ttl: 86400 + * }); + * + * //- + * // Use these records together to create a change. + * //- + * zone.createChange({ + * add: newARecord, + * delete: oldARecord + * }, (err, change, apiResponse) => {}); + */ + record(type: string, metadata: RecordMetadata) { + return new Record(this, type, metadata); + } + + replaceRecords( + recordType: string | string[], + newRecords: Record | Record[] + ): Promise; + replaceRecords( + recordType: string | string[], + newRecords: Record | Record[], + callback: CreateChangeCallback + ): void; + /** + * Provide a record type that should be deleted and replaced with other + * records. + * + * **This is not an atomic request.** Two API requests are made + * (one to get records of the type that you've requested, then another to + * replace them), which means the operation is not atomic and could result in + * unexpected changes. + * + * @see [ManagedZones: create API Documentation]{@link https://cloud.google.com/dns/api/v1/managedZones/create} + * + * @param {string|string[]} recordTypes The type(s) of records to replace. + * @param {Record|Record[]} newRecords The {@link Record} object(s) to add. + * @param {CreateChangeCallback} [callback] Callback function. + * @returns {Promise} + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * + * const zone = dns.zone('zone-id'); + * + * const newNs1Record = zone.record('ns', { + * name: 'example.com.', + * data: 'ns-cloud1.googledomains.com.', + * ttl: 86400 + * }); + * + * const newNs2Record = zone.record('ns', { + * name: 'example.com.', + * data: 'ns-cloud2.googledomains.com.', + * ttl: 86400 + * }); + * + * const newNsRecords = [ + * newNs1Record, + * newNs2Record + * ]; + * + * zone.replaceRecords('ns', newNsRecords, (err, change, apiResponse) => { + * if (!err) { + * // The change was created successfully. + * } + * }); + * + * //- + * // If the callback is omitted, we'll return a Promise. + * //- + * zone.replaceRecords('ns', newNsRecords).then(data => { + * const change = data[0]; + * const apiResponse = data[1]; + * }); + */ + replaceRecords( + recordType: string | string[], + newRecords: Record | Record[], + callback?: CreateChangeCallback + ): void | Promise { + this.getRecords(recordType, (err, recordsToDelete) => { + if (err) { + callback!(err); + return; + } + this.createChange( + { + add: newRecords, + delete: recordsToDelete!, + }, + callback! + ); + }); + } + + deleteRecordsByType_(recordTypes: string[]): Promise; + deleteRecordsByType_( + recordTypes: string[], + callback: CreateChangeCallback + ): void; + /** + * Delete records from the zone matching an array of types. + * + * @private + * + * @param {string[]} recordTypes Types of records to delete. Ex: 'NS', 'A'. + * @param {function} callback Callback function. + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * zone.deleteRecordsByType_(['NS', 'A'], (err, change, apiResponse) => { + * if (!err) { + * // The change was created successfully. + * } + * }); + */ + deleteRecordsByType_( + recordTypes: string[], + callback?: CreateChangeCallback + ): void | Promise { + this.getRecords(recordTypes, (err, records) => { + if (err) { + callback!(err); + return; + } + if (records!.length === 0) { + callback!(null); + return; + } + this.deleteRecords(records!, callback!); + }); + } +} + +/** + * Get the list of {@link Change} objects associated with this zone as a + * readable object stream. + * + * @method Zone#getChangesStream + * @param {GetChangesRequest} [query] Query object for listing changes. + * @returns {ReadableStream} A readable stream that emits {@link Change} + * instances. + * + * @example + * zone.getChangesStream() + * .on('error', console.error) + * .on('data', change => { + * // change is a Change object. + * }) + * .on('end', () => { + * // All changes retrieved. + * }); + * + * //- + * // If you anticipate many results, you can end a stream early to prevent + * // unnecessary processing and API requests. + * //- + * zone.getChangesStream() + * .on('data', function(change) { + * this.end(); + * }); + */ + +/** + * Get the list of {module:dns/record} objects for this zone as a readable + * object stream. + * + * @method Zone#getRecordsStream + * @param {GetRecordsRequest} [query] Query object for listing records. + * @returns {ReadableStream} A readable stream that emits {@link Record} + * instances. + * + * @example + * const {DNS} = require('@google-cloud/dns'); + * const dns = new DNS(); + * const zone = dns.zone('zone-id'); + * + * zone.getRecordsStream() + * .on('error', console.error) + * .on('data', record => { + * // record is a Record object. + * }) + * .on('end', () => { + * // All records retrieved. + * }); + * + * //- + * // If you anticipate many results, you can end a stream early to prevent + * // unnecessary processing and API requests. + * //- + * zone.getRecordsStream() + * .on('data', function(change) { + * this.end(); + * }); + */ + +/*! Developer Documentation + * + * These methods can be auto-paginated. + */ +paginator.extend(Zone, ['getChanges', 'getRecords']); + +/*! Developer Documentation + * + * All async methods (except for streams) will return a Promise in the event + * that a callback is omitted. + */ +promisifyAll(Zone, { + exclude: ['change', 'record'], +}); + +/** + * Reference to the {@link Zone} class. + * @name module:@google-cloud/dns.Zone + * @see Zone + */ +export {Zone}; diff --git a/handwritten/google-cloud-dns/system-test/data/zonefile.zone b/handwritten/google-cloud-dns/system-test/data/zonefile.zone new file mode 100644 index 000000000000..cd68c741f90e --- /dev/null +++ b/handwritten/google-cloud-dns/system-test/data/zonefile.zone @@ -0,0 +1,9 @@ +$TTL 3600 +{DNS_DOMAIN} 21600 IN SPF "v=spf1" "mx:{DNS_DOMAIN}" "-all" +{DNS_DOMAIN} IN TXT "google-site-verification=xxxxxxxxxxxxYYYYYYXXX" +{DNS_DOMAIN} 21600 MX 10 mail.example.com. +{DNS_DOMAIN} 21600 MX 30 mail.example.com. +{DNS_DOMAIN} A 128.9.0.32 + A 10.1.0.52 +{DNS_DOMAIN} A 10.2.0.27 + A 128.9.0.33 diff --git a/handwritten/google-cloud-dns/system-test/dns.ts b/handwritten/google-cloud-dns/system-test/dns.ts new file mode 100644 index 000000000000..7f0e59c5fc1a --- /dev/null +++ b/handwritten/google-cloud-dns/system-test/dns.ts @@ -0,0 +1,347 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import * as assert from 'assert'; +import {describe, it, before, after} from 'mocha'; +import * as fs from 'fs'; +import * as tmp from 'tmp'; +import * as util from 'util'; +import * as uuid from 'uuid'; + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const format = require('string-format-obj'); + +import {DNS, Record} from '../src'; +import {Metadata} from '@google-cloud/common'; + +const dns = new DNS(); +const DNS_DOMAIN = process.env.GCLOUD_TESTS_DNS_DOMAIN || 'gitnpm.com.'; + +const delayMs = async (ms = 1000) => { + return new Promise(resolve => { + setTimeout(resolve, ms); + }); +}; + +// Only run the tests if there is a domain to test with. +describe('dns', () => { + const ZONE_NAME = 'test-zone-' + uuid.v4().substr(0, 18); + const ZONE = dns.zone(ZONE_NAME); + + const records = { + a: ZONE.record('a', { + ttl: 86400, + name: DNS_DOMAIN, + data: '1.2.3.4', + }), + + aaaa: ZONE.record('aaaa', { + ttl: 86400, + name: DNS_DOMAIN, + data: '2607:f8b0:400a:801::1005', + }), + + cname: ZONE.record('cname', { + ttl: 86400, + name: 'mail.' + DNS_DOMAIN, + data: 'example.com.', + }), + + mx: ZONE.record('mx', { + ttl: 86400, + name: DNS_DOMAIN, + data: ['10 mail.' + DNS_DOMAIN, '20 mail2.' + DNS_DOMAIN], + }), + + naptr: ZONE.record('naptr', { + ttl: 300, + name: '2.1.2.1.5.5.5.0.7.7.1.e164.arpa.', + data: [ + '100 10 "u" "sip+E2U" "!^.*$!sip:information@foo.se!i" .', + '102 10 "u" "smtp+E2U" "!^.*$!mailto:information@foo.se!i" .', + ], + }), + + ns: ZONE.record('ns', { + ttl: 86400, + name: DNS_DOMAIN, + data: 'ns-cloud1.googledomains.com.', + }), + + ptr: ZONE.record('ptr', { + ttl: 60, + name: '2.1.0.10.in-addr.arpa.', + data: 'server.' + DNS_DOMAIN, + }), + + soa: ZONE.record('soa', { + ttl: 21600, + name: DNS_DOMAIN, + data: [ + 'ns-cloud1.googledomains.com.', + 'dns-admin.google.com.', + '1 21600 3600 1209600 300', + ].join(' '), + }), + + spf: ZONE.record('spf', { + ttl: 21600, + name: DNS_DOMAIN, + data: 'v=spf1 mx:' + DNS_DOMAIN.replace(/.$/, '') + ' -all', + }), + + srv: ZONE.record('srv', { + ttl: 21600, + name: 'sip.' + DNS_DOMAIN, + data: '0 5 5060 sip.' + DNS_DOMAIN, + }), + + txt: ZONE.record('txt', { + ttl: 21600, + name: DNS_DOMAIN, + data: 'google-site-verification=xxxxxxxxxxxxYYYYYYXXX', + }), + }; + + before(async () => { + // Clean up any leaked resources + const [zones] = await dns.getZones(); + await Promise.all( + zones.map(async zone => { + const hoursOld = + (Date.now() - new Date(zone.metadata.creationTime).getTime()) / + 1000 / + 60 / + 60; + if (hoursOld > 1) { + await zone.delete({force: true}); + } + }) + ); + await ZONE.create({ + dnsName: DNS_DOMAIN, + dnssecConfig: { + state: 'on', + }, + }); + }); + + after(done => { + ZONE.delete({force: true}, done); + }); + + // deal with eventual consistency of ZONE.create(): + it('should return 0 or more zones', async function () { + this.retries(3); + await delayMs(1000); + const zones = await dns.getZones(); + assert(zones!.length >= 0); + }); + + describe('Zones', () => { + it('should get the metadata for a zone', done => { + ZONE.getMetadata((err: Error, metadata: Metadata) => { + assert.ifError(err); + assert.strictEqual(metadata.name, ZONE_NAME); + done(); + }); + }); + + it('should support all types of records', done => { + const recordsToCreate = [ + records.a, + records.aaaa, + records.cname, + records.mx, + // records.naptr, + records.ns, + // records.ptr, + records.soa, + records.spf, + records.srv, + records.txt, + ]; + + ZONE.replaceRecords(['ns', 'soa'], recordsToCreate, done); + }); + + it('should import records from a zone file', done => { + const zoneFilename = require.resolve( + '../../system-test/data/zonefile.zone' + ); + let zoneFileTemplate = fs.readFileSync(zoneFilename, 'utf-8'); + zoneFileTemplate = format(zoneFileTemplate, { + DNS_DOMAIN, + }); + + tmp.setGracefulCleanup(); + tmp.file((err, tmpFilePath) => { + assert.ifError(err); + fs.writeFileSync(tmpFilePath, zoneFileTemplate, 'utf-8'); + ZONE.empty(err => { + assert.ifError(err); + ZONE.import(tmpFilePath, err => { + assert.ifError(err); + + ZONE.getRecords(['spf', 'txt'], (err, records) => { + assert.ifError(err); + + const spfRecord = records!.filter(record => { + return record.type === 'SPF'; + })[0]; + + assert.strictEqual( + spfRecord.toJSON().rrdatas![0], + '"v=spf1" "mx:' + DNS_DOMAIN + '" "-all"' + ); + + const txtRecord = records!.filter(record => { + return record.type === 'TXT'; + })[0]; + + assert.strictEqual( + txtRecord.toJSON().rrdatas![0], + '"google-site-verification=xxxxxxxxxxxxYYYYYYXXX"' + ); + + done(); + }); + }); + }); + }); + }); + + it('should export records to a zone file', async () => { + tmp.setGracefulCleanup(); + const tmpFile: Function = util.promisify(tmp.file); + const tmpFilename = await tmpFile(); + await ZONE.empty(); + await ZONE.addRecords([records.spf, records.srv]); + await ZONE.export(tmpFilename); + }); + + describe('changes', () => { + it('should create a change', done => { + const record = ZONE.record('srv', { + ttl: 3600, + name: DNS_DOMAIN, + data: '10 0 5222 127.0.0.1.', + signatureRrdatas: [], + }); + const change = ZONE.change(); + change.create({add: record}, err => { + assert.ifError(err); + const addition = change.metadata.additions[0]; + delete addition.kind; + assert.deepStrictEqual(addition, record.toJSON()); + done(); + }); + }); + + it('should get a list of changes', done => { + ZONE.getChanges((err, changes) => { + assert.ifError(err); + assert(changes!.length >= 0); + done(); + }); + }); + + it('should get metadata', done => { + ZONE.getChanges((err, changes) => { + assert.ifError(err); + const change = changes![0]; + const expectedMetadata = change.metadata; + change.getMetadata((err: Error, metadata: Metadata) => { + assert.ifError(err); + delete metadata.status; + delete expectedMetadata.status; + assert.deepStrictEqual(metadata, expectedMetadata); + done(); + }); + }); + }); + }); + }); + + describe('Records', () => { + it('should return 0 or more records', done => { + ZONE.getRecords((err, records) => { + assert.ifError(err); + assert(records!.length >= 0); + done(); + }); + }); + + it('should cursor through records by type', done => { + const newRecords = [ + ZONE.record('cname', { + ttl: 86400, + name: '1.' + DNS_DOMAIN, + data: DNS_DOMAIN, + }), + ZONE.record('cname', { + ttl: 86400, + name: '2.' + DNS_DOMAIN, + data: DNS_DOMAIN, + }), + ]; + + ZONE.replaceRecords('cname', newRecords, err => { + assert.ifError(err); + const onRecordsReceived = ( + err?: Error | null, + records?: Record[] | null, + nextQuery?: {} | null + ) => { + if (nextQuery) { + ZONE.getRecords(nextQuery, onRecordsReceived); + return; + } + ZONE.deleteRecords(newRecords, done); + }; + ZONE.getRecords( + { + type: 'cname', + maxResults: 2, + }, + onRecordsReceived + ); + }); + }); + + it('should replace records', async () => { + const name = 'test-zone-' + uuid.v4().substr(0, 18); + // Do this in a new zone so no existing records are affected. + const [zone] = await dns.createZone(name, { + dnsName: DNS_DOMAIN, + dnssecConfig: { + state: 'on', + }, + }); + const [originalRecords] = await zone.getRecords('ns'); + const originalData = originalRecords[0].data; + const newRecord = zone.record('ns', { + ttl: 3600, + name: DNS_DOMAIN, + data: ['ns1.nameserver.net.', 'ns2.nameserver.net.'], + }); + const [change] = await zone.replaceRecords('ns', newRecord); + const deleted = change.metadata.deletions[0].rrdatas; + const added = change.metadata.additions[0].rrdatas; + assert.deepStrictEqual(deleted, originalData); + assert.deepStrictEqual(added, newRecord.data); + await zone.delete({force: true}); + }); + }); +}); diff --git a/handwritten/google-cloud-dns/test/change.ts b/handwritten/google-cloud-dns/test/change.ts new file mode 100644 index 000000000000..4d37cfd21cd6 --- /dev/null +++ b/handwritten/google-cloud-dns/test/change.ts @@ -0,0 +1,162 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { + Metadata, + ServiceObject, + ServiceObjectConfig, +} from '@google-cloud/common'; +import * as promisify from '@google-cloud/promisify'; +import * as assert from 'assert'; +import {describe, it, before, beforeEach} from 'mocha'; +import * as proxyquire from 'proxyquire'; +import {Change} from '../src/change'; + +let promisified = false; +const fakePromisify = Object.assign({}, promisify, { + promisifyAll(esClass: Function) { + if (esClass.name === 'Change') { + promisified = true; + } + }, +}); + +class FakeServiceObject extends ServiceObject { + calledWith_: IArguments; + constructor(config: ServiceObjectConfig) { + super(config); + // eslint-disable-next-line prefer-rest-params + this.calledWith_ = arguments; + } +} + +describe('Change', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let Change: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let change: any; + + const ZONE = { + name: 'zone-name', + createChange() {}, + }; + + const CHANGE_ID = 'change-id'; + + before(() => { + Change = proxyquire('../src/change', { + '@google-cloud/common': { + ServiceObject: FakeServiceObject, + }, + '@google-cloud/promisify': fakePromisify, + }).Change; + }); + + beforeEach(() => { + change = new Change(ZONE, CHANGE_ID); + }); + + describe('instantiation', () => { + it('should inherit from ServiceObject', () => { + assert(change instanceof ServiceObject); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const calledWith = (change as any).calledWith_[0]; + + assert.strictEqual(calledWith.parent, ZONE); + assert.strictEqual(calledWith.baseUrl, '/changes'); + assert.strictEqual(calledWith.id, CHANGE_ID); + assert.deepStrictEqual(calledWith.methods, { + exists: true, + get: true, + getMetadata: true, + }); + }); + + it('should promisify all the things', () => { + assert(promisified); + }); + }); + + describe('change', () => { + it('should call the parent change method', done => { + const config = {}; + + change.parent.createChange = (config_: {}) => { + assert.strictEqual(config, config_); + done(); + }; + + change.create(config, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + const apiResponse = {}; + + beforeEach(() => { + change.parent.createChange = (config: {}, callback: Function) => { + callback(error, null, apiResponse); + }; + }); + + it('should execute callback with error & apiResponse', done => { + change.create( + {}, + (err: Error, change: Change, apiResponse_: Metadata) => { + assert.strictEqual(err, error); + assert.strictEqual(change, null); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + }); + + describe('success', () => { + const changeInstance = { + id: 'id', + metadata: {}, + }; + const apiResponse = {}; + + beforeEach(() => { + change.parent.createChange = (config: {}, callback: Function) => { + callback(null, changeInstance, apiResponse); + }; + }); + + it('should execute callback with self & API response', done => { + change.create( + {}, + (err: Error, change_: Change, apiResponse_: Metadata) => { + assert.ifError(err); + assert.strictEqual(change_, change); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + + it('should assign the ID and metadata from the change', done => { + change.create({}, (err: Error, change_: Change) => { + assert.ifError(err); + assert.strictEqual(change_.id, changeInstance.id); + assert.strictEqual(change_.metadata, changeInstance.metadata); + done(); + }); + }); + }); + }); +}); diff --git a/handwritten/google-cloud-dns/test/index.ts b/handwritten/google-cloud-dns/test/index.ts new file mode 100644 index 000000000000..0c3fd27da05e --- /dev/null +++ b/handwritten/google-cloud-dns/test/index.ts @@ -0,0 +1,431 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { + Service, + ServiceConfig, + ServiceOptions, + util, +} from '@google-cloud/common'; +import * as promisify from '@google-cloud/promisify'; +import arrify = require('arrify'); +import * as assert from 'assert'; +import {describe, it, before, beforeEach} from 'mocha'; +import * as proxyquire from 'proxyquire'; +import {CoreOptions, OptionsWithUri, Response} from 'request'; + +import {Zone} from '../src'; + +let extended = false; +const fakePaginator = { + paginator: { + extend(esClass: Function, methods: string[]) { + if (esClass.name !== 'DNS') { + return; + } + extended = true; + methods = arrify(methods); + assert.strictEqual(esClass.name, 'DNS'); + assert.deepStrictEqual(methods, ['getZones']); + }, + streamify(methodName: string) { + return methodName; + }, + }, +}; + +class FakeService extends Service { + calledWith_: IArguments; + constructor(config: ServiceConfig, options?: ServiceOptions) { + super(config, options); + // eslint-disable-next-line prefer-rest-params + this.calledWith_ = arguments; + } +} + +const fakeUtil = Object.assign({}, util, { + makeAuthenticatedRequestFactory() {}, +}); +const originalFakeUtil = Object.assign({}, fakeUtil); + +let promisified = false; +const fakePromisify = Object.assign({}, promisify, { + // tslint:disable-next-line:variable-name + promisifyAll(esClass: Function, options: promisify.PromisifyAllOptions) { + if (esClass.name !== 'DNS') { + return; + } + promisified = true; + assert.deepStrictEqual(options.exclude, ['zone']); + }, +}); + +class FakeZone { + calledWith_: IArguments; + constructor() { + // eslint-disable-next-line prefer-rest-params + this.calledWith_ = arguments; + } +} + +describe('DNS', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let DNS: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let dns: any; + + const PROJECT_ID = 'project-id'; + + before(() => { + DNS = proxyquire('../src', { + '@google-cloud/common': { + Service: FakeService, + }, + '@google-cloud/paginator': fakePaginator, + '@google-cloud/promisify': fakePromisify, + './zone': { + Zone: FakeZone, + }, + }).DNS; + }); + + beforeEach(() => { + Object.assign(fakeUtil, originalFakeUtil); + dns = new DNS({ + projectId: PROJECT_ID, + }); + }); + + describe('instantiation', () => { + it('should extend the correct methods', () => { + assert(extended); // See `fakePaginator.extend` + }); + + it('should streamify the correct methods', () => { + assert.strictEqual(dns.getZonesStream, 'getZones'); + }); + + it('should promisify all the things', () => { + assert(promisified); + }); + + it('should inherit from Service', () => { + assert(dns instanceof Service); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const calledWith = (dns as any).calledWith_[0]; + + const baseUrl = 'https://dns.googleapis.com/dns/v1'; + assert.strictEqual(calledWith.baseUrl, baseUrl); + assert.deepStrictEqual(calledWith.scopes, [ + 'https://www.googleapis.com/auth/ndev.clouddns.readwrite', + 'https://www.googleapis.com/auth/cloud-platform', + ]); + assert.deepStrictEqual( + calledWith.packageJson, + // eslint-disable-next-line @typescript-eslint/no-var-requires + require('../../package.json') + ); + }); + + it('should enable apiEndpoint override', () => { + const apiEndpoint = 'fake.endpoint'; + dns = new DNS({ + projectId: PROJECT_ID, + apiEndpoint, + }); + const calledWith = dns.calledWith_[0]; + assert.strictEqual(calledWith.apiEndpoint, apiEndpoint); + assert.strictEqual(calledWith.baseUrl, `https://${apiEndpoint}/dns/v1`); + }); + }); + + describe('createZone', () => { + const zoneName = 'zone-name'; + const config = {dnsName: 'dns-name'}; + + it('should throw if a zone name is not provided', () => { + assert.throws(() => { + dns.createZone(); + }, /A zone name is required/); + }); + + it('should throw if a zone dnsname is not provided', () => { + assert.throws(() => { + dns.createZone(zoneName); + }, /A zone dnsName is required/); + + assert.throws(() => { + dns.createZone(zoneName, {}); + }, /A zone dnsName is required/); + }); + + it('should use a provided description', done => { + const cfg = Object.assign({}, config, {description: 'description'}); + + dns.request = (reqOpts: CoreOptions) => { + assert.strictEqual(reqOpts.json.description, cfg.description); + done(); + }; + + dns.createZone(zoneName, cfg, assert.ifError); + }); + + it('should default a description to ""', done => { + dns.request = (reqOpts: CoreOptions) => { + assert.strictEqual(reqOpts.json.description, ''); + done(); + }; + + dns.createZone(zoneName, config, assert.ifError); + }); + + it('should make the correct API request', done => { + dns.request = (reqOpts: OptionsWithUri) => { + assert.strictEqual(reqOpts.method, 'POST'); + assert.strictEqual(reqOpts.uri, '/managedZones'); + const expectedBody = Object.assign({}, config, { + name: zoneName, + description: '', + }); + assert.deepStrictEqual(reqOpts.json, expectedBody); + + done(); + }; + + dns.createZone(zoneName, config, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + const apiResponse = {a: 'b', c: 'd'}; + + beforeEach(() => { + dns.request = (reqOpts: {}, callback: Function) => { + callback(error, apiResponse); + }; + }); + + it('should execute callback with error and API response', done => { + dns.createZone( + zoneName, + config, + (err: Error, zone: Zone, apiResponse_: Response) => { + assert.strictEqual(err, error); + assert.strictEqual(zone, null); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + }); + + describe('success', () => { + const apiResponse = {name: zoneName}; + const zone = {}; + + beforeEach(() => { + dns.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponse); + }; + + dns.zone = () => { + return zone; + }; + }); + + it('should create a zone from the response', done => { + dns.zone = (name: string) => { + assert.strictEqual(name, apiResponse.name); + setImmediate(done); + return zone; + }; + + dns.createZone(zoneName, config, assert.ifError); + }); + + it('should execute callback with zone and API response', done => { + dns.createZone( + zoneName, + config, + (err: Error, zone_: Zone, apiResponse_: Response) => { + assert.ifError(err); + assert.strictEqual(zone_, zone); + assert.strictEqual(apiResponse_, apiResponse); + + done(); + } + ); + }); + + it('should set the metadata to the response', done => { + dns.createZone(zoneName, config, (err: Error, zone: Zone) => { + assert.strictEqual(zone.metadata, apiResponse); + done(); + }); + }); + }); + }); + + describe('getZones', () => { + it('should make the correct request', done => { + const query = {a: 'b', c: 'd'}; + + dns.request = (reqOpts: OptionsWithUri) => { + assert.strictEqual(reqOpts.uri, '/managedZones'); + assert.strictEqual(reqOpts.qs, query); + + done(); + }; + + dns.getZones(query, assert.ifError); + }); + + it('should use an empty query if one was not provided', done => { + dns.request = (reqOpts: CoreOptions) => { + assert.strictEqual(Object.keys(reqOpts.qs).length, 0); + done(); + }; + + dns.getZones(assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + const apiResponse = {a: 'b', c: 'd'}; + + beforeEach(() => { + dns.request = (reqOpts: {}, callback: Function) => { + callback(error, apiResponse); + }; + }); + + it('should execute callback with error and API response', done => { + dns.getZones( + {}, + ( + err: Error, + zones: Zone[], + nextQuery: {}, + apiResponse_: Response + ) => { + assert.strictEqual(err, error); + assert.strictEqual(zones, null); + assert.strictEqual(nextQuery, null); + assert.strictEqual(apiResponse_, apiResponse); + + done(); + } + ); + }); + }); + + describe('success', () => { + const zone = {name: 'zone-1', a: 'b', c: 'd'}; + const apiResponse = {managedZones: [zone]}; + + beforeEach(() => { + dns.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponse); + }; + + dns.zone = () => { + return zone; + }; + }); + + it('should create zones from the response', done => { + dns.zone = (zoneName: string) => { + assert.strictEqual(zoneName, zone.name); + setImmediate(done); + return zone; + }; + + dns.getZones({}, assert.ifError); + }); + + it('should set a nextQuery if necessary', done => { + const apiResponseWithNextPageToken = Object.assign({}, apiResponse, { + nextPageToken: 'next-page-token', + }); + + const query = {a: 'b', c: 'd'}; + const originalQuery = Object.assign({}, query); + + dns.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponseWithNextPageToken); + }; + + dns.getZones(query, (err: Error, zones: Zone[], nextQuery: {}) => { + assert.ifError(err); + + // Check the original query wasn't modified. + assert.deepStrictEqual(query, originalQuery); + + assert.deepStrictEqual( + nextQuery, + Object.assign({}, query, { + pageToken: apiResponseWithNextPageToken.nextPageToken, + }) + ); + + done(); + }); + }); + + it('should execute callback with zones and API response', done => { + dns.getZones( + {}, + ( + err: Error, + zones: Zone[], + nextQuery: {}, + apiResponse_: Response + ) => { + assert.ifError(err); + assert.strictEqual(zones[0], zone); + assert.strictEqual(nextQuery, null); + assert.strictEqual(apiResponse_, apiResponse); + + done(); + } + ); + }); + + it('should assign metadata to zones', done => { + dns.getZones({}, (err: Error, zones: Zone[]) => { + assert.ifError(err); + assert.strictEqual(zones[0].metadata, zone); + done(); + }); + }); + }); + }); + + describe('zone', () => { + it('should throw if a name is not provided', () => { + assert.throws(() => { + dns.zone(); + }, /A zone name is required/); + }); + + it('should return a Zone', () => { + const newZoneName = 'new-zone-name'; + const newZone = dns.zone(newZoneName); + assert(newZone instanceof FakeZone); + assert.strictEqual(newZone.calledWith_[0], dns); + assert.strictEqual(newZone.calledWith_[1], newZoneName); + }); + }); +}); diff --git a/handwritten/google-cloud-dns/test/record.ts b/handwritten/google-cloud-dns/test/record.ts new file mode 100644 index 000000000000..e7174c43d546 --- /dev/null +++ b/handwritten/google-cloud-dns/test/record.ts @@ -0,0 +1,357 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import * as promisify from '@google-cloud/promisify'; +import * as assert from 'assert'; +import {describe, it, before, beforeEach} from 'mocha'; +import * as proxyquire from 'proxyquire'; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import {Record} from '../src'; + +interface Metadata { + name: string; + data?: string[]; + ttl: number; +} +let promisified = false; +const fakePromisify = Object.assign({}, promisify, { + promisifyAll(esClass: Function, options: promisify.PromisifyAllOptions) { + if (esClass.name !== 'Record') { + return; + } + promisified = true; + assert.deepStrictEqual(options.exclude, ['toJSON', 'toString']); + }, +}); + +describe('Record', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let Record: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let record: any; + + const ZONE = { + deleteRecords() {}, + }; + const TYPE = 'A'; + const METADATA = { + name: 'name', + data: [], + ttl: 86400, + }; + + before(() => { + Record = proxyquire('../src/record', { + '@google-cloud/promisify': fakePromisify, + }).Record; + }); + + beforeEach(() => { + record = new Record(ZONE, TYPE, METADATA); + }); + + describe('instantiation', () => { + it('should promisify all the things', () => { + assert(promisified); + }); + + it('should localize the zone instance', () => { + assert.strictEqual(record.zone_, ZONE); + }); + + it('should localize the type', () => { + assert.strictEqual(record.type, TYPE); + }); + + it('should localize the metadata', () => { + assert.strictEqual(record.metadata, METADATA); + }); + + it('should assign the parsed metadata', () => { + const parsedMetadata = record.toJSON(); + delete parsedMetadata.rrdatas; + // tslint:disable-next-line:forin + for (const prop in parsedMetadata) { + assert.strictEqual(record[prop], parsedMetadata[prop]); + } + }); + + it('should re-assign rrdatas to data', () => { + const originalRrdatas = new Array(); + + const recordThatHadRrdatas = new Record(ZONE, TYPE, { + rrdatas: originalRrdatas, + }); + + assert.strictEqual(recordThatHadRrdatas.rrdatas, undefined); + assert.strictEqual(recordThatHadRrdatas.data, originalRrdatas); + }); + }); + + describe('fromZoneRecord_', () => { + describe('a', () => { + const aRecord = { + ip: '0.0.0.0', + name: 'name', + ttl: 86400, + }; + + const expectedData = aRecord.ip; + + it('should parse an A record', () => { + const record = Record.fromZoneRecord_(ZONE, 'a', aRecord); + + assert.strictEqual(record.type, 'A'); + assert.deepStrictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, aRecord.name); + assert.strictEqual(record.metadata.ttl, aRecord.ttl); + }); + }); + + describe('aaaa', () => { + const aaaaRecord = { + ip: '2607:f8b0:400a:801::1005', + name: 'name', + ttl: 86400, + }; + + const expectedData = aaaaRecord.ip; + + it('should parse an AAAA record', () => { + const record = Record.fromZoneRecord_(ZONE, 'aaaa', aaaaRecord); + + assert.strictEqual(record.type, 'AAAA'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, aaaaRecord.name); + assert.strictEqual(record.metadata.ttl, aaaaRecord.ttl); + }); + }); + + describe('cname', () => { + const cnameRecord = { + alias: 'example.com.', + name: 'name', + ttl: 86400, + }; + + const expectedData = cnameRecord.alias; + + it('should parse a CNAME record', () => { + const record = Record.fromZoneRecord_(ZONE, 'cname', cnameRecord); + + assert.strictEqual(record.type, 'CNAME'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, cnameRecord.name); + assert.strictEqual(record.metadata.ttl, cnameRecord.ttl); + }); + }); + + describe('mx', () => { + const mxRecord = { + preference: 0, + host: 'mail', + name: 'name', + ttl: 86400, + }; + + const expectedData = mxRecord.preference + ' ' + mxRecord.host; + + it('should parse an MX record', () => { + const record = Record.fromZoneRecord_(ZONE, 'mx', mxRecord); + + assert.strictEqual(record.type, 'MX'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, mxRecord.name); + assert.strictEqual(record.metadata.ttl, mxRecord.ttl); + }); + }); + + describe('ns', () => { + const nsRecord = { + host: 'example.com', + name: 'name', + ttl: 86400, + }; + + const expectedData = nsRecord.host; + + it('should parse an NS record', () => { + const record = Record.fromZoneRecord_(ZONE, 'ns', nsRecord); + + assert.strictEqual(record.type, 'NS'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, nsRecord.name); + assert.strictEqual(record.metadata.ttl, nsRecord.ttl); + }); + }); + + describe('soa', () => { + const soaRecord = { + mname: 'ns1.nameserver.net.', + rname: 'hostmaster.mydomain.com.', + serial: 86400, + retry: 600, + refresh: 3600, + expire: 604800, + minimum: 86400, + name: 'name', + ttl: 86400, + }; + + const expectedData = [ + soaRecord.mname, + soaRecord.rname, + soaRecord.serial, + soaRecord.retry, + soaRecord.refresh, + soaRecord.expire, + soaRecord.minimum, + ].join(' '); + + it('should parse an SOA record', () => { + const record = Record.fromZoneRecord_(ZONE, 'soa', soaRecord); + + assert.strictEqual(record.type, 'SOA'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, soaRecord.name); + assert.strictEqual(record.metadata.ttl, soaRecord.ttl); + }); + }); + + describe('spf', () => { + const spfRecord = { + data: '"v=spf1" "mx:example.com"', + name: 'name', + ttl: 86400, + }; + + const expectedData = spfRecord.data; + + it('should parse an SPF record', () => { + const record = Record.fromZoneRecord_(ZONE, 'spf', spfRecord); + + assert.strictEqual(record.type, 'SPF'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, spfRecord.name); + assert.strictEqual(record.metadata.ttl, spfRecord.ttl); + }); + }); + + describe('srv', () => { + const srvRecord = { + priority: 10, + weight: 0, + port: 5222, + target: 'jabber', + name: 'name', + ttl: 86400, + }; + + const expectedData = [ + srvRecord.priority, + srvRecord.weight, + srvRecord.port, + srvRecord.target, + ].join(' '); + + it('should parse an SRV record', () => { + const record = Record.fromZoneRecord_(ZONE, 'srv', srvRecord); + + assert.strictEqual(record.type, 'SRV'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, srvRecord.name); + assert.strictEqual(record.metadata.ttl, srvRecord.ttl); + }); + }); + + describe('txt', () => { + const txtRecord = { + txt: 'txt-record-txt', + name: 'name', + ttl: 86400, + }; + + const expectedData = txtRecord.txt; + + it('should parse a TXT record', () => { + const record = Record.fromZoneRecord_(ZONE, 'txt', txtRecord); + + assert.strictEqual(record.type, 'TXT'); + assert.strictEqual(record.metadata.data, expectedData); + assert.strictEqual(record.metadata.name, txtRecord.name); + assert.strictEqual(record.metadata.ttl, txtRecord.ttl); + }); + }); + }); + + describe('delete', () => { + it('should call zone.deleteRecords', (done: any) => { + record.zone_.deleteRecords = (records: Record[], callback: Function) => { + assert.strictEqual(records, record); + callback(); + }; + record.delete(done); + }); + }); + + describe('toJSON', () => { + it('should format the data for the API', () => { + const expectedRecord: Metadata = Object.assign({}, METADATA, { + type: 'A', + rrdatas: METADATA.data, + }); + delete expectedRecord.data; + + assert.deepStrictEqual(record.toJSON(), expectedRecord); + }); + }); + + describe('toString', () => { + it('should format the data for a zonefile', () => { + const jsonRecord = Object.assign({}, METADATA, { + type: TYPE, + rrdatas: ['example.com.', 'example2.com.'], + }); + + record.toJSON = () => { + return jsonRecord; + }; + + const expectedRecordString = [ + [ + jsonRecord.name, + jsonRecord.ttl, + 'IN', + TYPE, + jsonRecord.rrdatas[0], + ].join(' '), + + [ + jsonRecord.name, + jsonRecord.ttl, + 'IN', + TYPE, + jsonRecord.rrdatas[1], + ].join(' '), + ].join('\n'); + + // That's a bunch of silliness, but it generates simply: + // name 86400 IN A example.com. + // name 86400 IN A example2.com. + + assert.strictEqual(record.toString(), expectedRecordString); + }); + }); +}); diff --git a/handwritten/google-cloud-dns/test/zone.ts b/handwritten/google-cloud-dns/test/zone.ts new file mode 100644 index 000000000000..e4f4bdae2301 --- /dev/null +++ b/handwritten/google-cloud-dns/test/zone.ts @@ -0,0 +1,1067 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import {ServiceObject, ServiceObjectConfig} from '@google-cloud/common'; +import * as promisify from '@google-cloud/promisify'; +import arrify = require('arrify'); +import * as assert from 'assert'; +import {describe, it, before, beforeEach} from 'mocha'; +import * as proxyquire from 'proxyquire'; +import {CoreOptions, OptionsWithUri, Response} from 'request'; +import * as uuid from 'uuid'; + +import {Change, CreateChangeRequest} from '../src/change'; +import {Record, RecordObject, RecordMetadata} from '../src/record'; + +let promisified = false; +const fakePromisify = Object.assign({}, promisify, { + promisifyAll(esClass: Function, options: promisify.PromisifyAllOptions) { + if (esClass.name !== 'Zone') { + return; + } + promisified = true; + assert.deepStrictEqual(options.exclude, ['change', 'record']); + }, +}); + +let parseOverride: Function | null; +const fakeDnsZonefile = { + parse() { + // eslint-disable-next-line prefer-spread, prefer-rest-params + return (parseOverride || (() => {})).apply(null, arguments); + }, +}; + +let writeFileOverride: Function | null; +let readFileOverride: Function | null; +const fakeFs = { + readFile() { + // eslint-disable-next-line prefer-spread, prefer-rest-params + return (readFileOverride || (() => {})).apply(null, arguments); + }, + writeFile() { + // eslint-disable-next-line prefer-spread, prefer-rest-params + return (writeFileOverride || (() => {})).apply(null, arguments); + }, +}; + +class FakeChange { + calledWith_: Array<{}>; + constructor(...args: Array<{}>) { + this.calledWith_ = args; + } +} + +class FakeRecord { + calledWith_: Array<{}>; + constructor(...args: Array<{}>) { + this.calledWith_ = args; + } + static fromZoneRecord_(...args: Array<{}>) { + const record = new FakeRecord(); + record.calledWith_ = args; + return record; + } +} + +class FakeServiceObject extends ServiceObject { + calledWith_: Array<{}>; + constructor(config: ServiceObjectConfig, ...args: Array<{}>) { + super(config); + this.calledWith_ = args; + } +} + +let extended = false; +const fakePaginator = { + paginator: { + extend(esClass: Function, methods: string[]) { + if (esClass.name !== 'Zone') { + return; + } + extended = true; + methods = arrify(methods); + assert.strictEqual(esClass.name, 'Zone'); + assert.deepStrictEqual(methods, ['getChanges', 'getRecords']); + }, + streamify(methodName: string) { + return methodName; + }, + }, +}; + +describe('Zone', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let Zone: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let zone: any; + + const DNS = { + createZone() {}, + }; + const ZONE_NAME = 'zone-name'; + + before(() => { + Zone = proxyquire('../src/zone.js', { + 'dns-zonefile': fakeDnsZonefile, + fs: fakeFs, + '@google-cloud/common': { + ServiceObject: FakeServiceObject, + }, + '@google-cloud/promisify': fakePromisify, + '@google-cloud/paginator': fakePaginator, + './change': { + Change: FakeChange, + }, + './record': {Record: FakeRecord}, + }).Zone; + }); + + beforeEach(() => { + parseOverride = null; + readFileOverride = null; + writeFileOverride = null; + zone = new Zone(DNS, ZONE_NAME); + }); + + describe('instantiation', () => { + it('should promisify all the things', () => { + assert(promisified); + }); + + it('should extend the correct methods', () => { + assert(extended); // See `fakePaginator.extend` + }); + + it('should streamify the correct methods', () => { + assert.strictEqual(zone.getChangesStream, 'getChanges'); + assert.strictEqual(zone.getRecordsStream, 'getRecords'); + }); + + it('should localize the name', () => { + assert.strictEqual(zone.name, ZONE_NAME); + }); + + it('should inherit from ServiceObject', done => { + const dnsInstance = Object.assign({}, DNS, { + createZone: { + bind(context: {}) { + assert.strictEqual(context, dnsInstance); + done(); + }, + }, + }); + + const zone = new Zone(dnsInstance, ZONE_NAME); + assert(zone instanceof ServiceObject); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const calledWith = (zone as any).calledWith_[0]; + + assert.strictEqual(calledWith.parent, dnsInstance); + assert.strictEqual(calledWith.baseUrl, '/managedZones'); + assert.strictEqual(calledWith.id, ZONE_NAME); + assert.deepStrictEqual(calledWith.methods, { + create: true, + exists: true, + get: true, + getMetadata: true, + }); + }); + }); + + describe('addRecords', () => { + it('should create a change with additions', done => { + const records = ['a', 'b', 'c']; + + zone.createChange = ( + options: CreateChangeRequest, + callback: Function + ) => { + assert.strictEqual(options.add, records); + callback(); + }; + + zone.addRecords(records, done); + }); + }); + + describe('change', () => { + it('should return a Change object', () => { + const changeId = 'change-id'; + const change = zone.change(changeId); + assert(change instanceof FakeChange); + assert.strictEqual(change.calledWith_[0], zone); + assert.strictEqual(change.calledWith_[1], changeId); + }); + }); + + describe('createChange', () => { + function generateRecord(recordJson?: {}) { + recordJson = Object.assign( + { + name: uuid.v1(), + type: uuid.v1(), + rrdatas: [uuid.v1(), uuid.v1()], + }, + recordJson + ); + + return { + toJSON() { + return recordJson! as {rrdatas: Array<{}>}; + }, + }; + } + + it('should throw error if add or delete is not provided', () => { + assert.throws(() => { + zone.createChange({}, () => {}); + }, /Cannot create a change with no additions or deletions/); + }); + + it('should parse and rename add to additions', done => { + const recordsToAdd = [generateRecord(), generateRecord()]; + + const expectedAdditions = recordsToAdd.map(x => x.toJSON()); + + zone.request = (reqOpts: CoreOptions) => { + assert.strictEqual(reqOpts.json.add, undefined); + assert.deepStrictEqual(reqOpts.json.additions, expectedAdditions); + done(); + }; + + zone.createChange({add: recordsToAdd}, assert.ifError); + }); + + it('should parse and rename delete to deletions', done => { + const recordsToDelete = [generateRecord(), generateRecord()]; + + const expectedDeletions = recordsToDelete.map(x => x.toJSON()); + + zone.request = (reqOpts: CoreOptions) => { + assert.strictEqual(reqOpts.json.delete, undefined); + assert.deepStrictEqual(reqOpts.json.deletions, expectedDeletions); + done(); + }; + + zone.createChange({delete: recordsToDelete}, assert.ifError); + }); + + it('should group changes by name and type', done => { + const recordsToAdd = [ + generateRecord({name: 'name.com.', type: 'mx'}), + generateRecord({name: 'name.com.', type: 'mx'}), + ]; + + zone.request = (reqOpts: CoreOptions) => { + const expectedRRDatas = recordsToAdd + .map(x => x.toJSON().rrdatas) + .reduce((acc, rrdata) => acc.concat(rrdata), []); + + assert.deepStrictEqual(reqOpts.json.additions, [ + { + name: 'name.com.', + type: 'mx', + rrdatas: expectedRRDatas, + }, + ]); + + done(); + }; + + zone.createChange({add: recordsToAdd}, assert.ifError); + }); + + it('should make correct API request', done => { + zone.request = (reqOpts: OptionsWithUri) => { + assert.strictEqual(reqOpts.method, 'POST'); + assert.strictEqual(reqOpts.uri, '/changes'); + + done(); + }; + + zone.createChange({add: []}, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + const apiResponse = {a: 'b', c: 'd'}; + + beforeEach(() => { + zone.request = (reqOpts: {}, callback: Function) => { + callback(error, apiResponse); + }; + }); + + it('should execute callback with error & API response', done => { + zone.createChange( + {add: []}, + (err: Error, change: Change, apiResponse_: Response) => { + assert.strictEqual(err, error); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + }); + + describe('success', () => { + const apiResponse = {id: 1, a: 'b', c: 'd'}; + + beforeEach(() => { + zone.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponse); + }; + }); + + it('should execute callback with Change & API response', done => { + const change = {}; + + zone.change = (id: string) => { + assert.strictEqual(id, apiResponse.id); + return change; + }; + + zone.createChange( + {add: []}, + (err: Error, change_: Change, apiResponse_: Response) => { + assert.ifError(err); + assert.strictEqual(change_, change); + assert.strictEqual(change_.metadata, apiResponse); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + }); + }); + + describe('delete', () => { + describe('force', () => { + it('should empty the zone', done => { + zone.empty = () => { + done(); + }; + + zone.delete({force: true}, assert.ifError); + }); + + it('should try to delete again after emptying', done => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (FakeServiceObject.prototype as any).delete = () => { + done(); + }; + + zone.empty = (callback: Function) => { + callback(); + }; + + zone.delete({force: true}, assert.ifError); + }); + }); + }); + + describe('deleteRecords', () => { + it('should delete records by type if a string is given', done => { + const recordsToDelete = 'ns'; + + zone.deleteRecordsByType_ = (types: string[], callback: Function) => { + assert.deepStrictEqual(types, [recordsToDelete]); + callback(); + }; + + zone.deleteRecords(recordsToDelete, done); + }); + + it('should create a change if record objects given', done => { + const recordsToDelete = {a: 'b', c: 'd'}; + + zone.createChange = ( + options: CreateChangeRequest, + callback: Function + ) => { + assert.deepStrictEqual(options.delete, [recordsToDelete]); + callback(); + }; + + zone.deleteRecords(recordsToDelete, done); + }); + }); + + describe('empty', () => { + it('should get all records', done => { + zone.getRecords = () => { + done(); + }; + + zone.empty(assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + + beforeEach(() => { + zone.getRecords = (callback: Function) => { + callback(error); + }; + }); + + it('should execute callback with error', done => { + zone.empty((err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + const records = [ + {type: 'A'}, + {type: 'AAAA'}, + {type: 'CNAME'}, + {type: 'MX'}, + {type: 'NAPTR'}, + {type: 'NS'}, + {type: 'PTR'}, + {type: 'SOA'}, + {type: 'SPF'}, + {type: 'SRV'}, + {type: 'TXT'}, + ]; + + const expectedRecordsToDelete = records.filter(record => { + return record.type !== 'NS' && record.type !== 'SOA'; + }); + + beforeEach(() => { + zone.getRecords = (callback: Function) => { + callback(null, records); + }; + }); + + it('should execute callback if no records matched', done => { + zone.getRecords = (callback: Function) => { + callback(null, []); + }; + + zone.empty(done); + }); + + it('should delete non-NS and non-SOA records', done => { + zone.deleteRecords = ( + recordsToDelete: string[], + callback: Function + ) => { + assert.deepStrictEqual(recordsToDelete, expectedRecordsToDelete); + callback(); + }; + + zone.empty(done); + }); + }); + }); + + describe('export', () => { + const path = './zonefile'; + + const records = [ + { + toString() { + return 'a'; + }, + }, + { + toString() { + return 'a'; + }, + }, + { + toString() { + return 'a'; + }, + }, + { + toString() { + return 'a'; + }, + }, + ]; + + const expectedZonefileContents = 'a\na\na\na'; + + beforeEach(() => { + zone.getRecords = (callback: Function) => { + callback(null, records); + }; + }); + + describe('get records', () => { + describe('error', () => { + const error = new Error('Error.'); + + it('should execute callback with error', done => { + zone.getRecords = (callback: Function) => { + callback(error); + }; + + zone.export(path, (err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + it('should get all records', done => { + zone.getRecords = () => { + done(); + }; + + zone.export(path, assert.ifError); + }); + }); + }); + + describe('write file', () => { + it('should write correct zone file', done => { + writeFileOverride = ( + path_: string, + content: string, + encoding: string + ) => { + assert.strictEqual(path_, path); + assert.strictEqual(content, expectedZonefileContents); + assert.strictEqual(encoding, 'utf-8'); + + done(); + }; + + zone.export(path, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + + beforeEach(() => { + writeFileOverride = ( + path: string, + content: string, + encoding: string, + callback: Function + ) => { + callback(error); + }; + }); + + it('should execute the callback with an error', done => { + zone.export(path, (err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + beforeEach(() => { + writeFileOverride = ( + path: string, + content: string, + encoding: string, + callback: Function + ) => { + callback(); + }; + }); + + it('should execute the callback', done => { + zone.export(path, (err: Error) => { + assert.ifError(err); + done(); + }); + }); + }); + }); + }); + + describe('getChanges', () => { + it('should accept only a callback', done => { + zone.request = (reqOpts: CoreOptions) => { + assert.deepStrictEqual(reqOpts.qs, {}); + done(); + }; + + zone.getChanges(assert.ifError); + }); + + it('should accept a sort', done => { + const query = {sort: 'desc'}; + + zone.request = (reqOpts: CoreOptions) => { + assert.strictEqual(reqOpts.qs.sortOrder, 'descending'); + assert.strictEqual(reqOpts.qs.sort, undefined); + + done(); + }; + + zone.getChanges(query, assert.ifError); + }); + + it('should make the correct API request', done => { + const query = {a: 'b', c: 'd'}; + + zone.request = (reqOpts: OptionsWithUri) => { + assert.strictEqual(reqOpts.uri, '/changes'); + assert.strictEqual(reqOpts.qs, query); + + done(); + }; + + zone.getChanges(query, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + const apiResponse = {a: 'b', c: 'd'}; + + beforeEach(() => { + zone.request = (reqOpts: {}, callback: Function) => { + callback(error, apiResponse); + }; + }); + + it('should execute callback with error & API response', done => { + zone.getChanges( + {}, + ( + err: Error, + changes: Change[], + nextQuery: {}, + apiResponse_: Response + ) => { + assert.strictEqual(err, error); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + }); + + describe('success', () => { + const apiResponse = { + changes: [{id: 1}], + }; + + beforeEach(() => { + zone.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponse); + }; + }); + + it('should build a nextQuery if necessary', done => { + const nextPageToken = 'next-page-token'; + const apiResponseWithNextPageToken = Object.assign({}, apiResponse, { + nextPageToken, + }); + const expectedNextQuery = { + pageToken: nextPageToken, + }; + + zone.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponseWithNextPageToken); + }; + + zone.getChanges({}, (err: Error, changes: Change[], nextQuery: {}) => { + assert.ifError(err); + assert.deepStrictEqual(nextQuery, expectedNextQuery); + done(); + }); + }); + + it('should execute callback with Changes & API response', done => { + const change = {}; + + zone.change = (id: string) => { + assert.strictEqual(id, apiResponse.changes[0].id); + return change; + }; + + zone.getChanges( + {}, + ( + err: Error, + changes: Change[], + nextQuery: {}, + apiResponse_: Response + ) => { + assert.ifError(err); + assert.strictEqual(changes[0], change); + assert.strictEqual(changes[0].metadata, apiResponse.changes[0]); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + }); + }); + + describe('getRecords', () => { + describe('error', () => { + const error = new Error('Error.'); + const apiResponse = {a: 'b', c: 'd'}; + + beforeEach(() => { + zone.request = (reqOpts: {}, callback: Function) => { + callback(error, apiResponse); + }; + }); + + it('should execute callback with error & API response', done => { + zone.getRecords( + {}, + ( + err: Error, + changes: Change[], + nextQuery: {}, + apiResponse_: Response + ) => { + assert.strictEqual(err, error); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + }); + + it('should not require a query', done => { + zone.getRecords((err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + const apiResponse = { + rrsets: [{type: 'NS'}], + }; + + beforeEach(() => { + zone.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponse); + }; + }); + + it('should execute callback with nextQuery if necessary', done => { + const nextPageToken = 'next-page-token'; + const apiResponseWithNextPageToken = Object.assign({}, apiResponse, { + nextPageToken, + }); + const expectedNextQuery = {pageToken: nextPageToken}; + + zone.request = (reqOpts: {}, callback: Function) => { + callback(null, apiResponseWithNextPageToken); + }; + + zone.getRecords({}, (err: Error, records: Record[], nextQuery: {}) => { + assert.ifError(err); + assert.deepStrictEqual(nextQuery, expectedNextQuery); + done(); + }); + }); + + it('should execute callback with Records & API response', done => { + const record = {}; + + zone.record = (type: string, recordObject: RecordObject) => { + assert.strictEqual(type, apiResponse.rrsets[0].type); + assert.strictEqual(recordObject, apiResponse.rrsets[0]); + return record; + }; + + zone.getRecords( + {}, + ( + err: Error, + records: Record[], + nextQuery: {}, + apiResponse_: Response + ) => { + assert.ifError(err); + assert.strictEqual(records[0], record); + assert.strictEqual(apiResponse_, apiResponse); + done(); + } + ); + + it('should not require a query', done => { + zone.getRecords(done); + }); + }); + + describe('filtering', () => { + it('should accept a string type', done => { + const types = ['MX', 'CNAME']; + + zone.getRecords(types, (err: Error, records: Record[]) => { + assert.ifError(err); + + assert.strictEqual(records.length, 0); + + done(); + }); + }); + + it('should accept an array of types', done => { + const type = 'MX'; + + zone.getRecords(type, (err: Error, records: Record[]) => { + assert.ifError(err); + + assert.strictEqual(records.length, 0); + + done(); + }); + }); + + it('should not send filterByTypes_ in API request', done => { + zone.request = (reqOpts: CoreOptions) => { + assert.strictEqual(reqOpts.qs.filterByTypes_, undefined); + done(); + }; + + zone.getRecords('NS', assert.ifError); + }); + }); + }); + }); + + describe('import', () => { + const path = './zonefile'; + + it('should read from the file', done => { + readFileOverride = (path_: string, encoding: string) => { + assert.strictEqual(path, path); + assert.strictEqual(encoding, 'utf-8'); + done(); + }; + + zone.import(path, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + + beforeEach(() => { + readFileOverride = ( + path: string, + encoding: string, + callback: Function + ) => { + callback(error); + }; + }); + + it('should execute the callback', done => { + zone.import(path, (err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + const recordType = 'ns'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let parsedZonefile: any = {}; + + beforeEach(() => { + parsedZonefile = { + [recordType]: {a: 'b', c: 'd'}, + }; + + parseOverride = () => { + return parsedZonefile; + }; + + readFileOverride = ( + path: string, + encoding: string, + callback: Function + ) => { + callback(); + }; + }); + + it('should add records', done => { + zone.addRecords = ( + recordsToCreate: FakeRecord[], + callback: Function + ) => { + assert.strictEqual(recordsToCreate.length, 1); + const recordToCreate = recordsToCreate[0]; + assert(recordToCreate instanceof FakeRecord); + const args = recordToCreate.calledWith_; + assert.strictEqual(args[0], zone); + assert.strictEqual(args[1], recordType); + assert.strictEqual(args[2], parsedZonefile[recordType]); + callback(); + }; + zone.import(path, done); + }); + + it('should use the default ttl', done => { + const defaultTTL = '90'; + parsedZonefile.$ttl = defaultTTL; + parsedZonefile[recordType] = {}; + parsedZonefile.mx = {ttl: '180'}; + zone.addRecords = (recordsToCreate: FakeRecord[]) => { + const record1 = recordsToCreate[0].calledWith_[2]; + assert.strictEqual((record1 as RecordMetadata).ttl, defaultTTL); + const record2 = recordsToCreate[1].calledWith_[2]; + assert.strictEqual((record2 as RecordMetadata).ttl, '180'); + done(); + }; + zone.import(path, done); + }); + }); + }); + + describe('record', () => { + it('should return a Record object', () => { + const type = 'a'; + const metadata = {a: 'b', c: 'd'}; + const record = zone.record(type, metadata); + assert(record instanceof FakeRecord); + const args = record.calledWith_; + assert.strictEqual(args[0], zone); + assert.strictEqual(args[1], type); + assert.strictEqual(args[2], metadata); + }); + }); + + describe('replaceRecords', () => { + it('should get records', done => { + const recordType = 'ns'; + zone.getRecords = (recordType_: string) => { + assert.strictEqual(recordType_, recordType); + done(); + }; + zone.replaceRecords(recordType, [], assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + beforeEach(() => { + zone.getRecords = (recordType: string, callback: Function) => { + callback(error); + }; + }); + + it('should execute callback with error', done => { + zone.replaceRecords('a', [], (err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + const recordsToCreate = [ + {a: 'b', c: 'd'}, + {a: 'b', c: 'd'}, + {a: 'b', c: 'd'}, + ]; + + const recordsToDelete = [ + {a: 'b', c: 'd'}, + {a: 'b', c: 'd'}, + {a: 'b', c: 'd'}, + ]; + + beforeEach(() => { + zone.getRecords = (recordType: string, callback: Function) => { + callback(null, recordsToDelete); + }; + }); + + it('should create a change', done => { + zone.createChange = ( + options: CreateChangeRequest, + callback: Function + ) => { + assert.strictEqual(options.add, recordsToCreate); + assert.strictEqual(options.delete, recordsToDelete); + callback(); + }; + zone.replaceRecords('a', recordsToCreate, done); + }); + }); + }); + + describe('deleteRecordsByType_', () => { + it('should get records', done => { + const recordType = 'ns'; + zone.getRecords = (recordType_: string) => { + assert.strictEqual(recordType_, recordType); + done(); + }; + zone.deleteRecordsByType_(recordType, assert.ifError); + }); + + describe('error', () => { + const error = new Error('Error.'); + beforeEach(() => { + zone.getRecords = (recordType: string, callback: Function) => { + callback(error); + }; + }); + + it('should execute callback with error', done => { + zone.deleteRecordsByType_('a', (err: Error) => { + assert.strictEqual(err, error); + done(); + }); + }); + }); + + describe('success', () => { + const recordsToDelete = [ + {a: 'b', c: 'd'}, + {a: 'b', c: 'd'}, + {a: 'b', c: 'd'}, + ]; + + beforeEach(() => { + zone.getRecords = (recordType: string, callback: Function) => { + callback(null, recordsToDelete); + }; + }); + + it('should execute callback if no records matched', done => { + zone.getRecords = (recordType: string, callback: Function) => { + callback(null, []); + }; + zone.deleteRecordsByType_('a', done); + }); + + it('should delete records', done => { + zone.deleteRecords = (records: Record[], callback: Function) => { + assert.strictEqual(records, recordsToDelete); + callback(); + }; + zone.deleteRecordsByType_('a', done); + }); + }); + }); +}); diff --git a/handwritten/google-cloud-dns/tsconfig.json b/handwritten/google-cloud-dns/tsconfig.json new file mode 100644 index 000000000000..a4a3252cda61 --- /dev/null +++ b/handwritten/google-cloud-dns/tsconfig.json @@ -0,0 +1,19 @@ +{ + // This file is handwritten since this library is also handwritten + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "lib": [ + "es2018", + "dom" + ], + "rootDir": ".", + "outDir": "build" + }, + "include": [ + "src/*.ts", + "test/*.ts", + "system-test/*.ts", + "src/**/*.json", + "protos/protos.json" + ] +} \ No newline at end of file From cb2405b81a65c2126c6ef73c966e9d969938bc45 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Thu, 14 May 2026 19:20:14 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- handwritten/google-cloud-dns/.eslintignore | 7 + handwritten/google-cloud-dns/.eslintrc.json | 3 + handwritten/google-cloud-dns/.gitattributes | 4 + handwritten/google-cloud-dns/.prettierignore | 6 + handwritten/google-cloud-dns/.prettierrc.js | 17 ++ .../google-cloud-dns/CODE_OF_CONDUCT.md | 94 ++++++++ handwritten/google-cloud-dns/CONTRIBUTING.md | 76 +++++++ handwritten/google-cloud-dns/LICENSE | 202 ++++++++++++++++++ handwritten/google-cloud-dns/README.md | 7 +- .../google-cloud-dns/samples/README.md | 4 +- release-please-config.json | 3 +- 11 files changed, 415 insertions(+), 8 deletions(-) create mode 100644 handwritten/google-cloud-dns/.eslintignore create mode 100644 handwritten/google-cloud-dns/.eslintrc.json create mode 100644 handwritten/google-cloud-dns/.gitattributes create mode 100644 handwritten/google-cloud-dns/.prettierignore create mode 100644 handwritten/google-cloud-dns/.prettierrc.js create mode 100644 handwritten/google-cloud-dns/CODE_OF_CONDUCT.md create mode 100644 handwritten/google-cloud-dns/CONTRIBUTING.md create mode 100644 handwritten/google-cloud-dns/LICENSE diff --git a/handwritten/google-cloud-dns/.eslintignore b/handwritten/google-cloud-dns/.eslintignore new file mode 100644 index 000000000000..ea5b04aebe68 --- /dev/null +++ b/handwritten/google-cloud-dns/.eslintignore @@ -0,0 +1,7 @@ +**/node_modules +**/coverage +test/fixtures +build/ +docs/ +protos/ +samples/generated/ diff --git a/handwritten/google-cloud-dns/.eslintrc.json b/handwritten/google-cloud-dns/.eslintrc.json new file mode 100644 index 000000000000..782153495464 --- /dev/null +++ b/handwritten/google-cloud-dns/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/handwritten/google-cloud-dns/.gitattributes b/handwritten/google-cloud-dns/.gitattributes new file mode 100644 index 000000000000..33739cb74e44 --- /dev/null +++ b/handwritten/google-cloud-dns/.gitattributes @@ -0,0 +1,4 @@ +*.ts text eol=lf +*.js text eol=lf +protos/* linguist-generated +**/api-extractor.json linguist-language=JSON-with-Comments diff --git a/handwritten/google-cloud-dns/.prettierignore b/handwritten/google-cloud-dns/.prettierignore new file mode 100644 index 000000000000..9340ad9b86d3 --- /dev/null +++ b/handwritten/google-cloud-dns/.prettierignore @@ -0,0 +1,6 @@ +**/node_modules +**/coverage +test/fixtures +build/ +docs/ +protos/ diff --git a/handwritten/google-cloud-dns/.prettierrc.js b/handwritten/google-cloud-dns/.prettierrc.js new file mode 100644 index 000000000000..d2eddc2ed894 --- /dev/null +++ b/handwritten/google-cloud-dns/.prettierrc.js @@ -0,0 +1,17 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/handwritten/google-cloud-dns/CODE_OF_CONDUCT.md b/handwritten/google-cloud-dns/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..2add2547a812 --- /dev/null +++ b/handwritten/google-cloud-dns/CODE_OF_CONDUCT.md @@ -0,0 +1,94 @@ + +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, education, socio-economic status, nationality, personal appearance, +race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +This Code of Conduct also applies outside the project spaces when the Project +Steward has a reasonable belief that an individual's behavior may have a +negative impact on the project or its community. + +## Conflict Resolution + +We do not believe that all conflict is bad; healthy debate and disagreement +often yield positive results. However, it is never okay to be disrespectful or +to engage in behavior that violates the project’s code of conduct. + +If you see someone violating the code of conduct, you are encouraged to address +the behavior directly with those involved. Many issues can be resolved quickly +and easily, and this gives people more control over the outcome of their +dispute. If you are unable to resolve the matter for any reason, or if the +behavior is threatening or harassing, report it. We are dedicated to providing +an environment where participants feel welcome and safe. + +Reports should be directed to *googleapis-stewards@google.com*, the +Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to +receive and address reported violations of the code of conduct. They will then +work with a committee consisting of representatives from the Open Source +Programs Office and the Google Open Source Strategy team. If for any reason you +are uncomfortable reaching out to the Project Steward, please email +opensource@google.com. + +We will investigate every complaint, but you may not receive a direct response. +We will use our discretion in determining when and how to follow up on reported +incidents, which may range from not taking action to permanent expulsion from +the project and project-sponsored spaces. We will notify the accused of the +report and provide them an opportunity to discuss it before any action is taken. +The identity of the reporter will be omitted from the details of the report +supplied to the accused. In potentially harmful situations, such as ongoing +harassment or threats to anyone's safety, we may take action without notice. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, +available at +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html \ No newline at end of file diff --git a/handwritten/google-cloud-dns/CONTRIBUTING.md b/handwritten/google-cloud-dns/CONTRIBUTING.md new file mode 100644 index 000000000000..cbf3017bb6a6 --- /dev/null +++ b/handwritten/google-cloud-dns/CONTRIBUTING.md @@ -0,0 +1,76 @@ +# How to become a contributor and submit your own code + +**Table of contents** + +* [Contributor License Agreements](#contributor-license-agreements) +* [Contributing a patch](#contributing-a-patch) +* [Running the tests](#running-the-tests) +* [Releasing the library](#releasing-the-library) + +## Contributor License Agreements + +We'd love to accept your sample apps and patches! Before we can take them, we +have to jump a couple of legal hurdles. + +Please fill out either the individual or corporate Contributor License Agreement +(CLA). + + * If you are an individual writing original source code and you're sure you + own the intellectual property, then you'll need to sign an [individual CLA](https://developers.google.com/open-source/cla/individual). + * If you work for a company that wants to allow you to contribute your work, + then you'll need to sign a [corporate CLA](https://developers.google.com/open-source/cla/corporate). + +Follow either of the two links above to access the appropriate CLA and +instructions for how to sign and return it. Once we receive it, we'll be able to +accept your pull requests. + +## Contributing A Patch + +1. Submit an issue describing your proposed change to the repo in question. +1. The repo owner will respond to your issue promptly. +1. If your proposed change is accepted, and you haven't already done so, sign a + Contributor License Agreement (see details above). +1. Fork the desired repo, develop and test your code changes. +1. Ensure that your code adheres to the existing style in the code to which + you are contributing. +1. Ensure that your code has an appropriate set of tests which all pass. +1. Title your pull request following [Conventional Commits](https://www.conventionalcommits.org/) styling. +1. Submit a pull request. + +### Before you begin + +1. [Select or create a Cloud Platform project][projects]. +1. [Enable billing for your project][billing]. +1. [Enable the Cloud DNS API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the + API from your local workstation. + + +## Running the tests + +1. [Prepare your environment for Node.js setup][setup]. + +1. Install dependencies: + + npm install + +1. Run the tests: + + # Run unit tests. + npm test + + # Run sample integration tests. + npm run samples-test + + # Run all system tests. + npm run system-test + +1. Lint (and maybe fix) any changes: + + npm run fix + +[setup]: https://cloud.google.com/nodejs/docs/setup +[projects]: https://console.cloud.google.com/project +[billing]: https://support.google.com/cloud/answer/6293499#enable-billing +[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=dns.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/handwritten/google-cloud-dns/LICENSE b/handwritten/google-cloud-dns/LICENSE new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/handwritten/google-cloud-dns/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/handwritten/google-cloud-dns/README.md b/handwritten/google-cloud-dns/README.md index 580d17d4d490..a3963f65061d 100644 --- a/handwritten/google-cloud-dns/README.md +++ b/handwritten/google-cloud-dns/README.md @@ -5,7 +5,7 @@ # [Cloud DNS: Node.js Client](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-cloud-dns) [![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) -[![npm version](https://img.shields.io/npm/v/@google-cloud/dns.svg)](https://www.npmjs.org/package/@google-cloud/dns) +[![npm version](https://img.shields.io/npm/v/@google-cloud/dns.svg)](https://www.npmjs.com/package/@google-cloud/dns) @@ -81,7 +81,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/google-cloud-node/ | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dns/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-dns/samples/quickstart.js,packages/google-cloud-dns/samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/handwritten/google-cloud-dns/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=handwritten/google-cloud-dns/samples/quickstart.js,packages/google-cloud-dns/samples/README.md) | @@ -152,6 +152,3 @@ See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=dns.googleapis.com [auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local - - -[//]: # "partials.introduction" \ No newline at end of file diff --git a/handwritten/google-cloud-dns/samples/README.md b/handwritten/google-cloud-dns/samples/README.md index 8ae6c20a689d..a98d1ff2cd09 100644 --- a/handwritten/google-cloud-dns/samples/README.md +++ b/handwritten/google-cloud-dns/samples/README.md @@ -33,9 +33,9 @@ Before running the samples, make sure you've followed the steps outlined in Fetches a list of all available zones. -View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dns/samples/quickstart.js). +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/handwritten/google-cloud-dns/samples/quickstart.js). -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-dns/samples/quickstart.js,samples/README.md) +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=handwritten/google-cloud-dns/samples/quickstart.js,samples/README.md) __Usage:__ diff --git a/release-please-config.json b/release-please-config.json index 2dd61ed57831..584d078ebeac 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -233,7 +233,8 @@ "packages/google-cloud-datacatalog-lineage-configmanagement": {}, "packages/google-cloud-appoptimize": {}, "packages/google-devicesandservices-health": {}, - "packages/google-cloud-databasecenter": {} + "packages/google-cloud-databasecenter": {}, + "handwritten/google-cloud-dns": {} }, "plugins": [ {