From b08c8daa9fe8a86587209ccedf75602e45dd49e2 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 16 Jul 2018 11:10:19 -0700 Subject: [PATCH 001/279] =?UTF-8?q?feat:=20initial=20commit=20=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/paginator/.clang-format | 3 + core/paginator/.gitignore | 3 + core/paginator/CODE_OF_CONDUCT.md | 43 + core/paginator/LICENSE | 202 ++ core/paginator/README.md | 40 + core/paginator/package-lock.json | 4470 +++++++++++++++++++++++++++++ core/paginator/package.json | 59 + core/paginator/src/index.ts | 341 +++ core/paginator/test/index.ts | 700 +++++ core/paginator/test/mocha.opts | 3 + core/paginator/tsconfig.json | 16 + core/paginator/tslint.json | 3 + 12 files changed, 5883 insertions(+) create mode 100644 core/paginator/.clang-format create mode 100644 core/paginator/.gitignore create mode 100644 core/paginator/CODE_OF_CONDUCT.md create mode 100644 core/paginator/LICENSE create mode 100644 core/paginator/README.md create mode 100644 core/paginator/package-lock.json create mode 100644 core/paginator/package.json create mode 100644 core/paginator/src/index.ts create mode 100644 core/paginator/test/index.ts create mode 100644 core/paginator/test/mocha.opts create mode 100644 core/paginator/tsconfig.json create mode 100644 core/paginator/tslint.json diff --git a/core/paginator/.clang-format b/core/paginator/.clang-format new file mode 100644 index 00000000000..7d6cf97e108 --- /dev/null +++ b/core/paginator/.clang-format @@ -0,0 +1,3 @@ +Language: JavaScript +BasedOnStyle: Google +ColumnLimit: 80 \ No newline at end of file diff --git a/core/paginator/.gitignore b/core/paginator/.gitignore new file mode 100644 index 00000000000..a80073ed0b8 --- /dev/null +++ b/core/paginator/.gitignore @@ -0,0 +1,3 @@ +node_modules +.nyc_output +build diff --git a/core/paginator/CODE_OF_CONDUCT.md b/core/paginator/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..46b2a08ea6d --- /dev/null +++ b/core/paginator/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, +and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, +posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project +a harassment-free experience for everyone, +regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, +such as physical or electronic +addresses, without explicit permission +* Other unethical or unprofessional conduct. + +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. +By adopting this Code of Conduct, +project maintainers commit themselves to fairly and consistently +applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct +may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by opening an issue +or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, +available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) diff --git a/core/paginator/LICENSE b/core/paginator/LICENSE new file mode 100644 index 00000000000..7a4a3ea2424 --- /dev/null +++ b/core/paginator/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. \ No newline at end of file diff --git a/core/paginator/README.md b/core/paginator/README.md new file mode 100644 index 00000000000..47f77371ec2 --- /dev/null +++ b/core/paginator/README.md @@ -0,0 +1,40 @@ +Google Cloud Platform logo + +# @google-cloud/common-paginator +> A result paging utility used by Google node.js modules + +Google Cloud Common node.js module contains stuff used by other Cloud API modules. + +* [github.com/googlecloudplatform/google-cloud-node](https://github.com/googlecloudplatform/google-cloud-node) + +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 + +### Installing the package + +It's unlikely you will need to install this package directly, as it will be +installed as a dependency when you install other `@google-cloud` packages. + +## Versioning + +This library follows [Semantic Versioning](http://semver.org/). + +This library is considered to be in **alpha**. This means it is still a +work-in-progress and under active development. Any release is subject to +backwards-incompatible changes at any time. + +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/googlecloudplatform/google-cloud-node/blob/master/.github/CONTRIBUTING.md). + +## License + +Apache Version 2.0 + +See [LICENSE](https://github.com/googlecloudplatform/google-cloud-node/blob/master/LICENSE) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json new file mode 100644 index 00000000000..c68f145cf72 --- /dev/null +++ b/core/paginator/package-lock.json @@ -0,0 +1,4470 @@ +{ + "name": "@google-cloud/common-paginator", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", + "dev": true + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + } + }, + "@sinonjs/formatio": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", + "dev": true, + "requires": { + "samsam": "1.3.0" + } + }, + "@sinonjs/samsam": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.0.0.tgz", + "integrity": "sha512-D7VxhADdZbDJ0HjUTMnSQ5xIGb4H2yWpg8k9Sf1T08zfFiQYlaxM8LZydpR4FQ2E6LZJX8IlabNZ5io4vdChwg==", + "dev": true + }, + "@types/arrify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/arrify/-/arrify-1.0.4.tgz", + "integrity": "sha512-63nK8r8jvEVJ1r0ENaY9neB1wDzPHFYAzKiIxPawuzcijEX8XeOywwPL8fkSCwiTIYop9MSh+TKy9L2ZzTXV6g==", + "dev": true + }, + "@types/extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.0.tgz", + "integrity": "sha512-Eo8NQCbgjlMPQarlFAE3vpyCvFda4dg1Ob5ZJb6BJI9x4NAZVWowyMNB8GJJDgDI4lr2oqiQvXlPB0Fn1NoXnQ==", + "dev": true + }, + "@types/is": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", + "integrity": "sha512-013vMJ4cpYRm1GavhN8HqSKRWD/txm2BLcy/Qw9hAoSNJwp60ezLH+/QlX3JouGTPJcmxvbDUWGANxjS52jRaw==", + "dev": true + }, + "@types/mocha": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.4.tgz", + "integrity": "sha512-XMHApnKWI0jvXU5gLcSTsRjJBpSzP0BG+2oGv98JFyS4a5R0tRy0oshHBRndb3BuHb9AwDKaUL8Ja7GfUvsG4g==", + "dev": true + }, + "@types/node": { + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", + "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", + "dev": true + }, + "@types/proxyquire": { + "version": "1.3.28", + "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", + "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", + "dev": true + }, + "@types/sinon": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-5.0.1.tgz", + "integrity": "sha512-yxzBCIjE3lp9lYjfBbIK/LRCoXgCLLbIIBIje7eNCcUIIR2CZZtyX5uto2hVoMSMqLrsRrT6mwwUEd0yFgOwpA==", + "dev": true + }, + "@types/through2": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.33.tgz", + "integrity": "sha1-H/LoihAN+1sUDnu5h5HxGUQA0TE=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/uuid": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.3.tgz", + "integrity": "sha512-5fRLCYhLtDb3hMWqQyH10qtF+Ud2JnNCXTCZ+9ktNdCcgslcuXkDTkFcJNk++MT29yDntDnlF1+jD+uVGumsbw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", + "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", + "dev": true + }, + "ci-info": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", + "dev": true + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "codecov": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", + "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", + "dev": true, + "requires": { + "argv": "^0.0.2", + "ignore-walk": "^3.0.1", + "request": "^2.87.0", + "urlgrey": "^0.4.4" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", + "dev": true, + "requires": { + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", + "dev": true, + "requires": { + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "gts": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.7.1.tgz", + "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "clang-format": "1.2.3", + "inquirer": "^6.0.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "hard-rejection": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-1.0.0.tgz", + "integrity": "sha1-jztHbI4vIhvtc8ZGQP4hfXF9rDY=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", + "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", + "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-ci": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "dev": true, + "requires": { + "ci-info": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.1.tgz", + "integrity": "sha512-h9Vg3nfbxrF0PK0kZiNiMAyL8zXaLiBP/BXniaKSwVvAi1TaumYV2b0wPdmy1CRX3irYbYD1p4Wjbv4uyECiiQ==", + "dev": true, + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "just-extend": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", + "dev": true + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lolex": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", + "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "^3.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "~1.33.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + } + } + }, + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nise": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", + "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", + "dev": true, + "requires": { + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "dev": true, + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", + "yargs": "11.1.0", + "yargs-parser": "^8.0.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "async": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "atob": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true, + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, + "dev": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "proxyquire": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", + "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", + "dev": true, + "requires": { + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" + }, + "dependencies": { + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "samsam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.1.3.tgz", + "integrity": "sha512-yeTza8xIZZdiXntCHJAzKll/sSYE+DuJOS8hiSapzaLqdW8eCNVVC9je9SZYYTkPm2bLts9x6UYxwuMAVVrM6Q==", + "dev": true, + "requires": { + "@sinonjs/formatio": "^2.0.0", + "@sinonjs/samsam": "^2.0.0", + "diff": "^3.5.0", + "lodash.get": "^4.4.2", + "lolex": "^2.4.2", + "nise": "^1.3.3", + "supports-color": "^5.4.0", + "type-detect": "^4.0.8" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "split-array-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", + "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", + "requires": { + "is-stream-ended": "^0.1.4" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stream-events": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", + "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", + "requires": { + "stubs": "^3.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "tslint": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", + "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" + } + }, + "tsutils": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.2.tgz", + "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } +} diff --git a/core/paginator/package.json b/core/paginator/package.json new file mode 100644 index 00000000000..53977d88a5b --- /dev/null +++ b/core/paginator/package.json @@ -0,0 +1,59 @@ +{ + "name": "@google-cloud/common-paginator", + "version": "0.1.0", + "description": "A result paging utility used by Google node.js modules", + "main": "build/src/index.js", + "types": "build/src/index.d.ts", + "scripts": { + "test": "npm run test-only", + "test-only": "nyc mocha build/test", + "codecov": "nyc report --reporter=json && codecov -f coverage/*.json", + "check": "gts check", + "clean": "gts clean", + "compile": "tsc -p .", + "fix": "gts fix", + "prepare": "npm run compile", + "pretest": "npm run compile", + "posttest": "npm run check" + }, + "keywords": [], + "files": [ + "build/src" + ], + "author": "Google Inc.", + "license": "Apache-2.0", + "devDependencies": { + "@types/arrify": "^1.0.4", + "@types/extend": "^3.0.0", + "@types/is": "0.0.20", + "@types/mocha": "^5.2.4", + "@types/node": "^10.5.2", + "@types/proxyquire": "^1.3.28", + "@types/sinon": "^5.0.1", + "@types/through2": "^2.0.33", + "@types/uuid": "^3.4.3", + "codecov": "^3.0.4", + "gts": "^0.7.1", + "hard-rejection": "^1.0.0", + "mocha": "^5.2.0", + "nyc": "^12.0.2", + "proxyquire": "^2.0.1", + "sinon": "^6.1.3", + "source-map-support": "^0.5.6", + "through2": "^2.0.3", + "typescript": "^2.9.0", + "uuid": "^3.3.2" + }, + "nyc": { + "exclude": [ + "build/test" + ] + }, + "dependencies": { + "arrify": "^1.0.1", + "extend": "^3.0.1", + "is": "^3.2.1", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4" + } +} diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts new file mode 100644 index 00000000000..384bc71b07d --- /dev/null +++ b/core/paginator/src/index.ts @@ -0,0 +1,341 @@ +/*! + * Copyright 2015 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. + */ + +/*! + * @module common/paginator + */ + +import * as arrify from 'arrify'; +import * as extend from 'extend'; +import * as is from 'is'; +import {split} from 'split-array-stream'; +import {Transform, TransformOptions} from 'stream'; +import * as streamEvents from 'stream-events'; + +interface CreateLimiterOptions { + /** + * The maximum number of API calls to make. + */ + maxApiCalls?: number; + + /** + * Options to pass to the Stream constructor. + */ + streamOptions?: TransformOptions; +} + +/** + * Limit requests according to a `maxApiCalls` limit. + * + * @param {function} makeRequestFn - The function that will be called. + * @param {object=} options - Configuration object. + * @param {number} options.maxApiCalls - The maximum number of API calls to make. + * @param {object} options.streamOptions - Options to pass to the Stream constructor. + */ +export function createLimiter( + makeRequestFn: Function, options?: CreateLimiterOptions) { + options = options || {}; + + const streamOptions = options.streamOptions || {}; + streamOptions.objectMode = true; + const stream = streamEvents(new Transform(streamOptions)) as Transform; + + let requestsMade = 0; + let requestsToMake = -1; + + if (is.number(options.maxApiCalls)) { + requestsToMake = options.maxApiCalls!; + } + + return { + // tslint:disable-next-line:no-any + makeRequest(...args: any[]) { + requestsMade++; + if (requestsToMake >= 0 && requestsMade > requestsToMake) { + stream.push(null); + return; + } + makeRequestFn.apply(null, args); + return stream; + }, + stream, + }; +} + +export interface ParsedArguments extends TransformOptions { + /** + * Query object. This is most commonly an object, but to make the API more + * simple, it can also be a string in some places. + */ + query?: ParsedArguments; + + /** + * Callback function. + */ + callback?: Function; + + /** + * Auto-pagination enabled. + */ + autoPaginate?: boolean; + + /** + * Maximum API calls to make. + */ + maxApiCalls?: number; + + /** + * Maximum results to return. + */ + maxResults?: number; + + pageSize?: number; + + streamOptions?: ParsedArguments; +} + +/*! Developer Documentation + * + * paginator is used to auto-paginate `nextQuery` methods as well as + * streamifying them. + * + * Before: + * + * search.query('done=true', function(err, results, nextQuery) { + * search.query(nextQuery, function(err, results, nextQuery) {}); + * }); + * + * After: + * + * search.query('done=true', function(err, results) {}); + * + * Methods to extend should be written to accept callbacks and return a + * `nextQuery`. + */ + +export class Paginator { + /** + * Cache the original method, then overwrite it on the Class's prototype. + * + * @param {function} Class - The parent class of the methods to extend. + * @param {string|string[]} methodNames - Name(s) of the methods to extend. + */ + // tslint:disable-next-line:variable-name + extend(Class: Function, methodNames: string|string[]) { + methodNames = arrify(methodNames) as string[]; + methodNames.forEach(methodName => { + const originalMethod = Class.prototype[methodName]; + + // map the original method to a private member + Class.prototype[methodName + '_'] = originalMethod; + + // overwrite the original to auto-paginate + // tslint:disable-next-line:no-any + Class.prototype[methodName] = function(...args: any[]) { + const parsedArguments = paginator.parseArguments_(args); + return paginator.run_(parsedArguments, originalMethod.bind(this)); + }; + }); + } + + /** + * Wraps paginated API calls in a readable object stream. + * + * This method simply calls the nextQuery recursively, emitting results to a + * stream. The stream ends when `nextQuery` is null. + * + * `maxResults` will act as a cap for how many results are fetched and emitted + * to the stream. + * + * @param {string} methodName - Name of the method to streamify. + * @return {function} - Wrapped function. + */ + streamify(methodName: string) { + // tslint:disable-next-line:no-any + return function(this: {[index: string]: Function}, ...args: any[]) { + const parsedArguments = paginator.parseArguments_(args); + const originalMethod = this[methodName + '_'] || this[methodName]; + return paginator.runAsStream_(parsedArguments, originalMethod.bind(this)); + }; + } + + /** + * Parse a pseudo-array `arguments` for a query and callback. + * + * @param {array} args - The original `arguments` pseduo-array that the original + * method received. + */ + // tslint:disable-next-line:no-any + parseArguments_(args: any[]) { + let query: string|ParsedArguments|undefined; + let autoPaginate = true; + let maxApiCalls = -1; + let maxResults = -1; + let callback: Function|undefined; + + const firstArgument = args[0]; + const lastArgument = args[args.length - 1]; + + if (is.fn(firstArgument)) { + callback = firstArgument; + } else { + query = firstArgument; + } + + if (is.fn(lastArgument)) { + callback = lastArgument; + } + + if (typeof query === 'object') { + query = extend<{}, ParsedArguments>(true, {}, query) as ParsedArguments; + + // Check if the user only asked for a certain amount of results. + if (query.maxResults && is.number(query.maxResults)) { + // `maxResults` is used API-wide. + maxResults = query.maxResults; + } else if (is.number(query.pageSize)) { + // `pageSize` is Pub/Sub's `maxResults`. + maxResults = query.pageSize!; + } + + if (query.maxApiCalls && is.number(query.maxApiCalls)) { + maxApiCalls = query.maxApiCalls; + delete query.maxApiCalls; + } + + // maxResults is the user specified a limit. + if (callback && (maxResults !== -1 || query.autoPaginate === false)) { + autoPaginate = false; + } + } + + const parsedArguments = { + query: query || {}, + autoPaginate, + maxApiCalls, + maxResults, + callback, + } as ParsedArguments; + + parsedArguments.streamOptions = extend<{}, ParsedArguments>( + true, {}, parsedArguments.query as ParsedArguments); + delete parsedArguments.streamOptions.autoPaginate; + delete parsedArguments.streamOptions.maxResults; + delete parsedArguments.streamOptions.pageSize; + + return parsedArguments; + } + + /** + * This simply checks to see if `autoPaginate` is set or not, if it's true + * then we buffer all results, otherwise simply call the original method. + * + * @param {array} parsedArguments - Parsed arguments from the original method + * call. + * @param {object=|string=} parsedArguments.query - Query object. This is most + * commonly an object, but to make the API more simple, it can also be a + * string in some places. + * @param {function=} parsedArguments.callback - Callback function. + * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled. + * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make. + * @param {number} parsedArguments.maxResults - Maximum results to return. + * @param {function} originalMethod - The cached method that accepts a callback + * and returns `nextQuery` to receive more results. + */ + run_(parsedArguments: ParsedArguments, originalMethod: Function) { + const query = parsedArguments.query; + const callback = parsedArguments.callback!; + if (parsedArguments.autoPaginate) { + const results = new Array<{}>(); + paginator.runAsStream_(parsedArguments, originalMethod) + .on('error', callback) + .on('data', (data: {}) => results.push(data)) + .on('end', () => callback(null, results)); + } else { + originalMethod(query, callback); + } + } + + /** + * This method simply calls the nextQuery recursively, emitting results to a + * stream. The stream ends when `nextQuery` is null. + * + * `maxResults` will act as a cap for how many results are fetched and emitted + * to the stream. + * + * @param {object=|string=} parsedArguments.query - Query object. This is most + * commonly an object, but to make the API more simple, it can also be a + * string in some places. + * @param {function=} parsedArguments.callback - Callback function. + * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled. + * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make. + * @param {number} parsedArguments.maxResults - Maximum results to return. + * @param {function} originalMethod - The cached method that accepts a callback + * and returns `nextQuery` to receive more results. + * @return {stream} - Readable object stream. + */ + runAsStream_(parsedArguments: ParsedArguments, originalMethod: Function) { + const query = parsedArguments.query; + let resultsToSend = parsedArguments.maxResults!; + + const limiter = exports.createLimiter(makeRequest, { + maxApiCalls: parsedArguments.maxApiCalls, + streamOptions: parsedArguments.streamOptions, + }); + + const stream = limiter.stream; + + stream.once('reading', () => { + makeRequest(query); + }); + + function makeRequest(query?: ParsedArguments|string) { + originalMethod(query, onResultSet); + } + + // tslint:disable-next-line:no-any + function onResultSet(err: Error, results: any[], nextQuery: any) { + if (err) { + stream.destroy(err); + return; + } + + if (resultsToSend >= 0 && results.length > resultsToSend) { + results = results.splice(0, resultsToSend); + } + + resultsToSend -= results.length; + + split(results, stream).then(streamEnded => { + if (streamEnded) { + return; + } + + if (nextQuery && resultsToSend !== 0) { + limiter.makeRequest(nextQuery); + return; + } + + stream.push(null); + }); + } + + return limiter.stream; + } +} + +const paginator = new Paginator(); +export {paginator}; diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts new file mode 100644 index 00000000000..232c5255ff4 --- /dev/null +++ b/core/paginator/test/index.ts @@ -0,0 +1,700 @@ +/** + * Copyright 2015 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 * as assert from 'assert'; +import * as proxyquire from 'proxyquire'; +import * as sinon from 'sinon'; +import * as stream from 'stream'; +import * as streamEvents from 'stream-events'; +import * as through from 'through2'; +import * as uuid from 'uuid'; + +import {paginator, Paginator, ParsedArguments} from '../src'; + +const util = { + noop: () => {} +}; + +const p = proxyquire('../src', { + 'stream-events': fakeStreamEvents, +}); + +// tslint:disable-next-line:no-any +let streamEventsOverride: any; +function fakeStreamEvents() { + return (streamEventsOverride || streamEvents).apply(null, arguments); +} + +let sandbox: sinon.SinonSandbox; +beforeEach(() => { + sandbox = sinon.createSandbox(); +}); +afterEach(() => { + sandbox.restore(); + streamEventsOverride = null; +}); + +describe('paginator', () => { + const UUID = uuid.v1(); + function FakeClass() {} + + beforeEach(() => { + FakeClass.prototype.methodToExtend = () => { + return UUID; + }; + delete FakeClass.prototype.methodToExtend_; + }); + + // tslint:disable-next-line:no-any + function stub(methodName: keyof Paginator, stub: (...args: any[]) => void) { + return sandbox.stub(paginator, methodName).callsFake(stub); + } + + describe('extend', () => { + it('should overwrite a method on a class', () => { + const originalMethod = FakeClass.prototype.methodToExtend; + paginator.extend(FakeClass, 'methodToExtend'); + const overwrittenMethod = FakeClass.prototype.methodToExtend; + assert.notEqual(originalMethod, overwrittenMethod); + }); + + it('should store the original method as a private member', () => { + const originalMethod = FakeClass.prototype.methodToExtend; + paginator.extend(FakeClass, 'methodToExtend'); + assert.strictEqual(originalMethod, FakeClass.prototype.methodToExtend_); + }); + + it('should accept an array or string method names', () => { + const originalMethod = FakeClass.prototype.methodToExtend; + FakeClass.prototype.anotherMethodToExtend = () => {}; + const anotherMethod = FakeClass.prototype.anotherMethodToExtend; + const methodsToExtend = ['methodToExtend', 'anotherMethodToExtend']; + paginator.extend(FakeClass, methodsToExtend); + assert.notEqual(originalMethod, FakeClass.prototype.methodToExtend); + assert.notEqual(anotherMethod, FakeClass.prototype.anotherMethodToExtend); + }); + + it('should parse the arguments', (done) => { + stub('parseArguments_', args => { + assert.deepEqual([].slice.call(args), [1, 2, 3]); + done(); + }); + stub('run_', util.noop); + paginator.extend(FakeClass, 'methodToExtend'); + FakeClass.prototype.methodToExtend(1, 2, 3); + }); + + it('should call router when the original method is called', (done) => { + const expectedReturnValue = FakeClass.prototype.methodToExtend(); + const parsedArguments = {a: 'b', c: 'd'}; + + stub('parseArguments_', () => { + return parsedArguments; + }); + + stub('run_', (args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + assert.equal(originalMethod(), expectedReturnValue); + done(); + }); + + paginator.extend(FakeClass, 'methodToExtend'); + FakeClass.prototype.methodToExtend(); + }); + + it('should maintain `this` context', (done) => { + FakeClass.prototype.methodToExtend = function() { + return this.uuid; + }; + + // tslint:disable-next-line:no-any + const cls = new (FakeClass as any)(); + cls.uuid = uuid.v1(); + + stub('run_', (args, originalMethod) => { + assert.equal(originalMethod(), cls.uuid); + done(); + }); + + paginator.extend(FakeClass, 'methodToExtend'); + cls.methodToExtend(); + }); + + it('should return what the router returns', () => { + const uniqueValue = 234; + stub('run_', () => { + return uniqueValue; + }); + + paginator.extend(FakeClass, 'methodToExtend'); + assert.equal(FakeClass.prototype.methodToExtend(), uniqueValue); + }); + }); + + describe('streamify', () => { + beforeEach(() => { + FakeClass.prototype.streamMethod = paginator.streamify('methodToExtend'); + }); + + it('should return a function', () => { + const fakeStreamMethod = FakeClass.prototype.streamMethod; + assert.strictEqual(typeof fakeStreamMethod, 'function'); + }); + + it('should parse the arguments', (done) => { + const fakeArgs = [1, 2, 3]; + + stub('parseArguments_', args => { + assert.deepEqual(fakeArgs, [].slice.call(args)); + done(); + }); + + stub('runAsStream_', util.noop); + FakeClass.prototype.streamMethod.apply(FakeClass.prototype, fakeArgs); + }); + + it('should run the method as a stream', (done) => { + const parsedArguments = {a: 'b', c: 'd'}; + + stub('parseArguments_', () => { + return parsedArguments; + }); + + stub('runAsStream_', (args, callback) => { + assert.strictEqual(args, parsedArguments); + assert.strictEqual(callback(), UUID); + done(); + }); + + FakeClass.prototype.streamMethod(); + }); + + it('should apply the proper context', (done) => { + const parsedArguments = {a: 'b', c: 'd'}; + + FakeClass.prototype.methodToExtend = function() { + return this; + }; + + stub('parseArguments_', () => { + return parsedArguments; + }); + + stub('runAsStream_', (args, callback) => { + assert.strictEqual(callback(), FakeClass.prototype); + done(); + }); + + FakeClass.prototype.streamMethod(); + }); + + it('should check for a private member', (done) => { + const parsedArguments = {a: 'b', c: 'd'}; + const fakeValue = 123; + + FakeClass.prototype.methodToExtend_ = () => { + return fakeValue; + }; + + stub('parseArguments_', () => { + return parsedArguments; + }); + + stub('runAsStream_', (args, callback) => { + assert.strictEqual(callback(), fakeValue); + done(); + }); + + FakeClass.prototype.streamMethod(); + }); + + it('should return a stream', () => { + const fakeStream = through.obj(); + + stub('parseArguments_', util.noop); + + stub('runAsStream_', () => { + return fakeStream; + }); + + const stream = FakeClass.prototype.streamMethod(); + + assert.strictEqual(fakeStream, stream); + }); + }); + + describe('parseArguments_', () => { + it('should set defaults', () => { + const parsedArguments = paginator.parseArguments_([]); + + assert.strictEqual(Object.keys(parsedArguments.query!).length, 0); + assert.strictEqual(parsedArguments.autoPaginate, true); + assert.strictEqual(parsedArguments.maxApiCalls, -1); + assert.strictEqual(parsedArguments.maxResults, -1); + assert.strictEqual(parsedArguments.callback, undefined); + }); + + it('should detect a callback if first argument is a function', () => { + const args = [util.noop]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.callback, args[0]); + }); + + it('should use any other first argument as query', () => { + const args = ['string']; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.query, args[0]); + }); + + it('should not make an undefined value the query', () => { + const args = [undefined, util.noop]; + const parsedArguments = paginator.parseArguments_(args); + + assert.deepEqual(parsedArguments.query, {}); + }); + + it('should detect a callback if last argument is a function', () => { + const args = ['string', util.noop]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.callback, args[1]); + }); + + it('should not assign a callback if a fn is not provided', () => { + const args = ['string']; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.callback, undefined); + }); + + it('should set maxApiCalls from query.maxApiCalls', () => { + const args = [{maxApiCalls: 10}]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.maxApiCalls, args[0].maxApiCalls); + assert.strictEqual(parsedArguments.query!.maxApiCalls, undefined); + }); + + it('should set maxResults from query.maxResults', () => { + const args = [{maxResults: 10}]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.maxResults, args[0].maxResults); + }); + + it('should set maxResults from query.pageSize', () => { + const args = [{pageSize: 10}]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.maxResults, args[0].pageSize); + }); + + it('should set autoPaginate: false if there is a maxResults', () => { + const args = [{maxResults: 10}, util.noop]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.autoPaginate, false); + }); + + it('should set autoPaginate: false query.autoPaginate', () => { + const args = [{autoPaginate: false}, util.noop]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.autoPaginate, false); + }); + + it('should parse streamOptions', () => { + const args = [{maxResults: 10, highWaterMark: 8}]; + const parsedArguments = paginator.parseArguments_(args); + + assert.strictEqual(parsedArguments.maxResults, 10); + assert.deepStrictEqual(parsedArguments.streamOptions, { + highWaterMark: 8, + }); + }); + }); + + describe('run_', () => { + describe('autoPaginate', () => { + it('should call runAsStream_ when autoPaginate:true', (done) => { + const parsedArguments = { + autoPaginate: true, + callback: util.noop, + }; + + stub('runAsStream_', (args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + originalMethod(); + return through(); + }); + + paginator.run_(parsedArguments, done); + }); + + it('should execute callback on error', (done) => { + const error = new Error('Error.'); + + const parsedArguments = { + autoPaginate: true, + callback(err: Error) { + assert.strictEqual(err, error); + done(); + }, + }; + + stub('runAsStream_', () => { + const stream = through(); + setImmediate(() => { + stream.emit('error', error); + }); + return stream; + }); + + paginator.run_(parsedArguments, util.noop); + }); + + it('should return all results on end', (done) => { + const results = [{a: 1}, {b: 2}, {c: 3}]; + + const parsedArguments = { + autoPaginate: true, + callback(err: Error, results_: {}) { + assert.deepStrictEqual(results_, results); + done(); + }, + }; + + stub('runAsStream_', () => { + const stream = through.obj(); + setImmediate(() => { + results.forEach(result => stream.push(result)); + stream.push(null); + }); + return stream; + }); + + paginator.run_(parsedArguments, util.noop); + }); + }); + + describe('manual pagination', () => { + it('should recoginze autoPaginate: false', (done) => { + const parsedArguments = { + autoPaginate: false, + query: { + a: 'b', + c: 'd', + }, + callback: done, + } as ParsedArguments; + stub('runAsStream_', util.noop); + paginator.run_(parsedArguments, (query: {}, callback: () => void) => { + assert.deepEqual(query, parsedArguments.query); + callback(); + }); + }); + }); + }); + + describe('runAsStream_', () => { + const PARSED_ARGUMENTS = { + query: {maxApiCalls: 12345, pageSize: 23456}, + }; + + let limiterStub: sinon.SinonStub; + beforeEach(() => { + limiterStub = sandbox.stub(p, 'createLimiter').callsFake(makeRequest => { + const transformStream = new stream.Transform({objectMode: true}); + transformStream.destroy = through.obj().destroy.bind(transformStream); + + setImmediate(() => { + transformStream.emit('reading'); + }); + + return { + makeRequest, + stream: transformStream, + }; + }); + }); + + it('should call original method when stream opens', (done) => { + function originalMethod(query: {}) { + assert.strictEqual(query, PARSED_ARGUMENTS.query); + done(); + } + p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + }); + + it('should emit an error if one occurs', (done) => { + const error = new Error('Error.'); + + function originalMethod(query: {}, callback: (err: Error) => void) { + setImmediate(() => { + callback(error); + }); + } + + const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('error', (err: Error) => { + assert.deepEqual(err, error); + done(); + }); + }); + + it('should push results onto the stream', (done) => { + const results = ['a', 'b', 'c']; + const resultsReceived: Array<{}> = []; + + function originalMethod( + query: {}, callback: (err: Error|null, results: {}) => void) { + setImmediate(() => { + callback(null, results); + }); + } + + const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('data', (result: {}) => { + resultsReceived.push(result); + }); + rs.on('end', () => { + assert.deepEqual(resultsReceived, ['a', 'b', 'c']); + done(); + }); + }); + + describe('maxApiCalls', () => { + const maxApiCalls = 10; + + it('should create a limiter', (done) => { + limiterStub.restore(); + sandbox.stub(p, 'createLimiter').callsFake((makeRequest, options) => { + assert.strictEqual(options.maxApiCalls, maxApiCalls); + setImmediate(done); + return { + stream: through.obj(), + }; + }); + p.paginator.runAsStream_({maxApiCalls}, util.noop); + }); + }); + + describe('streamOptions', () => { + const streamOptions = { + highWaterMark: 8, + }; + + it('should pass through stream options', (done) => { + limiterStub.restore(); + sandbox.stub(p, 'createLimiter').callsFake((makeRequest, options) => { + assert.strictEqual(options.streamOptions, streamOptions); + + setImmediate(done); + + return { + stream: through.obj(), + }; + }); + + p.paginator.runAsStream_( + { + maxApiCalls: 100, + streamOptions, + } as ParsedArguments, + util.noop); + }); + }); + + describe('limits', () => { + const limit = 1; + + function originalMethod( + query: {}, callback: (err: Error|null, results: number[]) => void) { + setImmediate(() => { + callback(null, [1, 2, 3]); + }); + } + + it('should respect maxResults', (done) => { + let numResultsReceived = 0; + + p.paginator.runAsStream_({maxResults: limit}, originalMethod) + .on('data', + () => { + numResultsReceived++; + }) + .on('end', () => { + assert.strictEqual(numResultsReceived, limit); + done(); + }); + }); + }); + + it('should get more results if nextQuery exists', (done) => { + const nextQuery = {a: 'b', c: 'd'}; + let nextQuerySent = false; + + function originalMethod( + query: {}, + callback: (err: Error|null, res: Array<{}>, nextQuery: {}) => void) { + if (nextQuerySent) { + assert.deepEqual(query, nextQuery); + done(); + return; + } + + setImmediate(() => { + nextQuerySent = true; + callback(null, [], nextQuery); + }); + } + + p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + }); + + it('should not push more results if stream ends early', (done) => { + const results = ['a', 'b', 'c']; + + function originalMethod( + query: {}, callback: (err: Error|null, results: string[]) => void) { + setImmediate(() => { + callback(null, results); + }); + } + + const rs = paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('data', (result: string) => { + if (result === 'b') { + // Pre-maturely end the stream. + rs.end(); + } + + assert.notEqual(result, 'c'); + }); + rs.on('end', () => { + done(); + }); + }); + + it('should not get more results if stream ends early', (done) => { + const results = ['a', 'b', 'c']; + + let originalMethodCalledCount = 0; + + function originalMethod( + query: {}, + callback: (err: Error|null, results: string[], body: {}) => void) { + originalMethodCalledCount++; + + setImmediate(() => { + callback(null, results, {}); + }); + } + + const rs = paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('data', (result: string) => { + if (result === 'b') { + // Pre-maturely end the stream. + rs.end(); + } + }); + rs.on('end', () => { + assert.equal(originalMethodCalledCount, 1); + done(); + }); + }); + }); +}); + +describe('createLimiter', () => { + function REQUEST_FN() {} + const OPTIONS = { + streamOptions: { + highWaterMark: 8, + }, + }; + + it('should create an object stream with stream-events', (done) => { + streamEventsOverride = (stream: stream.Readable) => { + // tslint:disable-next-line:no-any + assert.strictEqual((stream as any)._readableState.objectMode, true); + setImmediate(done); + return stream; + }; + + p.createLimiter(REQUEST_FN, OPTIONS); + }); + + it('should return a makeRequest function', () => { + const limiter = p.createLimiter(REQUEST_FN, OPTIONS); + assert.equal(typeof limiter.makeRequest, 'function'); + }); + + it('should return the created stream', () => { + const streamEventsStream = {}; + + streamEventsOverride = () => { + return streamEventsStream; + }; + + const limiter = p.createLimiter(REQUEST_FN, OPTIONS); + assert.strictEqual(limiter.stream, streamEventsStream); + }); + + it('should pass stream options to through', () => { + const limiter = p.createLimiter(REQUEST_FN, OPTIONS); + + assert.strictEqual( + // tslint:disable-next-line:no-any + (limiter.stream as any)._readableState.highWaterMark, + OPTIONS.streamOptions.highWaterMark); + }); + + describe('makeRequest', () => { + it('should pass arguments to request method', (done) => { + const args = [{}, {}]; + + const limiter = p.createLimiter((obj1: {}, obj2: {}) => { + assert.strictEqual(obj1, args[0]); + assert.strictEqual(obj2, args[1]); + done(); + }); + + limiter.makeRequest.apply(null, args); + }); + + it('should not make more requests than the limit', (done) => { + let callsMade = 0; + const maxApiCalls = 10; + + const limiter = p.createLimiter(() => { + callsMade++; + limiter.makeRequest(); + }, { + maxApiCalls, + }); + + limiter.makeRequest(); + + limiter.stream.on('data', util.noop).on('end', () => { + assert.strictEqual(callsMade, maxApiCalls); + done(); + }); + }); + }); +}); diff --git a/core/paginator/test/mocha.opts b/core/paginator/test/mocha.opts new file mode 100644 index 00000000000..b4110d0585c --- /dev/null +++ b/core/paginator/test/mocha.opts @@ -0,0 +1,3 @@ +--require hard-rejection/register +--require source-map-support/register +--timeout 10000 diff --git a/core/paginator/tsconfig.json b/core/paginator/tsconfig.json new file mode 100644 index 00000000000..7c8f5d4674a --- /dev/null +++ b/core/paginator/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "build", + "target": "es5", + "esModuleInterop": false, + "allowSyntheticDefaultImports": false + }, + "include": [ + "src/*.ts", + "src/**/*.ts", + "test/*.ts", + "test/**/*.ts" + ] +} diff --git a/core/paginator/tslint.json b/core/paginator/tslint.json new file mode 100644 index 00000000000..617dc975bae --- /dev/null +++ b/core/paginator/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "gts/tslint.json" +} From fa4a9d707dafcd5799207faeb14cea3e657fc220 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 16 Jul 2018 16:19:11 -0700 Subject: [PATCH 002/279] chore: add standard templates --- core/paginator/.github/CONTRIBUTING.md | 53 +++++++++++++++++++ core/paginator/.github/ISSUE_TEMPLATE.md | 28 ++++++++++ .../.github/PULL_REQUEST_TEMPLATE.md | 5 ++ 3 files changed, 86 insertions(+) create mode 100644 core/paginator/.github/CONTRIBUTING.md create mode 100644 core/paginator/.github/ISSUE_TEMPLATE.md create mode 100644 core/paginator/.github/PULL_REQUEST_TEMPLATE.md diff --git a/core/paginator/.github/CONTRIBUTING.md b/core/paginator/.github/CONTRIBUTING.md new file mode 100644 index 00000000000..aaeac9f9483 --- /dev/null +++ b/core/paginator/.github/CONTRIBUTING.md @@ -0,0 +1,53 @@ +# 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. Submit a pull request. + +## Running the tests + +1. [Prepare your environment for Node.js setup][setup]. + +1. Install dependencies: + + npm install + +1. Run the tests: + + npm test + +[setup]: https://cloud.google.com/nodejs/docs/setup diff --git a/core/paginator/.github/ISSUE_TEMPLATE.md b/core/paginator/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000000..e5b9dc84b1f --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,28 @@ +Thanks for stopping by to let us know something could be better! + +Please run down the following list and make sure you've tried the usual "quick +fixes": + + - Search the issues already opened: https://github.com/googlecloudplatform/google-cloud-node/issues + - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js + - Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting + - Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq + +If you are still having issues, please be sure to include as much information as +possible: + +#### Environment details + + - OS: + - Node.js version: + - npm version: + - @google-cloud/common version: + +#### Steps to reproduce + + 1. ??? + 2. ??? + +Following these steps will guarantee the quickest resolution possible. + +Thanks! diff --git a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000000..809750308d7 --- /dev/null +++ b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ +Fixes # (it's a good idea to open an issue first for discussion) + +- [ ] Tests and linter pass +- [ ] Code coverage does not decrease (if any source code was changed) +- [ ] Appropriate docs were updated (if necessary) From 0a86bd727d9a20667fd39336c24ffeff0f6b4caf Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 23 Jul 2018 14:04:04 -0700 Subject: [PATCH 003/279] chore: add circleci config --- core/paginator/.circleci/config.yml | 82 +++++++++++++++++++ core/paginator/.circleci/get_workflow_name.py | 67 +++++++++++++++ core/paginator/package.json | 2 +- 3 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 core/paginator/.circleci/config.yml create mode 100644 core/paginator/.circleci/get_workflow_name.py diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml new file mode 100644 index 00000000000..f11ff29e201 --- /dev/null +++ b/core/paginator/.circleci/config.yml @@ -0,0 +1,82 @@ +version: 2 +workflows: + version: 2 + tests: + jobs: &workflow_jobs + - node6: + filters: &all_commits + tags: + only: /.*/ + - node8: + filters: *all_commits + - node10: + filters: *all_commits + - lint: + filters: *all_commits + - publish_npm: + requires: + - node6 + - node8 + - node10 + filters: + branches: + ignore: /.*/ + tags: + only: '/^v[\d.]+$/' + nightly: + triggers: + - schedule: + cron: 0 7 * * * + filters: + branches: + only: master + jobs: *workflow_jobs +jobs: + node6: + docker: + - image: 'node:6' + user: node + steps: &unit_tests_steps + - checkout + - run: &remove_package_lock + name: Remove package-lock.json if needed. + command: | + WORKFLOW_NAME=`python .circleci/get_workflow_name.py` + echo "Workflow name: $WORKFLOW_NAME" + if [ "$WORKFLOW_NAME" = "nightly" ]; then + echo "Nightly build detected, removing package-lock.json." + rm -f package-lock.json samples/package-lock.json + else + echo "Not a nightly build, skipping this step." + fi + - run: npm install + - run: npm test + - run: npm run codecov + node8: + docker: + - image: 'node:8' + user: node + steps: *unit_tests_steps + node10: + docker: + - image: 'node:10' + user: node + steps: *unit_tests_steps + lint: + docker: + - image: 'node:8' + user: node + steps: + - checkout + - run: *remove_package_lock + - run: npm install + - run: npm run check + publish_npm: + docker: + - image: 'node:8' + user: node + steps: + - checkout + - run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + - run: npm install + - run: npm publish --access public diff --git a/core/paginator/.circleci/get_workflow_name.py b/core/paginator/.circleci/get_workflow_name.py new file mode 100644 index 00000000000..ff6b58fd24f --- /dev/null +++ b/core/paginator/.circleci/get_workflow_name.py @@ -0,0 +1,67 @@ +# Copyright 2018 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. + +""" +Get workflow name for the current build using CircleCI API. +Would be great if this information is available in one of +CircleCI environment variables, but it's not there. +https://circleci.ideas.aha.io/ideas/CCI-I-295 +""" + +import json +import os +import sys +import urllib2 + + +def main(): + try: + username = os.environ['CIRCLE_PROJECT_USERNAME'] + reponame = os.environ['CIRCLE_PROJECT_REPONAME'] + build_num = os.environ['CIRCLE_BUILD_NUM'] + except: + sys.stderr.write( + 'Looks like we are not inside CircleCI container. Exiting...\n') + return 1 + + try: + request = urllib2.Request( + "https://circleci.com/api/v1.1/project/github/%s/%s/%s" % + (username, reponame, build_num), + headers={"Accept": "application/json"}) + contents = urllib2.urlopen(request).read() + except: + sys.stderr.write('Cannot query CircleCI API. Exiting...\n') + return 1 + + try: + build_info = json.loads(contents) + except: + sys.stderr.write( + 'Cannot parse JSON received from CircleCI API. Exiting...\n') + return 1 + + try: + workflow_name = build_info['workflows']['workflow_name'] + except: + sys.stderr.write( + 'Cannot get workflow name from CircleCI build info. Exiting...\n') + return 1 + + print workflow_name + return 0 + + +retval = main() +exit(retval) diff --git a/core/paginator/package.json b/core/paginator/package.json index 53977d88a5b..69d1fe30685 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,5 +1,5 @@ { - "name": "@google-cloud/common-paginator", + "name": "@google-cloud/paginator", "version": "0.1.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", From e1aef2fc21bb66e18d2274c162a7ec19e11f1f37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 24 Jul 2018 10:05:53 -0700 Subject: [PATCH 004/279] chore(deps): lock file maintenance (#2) --- core/paginator/package-lock.json | 8936 +++++++++++++++--------------- 1 file changed, 4468 insertions(+), 4468 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index c68f145cf72..75e67179ffc 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -1,4470 +1,4470 @@ { - "name": "@google-cloud/common-paginator", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", - "dev": true - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "^4.17.5" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" - } - }, - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@sinonjs/samsam": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.0.0.tgz", - "integrity": "sha512-D7VxhADdZbDJ0HjUTMnSQ5xIGb4H2yWpg8k9Sf1T08zfFiQYlaxM8LZydpR4FQ2E6LZJX8IlabNZ5io4vdChwg==", - "dev": true - }, - "@types/arrify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/arrify/-/arrify-1.0.4.tgz", - "integrity": "sha512-63nK8r8jvEVJ1r0ENaY9neB1wDzPHFYAzKiIxPawuzcijEX8XeOywwPL8fkSCwiTIYop9MSh+TKy9L2ZzTXV6g==", - "dev": true - }, - "@types/extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.0.tgz", - "integrity": "sha512-Eo8NQCbgjlMPQarlFAE3vpyCvFda4dg1Ob5ZJb6BJI9x4NAZVWowyMNB8GJJDgDI4lr2oqiQvXlPB0Fn1NoXnQ==", - "dev": true - }, - "@types/is": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", - "integrity": "sha512-013vMJ4cpYRm1GavhN8HqSKRWD/txm2BLcy/Qw9hAoSNJwp60ezLH+/QlX3JouGTPJcmxvbDUWGANxjS52jRaw==", - "dev": true - }, - "@types/mocha": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.4.tgz", - "integrity": "sha512-XMHApnKWI0jvXU5gLcSTsRjJBpSzP0BG+2oGv98JFyS4a5R0tRy0oshHBRndb3BuHb9AwDKaUL8Ja7GfUvsG4g==", - "dev": true - }, - "@types/node": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", - "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", - "dev": true - }, - "@types/proxyquire": { - "version": "1.3.28", - "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", - "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", - "dev": true - }, - "@types/sinon": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-5.0.1.tgz", - "integrity": "sha512-yxzBCIjE3lp9lYjfBbIK/LRCoXgCLLbIIBIje7eNCcUIIR2CZZtyX5uto2hVoMSMqLrsRrT6mwwUEd0yFgOwpA==", - "dev": true - }, - "@types/through2": { - "version": "2.0.33", - "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.33.tgz", - "integrity": "sha1-H/LoihAN+1sUDnu5h5HxGUQA0TE=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/uuid": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.3.tgz", - "integrity": "sha512-5fRLCYhLtDb3hMWqQyH10qtF+Ud2JnNCXTCZ+9ktNdCcgslcuXkDTkFcJNk++MT29yDntDnlF1+jD+uVGumsbw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", - "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", - "dev": true - }, - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true - }, - "clang-format": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", - "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", - "dev": true, - "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "codecov": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", - "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", - "dev": true, - "requires": { - "argv": "^0.0.2", - "ignore-walk": "^3.0.1", - "request": "^2.87.0", - "urlgrey": "^0.4.4" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "external-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", - "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", - "dev": true, - "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", - "dev": true, - "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gts": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.7.1.tgz", - "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "clang-format": "1.2.3", - "inquirer": "^6.0.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-1.0.0.tgz", - "integrity": "sha1-jztHbI4vIhvtc8ZGQP4hfXF9rDY=", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", - "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.1.tgz", - "integrity": "sha512-h9Vg3nfbxrF0PK0kZiNiMAyL8zXaLiBP/BXniaKSwVvAi1TaumYV2b0wPdmy1CRX3irYbYD1p4Wjbv4uyECiiQ==", - "dev": true, - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-extend": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", - "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", - "dev": true - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lolex": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", - "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "^3.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - } - } - }, - "module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nise": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", - "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "dev": true, - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^2.1.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.5", - "istanbul-reports": "^1.4.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", - "yargs": "11.1.0", - "yargs-parser": "^8.0.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "async": { - "version": "1.5.2", - "bundled": true, - "dev": true - }, - "atob": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "dev": true, - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true, - "dev": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "handlebars": "^4.0.3" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true, - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "ret": { - "version": "0.1.15", - "bundled": true, - "dev": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true, - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true, - "dev": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true, - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "proxyquire": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", - "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", - "dev": true, - "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" - }, - "dependencies": { - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rxjs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", - "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "sinon": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.1.3.tgz", - "integrity": "sha512-yeTza8xIZZdiXntCHJAzKll/sSYE+DuJOS8hiSapzaLqdW8eCNVVC9je9SZYYTkPm2bLts9x6UYxwuMAVVrM6Q==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "@sinonjs/samsam": "^2.0.0", - "diff": "^3.5.0", - "lodash.get": "^4.4.2", - "lolex": "^2.4.2", - "nise": "^1.3.3", - "supports-color": "^5.4.0", - "type-detect": "^4.0.8" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split-array-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", - "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", - "requires": { - "is-stream-ended": "^0.1.4" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stream-events": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", - "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", - "requires": { - "stubs": "^3.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" - } - }, - "tsutils": { - "version": "2.27.2", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.2.tgz", - "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "urlgrey": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", - "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } + "name": "@google-cloud/paginator", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", + "dev": true + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + } + }, + "@sinonjs/formatio": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", + "dev": true, + "requires": { + "samsam": "1.3.0" + } + }, + "@sinonjs/samsam": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.0.0.tgz", + "integrity": "sha512-D7VxhADdZbDJ0HjUTMnSQ5xIGb4H2yWpg8k9Sf1T08zfFiQYlaxM8LZydpR4FQ2E6LZJX8IlabNZ5io4vdChwg==", + "dev": true + }, + "@types/arrify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/arrify/-/arrify-1.0.4.tgz", + "integrity": "sha512-63nK8r8jvEVJ1r0ENaY9neB1wDzPHFYAzKiIxPawuzcijEX8XeOywwPL8fkSCwiTIYop9MSh+TKy9L2ZzTXV6g==", + "dev": true + }, + "@types/extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.0.tgz", + "integrity": "sha512-Eo8NQCbgjlMPQarlFAE3vpyCvFda4dg1Ob5ZJb6BJI9x4NAZVWowyMNB8GJJDgDI4lr2oqiQvXlPB0Fn1NoXnQ==", + "dev": true + }, + "@types/is": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", + "integrity": "sha512-013vMJ4cpYRm1GavhN8HqSKRWD/txm2BLcy/Qw9hAoSNJwp60ezLH+/QlX3JouGTPJcmxvbDUWGANxjS52jRaw==", + "dev": true + }, + "@types/mocha": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz", + "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==", + "dev": true + }, + "@types/node": { + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", + "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", + "dev": true + }, + "@types/proxyquire": { + "version": "1.3.28", + "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", + "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", + "dev": true + }, + "@types/sinon": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-5.0.1.tgz", + "integrity": "sha512-yxzBCIjE3lp9lYjfBbIK/LRCoXgCLLbIIBIje7eNCcUIIR2CZZtyX5uto2hVoMSMqLrsRrT6mwwUEd0yFgOwpA==", + "dev": true + }, + "@types/through2": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.33.tgz", + "integrity": "sha1-H/LoihAN+1sUDnu5h5HxGUQA0TE=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/uuid": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.3.tgz", + "integrity": "sha512-5fRLCYhLtDb3hMWqQyH10qtF+Ud2JnNCXTCZ+9ktNdCcgslcuXkDTkFcJNk++MT29yDntDnlF1+jD+uVGumsbw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", + "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", + "dev": true + }, + "ci-info": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", + "dev": true + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "codecov": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", + "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", + "dev": true, + "requires": { + "argv": "^0.0.2", + "ignore-walk": "^3.0.1", + "request": "^2.87.0", + "urlgrey": "^0.4.4" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "external-editor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", + "dev": true, + "requires": { + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", + "dev": true, + "requires": { + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "gts": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.7.1.tgz", + "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "clang-format": "1.2.3", + "inquirer": "^6.0.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "hard-rejection": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-1.0.0.tgz", + "integrity": "sha1-jztHbI4vIhvtc8ZGQP4hfXF9rDY=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", + "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", + "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-ci": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "dev": true, + "requires": { + "ci-info": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.1.tgz", + "integrity": "sha512-h9Vg3nfbxrF0PK0kZiNiMAyL8zXaLiBP/BXniaKSwVvAi1TaumYV2b0wPdmy1CRX3irYbYD1p4Wjbv4uyECiiQ==", + "dev": true, + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "just-extend": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", + "dev": true + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lolex": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", + "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + } + } + }, + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nise": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", + "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", + "dev": true, + "requires": { + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "dev": true, + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", + "yargs": "11.1.0", + "yargs-parser": "^8.0.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "async": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "atob": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true, + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, + "dev": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "proxyquire": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", + "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", + "dev": true, + "requires": { + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" + }, + "dependencies": { + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", + "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "samsam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.1.4.tgz", + "integrity": "sha512-NFEts+4D4jp2sBjL94fQpZk5o73kzn/g58+I9Dp15i9vsnT4Lk1UEyUf2jACODWLG6Pz/llF0sArYUw47Aarmg==", + "dev": true, + "requires": { + "@sinonjs/formatio": "^2.0.0", + "@sinonjs/samsam": "^2.0.0", + "diff": "^3.5.0", + "lodash.get": "^4.4.2", + "lolex": "^2.7.1", + "nise": "^1.4.2", + "supports-color": "^5.4.0", + "type-detect": "^4.0.8" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "split-array-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", + "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", + "requires": { + "is-stream-ended": "^0.1.4" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stream-events": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", + "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", + "requires": { + "stubs": "^3.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "tslint": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", + "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + } + }, + "tsutils": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", + "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } } From c5aa550e1b09153d779680f9d90756dfe32e6ec3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 24 Jul 2018 14:17:52 -0700 Subject: [PATCH 005/279] chore(deps): lock file maintenance (#3) --- core/paginator/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index 75e67179ffc..8afeed61561 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -4287,9 +4287,9 @@ } }, "tsutils": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" From f7dd32732d0a4e5e7847d95b4bb8e44589160e42 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 24 Jul 2018 14:36:51 -0700 Subject: [PATCH 006/279] chore(deps): update dependency gts to ^0.8.0 (#1) --- core/paginator/package-lock.json | 10 ++++++---- core/paginator/package.json | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index 8afeed61561..878d6f954da 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -885,9 +885,9 @@ "dev": true }, "gts": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.7.1.tgz", - "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.8.0.tgz", + "integrity": "sha512-VB9LQLFR+10cJhDBLYu9i2t7vTkewTXeBJbvw5+M2LqGgjiaKIUTIFbVBLjIknDpuaRpAzVcvhiHWy/30c09jg==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -1583,6 +1583,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -2525,7 +2526,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", diff --git a/core/paginator/package.json b/core/paginator/package.json index 69d1fe30685..8e4ec8f0fae 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -33,7 +33,7 @@ "@types/through2": "^2.0.33", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", - "gts": "^0.7.1", + "gts": "^0.8.0", "hard-rejection": "^1.0.0", "mocha": "^5.2.0", "nyc": "^12.0.2", From 2826bea9a658938179bd0e35eca265bf7040f269 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 30 Jul 2018 10:24:02 -0700 Subject: [PATCH 007/279] chore: move mocha options to mocha.opts (#4) * chore: move mocha options to mocha.opts * fix --- core/paginator/package-lock.json | 425 ++++++++++++++++++++++++++++++- core/paginator/package.json | 1 + core/paginator/test/mocha.opts | 2 + 3 files changed, 425 insertions(+), 3 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index 878d6f954da..10986bd7d8b 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -188,6 +188,18 @@ "@types/node": "*" } }, + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, + "acorn-es7-plugin": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", + "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", + "dev": true + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -200,6 +212,12 @@ "json-schema-traverse": "^0.3.0" } }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, "ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", @@ -245,6 +263,12 @@ "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", "dev": true }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -404,6 +428,18 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "call-matcher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", + "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", + "dev": true, + "requires": { + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" + } + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -556,6 +592,18 @@ "xdg-basedir": "^3.0.0" } }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -597,6 +645,15 @@ "array-find-index": "^1.0.1" } }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -639,12 +696,24 @@ } } }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -682,6 +751,15 @@ "jsbn": "~0.1.0" } }, + "empower-assert": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/empower-assert/-/empower-assert-1.1.0.tgz", + "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", + "dev": true, + "requires": { + "estraverse": "^4.2.0" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -691,24 +769,260 @@ "is-arrayish": "^0.2.1" } }, + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escallmatch": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/escallmatch/-/escallmatch-1.5.0.tgz", + "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", + "dev": true, + "requires": { + "call-matcher": "^1.0.0", + "esprima": "^2.0.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + } + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espower": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/espower/-/espower-2.1.1.tgz", + "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "escallmatch": "^1.5.0", + "escodegen": "^1.7.0", + "escope": "^3.3.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.3.0", + "estraverse": "^4.1.0", + "source-map": "^0.5.0", + "type-name": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "espower-loader": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/espower-loader/-/espower-loader-1.2.2.tgz", + "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", + "dev": true, + "requires": { + "convert-source-map": "^1.1.0", + "espower-source": "^2.0.0", + "minimatch": "^3.0.0", + "source-map-support": "^0.4.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } + } + }, + "espower-location-detector": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", + "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", + "dev": true, + "requires": { + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" + } + }, + "espower-source": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-2.3.0.tgz", + "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.10", + "convert-source-map": "^1.1.1", + "empower-assert": "^1.0.0", + "escodegen": "^1.10.0", + "espower": "^2.1.1", + "estraverse": "^4.0.0", + "merge-estraverse-visitors": "^1.0.0", + "multi-stage-sourcemap": "^0.2.1", + "path-is-absolute": "^1.0.0", + "xtend": "^4.0.0" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "espurify": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", + "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", + "dev": true, + "requires": { + "core-js": "^2.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -758,6 +1072,12 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -1048,6 +1368,15 @@ "through": "^2.3.6" } }, + "intelli-espower-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/intelli-espower-loader/-/intelli-espower-loader-1.0.1.tgz", + "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", + "dev": true, + "requires": { + "espower-loader": "^1.0.0" + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -1170,6 +1499,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -1289,6 +1624,16 @@ "package-json": "^4.0.0" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -1402,6 +1747,15 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge-estraverse-visitors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz", + "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, "mime-db": { "version": "1.35.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", @@ -1504,12 +1858,38 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "multi-stage-sourcemap": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz", + "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", + "dev": true, + "requires": { + "source-map": "^0.1.34" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "nise": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", @@ -1583,7 +1963,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -2526,8 +2905,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "lru-cache": { "version": "4.1.3", @@ -3623,6 +4001,20 @@ "mimic-fn": "^1.0.0" } }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -3741,6 +4133,12 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -4313,12 +4711,27 @@ "dev": true, "optional": true }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "type-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", + "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", + "dev": true + }, "typescript": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", @@ -4424,6 +4837,12 @@ "string-width": "^2.1.1" } }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/core/paginator/package.json b/core/paginator/package.json index 8e4ec8f0fae..e6c8e638f1c 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -35,6 +35,7 @@ "codecov": "^3.0.4", "gts": "^0.8.0", "hard-rejection": "^1.0.0", + "intelli-espower-loader": "^1.0.1", "mocha": "^5.2.0", "nyc": "^12.0.2", "proxyquire": "^2.0.1", diff --git a/core/paginator/test/mocha.opts b/core/paginator/test/mocha.opts index b4110d0585c..01bf152eba7 100644 --- a/core/paginator/test/mocha.opts +++ b/core/paginator/test/mocha.opts @@ -1,3 +1,5 @@ --require hard-rejection/register --require source-map-support/register --timeout 10000 + +--require intelli-espower-loader From c7e904706427a17282e17fc8b51b187d9ca33ff0 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 30 Jul 2018 12:58:01 -0700 Subject: [PATCH 008/279] chore: assert.deelEqual => assert.deepStrictEqual (#5) --- core/paginator/test/index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 232c5255ff4..aae2d5b0dd5 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -89,7 +89,7 @@ describe('paginator', () => { it('should parse the arguments', (done) => { stub('parseArguments_', args => { - assert.deepEqual([].slice.call(args), [1, 2, 3]); + assert.deepStrictEqual([].slice.call(args), [1, 2, 3]); done(); }); stub('run_', util.noop); @@ -158,7 +158,7 @@ describe('paginator', () => { const fakeArgs = [1, 2, 3]; stub('parseArguments_', args => { - assert.deepEqual(fakeArgs, [].slice.call(args)); + assert.deepStrictEqual(fakeArgs, [].slice.call(args)); done(); }); @@ -265,7 +265,7 @@ describe('paginator', () => { const args = [undefined, util.noop]; const parsedArguments = paginator.parseArguments_(args); - assert.deepEqual(parsedArguments.query, {}); + assert.deepStrictEqual(parsedArguments.query, {}); }); it('should detect a callback if last argument is a function', () => { @@ -404,7 +404,7 @@ describe('paginator', () => { } as ParsedArguments; stub('runAsStream_', util.noop); paginator.run_(parsedArguments, (query: {}, callback: () => void) => { - assert.deepEqual(query, parsedArguments.query); + assert.deepStrictEqual(query, parsedArguments.query); callback(); }); }); @@ -452,7 +452,7 @@ describe('paginator', () => { const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); rs.on('error', (err: Error) => { - assert.deepEqual(err, error); + assert.deepStrictEqual(err, error); done(); }); }); @@ -473,7 +473,7 @@ describe('paginator', () => { resultsReceived.push(result); }); rs.on('end', () => { - assert.deepEqual(resultsReceived, ['a', 'b', 'c']); + assert.deepStrictEqual(resultsReceived, ['a', 'b', 'c']); done(); }); }); @@ -553,7 +553,7 @@ describe('paginator', () => { query: {}, callback: (err: Error|null, res: Array<{}>, nextQuery: {}) => void) { if (nextQuerySent) { - assert.deepEqual(query, nextQuery); + assert.deepStrictEqual(query, nextQuery); done(); return; } From 75c23800040cf2a7758e4a3fbca090e965656c14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 30 Jul 2018 15:28:44 -0700 Subject: [PATCH 009/279] chore(deps): update dependency typescript to v3 (#6) --- core/paginator/package-lock.json | 10 ++++++---- core/paginator/package.json | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index 10986bd7d8b..7b4ba48dd9b 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -1963,6 +1963,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -2905,7 +2906,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", @@ -4733,9 +4735,9 @@ "dev": true }, "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz", + "integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==", "dev": true }, "unique-string": { diff --git a/core/paginator/package.json b/core/paginator/package.json index e6c8e638f1c..dbe9804e9ff 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -42,7 +42,7 @@ "sinon": "^6.1.3", "source-map-support": "^0.5.6", "through2": "^2.0.3", - "typescript": "^2.9.0", + "typescript": "^3.0.0", "uuid": "^3.3.2" }, "nyc": { From 682cbf492b547e77250e5a571e2a01617be59a6f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 30 Jul 2018 18:45:47 -0700 Subject: [PATCH 010/279] chore(deps): lock file maintenance (#7) --- core/paginator/package-lock.json | 76 +++++++++++++++++++------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index 7b4ba48dd9b..a7fc21589cd 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -24,6 +24,14 @@ "lodash": "^4.17.5", "source-map": "^0.5.0", "trim-right": "^1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, "@babel/helper-function-name": { @@ -153,9 +161,9 @@ "dev": true }, "@types/node": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", - "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz", + "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==", "dev": true }, "@types/proxyquire": { @@ -742,13 +750,14 @@ "dev": true }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "empower-assert": { @@ -882,13 +891,6 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true } } }, @@ -920,6 +922,14 @@ "source-map": "^0.5.0", "type-name": "^2.0.0", "xtend": "^4.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, "espower-loader": { @@ -935,6 +945,12 @@ "xtend": "^4.0.0" }, "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", @@ -956,6 +972,14 @@ "path-is-absolute": "^1.0.0", "source-map": "^0.5.0", "xtend": "^4.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, "espower-source": { @@ -1530,9 +1554,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.1.tgz", - "integrity": "sha512-h9Vg3nfbxrF0PK0kZiNiMAyL8zXaLiBP/BXniaKSwVvAi1TaumYV2b0wPdmy1CRX3irYbYD1p4Wjbv4uyECiiQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", "dev": true, "requires": { "@babel/generator": "7.0.0-beta.51", @@ -1963,7 +1987,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -2906,8 +2929,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "lru-cache": { "version": "4.1.3", @@ -4429,9 +4451,9 @@ } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { @@ -4442,14 +4464,6 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "spdx-correct": { From 5db7b04161285c0880875a8fce2a4cd712ead5df Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 2 Aug 2018 05:13:10 -0700 Subject: [PATCH 011/279] remove that whitespace (#8) --- core/paginator/test/mocha.opts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/test/mocha.opts b/core/paginator/test/mocha.opts index 01bf152eba7..a3504c501fd 100644 --- a/core/paginator/test/mocha.opts +++ b/core/paginator/test/mocha.opts @@ -1,5 +1,5 @@ --require hard-rejection/register --require source-map-support/register --timeout 10000 - --require intelli-espower-loader +--throw-deprecation From b6fb95b70720d0c8a8a1d3b5e237aa9a415823ad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 6 Aug 2018 19:08:22 -0700 Subject: [PATCH 012/279] chore(deps): lock file maintenance (#10) --- core/paginator/package-lock.json | 47 +++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json index a7fc21589cd..4debe820dca 100644 --- a/core/paginator/package-lock.json +++ b/core/paginator/package-lock.json @@ -161,9 +161,9 @@ "dev": true }, "@types/node": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz", - "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==", + "version": "10.5.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.7.tgz", + "integrity": "sha512-VkKcfuitP+Nc/TaTFH0B8qNmn+6NbI6crLkQonbedViVz7O2w8QV/GERPlkJ4bg42VGHiEWa31CoTOPs1q6z1w==", "dev": true }, "@types/proxyquire": { @@ -289,10 +289,13 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { "version": "1.0.0", @@ -319,9 +322,9 @@ "dev": true }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "babel-code-frame": { @@ -425,9 +428,9 @@ "dev": true }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "builtin-modules": { @@ -575,9 +578,9 @@ } }, "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.0.tgz", + "integrity": "sha512-477o1hdVORiFlZxw8wgsXYCef3lh0zl/OV0FTftqiDxJSWw6dPQ2ipS4k20J2qBcsmsmLKSyr2iFrf9e3JGi4w==", "dev": true }, "concat-map": { @@ -4122,9 +4125,9 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-to-regexp": { @@ -4815,9 +4818,9 @@ "dev": true }, "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", From 826eb5c70ff1a3d3264231179d8e6454ec69e452 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 7 Aug 2018 14:04:17 -0700 Subject: [PATCH 013/279] chore: ignore package-lock.json (#11) * chore: ignore package-log.json * remove locky * renovateeee --- core/paginator/.circleci/config.yml | 14 +- core/paginator/.circleci/get_workflow_name.py | 67 - core/paginator/.gitignore | 1 + core/paginator/package-lock.json | 4910 ----------------- 4 files changed, 2 insertions(+), 4990 deletions(-) delete mode 100644 core/paginator/.circleci/get_workflow_name.py delete mode 100644 core/paginator/package-lock.json diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml index f11ff29e201..a8d44648347 100644 --- a/core/paginator/.circleci/config.yml +++ b/core/paginator/.circleci/config.yml @@ -37,18 +37,7 @@ jobs: - image: 'node:6' user: node steps: &unit_tests_steps - - checkout - - run: &remove_package_lock - name: Remove package-lock.json if needed. - command: | - WORKFLOW_NAME=`python .circleci/get_workflow_name.py` - echo "Workflow name: $WORKFLOW_NAME" - if [ "$WORKFLOW_NAME" = "nightly" ]; then - echo "Nightly build detected, removing package-lock.json." - rm -f package-lock.json samples/package-lock.json - else - echo "Not a nightly build, skipping this step." - fi + - checkout - run: npm install - run: npm test - run: npm run codecov @@ -68,7 +57,6 @@ jobs: user: node steps: - checkout - - run: *remove_package_lock - run: npm install - run: npm run check publish_npm: diff --git a/core/paginator/.circleci/get_workflow_name.py b/core/paginator/.circleci/get_workflow_name.py deleted file mode 100644 index ff6b58fd24f..00000000000 --- a/core/paginator/.circleci/get_workflow_name.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 2018 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. - -""" -Get workflow name for the current build using CircleCI API. -Would be great if this information is available in one of -CircleCI environment variables, but it's not there. -https://circleci.ideas.aha.io/ideas/CCI-I-295 -""" - -import json -import os -import sys -import urllib2 - - -def main(): - try: - username = os.environ['CIRCLE_PROJECT_USERNAME'] - reponame = os.environ['CIRCLE_PROJECT_REPONAME'] - build_num = os.environ['CIRCLE_BUILD_NUM'] - except: - sys.stderr.write( - 'Looks like we are not inside CircleCI container. Exiting...\n') - return 1 - - try: - request = urllib2.Request( - "https://circleci.com/api/v1.1/project/github/%s/%s/%s" % - (username, reponame, build_num), - headers={"Accept": "application/json"}) - contents = urllib2.urlopen(request).read() - except: - sys.stderr.write('Cannot query CircleCI API. Exiting...\n') - return 1 - - try: - build_info = json.loads(contents) - except: - sys.stderr.write( - 'Cannot parse JSON received from CircleCI API. Exiting...\n') - return 1 - - try: - workflow_name = build_info['workflows']['workflow_name'] - except: - sys.stderr.write( - 'Cannot get workflow name from CircleCI build info. Exiting...\n') - return 1 - - print workflow_name - return 0 - - -retval = main() -exit(retval) diff --git a/core/paginator/.gitignore b/core/paginator/.gitignore index a80073ed0b8..4a9bdacc027 100644 --- a/core/paginator/.gitignore +++ b/core/paginator/.gitignore @@ -1,3 +1,4 @@ node_modules .nyc_output build +package-lock.json diff --git a/core/paginator/package-lock.json b/core/paginator/package-lock.json deleted file mode 100644 index 4debe820dca..00000000000 --- a/core/paginator/package-lock.json +++ /dev/null @@ -1,4910 +0,0 @@ -{ - "name": "@google-cloud/paginator", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", - "dev": true - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "^4.17.5" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" - } - }, - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@sinonjs/samsam": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.0.0.tgz", - "integrity": "sha512-D7VxhADdZbDJ0HjUTMnSQ5xIGb4H2yWpg8k9Sf1T08zfFiQYlaxM8LZydpR4FQ2E6LZJX8IlabNZ5io4vdChwg==", - "dev": true - }, - "@types/arrify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/arrify/-/arrify-1.0.4.tgz", - "integrity": "sha512-63nK8r8jvEVJ1r0ENaY9neB1wDzPHFYAzKiIxPawuzcijEX8XeOywwPL8fkSCwiTIYop9MSh+TKy9L2ZzTXV6g==", - "dev": true - }, - "@types/extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.0.tgz", - "integrity": "sha512-Eo8NQCbgjlMPQarlFAE3vpyCvFda4dg1Ob5ZJb6BJI9x4NAZVWowyMNB8GJJDgDI4lr2oqiQvXlPB0Fn1NoXnQ==", - "dev": true - }, - "@types/is": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", - "integrity": "sha512-013vMJ4cpYRm1GavhN8HqSKRWD/txm2BLcy/Qw9hAoSNJwp60ezLH+/QlX3JouGTPJcmxvbDUWGANxjS52jRaw==", - "dev": true - }, - "@types/mocha": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz", - "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==", - "dev": true - }, - "@types/node": { - "version": "10.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.7.tgz", - "integrity": "sha512-VkKcfuitP+Nc/TaTFH0B8qNmn+6NbI6crLkQonbedViVz7O2w8QV/GERPlkJ4bg42VGHiEWa31CoTOPs1q6z1w==", - "dev": true - }, - "@types/proxyquire": { - "version": "1.3.28", - "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", - "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", - "dev": true - }, - "@types/sinon": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-5.0.1.tgz", - "integrity": "sha512-yxzBCIjE3lp9lYjfBbIK/LRCoXgCLLbIIBIje7eNCcUIIR2CZZtyX5uto2hVoMSMqLrsRrT6mwwUEd0yFgOwpA==", - "dev": true - }, - "@types/through2": { - "version": "2.0.33", - "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.33.tgz", - "integrity": "sha1-H/LoihAN+1sUDnu5h5HxGUQA0TE=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/uuid": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.3.tgz", - "integrity": "sha512-5fRLCYhLtDb3hMWqQyH10qtF+Ud2JnNCXTCZ+9ktNdCcgslcuXkDTkFcJNk++MT29yDntDnlF1+jD+uVGumsbw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - }, - "acorn-es7-plugin": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", - "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", - "dev": true - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", - "dev": true - }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "call-matcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", - "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", - "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", - "dev": true - }, - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true - }, - "clang-format": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", - "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", - "dev": true, - "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "codecov": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", - "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", - "dev": true, - "requires": { - "argv": "^0.0.2", - "ignore-walk": "^3.0.1", - "request": "^2.87.0", - "urlgrey": "^0.4.4" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.0.tgz", - "integrity": "sha512-477o1hdVORiFlZxw8wgsXYCef3lh0zl/OV0FTftqiDxJSWw6dPQ2ipS4k20J2qBcsmsmLKSyr2iFrf9e3JGi4w==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "empower-assert": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/empower-assert/-/empower-assert-1.1.0.tgz", - "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", - "dev": true, - "requires": { - "estraverse": "^4.2.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.45", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", - "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escallmatch": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/escallmatch/-/escallmatch-1.5.0.tgz", - "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", - "dev": true, - "requires": { - "call-matcher": "^1.0.0", - "esprima": "^2.0.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - } - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - } - } - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "espower": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/espower/-/espower-2.1.1.tgz", - "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", - "dev": true, - "requires": { - "array-find": "^1.0.0", - "escallmatch": "^1.5.0", - "escodegen": "^1.7.0", - "escope": "^3.3.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.3.0", - "estraverse": "^4.1.0", - "source-map": "^0.5.0", - "type-name": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "espower-loader": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/espower-loader/-/espower-loader-1.2.2.tgz", - "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", - "dev": true, - "requires": { - "convert-source-map": "^1.1.0", - "espower-source": "^2.0.0", - "minimatch": "^3.0.0", - "source-map-support": "^0.4.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "espower-location-detector": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", - "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", - "dev": true, - "requires": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "espower-source": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-2.3.0.tgz", - "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.10", - "convert-source-map": "^1.1.1", - "empower-assert": "^1.0.0", - "escodegen": "^1.10.0", - "espower": "^2.1.1", - "estraverse": "^4.0.0", - "merge-estraverse-visitors": "^1.0.0", - "multi-stage-sourcemap": "^0.2.1", - "path-is-absolute": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "espurify": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", - "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", - "dev": true, - "requires": { - "core-js": "^2.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "external-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", - "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", - "dev": true, - "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", - "dev": true, - "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gts": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.8.0.tgz", - "integrity": "sha512-VB9LQLFR+10cJhDBLYu9i2t7vTkewTXeBJbvw5+M2LqGgjiaKIUTIFbVBLjIknDpuaRpAzVcvhiHWy/30c09jg==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "clang-format": "1.2.3", - "inquirer": "^6.0.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-1.0.0.tgz", - "integrity": "sha1-jztHbI4vIhvtc8ZGQP4hfXF9rDY=", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", - "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "intelli-espower-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/intelli-espower-loader/-/intelli-espower-loader-1.0.1.tgz", - "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", - "dev": true, - "requires": { - "espower-loader": "^1.0.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "dev": true, - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-extend": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", - "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", - "dev": true - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lolex": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", - "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-estraverse-visitors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz", - "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", - "dev": true, - "requires": { - "mime-db": "~1.35.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - } - } - }, - "module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multi-stage-sourcemap": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz", - "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", - "dev": true, - "requires": { - "source-map": "^0.1.34" - }, - "dependencies": { - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nise": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", - "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "dev": true, - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^2.1.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.5", - "istanbul-reports": "^1.4.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", - "yargs": "11.1.0", - "yargs-parser": "^8.0.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "async": { - "version": "1.5.2", - "bundled": true, - "dev": true - }, - "atob": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "dev": true, - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true, - "dev": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "handlebars": "^4.0.3" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true, - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "ret": { - "version": "0.1.15", - "bundled": true, - "dev": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true, - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true, - "dev": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true, - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "proxyquire": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", - "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", - "dev": true, - "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" - }, - "dependencies": { - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "sinon": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.1.4.tgz", - "integrity": "sha512-NFEts+4D4jp2sBjL94fQpZk5o73kzn/g58+I9Dp15i9vsnT4Lk1UEyUf2jACODWLG6Pz/llF0sArYUw47Aarmg==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "@sinonjs/samsam": "^2.0.0", - "diff": "^3.5.0", - "lodash.get": "^4.4.2", - "lolex": "^2.7.1", - "nise": "^1.4.2", - "supports-color": "^5.4.0", - "type-detect": "^4.0.8" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split-array-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", - "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", - "requires": { - "is-stream-ended": "^0.1.4" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stream-events": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", - "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", - "requires": { - "stubs": "^3.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.27.2" - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", - "dev": true - }, - "typescript": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz", - "integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==", - "dev": true - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "urlgrey": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", - "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } -} From be1a4388c4f03b12355667d11218ae79caa6aa87 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 28 Aug 2018 07:56:45 -0700 Subject: [PATCH 014/279] chore(deps): update dependency nyc to v13 (#12) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index dbe9804e9ff..edd7bcf8046 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -37,7 +37,7 @@ "hard-rejection": "^1.0.0", "intelli-espower-loader": "^1.0.1", "mocha": "^5.2.0", - "nyc": "^12.0.2", + "nyc": "^13.0.0", "proxyquire": "^2.0.1", "sinon": "^6.1.3", "source-map-support": "^0.5.6", From f1ff0676507361ee71493b86d629f77b661bb598 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 5 Sep 2018 10:38:17 -0700 Subject: [PATCH 015/279] Add synth script and update CI config (#14) --- core/paginator/.appveyor.yml | 20 +++ core/paginator/.circleci/config.yml | 127 ++++++++++++++++-- core/paginator/.circleci/npm-install-retry.js | 60 +++++++++ core/paginator/.eslintignore | 3 + core/paginator/.eslintrc.yml | 13 ++ core/paginator/.github/ISSUE_TEMPLATE.md | 7 +- core/paginator/.jsdoc.js | 45 +++++++ core/paginator/.kokoro/common.cfg | 24 ++++ .../.kokoro/continuous/node10/common.cfg | 24 ++++ .../.kokoro/continuous/node10/test.cfg | 0 .../.kokoro/continuous/node6/common.cfg | 24 ++++ .../.kokoro/continuous/node6/test.cfg | 0 .../.kokoro/continuous/node8/common.cfg | 24 ++++ .../.kokoro/continuous/node8/docs.cfg | 4 + .../.kokoro/continuous/node8/lint.cfg | 4 + .../.kokoro/continuous/node8/samples-test.cfg | 7 + .../.kokoro/continuous/node8/system-test.cfg | 7 + .../.kokoro/continuous/node8/test.cfg | 0 core/paginator/.kokoro/docs.sh | 23 ++++ core/paginator/.kokoro/lint.sh | 29 ++++ .../.kokoro/presubmit/node10/common.cfg | 24 ++++ .../.kokoro/presubmit/node10/test.cfg | 0 .../.kokoro/presubmit/node6/common.cfg | 24 ++++ .../.kokoro/presubmit/node6/test.cfg | 0 .../.kokoro/presubmit/node8/common.cfg | 24 ++++ .../.kokoro/presubmit/node8/docs.cfg | 4 + .../.kokoro/presubmit/node8/lint.cfg | 4 + .../.kokoro/presubmit/node8/test.cfg | 0 .../.kokoro/presubmit/windows/common.cfg | 9 ++ .../.kokoro/presubmit/windows/test.cfg | 2 + core/paginator/.kokoro/samples-test.sh | 33 +++++ core/paginator/.kokoro/system-test.sh | 26 ++++ core/paginator/.kokoro/test.bat | 26 ++++ core/paginator/.kokoro/test.sh | 23 ++++ core/paginator/.kokoro/trampoline.sh | 27 ++++ core/paginator/.nycrc | 26 ++++ core/paginator/package.json | 9 +- core/paginator/synth.py | 7 + core/paginator/system-test/.eslintrc.yml | 3 + core/paginator/system-test/system.ts | 17 +++ core/paginator/tsconfig.json | 8 +- 41 files changed, 719 insertions(+), 22 deletions(-) create mode 100644 core/paginator/.appveyor.yml create mode 100755 core/paginator/.circleci/npm-install-retry.js create mode 100644 core/paginator/.eslintignore create mode 100644 core/paginator/.eslintrc.yml create mode 100644 core/paginator/.jsdoc.js create mode 100644 core/paginator/.kokoro/common.cfg create mode 100644 core/paginator/.kokoro/continuous/node10/common.cfg create mode 100644 core/paginator/.kokoro/continuous/node10/test.cfg create mode 100644 core/paginator/.kokoro/continuous/node6/common.cfg create mode 100644 core/paginator/.kokoro/continuous/node6/test.cfg create mode 100644 core/paginator/.kokoro/continuous/node8/common.cfg create mode 100644 core/paginator/.kokoro/continuous/node8/docs.cfg create mode 100644 core/paginator/.kokoro/continuous/node8/lint.cfg create mode 100644 core/paginator/.kokoro/continuous/node8/samples-test.cfg create mode 100644 core/paginator/.kokoro/continuous/node8/system-test.cfg create mode 100644 core/paginator/.kokoro/continuous/node8/test.cfg create mode 100755 core/paginator/.kokoro/docs.sh create mode 100755 core/paginator/.kokoro/lint.sh create mode 100644 core/paginator/.kokoro/presubmit/node10/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/node10/test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node6/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/node6/test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/docs.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/lint.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/test.cfg create mode 100644 core/paginator/.kokoro/presubmit/windows/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/windows/test.cfg create mode 100755 core/paginator/.kokoro/samples-test.sh create mode 100755 core/paginator/.kokoro/system-test.sh create mode 100644 core/paginator/.kokoro/test.bat create mode 100755 core/paginator/.kokoro/test.sh create mode 100755 core/paginator/.kokoro/trampoline.sh create mode 100644 core/paginator/.nycrc create mode 100644 core/paginator/synth.py create mode 100644 core/paginator/system-test/.eslintrc.yml create mode 100644 core/paginator/system-test/system.ts diff --git a/core/paginator/.appveyor.yml b/core/paginator/.appveyor.yml new file mode 100644 index 00000000000..24082152655 --- /dev/null +++ b/core/paginator/.appveyor.yml @@ -0,0 +1,20 @@ +environment: + matrix: + - nodejs_version: 8 + +install: + - ps: Install-Product node $env:nodejs_version + - npm install -g npm # Force using the latest npm to get dedupe during install + - set PATH=%APPDATA%\npm;%PATH% + - npm install --force --ignore-scripts + +test_script: + - node --version + - npm --version + - npm rebuild + - npm test + +build: off + +matrix: + fast_finish: true diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml index a8d44648347..80dcf7e67d9 100644 --- a/core/paginator/.circleci/config.yml +++ b/core/paginator/.circleci/config.yml @@ -12,17 +12,39 @@ workflows: - node10: filters: *all_commits - lint: + requires: + - node6 + - node8 + - node10 filters: *all_commits - - publish_npm: + - docs: requires: - node6 - node8 - node10 + filters: *all_commits + - system_tests: + requires: + - lint + - docs + filters: &master_and_releases + branches: + only: master + tags: &releases + only: '/^v[\d.]+$/' + - sample_tests: + requires: + - lint + - docs + filters: *master_and_releases + - publish_npm: + requires: + - system_tests + - sample_tests filters: branches: ignore: /.*/ - tags: - only: '/^v[\d.]+$/' + tags: *releases nightly: triggers: - schedule: @@ -37,10 +59,17 @@ jobs: - image: 'node:6' user: node steps: &unit_tests_steps - - checkout - - run: npm install + - checkout + - run: &npm_install_and_link + name: Install and link the module + command: |- + mkdir -p /home/node/.npm-global + ./.circleci/npm-install-retry.js + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: npm test - - run: npm run codecov + - run: node_modules/.bin/codecov + node8: docker: - image: 'node:8' @@ -57,14 +86,92 @@ jobs: user: node steps: - checkout - - run: npm install - - run: npm run check + - run: *npm_install_and_link + - run: &samples_npm_install_and_link + name: Link the module being tested to the samples. + command: | + cd samples/ + npm link ../ + ./../.circleci/npm-install-retry.js + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: + name: Run linting. + command: npm run lint + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global + docs: + docker: + - image: 'node:8' + user: node + steps: + - checkout + - run: *npm_install_and_link + - run: npm run docs + sample_tests: + docker: + - image: 'node:8' + user: node + steps: + - checkout + - run: + name: Decrypt credentials. + command: | + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + openssl aes-256-cbc -d -in .circleci/key.json.enc \ + -out .circleci/key.json \ + -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + fi + - run: *npm_install_and_link + - run: *samples_npm_install_and_link + - run: + name: Run sample tests. + command: npm run samples-test + environment: + GCLOUD_PROJECT: long-door-651 + GOOGLE_APPLICATION_CREDENTIALS: /home/node/samples/.circleci/key.json + NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: + name: Remove unencrypted key. + command: | + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + rm .circleci/key.json + fi + when: always + working_directory: /home/node/samples/ + system_tests: + docker: + - image: 'node:8' + user: node + steps: + - checkout + - run: + name: Decrypt credentials. + command: | + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + openssl aes-256-cbc -d -in .circleci/key.json.enc \ + -out .circleci/key.json \ + -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + fi + - run: *npm_install_and_link + - run: + name: Run system tests. + command: npm run system-test + environment: + GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json + - run: + name: Remove unencrypted key. + command: | + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + rm .circleci/key.json + fi + when: always publish_npm: docker: - image: 'node:8' user: node steps: - checkout + - run: ./.circleci/npm-install-retry.js - run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc - - run: npm install - - run: npm publish --access public + - run: npm publish --access=public diff --git a/core/paginator/.circleci/npm-install-retry.js b/core/paginator/.circleci/npm-install-retry.js new file mode 100755 index 00000000000..ae3220d7348 --- /dev/null +++ b/core/paginator/.circleci/npm-install-retry.js @@ -0,0 +1,60 @@ +#!/usr/bin/env node + +let spawn = require('child_process').spawn; + +// +//USE: ./index.js [... NPM ARGS] +// + +let timeout = process.argv[2] || 60000; +let attempts = process.argv[3] || 3; +let args = process.argv.slice(4); +if (args.length === 0) { + args = ['install']; +} + +(function npm() { + let timer; + args.push('--verbose'); + let proc = spawn('npm', args); + proc.stdout.pipe(process.stdout); + proc.stderr.pipe(process.stderr); + proc.stdin.end(); + proc.stdout.on('data', () => { + setTimer(); + }); + proc.stderr.on('data', () => { + setTimer(); + }); + + // side effect: this also restarts when npm exits with a bad code even if it + // didnt timeout + proc.on('close', (code, signal) => { + clearTimeout(timer); + if (code || signal) { + console.log('[npm-are-you-sleeping] npm exited with code ' + code + ''); + + if (--attempts) { + console.log('[npm-are-you-sleeping] restarting'); + npm(); + } else { + console.log('[npm-are-you-sleeping] i tried lots of times. giving up.'); + throw new Error("npm install fails"); + } + } + }); + + function setTimer() { + clearTimeout(timer); + timer = setTimeout(() => { + console.log('[npm-are-you-sleeping] killing npm with SIGTERM'); + proc.kill('SIGTERM'); + // wait a couple seconds + timer = setTimeout(() => { + // its it's still not closed sigkill + console.log('[npm-are-you-sleeping] killing npm with SIGKILL'); + proc.kill('SIGKILL'); + }, 2000); + }, timeout); + } +})(); diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore new file mode 100644 index 00000000000..f6fac98b0a8 --- /dev/null +++ b/core/paginator/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +samples/node_modules/* +src/**/doc/* diff --git a/core/paginator/.eslintrc.yml b/core/paginator/.eslintrc.yml new file mode 100644 index 00000000000..bed57fbc42c --- /dev/null +++ b/core/paginator/.eslintrc.yml @@ -0,0 +1,13 @@ +--- +extends: + - 'eslint:recommended' + - 'plugin:node/recommended' + - prettier +plugins: + - node + - prettier +rules: + prettier/prettier: error + block-scoped-var: error + eqeqeq: error + no-warning-comments: warn diff --git a/core/paginator/.github/ISSUE_TEMPLATE.md b/core/paginator/.github/ISSUE_TEMPLATE.md index e5b9dc84b1f..ed1c681e0aa 100644 --- a/core/paginator/.github/ISSUE_TEMPLATE.md +++ b/core/paginator/.github/ISSUE_TEMPLATE.md @@ -3,10 +3,9 @@ Thanks for stopping by to let us know something could be better! Please run down the following list and make sure you've tried the usual "quick fixes": - - Search the issues already opened: https://github.com/googlecloudplatform/google-cloud-node/issues + - Search the issues already opened: https://github.com/googleapis/nodejs-paginator/issues + - Search the issues on our "catch-all" repository: https://github.com/GoogleCloudPlatform/google-cloud-node - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js - - Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting - - Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq If you are still having issues, please be sure to include as much information as possible: @@ -16,7 +15,7 @@ possible: - OS: - Node.js version: - npm version: - - @google-cloud/common version: + - `@google-cloud/paginator` version: #### Steps to reproduce diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js new file mode 100644 index 00000000000..0dcc1d44fee --- /dev/null +++ b/core/paginator/.jsdoc.js @@ -0,0 +1,45 @@ +/*! + * Copyright 2018 Google LLC. 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. + */ + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/ink-docstrap/template', + recurse: true, + verbose: true, + destination: './docs/' + }, + plugins: [ + 'plugins/markdown' + ], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: [ + 'src' + ], + includePattern: '\\.js$' + }, + templates: { + copyright: 'Copyright 2018 Google, LLC.', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/paginator', + theme: 'lumen' + } +}; diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg new file mode 100644 index 00000000000..02a0d430cb0 --- /dev/null +++ b/core/paginator/.kokoro/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node10/common.cfg b/core/paginator/.kokoro/continuous/node10/common.cfg new file mode 100644 index 00000000000..02a0d430cb0 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node10/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/continuous/node6/common.cfg b/core/paginator/.kokoro/continuous/node6/common.cfg new file mode 100644 index 00000000000..0f9915b13e5 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node6/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:6" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node6/test.cfg b/core/paginator/.kokoro/continuous/node6/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/continuous/node8/common.cfg b/core/paginator/.kokoro/continuous/node8/common.cfg new file mode 100644 index 00000000000..6abe1a38c10 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node8/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node8/docs.cfg b/core/paginator/.kokoro/continuous/node8/docs.cfg new file mode 100644 index 00000000000..d01653e4cf7 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node8/docs.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/docs.sh" +} diff --git a/core/paginator/.kokoro/continuous/node8/lint.cfg b/core/paginator/.kokoro/continuous/node8/lint.cfg new file mode 100644 index 00000000000..939fa12b6d0 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node8/lint.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/lint.sh" +} diff --git a/core/paginator/.kokoro/continuous/node8/samples-test.cfg b/core/paginator/.kokoro/continuous/node8/samples-test.cfg new file mode 100644 index 00000000000..3a84472f882 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node8/samples-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/samples-test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node8/system-test.cfg b/core/paginator/.kokoro/continuous/node8/system-test.cfg new file mode 100644 index 00000000000..f94bfc2ff77 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node8/system-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node8/test.cfg b/core/paginator/.kokoro/continuous/node8/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh new file mode 100755 index 00000000000..1d288f3d475 --- /dev/null +++ b/core/paginator/.kokoro/docs.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -xeo pipefail + +cd $(dirname $0)/.. + +npm install + +npm run docs diff --git a/core/paginator/.kokoro/lint.sh b/core/paginator/.kokoro/lint.sh new file mode 100755 index 00000000000..9d29203edc2 --- /dev/null +++ b/core/paginator/.kokoro/lint.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -xeo pipefail + +cd $(dirname $0)/.. + +npm install + +# Install and link samples +cd samples/ +npm link ../ +npm install +cd .. + +npm run lint diff --git a/core/paginator/.kokoro/presubmit/node10/common.cfg b/core/paginator/.kokoro/presubmit/node10/common.cfg new file mode 100644 index 00000000000..02a0d430cb0 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node10/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node10/test.cfg b/core/paginator/.kokoro/presubmit/node10/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/presubmit/node6/common.cfg b/core/paginator/.kokoro/presubmit/node6/common.cfg new file mode 100644 index 00000000000..0f9915b13e5 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node6/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:6" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node6/test.cfg b/core/paginator/.kokoro/presubmit/node6/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/presubmit/node8/common.cfg b/core/paginator/.kokoro/presubmit/node8/common.cfg new file mode 100644 index 00000000000..6abe1a38c10 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node8/docs.cfg b/core/paginator/.kokoro/presubmit/node8/docs.cfg new file mode 100644 index 00000000000..d01653e4cf7 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/docs.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/docs.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node8/lint.cfg b/core/paginator/.kokoro/presubmit/node8/lint.cfg new file mode 100644 index 00000000000..939fa12b6d0 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/lint.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/lint.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node8/test.cfg b/core/paginator/.kokoro/presubmit/node8/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/presubmit/windows/common.cfg b/core/paginator/.kokoro/presubmit/windows/common.cfg new file mode 100644 index 00000000000..7320db792a4 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/windows/common.cfg @@ -0,0 +1,9 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + diff --git a/core/paginator/.kokoro/presubmit/windows/test.cfg b/core/paginator/.kokoro/presubmit/windows/test.cfg new file mode 100644 index 00000000000..c47d07b54a9 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/windows/test.cfg @@ -0,0 +1,2 @@ +# Use the test file directly +build_file: "nodejs-paginator/.kokoro/test.bat" diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh new file mode 100755 index 00000000000..93af79aa3b3 --- /dev/null +++ b/core/paginator/.kokoro/samples-test.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -xeo pipefail + +# Setup service account credentials. +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GCLOUD_PROJECT=long-door-651 + +cd $(dirname $0)/.. + +npm install + +# Install and link samples +cd samples/ +npm link ../ +npm install +cd .. + +npm run samples-test diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh new file mode 100755 index 00000000000..299032dc3a2 --- /dev/null +++ b/core/paginator/.kokoro/system-test.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -xeo pipefail + +# Setup service account credentials. +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json + +cd $(dirname $0)/.. + +npm install + +npm run system-test diff --git a/core/paginator/.kokoro/test.bat b/core/paginator/.kokoro/test.bat new file mode 100644 index 00000000000..a8534ba801c --- /dev/null +++ b/core/paginator/.kokoro/test.bat @@ -0,0 +1,26 @@ +@rem Copyright 2018 gRPC authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. + +@echo "Starting Windows build" + +cd /d %~dp0 +cd .. + +call npm install || goto :error +call npm run test || goto :error + +goto :EOF + +:error +exit /b 1 diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh new file mode 100755 index 00000000000..7f49f6d32ee --- /dev/null +++ b/core/paginator/.kokoro/test.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -xeo pipefail + +cd $(dirname $0)/.. + +npm install +npm test +node_modules/.bin/codecov diff --git a/core/paginator/.kokoro/trampoline.sh b/core/paginator/.kokoro/trampoline.sh new file mode 100755 index 00000000000..87ffd2ca960 --- /dev/null +++ b/core/paginator/.kokoro/trampoline.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright 2017 Google Inc. +# +# 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. + +set -xeo pipefail + +# Always run the cleanup script, regardless of the success of bouncing into +# the container. +function cleanup() { + chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + echo "cleanup"; +} +trap cleanup EXIT + +python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc new file mode 100644 index 00000000000..a1a8e6920ce --- /dev/null +++ b/core/paginator/.nycrc @@ -0,0 +1,26 @@ +{ + "report-dir": "./.coverage", + "exclude": [ + "src/*{/*,/**/*}.js", + "src/*/v*/*.js", + "test/**/*.js" + ], + "watermarks": { + "branches": [ + 95, + 100 + ], + "functions": [ + 95, + 100 + ], + "lines": [ + 95, + 100 + ], + "statements": [ + 95, + 100 + ] + } +} diff --git a/core/paginator/package.json b/core/paginator/package.json index edd7bcf8046..31de868f7f3 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -4,17 +4,22 @@ "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", + "repository": "googleapis/nodejs-paginator", "scripts": { "test": "npm run test-only", "test-only": "nyc mocha build/test", "codecov": "nyc report --reporter=json && codecov -f coverage/*.json", - "check": "gts check", + "lint": "gts check", "clean": "gts clean", "compile": "tsc -p .", "fix": "gts fix", "prepare": "npm run compile", "pretest": "npm run compile", - "posttest": "npm run check" + "posttest": "npm run lint", + "docs": "echo no docs 👻", + "presystem-test": "npm run compile", + "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", + "system-test": "mocha build/system-test" }, "keywords": [], "files": [ diff --git a/core/paginator/synth.py b/core/paginator/synth.py new file mode 100644 index 00000000000..76fcb2603b8 --- /dev/null +++ b/core/paginator/synth.py @@ -0,0 +1,7 @@ +import synthtool as s +import synthtool.gcp as gcp +import logging +logging.basicConfig(level=logging.DEBUG) +common_templates = gcp.CommonTemplates() +templates = common_templates.node_library() +s.copy(templates) diff --git a/core/paginator/system-test/.eslintrc.yml b/core/paginator/system-test/.eslintrc.yml new file mode 100644 index 00000000000..282535f55f6 --- /dev/null +++ b/core/paginator/system-test/.eslintrc.yml @@ -0,0 +1,3 @@ +--- +rules: + no-console: off diff --git a/core/paginator/system-test/system.ts b/core/paginator/system-test/system.ts new file mode 100644 index 00000000000..4672462af5d --- /dev/null +++ b/core/paginator/system-test/system.ts @@ -0,0 +1,17 @@ +/** + * Copyright 2018 Google LLC. 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. + */ + +console.warn(`no system tests available 👻`); diff --git a/core/paginator/tsconfig.json b/core/paginator/tsconfig.json index 7c8f5d4674a..b10ee498aef 100644 --- a/core/paginator/tsconfig.json +++ b/core/paginator/tsconfig.json @@ -2,15 +2,11 @@ "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { "rootDir": ".", - "outDir": "build", - "target": "es5", - "esModuleInterop": false, - "allowSyntheticDefaultImports": false + "outDir": "build" }, "include": [ "src/*.ts", - "src/**/*.ts", "test/*.ts", - "test/**/*.ts" + "system-test/*.ts" ] } From e05fd4d483f7f0f3d3f82ce3ba0ee20fe8997566 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 7 Sep 2018 19:27:21 -0700 Subject: [PATCH 016/279] Release v0.1.1 (#17) --- core/paginator/CHANGELOG.md | 20 ++++++++++++++++++++ core/paginator/package.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 core/paginator/CHANGELOG.md diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md new file mode 100644 index 00000000000..2b50f668359 --- /dev/null +++ b/core/paginator/CHANGELOG.md @@ -0,0 +1,20 @@ +# Changelog + +[npm history][1] + +[1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions + +## v0.1.1 + +### Internal / Testing Changes +- Add synth script and update CI config (#14) +- chore(deps): update dependency nyc to v13 (#12) +- chore: ignore package-lock.json (#11) +- chore(deps): lock file maintenance (#10) +- chore: update renovate config (#9) +- remove that whitespace (#8) +- chore(deps): lock file maintenance (#7) +- chore(deps): update dependency typescript to v3 (#6) +- chore: assert.deelEqual => assert.deepStrictEqual (#5) +- chore: move mocha options to mocha.opts (#4) + diff --git a/core/paginator/package.json b/core/paginator/package.json index 31de868f7f3..e379f1ee115 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "0.1.0", + "version": "0.1.1", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 2a95cb4134924c18bfbea5c4b3090cc83ead2668 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Mon, 10 Sep 2018 08:03:36 -0700 Subject: [PATCH 017/279] Update CI config (#18) --- core/paginator/.circleci/config.yml | 11 +++++++---- core/paginator/.kokoro/common.cfg | 2 +- core/paginator/.kokoro/continuous/node10/common.cfg | 2 +- core/paginator/.kokoro/continuous/node6/common.cfg | 2 +- core/paginator/.kokoro/continuous/node8/common.cfg | 2 +- core/paginator/.kokoro/docs.sh | 2 ++ core/paginator/.kokoro/lint.sh | 2 ++ core/paginator/.kokoro/presubmit/node10/common.cfg | 2 +- core/paginator/.kokoro/presubmit/node6/common.cfg | 2 +- core/paginator/.kokoro/presubmit/node8/common.cfg | 2 +- core/paginator/.kokoro/samples-test.sh | 2 ++ core/paginator/.kokoro/system-test.sh | 8 ++++++++ core/paginator/.kokoro/test.sh | 2 ++ 13 files changed, 30 insertions(+), 11 deletions(-) diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml index 80dcf7e67d9..8af6a4d0489 100644 --- a/core/paginator/.circleci/config.yml +++ b/core/paginator/.circleci/config.yml @@ -149,21 +149,24 @@ jobs: name: Decrypt credentials. command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - openssl aes-256-cbc -d -in .circleci/key.json.enc \ - -out .circleci/key.json \ - -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + for encrypted_key in .circleci/*.json.enc; do + openssl aes-256-cbc -d -in $encrypted_key \ + -out $(echo $encrypted_key | sed 's/\.enc//') \ + -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + done fi - run: *npm_install_and_link - run: name: Run system tests. command: npm run system-test environment: + GCLOUD_PROJECT: long-door-651 GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json - run: name: Remove unencrypted key. command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - rm .circleci/key.json + rm .circleci/*.json fi when: always publish_npm: diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 02a0d430cb0..0481f24a315 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/continuous/node10/common.cfg b/core/paginator/.kokoro/continuous/node10/common.cfg index 02a0d430cb0..0481f24a315 100644 --- a/core/paginator/.kokoro/continuous/node10/common.cfg +++ b/core/paginator/.kokoro/continuous/node10/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/continuous/node6/common.cfg b/core/paginator/.kokoro/continuous/node6/common.cfg index 0f9915b13e5..559b68128ec 100644 --- a/core/paginator/.kokoro/continuous/node6/common.cfg +++ b/core/paginator/.kokoro/continuous/node6/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:6" + value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/continuous/node8/common.cfg b/core/paginator/.kokoro/continuous/node8/common.cfg index 6abe1a38c10..ffb8804ee15 100644 --- a/core/paginator/.kokoro/continuous/node8/common.cfg +++ b/core/paginator/.kokoro/continuous/node8/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh index 1d288f3d475..3af3193411a 100755 --- a/core/paginator/.kokoro/docs.sh +++ b/core/paginator/.kokoro/docs.sh @@ -16,6 +16,8 @@ set -xeo pipefail +export NPM_CONFIG_PREFIX=/home/node/.npm-global + cd $(dirname $0)/.. npm install diff --git a/core/paginator/.kokoro/lint.sh b/core/paginator/.kokoro/lint.sh index 9d29203edc2..7c2ea2a28f9 100755 --- a/core/paginator/.kokoro/lint.sh +++ b/core/paginator/.kokoro/lint.sh @@ -16,6 +16,8 @@ set -xeo pipefail +export NPM_CONFIG_PREFIX=/home/node/.npm-global + cd $(dirname $0)/.. npm install diff --git a/core/paginator/.kokoro/presubmit/node10/common.cfg b/core/paginator/.kokoro/presubmit/node10/common.cfg index 02a0d430cb0..0481f24a315 100644 --- a/core/paginator/.kokoro/presubmit/node10/common.cfg +++ b/core/paginator/.kokoro/presubmit/node10/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/presubmit/node6/common.cfg b/core/paginator/.kokoro/presubmit/node6/common.cfg index 0f9915b13e5..559b68128ec 100644 --- a/core/paginator/.kokoro/presubmit/node6/common.cfg +++ b/core/paginator/.kokoro/presubmit/node6/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:6" + value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/presubmit/node8/common.cfg b/core/paginator/.kokoro/presubmit/node8/common.cfg index 6abe1a38c10..ffb8804ee15 100644 --- a/core/paginator/.kokoro/presubmit/node8/common.cfg +++ b/core/paginator/.kokoro/presubmit/node8/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 93af79aa3b3..76edbbbb247 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -16,6 +16,8 @@ set -xeo pipefail +export NPM_CONFIG_PREFIX=/home/node/.npm-global + # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json export GCLOUD_PROJECT=long-door-651 diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 299032dc3a2..a954b79429d 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -16,11 +16,19 @@ set -xeo pipefail +export NPM_CONFIG_PREFIX=/home/node/.npm-global + # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. +# Run a pre-test hook, if a pre-system-test.sh is in the project +if [ -f .kokoro/pre-system-test.sh ]; then + . .kokoro/pre-system-test.sh +fi + npm install npm run system-test diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 7f49f6d32ee..51f29589b19 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -16,6 +16,8 @@ set -xeo pipefail +export NPM_CONFIG_PREFIX=/home/node/.npm-global + cd $(dirname $0)/.. npm install From 401a7d2f1a0eb388f47216f85c80fb04137a78b3 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 18 Sep 2018 10:52:27 -0700 Subject: [PATCH 018/279] Enable no-var in eslint (#19) --- core/paginator/.eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.eslintrc.yml b/core/paginator/.eslintrc.yml index bed57fbc42c..65f1dce6c0c 100644 --- a/core/paginator/.eslintrc.yml +++ b/core/paginator/.eslintrc.yml @@ -11,3 +11,4 @@ rules: block-scoped-var: error eqeqeq: error no-warning-comments: warn + no-var: error From aa471552cbee7829195c013ee89378f9a69974cb Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 20 Sep 2018 12:30:43 -0700 Subject: [PATCH 019/279] Enable prefer-const in the eslint config (#20) --- core/paginator/.eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.eslintrc.yml b/core/paginator/.eslintrc.yml index 65f1dce6c0c..73eeec27612 100644 --- a/core/paginator/.eslintrc.yml +++ b/core/paginator/.eslintrc.yml @@ -12,3 +12,4 @@ rules: eqeqeq: error no-warning-comments: warn no-var: error + prefer-const: error From 549075717a7ee8a9939604811a84f96fc5930e41 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Fri, 21 Sep 2018 15:07:23 -0700 Subject: [PATCH 020/279] Update CI config (#21) --- core/paginator/.circleci/npm-install-retry.js | 2 +- core/paginator/.kokoro/presubmit/node8/samples-test.cfg | 7 +++++++ core/paginator/.kokoro/presubmit/node8/system-test.cfg | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 core/paginator/.kokoro/presubmit/node8/samples-test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/system-test.cfg diff --git a/core/paginator/.circleci/npm-install-retry.js b/core/paginator/.circleci/npm-install-retry.js index ae3220d7348..3240aa2cbf2 100755 --- a/core/paginator/.circleci/npm-install-retry.js +++ b/core/paginator/.circleci/npm-install-retry.js @@ -6,7 +6,7 @@ let spawn = require('child_process').spawn; //USE: ./index.js [... NPM ARGS] // -let timeout = process.argv[2] || 60000; +let timeout = process.argv[2] || process.env.NPM_INSTALL_TIMEOUT || 60000; let attempts = process.argv[3] || 3; let args = process.argv.slice(4); if (args.length === 0) { diff --git a/core/paginator/.kokoro/presubmit/node8/samples-test.cfg b/core/paginator/.kokoro/presubmit/node8/samples-test.cfg new file mode 100644 index 00000000000..3a84472f882 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/samples-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/samples-test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node8/system-test.cfg b/core/paginator/.kokoro/presubmit/node8/system-test.cfg new file mode 100644 index 00000000000..f94bfc2ff77 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/system-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} From 082a6a0ef058053e0e0c9b3b2a56810d7ff02111 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 24 Sep 2018 17:01:41 -0700 Subject: [PATCH 021/279] test: remove appveyor config (#22) --- core/paginator/.appveyor.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 core/paginator/.appveyor.yml diff --git a/core/paginator/.appveyor.yml b/core/paginator/.appveyor.yml deleted file mode 100644 index 24082152655..00000000000 --- a/core/paginator/.appveyor.yml +++ /dev/null @@ -1,20 +0,0 @@ -environment: - matrix: - - nodejs_version: 8 - -install: - - ps: Install-Product node $env:nodejs_version - - npm install -g npm # Force using the latest npm to get dedupe during install - - set PATH=%APPDATA%\npm;%PATH% - - npm install --force --ignore-scripts - -test_script: - - node --version - - npm --version - - npm rebuild - - npm test - -build: off - -matrix: - fast_finish: true From cdd351a1364e6db820d316ace296ddecdb835374 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Tue, 25 Sep 2018 07:42:43 -0700 Subject: [PATCH 022/279] Update kokoro config (#23) --- core/paginator/.kokoro/samples-test.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 76edbbbb247..a91cbf5a67b 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -24,6 +24,11 @@ export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. +# Run a pre-test hook, if a pre-samples-test.sh is in the project +if [ -f .kokoro/pre-samples-test.sh ]; then + . .kokoro/pre-samples-test.sh +fi + npm install # Install and link samples From b9719da13cfae46d81db451b13561879ab8beb19 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Wed, 26 Sep 2018 17:14:34 -0700 Subject: [PATCH 023/279] build: prevent system/sample-test from leaking credentials --- core/paginator/.kokoro/samples-test.sh | 2 ++ core/paginator/.kokoro/system-test.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index a91cbf5a67b..5a81ec01fcc 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -26,7 +26,9 @@ cd $(dirname $0)/.. # Run a pre-test hook, if a pre-samples-test.sh is in the project if [ -f .kokoro/pre-samples-test.sh ]; then + set +x . .kokoro/pre-samples-test.sh + set -x fi npm install diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index a954b79429d..fd8f0b638d0 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -26,7 +26,9 @@ cd $(dirname $0)/.. # Run a pre-test hook, if a pre-system-test.sh is in the project if [ -f .kokoro/pre-system-test.sh ]; then + set +x . .kokoro/pre-system-test.sh + set -x fi npm install From 03e004117d8a91ed701449c52df355ad7e1064c1 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 27 Sep 2018 12:06:24 -0700 Subject: [PATCH 024/279] Don't publish sourcemaps (#25) --- core/paginator/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index e379f1ee115..f0b6cb7e918 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -23,7 +23,8 @@ }, "keywords": [], "files": [ - "build/src" + "build/src", + "!build/src/**/*.map" ], "author": "Google Inc.", "license": "Apache-2.0", From 6559502ae7183c83cd6d254da8daa6622eb54252 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Thu, 27 Sep 2018 19:18:18 -0700 Subject: [PATCH 025/279] Update CI config (#27) --- core/paginator/.circleci/config.yml | 2 -- core/paginator/.kokoro/test.bat | 2 ++ core/paginator/.kokoro/test.sh | 3 ++- core/paginator/codecov.yaml | 4 ++++ 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 core/paginator/codecov.yaml diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml index 8af6a4d0489..da54155fc57 100644 --- a/core/paginator/.circleci/config.yml +++ b/core/paginator/.circleci/config.yml @@ -68,8 +68,6 @@ jobs: environment: NPM_CONFIG_PREFIX: /home/node/.npm-global - run: npm test - - run: node_modules/.bin/codecov - node8: docker: - image: 'node:8' diff --git a/core/paginator/.kokoro/test.bat b/core/paginator/.kokoro/test.bat index a8534ba801c..d60473666b0 100644 --- a/core/paginator/.kokoro/test.bat +++ b/core/paginator/.kokoro/test.bat @@ -17,6 +17,8 @@ cd /d %~dp0 cd .. +call npm install -g npm@5 || goto :error + call npm install || goto :error call npm run test || goto :error diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 51f29589b19..eb25b89b95e 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -22,4 +22,5 @@ cd $(dirname $0)/.. npm install npm test -node_modules/.bin/codecov + +bash $KOKORO_GFILE_DIR/codecov.sh diff --git a/core/paginator/codecov.yaml b/core/paginator/codecov.yaml new file mode 100644 index 00000000000..5724ea9478d --- /dev/null +++ b/core/paginator/codecov.yaml @@ -0,0 +1,4 @@ +--- +codecov: + ci: + - source.cloud.google.com From 87bf42f3015884105c26d896a338bcb85d90d281 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Tue, 2 Oct 2018 08:10:21 -0700 Subject: [PATCH 026/279] Update kokoro config (#29) --- core/paginator/.kokoro/common.cfg | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 0481f24a315..31aee2978a6 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -13,6 +13,17 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. build_file: "nodejs-paginator/.kokoro/trampoline.sh" +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + backend_type: FASTCONFIGPUSH + } + } +} + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" From bf973bf3ac130d08a2502b7ce8db8a0a921793c4 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 15 Oct 2018 14:44:14 -0700 Subject: [PATCH 027/279] build: fix codecov uploading on Kokoro (#32) * build: fix codecov uploading on Kokoro * build: fix codecov uploading on Kokoro --- core/paginator/.kokoro/common.cfg | 11 ----------- core/paginator/.kokoro/presubmit/node8/test.cfg | 9 +++++++++ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 31aee2978a6..0481f24a315 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -13,17 +13,6 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. build_file: "nodejs-paginator/.kokoro/trampoline.sh" -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - backend_type: FASTCONFIGPUSH - } - } -} - # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/core/paginator/.kokoro/presubmit/node8/test.cfg b/core/paginator/.kokoro/presubmit/node8/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/core/paginator/.kokoro/presubmit/node8/test.cfg +++ b/core/paginator/.kokoro/presubmit/node8/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} From 103d114fd20e9329ee566a95d300d91097242fb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 15 Oct 2018 14:48:19 -0700 Subject: [PATCH 028/279] chore(deps): update dependency sinon to v7 (#31) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index f0b6cb7e918..28af3f77525 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -45,7 +45,7 @@ "mocha": "^5.2.0", "nyc": "^13.0.0", "proxyquire": "^2.0.1", - "sinon": "^6.1.3", + "sinon": "^7.0.0", "source-map-support": "^0.5.6", "through2": "^2.0.3", "typescript": "^3.0.0", From ee96ed18ff45361de2a6603c5fcc24fe701fc510 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Sat, 20 Oct 2018 12:44:33 -0700 Subject: [PATCH 029/279] chore: update new issue template (#35) chore: update new issue template --- core/paginator/.github/bug_report.md | 33 +++++++++++++++++++++++ core/paginator/.github/feature_request.md | 18 +++++++++++++ core/paginator/.github/support_request.md | 7 +++++ 3 files changed, 58 insertions(+) create mode 100644 core/paginator/.github/bug_report.md create mode 100644 core/paginator/.github/feature_request.md create mode 100644 core/paginator/.github/support_request.md diff --git a/core/paginator/.github/bug_report.md b/core/paginator/.github/bug_report.md new file mode 100644 index 00000000000..e9efaf71e59 --- /dev/null +++ b/core/paginator/.github/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +Thanks for stopping by to let us know something could be better! + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. + +Please run down the following list and make sure you've tried the usual "quick fixes": + + - Search the issues already opened: https://github.com/googleapis/nodejs-paginator/issues + - Search the issues on our "catch-all" repository: https://github.com/googleapis/google-cloud-node + - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js + +If you are still having issues, please be sure to include as much information as possible: + +#### Environment details + + - OS: + - Node.js version: + - npm version: + - `@google-cloud/paginator` version: + +#### Steps to reproduce + + 1. ? + 2. ? + +Making sure to follow these steps will guarantee the quickest resolution possible. + +Thanks! diff --git a/core/paginator/.github/feature_request.md b/core/paginator/.github/feature_request.md new file mode 100644 index 00000000000..6365857f33c --- /dev/null +++ b/core/paginator/.github/feature_request.md @@ -0,0 +1,18 @@ +--- +name: Feature request +about: Suggest an idea for this library + +--- + +Thanks for stopping by to let us know something could be better! + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. + + **Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + **Describe the solution you'd like** +A clear and concise description of what you want to happen. + **Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + **Additional context** +Add any other context or screenshots about the feature request here. diff --git a/core/paginator/.github/support_request.md b/core/paginator/.github/support_request.md new file mode 100644 index 00000000000..99586903212 --- /dev/null +++ b/core/paginator/.github/support_request.md @@ -0,0 +1,7 @@ +--- +name: Support request +about: If you have a support contract with Google, please create an issue in the Google Cloud Support console. + +--- + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. From 1c6744fa2ef0082129d2fbc8c46e9a455ab7d6ed Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 22 Oct 2018 16:44:37 -0700 Subject: [PATCH 030/279] chores(build): do not collect sponge.xml from windows builds (#37) --- core/paginator/.kokoro/presubmit/windows/common.cfg | 7 ------- 1 file changed, 7 deletions(-) diff --git a/core/paginator/.kokoro/presubmit/windows/common.cfg b/core/paginator/.kokoro/presubmit/windows/common.cfg index 7320db792a4..d6e25e0b1b8 100644 --- a/core/paginator/.kokoro/presubmit/windows/common.cfg +++ b/core/paginator/.kokoro/presubmit/windows/common.cfg @@ -1,9 +1,2 @@ # Format: //devtools/kokoro/config/proto/build.proto -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - From e5917f18a6e573425d5bc71bc1c5fc8865dae42a Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 23 Oct 2018 07:50:46 -0700 Subject: [PATCH 031/279] chores(build): run codecov on continuous builds (#36) --- core/paginator/.kokoro/continuous/node8/test.cfg | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/paginator/.kokoro/continuous/node8/test.cfg b/core/paginator/.kokoro/continuous/node8/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/core/paginator/.kokoro/continuous/node8/test.cfg +++ b/core/paginator/.kokoro/continuous/node8/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} From 17a25e2389d8f9d4a6ac27c11b94e7ac3c4b94ce Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 23 Oct 2018 20:05:55 -0700 Subject: [PATCH 032/279] build: run tests on node11 (#39) * build: run tests on node11 * build: run tests on node11 * build: run tests on node11 * build: run tests on node11 --- .../.kokoro/continuous/node11/common.cfg | 24 +++++++++++++++++++ .../.kokoro/continuous/node11/test.cfg | 0 .../.kokoro/presubmit/node11/common.cfg | 24 +++++++++++++++++++ .../.kokoro/presubmit/node11/test.cfg | 0 4 files changed, 48 insertions(+) create mode 100644 core/paginator/.kokoro/continuous/node11/common.cfg create mode 100644 core/paginator/.kokoro/continuous/node11/test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node11/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/node11/test.cfg diff --git a/core/paginator/.kokoro/continuous/node11/common.cfg b/core/paginator/.kokoro/continuous/node11/common.cfg new file mode 100644 index 00000000000..0fdf9966f5d --- /dev/null +++ b/core/paginator/.kokoro/continuous/node11/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node11/test.cfg b/core/paginator/.kokoro/continuous/node11/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/presubmit/node11/common.cfg b/core/paginator/.kokoro/presubmit/node11/common.cfg new file mode 100644 index 00000000000..0fdf9966f5d --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node11/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node11/test.cfg b/core/paginator/.kokoro/presubmit/node11/test.cfg new file mode 100644 index 00000000000..e69de29bb2d From d4fc5f05ce7389c0e9e920492d712978790c4e06 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 24 Oct 2018 13:33:07 -0700 Subject: [PATCH 033/279] chore: remove old issue template (#40) --- core/paginator/.github/ISSUE_TEMPLATE.md | 27 ------------------------ 1 file changed, 27 deletions(-) delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE.md diff --git a/core/paginator/.github/ISSUE_TEMPLATE.md b/core/paginator/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index ed1c681e0aa..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,27 +0,0 @@ -Thanks for stopping by to let us know something could be better! - -Please run down the following list and make sure you've tried the usual "quick -fixes": - - - Search the issues already opened: https://github.com/googleapis/nodejs-paginator/issues - - Search the issues on our "catch-all" repository: https://github.com/GoogleCloudPlatform/google-cloud-node - - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js - -If you are still having issues, please be sure to include as much information as -possible: - -#### Environment details - - - OS: - - Node.js version: - - npm version: - - `@google-cloud/paginator` version: - -#### Steps to reproduce - - 1. ??? - 2. ??? - -Following these steps will guarantee the quickest resolution possible. - -Thanks! From 088071a0629739ba0703945ba4c1be53238309bc Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 25 Oct 2018 11:35:09 -0700 Subject: [PATCH 034/279] chore: update issue templates (#42) --- core/paginator/.github/{ => ISSUE_TEMPLATE}/bug_report.md | 0 core/paginator/.github/{ => ISSUE_TEMPLATE}/feature_request.md | 0 core/paginator/.github/{ => ISSUE_TEMPLATE}/support_request.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename core/paginator/.github/{ => ISSUE_TEMPLATE}/bug_report.md (100%) rename core/paginator/.github/{ => ISSUE_TEMPLATE}/feature_request.md (100%) rename core/paginator/.github/{ => ISSUE_TEMPLATE}/support_request.md (100%) diff --git a/core/paginator/.github/bug_report.md b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from core/paginator/.github/bug_report.md rename to core/paginator/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/core/paginator/.github/feature_request.md b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from core/paginator/.github/feature_request.md rename to core/paginator/.github/ISSUE_TEMPLATE/feature_request.md diff --git a/core/paginator/.github/support_request.md b/core/paginator/.github/ISSUE_TEMPLATE/support_request.md similarity index 100% rename from core/paginator/.github/support_request.md rename to core/paginator/.github/ISSUE_TEMPLATE/support_request.md From 967bbf1e2ae3a27d6aa3b772aa925825887e0692 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 25 Oct 2018 20:43:23 -0700 Subject: [PATCH 035/279] fix: call limiter.makeRequest() instead of original method (#43) --- core/paginator/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 384bc71b07d..2a7e9f1aaab 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -299,7 +299,7 @@ export class Paginator { const stream = limiter.stream; stream.once('reading', () => { - makeRequest(query); + limiter.makeRequest(query); }); function makeRequest(query?: ParsedArguments|string) { From 319006a693790448785fe38c635446ae8a0d278e Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 26 Oct 2018 04:45:17 -0700 Subject: [PATCH 036/279] Release v0.1.2 (#44) --- core/paginator/CHANGELOG.md | 25 +++++++++++++++++++++++++ core/paginator/package.json | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 2b50f668359..a948d8fb0aa 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,31 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## v0.1.2 + +### Bug fixes +- fix: call limiter.makeRequest() instead of original method ([#43](https://github.com/googleapis/nodejs-paginator/pull/43)) + +### Internal / Testing Changes +- chore: update issue templates ([#42](https://github.com/googleapis/nodejs-paginator/pull/42)) +- chore: remove old issue template ([#40](https://github.com/googleapis/nodejs-paginator/pull/40)) +- build: run tests on node11 ([#39](https://github.com/googleapis/nodejs-paginator/pull/39)) +- chores(build): run codecov on continuous builds ([#36](https://github.com/googleapis/nodejs-paginator/pull/36)) +- chores(build): do not collect sponge.xml from windows builds ([#37](https://github.com/googleapis/nodejs-paginator/pull/37)) +- chore: update new issue template ([#35](https://github.com/googleapis/nodejs-paginator/pull/35)) +- chore(deps): update dependency sinon to v7 ([#31](https://github.com/googleapis/nodejs-paginator/pull/31)) +- build: fix codecov uploading on Kokoro ([#32](https://github.com/googleapis/nodejs-paginator/pull/32)) +- Update kokoro config ([#29](https://github.com/googleapis/nodejs-paginator/pull/29)) +- Update CI config ([#27](https://github.com/googleapis/nodejs-paginator/pull/27)) +- Don't publish sourcemaps ([#25](https://github.com/googleapis/nodejs-paginator/pull/25)) +- build: prevent system/sample-test from leaking credentials +- Update kokoro config ([#23](https://github.com/googleapis/nodejs-paginator/pull/23)) +- test: remove appveyor config ([#22](https://github.com/googleapis/nodejs-paginator/pull/22)) +- Update CI config ([#21](https://github.com/googleapis/nodejs-paginator/pull/21)) +- Enable prefer-const in the eslint config ([#20](https://github.com/googleapis/nodejs-paginator/pull/20)) +- Enable no-var in eslint ([#19](https://github.com/googleapis/nodejs-paginator/pull/19)) +- Update CI config ([#18](https://github.com/googleapis/nodejs-paginator/pull/18)) + ## v0.1.1 ### Internal / Testing Changes diff --git a/core/paginator/package.json b/core/paginator/package.json index 28af3f77525..b4df5246b07 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "0.1.1", + "version": "0.1.2", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From ce693398fc7e7701971b9e9fb1436f3b5f3bc19f Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 30 Oct 2018 10:01:54 -0700 Subject: [PATCH 037/279] chore: include build in eslintignore (#49) --- core/paginator/.eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index f6fac98b0a8..f08b0fd1c65 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -1,3 +1,4 @@ node_modules/* samples/node_modules/* src/**/doc/* +build/ From 34180449c251949e26bcade70a64c62695699ba3 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 1 Nov 2018 12:04:37 -0700 Subject: [PATCH 038/279] chore: update CircleCI config (#52) --- core/paginator/.circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml index da54155fc57..6735ebdaaa1 100644 --- a/core/paginator/.circleci/config.yml +++ b/core/paginator/.circleci/config.yml @@ -159,7 +159,8 @@ jobs: command: npm run system-test environment: GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /home/node/project/.circleci/key.json + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Remove unencrypted key. command: | From 61a5a1eb04b8378406283830acf2ea9611d93d4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Wed, 7 Nov 2018 08:41:30 -0800 Subject: [PATCH 039/279] chore(deps): update dependency through2 to v3 (#53) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index b4df5246b07..999d7e9ae8b 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -47,7 +47,7 @@ "proxyquire": "^2.0.1", "sinon": "^7.0.0", "source-map-support": "^0.5.6", - "through2": "^2.0.3", + "through2": "^3.0.0", "typescript": "^3.0.0", "uuid": "^3.3.2" }, From 00c3e79ee5b8e9e443095cd8acf6799a9ebe8674 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Wed, 7 Nov 2018 13:53:58 -0800 Subject: [PATCH 040/279] chore: use latest npm on Windows (#54) --- core/paginator/.kokoro/test.bat | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/paginator/.kokoro/test.bat b/core/paginator/.kokoro/test.bat index d60473666b0..767320757e0 100644 --- a/core/paginator/.kokoro/test.bat +++ b/core/paginator/.kokoro/test.bat @@ -1,4 +1,4 @@ -@rem Copyright 2018 gRPC authors. +@rem Copyright 2018 Google LLC. All rights reserved. @rem @rem Licensed under the Apache License, Version 2.0 (the "License"); @rem you may not use this file except in compliance with the License. @@ -17,8 +17,7 @@ cd /d %~dp0 cd .. -call npm install -g npm@5 || goto :error - +call npm install -g npm@latest || goto :error call npm install || goto :error call npm run test || goto :error From 9c67e653a998eb9221aeea6d72e59f73494c7b71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 8 Nov 2018 08:39:53 -0800 Subject: [PATCH 041/279] chore(deps): update dependency @types/is to v0.0.21 (#55) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 999d7e9ae8b..9b642fb7249 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -31,7 +31,7 @@ "devDependencies": { "@types/arrify": "^1.0.4", "@types/extend": "^3.0.0", - "@types/is": "0.0.20", + "@types/is": "0.0.21", "@types/mocha": "^5.2.4", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", From 4406722938636c7695ab236520cd4eddfdc04e3c Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 12 Nov 2018 15:55:25 -0800 Subject: [PATCH 042/279] chore: update eslintignore config (#56) --- core/paginator/.eslintignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index f08b0fd1c65..2f642cb6044 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -1,4 +1,3 @@ -node_modules/* -samples/node_modules/* +**/node_modules src/**/doc/* build/ From b7ca2a0ed6befee72ecfe91c192a1b17b4db5ae3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 13 Nov 2018 08:11:39 -0800 Subject: [PATCH 043/279] chore(deps): update dependency gts to ^0.9.0 (#57) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 9b642fb7249..a113ce093ff 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -39,7 +39,7 @@ "@types/through2": "^2.0.33", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", - "gts": "^0.8.0", + "gts": "^0.9.0", "hard-rejection": "^1.0.0", "intelli-espower-loader": "^1.0.1", "mocha": "^5.2.0", From 4f157dce8fe022bb3ba8d0c1ae3b764dfe9805ae Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Mon, 19 Nov 2018 12:18:53 -0800 Subject: [PATCH 044/279] chore: add synth.metadata chore: add synth.metadata --- core/paginator/synth.metadata | 1 + 1 file changed, 1 insertion(+) create mode 100644 core/paginator/synth.metadata diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata new file mode 100644 index 00000000000..9e26dfeeb6e --- /dev/null +++ b/core/paginator/synth.metadata @@ -0,0 +1 @@ +{} \ No newline at end of file From 86babfacc025c84e2b42341652311fe0bb6bbcfe Mon Sep 17 00:00:00 2001 From: Stephen Date: Tue, 20 Nov 2018 11:21:34 -0500 Subject: [PATCH 045/279] fix: Pin @types/sinon to last compatible version (#61) * fix: Pin @types/sinon to last compatible version * chore: Add trailing whitespace --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index a113ce093ff..85d6c274035 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -35,7 +35,7 @@ "@types/mocha": "^5.2.4", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", - "@types/sinon": "^5.0.1", + "@types/sinon": "5.0.5", "@types/through2": "^2.0.33", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", From 074c990ddb24971ab3bf7804a0d0577c2505c207 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 20 Nov 2018 18:43:16 -0800 Subject: [PATCH 046/279] refactor: trim a few dependencies (#60) --- core/paginator/package.json | 5 +---- core/paginator/src/index.ts | 15 +++++++-------- core/paginator/system-test/.eslintrc.yml | 3 --- core/paginator/test/mocha.opts | 3 +-- 4 files changed, 9 insertions(+), 17 deletions(-) delete mode 100644 core/paginator/system-test/.eslintrc.yml diff --git a/core/paginator/package.json b/core/paginator/package.json index 85d6c274035..2355c470bc0 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -31,16 +31,14 @@ "devDependencies": { "@types/arrify": "^1.0.4", "@types/extend": "^3.0.0", - "@types/is": "0.0.21", "@types/mocha": "^5.2.4", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", "@types/sinon": "5.0.5", - "@types/through2": "^2.0.33", + "@types/through2": "^2.0.34", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", "gts": "^0.9.0", - "hard-rejection": "^1.0.0", "intelli-espower-loader": "^1.0.1", "mocha": "^5.2.0", "nyc": "^13.0.0", @@ -59,7 +57,6 @@ "dependencies": { "arrify": "^1.0.1", "extend": "^3.0.1", - "is": "^3.2.1", "split-array-stream": "^2.0.0", "stream-events": "^1.0.4" } diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 2a7e9f1aaab..c1c2b47acd3 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -20,7 +20,6 @@ import * as arrify from 'arrify'; import * as extend from 'extend'; -import * as is from 'is'; import {split} from 'split-array-stream'; import {Transform, TransformOptions} from 'stream'; import * as streamEvents from 'stream-events'; @@ -56,7 +55,7 @@ export function createLimiter( let requestsMade = 0; let requestsToMake = -1; - if (is.number(options.maxApiCalls)) { + if (typeof options.maxApiCalls === 'number') { requestsToMake = options.maxApiCalls!; } @@ -135,7 +134,7 @@ export class Paginator { */ // tslint:disable-next-line:variable-name extend(Class: Function, methodNames: string|string[]) { - methodNames = arrify(methodNames) as string[]; + methodNames = arrify(methodNames); methodNames.forEach(methodName => { const originalMethod = Class.prototype[methodName]; @@ -189,13 +188,13 @@ export class Paginator { const firstArgument = args[0]; const lastArgument = args[args.length - 1]; - if (is.fn(firstArgument)) { + if (typeof firstArgument === 'function') { callback = firstArgument; } else { query = firstArgument; } - if (is.fn(lastArgument)) { + if (typeof lastArgument === 'function') { callback = lastArgument; } @@ -203,15 +202,15 @@ export class Paginator { query = extend<{}, ParsedArguments>(true, {}, query) as ParsedArguments; // Check if the user only asked for a certain amount of results. - if (query.maxResults && is.number(query.maxResults)) { + if (query.maxResults && typeof query.maxResults === 'number') { // `maxResults` is used API-wide. maxResults = query.maxResults; - } else if (is.number(query.pageSize)) { + } else if (typeof query.pageSize === 'number') { // `pageSize` is Pub/Sub's `maxResults`. maxResults = query.pageSize!; } - if (query.maxApiCalls && is.number(query.maxApiCalls)) { + if (query.maxApiCalls && typeof query.maxApiCalls === 'number') { maxApiCalls = query.maxApiCalls; delete query.maxApiCalls; } diff --git a/core/paginator/system-test/.eslintrc.yml b/core/paginator/system-test/.eslintrc.yml deleted file mode 100644 index 282535f55f6..00000000000 --- a/core/paginator/system-test/.eslintrc.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -rules: - no-console: off diff --git a/core/paginator/test/mocha.opts b/core/paginator/test/mocha.opts index a3504c501fd..48bf1c3df18 100644 --- a/core/paginator/test/mocha.opts +++ b/core/paginator/test/mocha.opts @@ -1,5 +1,4 @@ ---require hard-rejection/register --require source-map-support/register ---timeout 10000 --require intelli-espower-loader +--timeout 10000 --throw-deprecation From bae1849be04bb8ce4c9b6bc42fc216aa3443aac5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 22 Nov 2018 11:29:56 -0800 Subject: [PATCH 047/279] chore(deps): update dependency @types/sinon to v5.0.7 (#62) --- core/paginator/package.json | 2 +- core/paginator/src/index.ts | 8 ++- core/paginator/test/index.ts | 114 ++++++++++++++--------------------- 3 files changed, 53 insertions(+), 71 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 2355c470bc0..619cf8d4040 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -34,7 +34,7 @@ "@types/mocha": "^5.2.4", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", - "@types/sinon": "5.0.5", + "@types/sinon": "^5.0.7", "@types/through2": "^2.0.34", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index c1c2b47acd3..20da5676014 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -36,6 +36,12 @@ interface CreateLimiterOptions { streamOptions?: TransformOptions; } +export interface Limiter { + // tslint:disable-next-line no-any + makeRequest(...args: any[]): Transform|undefined; + stream: Transform; +} + /** * Limit requests according to a `maxApiCalls` limit. * @@ -45,7 +51,7 @@ interface CreateLimiterOptions { * @param {object} options.streamOptions - Options to pass to the Stream constructor. */ export function createLimiter( - makeRequestFn: Function, options?: CreateLimiterOptions) { + makeRequestFn: Function, options?: CreateLimiterOptions): Limiter { options = options || {}; const streamOptions = options.streamOptions || {}; diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index aae2d5b0dd5..b078999927f 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -21,7 +21,7 @@ import * as stream from 'stream'; import * as streamEvents from 'stream-events'; import * as through from 'through2'; import * as uuid from 'uuid'; - +import * as P from '../src'; import {paginator, Paginator, ParsedArguments} from '../src'; const util = { @@ -29,19 +29,15 @@ const util = { }; const p = proxyquire('../src', { - 'stream-events': fakeStreamEvents, -}); + 'stream-events': fakeStreamEvents, + }) as typeof P; -// tslint:disable-next-line:no-any -let streamEventsOverride: any; +let streamEventsOverride: Function|null; function fakeStreamEvents() { return (streamEventsOverride || streamEvents).apply(null, arguments); } -let sandbox: sinon.SinonSandbox; -beforeEach(() => { - sandbox = sinon.createSandbox(); -}); +const sandbox = sinon.createSandbox(); afterEach(() => { sandbox.restore(); streamEventsOverride = null; @@ -58,11 +54,6 @@ describe('paginator', () => { delete FakeClass.prototype.methodToExtend_; }); - // tslint:disable-next-line:no-any - function stub(methodName: keyof Paginator, stub: (...args: any[]) => void) { - return sandbox.stub(paginator, methodName).callsFake(stub); - } - describe('extend', () => { it('should overwrite a method on a class', () => { const originalMethod = FakeClass.prototype.methodToExtend; @@ -88,24 +79,22 @@ describe('paginator', () => { }); it('should parse the arguments', (done) => { - stub('parseArguments_', args => { + sandbox.stub(paginator, 'parseArguments_').callsFake(args => { assert.deepStrictEqual([].slice.call(args), [1, 2, 3]); done(); + return args as ParsedArguments; }); - stub('run_', util.noop); + sandbox.stub(paginator, 'run_').callsFake(util.noop); paginator.extend(FakeClass, 'methodToExtend'); FakeClass.prototype.methodToExtend(1, 2, 3); }); it('should call router when the original method is called', (done) => { const expectedReturnValue = FakeClass.prototype.methodToExtend(); - const parsedArguments = {a: 'b', c: 'd'}; - - stub('parseArguments_', () => { - return parsedArguments; - }); + const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; - stub('run_', (args, originalMethod) => { + sandbox.stub(paginator, 'parseArguments_').returns(parsedArguments); + sandbox.stub(paginator, 'run_').callsFake((args, originalMethod) => { assert.strictEqual(args, parsedArguments); assert.equal(originalMethod(), expectedReturnValue); done(); @@ -124,7 +113,7 @@ describe('paginator', () => { const cls = new (FakeClass as any)(); cls.uuid = uuid.v1(); - stub('run_', (args, originalMethod) => { + sandbox.stub(paginator, 'run_').callsFake((_, originalMethod) => { assert.equal(originalMethod(), cls.uuid); done(); }); @@ -135,10 +124,9 @@ describe('paginator', () => { it('should return what the router returns', () => { const uniqueValue = 234; - stub('run_', () => { + sandbox.stub(paginator, 'run_').callsFake(() => { return uniqueValue; }); - paginator.extend(FakeClass, 'methodToExtend'); assert.equal(FakeClass.prototype.methodToExtend(), uniqueValue); }); @@ -157,23 +145,21 @@ describe('paginator', () => { it('should parse the arguments', (done) => { const fakeArgs = [1, 2, 3]; - stub('parseArguments_', args => { + sandbox.stub(paginator, 'parseArguments_').callsFake(args => { assert.deepStrictEqual(fakeArgs, [].slice.call(args)); done(); + return args as ParsedArguments; }); - - stub('runAsStream_', util.noop); + sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); FakeClass.prototype.streamMethod.apply(FakeClass.prototype, fakeArgs); }); it('should run the method as a stream', (done) => { - const parsedArguments = {a: 'b', c: 'd'}; - - stub('parseArguments_', () => { + const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; + sandbox.stub(paginator, 'parseArguments_').callsFake(() => { return parsedArguments; }); - - stub('runAsStream_', (args, callback) => { + sandbox.stub(paginator, 'runAsStream_').callsFake((args, callback) => { assert.strictEqual(args, parsedArguments); assert.strictEqual(callback(), UUID); done(); @@ -183,55 +169,46 @@ describe('paginator', () => { }); it('should apply the proper context', (done) => { - const parsedArguments = {a: 'b', c: 'd'}; - + const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; FakeClass.prototype.methodToExtend = function() { return this; }; - - stub('parseArguments_', () => { + sandbox.stub(paginator, 'parseArguments_').callsFake(() => { return parsedArguments; }); - - stub('runAsStream_', (args, callback) => { + sandbox.stub(paginator, 'runAsStream_').callsFake((_, callback) => { assert.strictEqual(callback(), FakeClass.prototype); done(); }); - FakeClass.prototype.streamMethod(); }); it('should check for a private member', (done) => { - const parsedArguments = {a: 'b', c: 'd'}; + const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; const fakeValue = 123; FakeClass.prototype.methodToExtend_ = () => { return fakeValue; }; - - stub('parseArguments_', () => { + sandbox.stub(paginator, 'parseArguments_').callsFake(() => { return parsedArguments; }); - - stub('runAsStream_', (args, callback) => { + sandbox.stub(paginator, 'runAsStream_').callsFake((_, callback) => { assert.strictEqual(callback(), fakeValue); done(); }); - FakeClass.prototype.streamMethod(); }); it('should return a stream', () => { const fakeStream = through.obj(); - - stub('parseArguments_', util.noop); - - stub('runAsStream_', () => { + sandbox.stub(paginator, 'parseArguments_').callsFake(() => { + return {}; + }); + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { return fakeStream; }); - const stream = FakeClass.prototype.streamMethod(); - assert.strictEqual(fakeStream, stream); }); }); @@ -337,11 +314,12 @@ describe('paginator', () => { callback: util.noop, }; - stub('runAsStream_', (args, originalMethod) => { - assert.strictEqual(args, parsedArguments); - originalMethod(); - return through(); - }); + sandbox.stub(paginator, 'runAsStream_') + .callsFake((args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + originalMethod(); + return through(); + }); paginator.run_(parsedArguments, done); }); @@ -357,7 +335,7 @@ describe('paginator', () => { }, }; - stub('runAsStream_', () => { + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { const stream = through(); setImmediate(() => { stream.emit('error', error); @@ -379,7 +357,7 @@ describe('paginator', () => { }, }; - stub('runAsStream_', () => { + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { const stream = through.obj(); setImmediate(() => { results.forEach(result => stream.push(result)); @@ -402,7 +380,7 @@ describe('paginator', () => { }, callback: done, } as ParsedArguments; - stub('runAsStream_', util.noop); + sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); paginator.run_(parsedArguments, (query: {}, callback: () => void) => { assert.deepStrictEqual(query, parsedArguments.query); callback(); @@ -429,7 +407,7 @@ describe('paginator', () => { return { makeRequest, stream: transformStream, - }; + } as P.Limiter; }); }); @@ -483,12 +461,12 @@ describe('paginator', () => { it('should create a limiter', (done) => { limiterStub.restore(); - sandbox.stub(p, 'createLimiter').callsFake((makeRequest, options) => { - assert.strictEqual(options.maxApiCalls, maxApiCalls); + sandbox.stub(p, 'createLimiter').callsFake((_, options) => { + assert.strictEqual(options!.maxApiCalls, maxApiCalls); setImmediate(done); return { stream: through.obj(), - }; + } as P.Limiter; }); p.paginator.runAsStream_({maxApiCalls}, util.noop); }); @@ -501,14 +479,12 @@ describe('paginator', () => { it('should pass through stream options', (done) => { limiterStub.restore(); - sandbox.stub(p, 'createLimiter').callsFake((makeRequest, options) => { - assert.strictEqual(options.streamOptions, streamOptions); - + sandbox.stub(p, 'createLimiter').callsFake((_, options) => { + assert.strictEqual(options!.streamOptions, streamOptions); setImmediate(done); - return { stream: through.obj(), - }; + } as P.Limiter; }); p.paginator.runAsStream_( From baecaa254a0f5d9e316ea5f6a598a497842879d4 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Sat, 1 Dec 2018 18:42:48 -0800 Subject: [PATCH 048/279] fix(build): fix system key decryption (#64) --- core/paginator/.circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml index 6735ebdaaa1..86c63432242 100644 --- a/core/paginator/.circleci/config.yml +++ b/core/paginator/.circleci/config.yml @@ -116,7 +116,7 @@ jobs: name: Decrypt credentials. command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - openssl aes-256-cbc -d -in .circleci/key.json.enc \ + openssl aes-256-cbc -d -md md5 -in .circleci/key.json.enc \ -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" fi @@ -148,7 +148,7 @@ jobs: command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then for encrypted_key in .circleci/*.json.enc; do - openssl aes-256-cbc -d -in $encrypted_key \ + openssl aes-256-cbc -d -md md5 -in $encrypted_key \ -out $(echo $encrypted_key | sed 's/\.enc//') \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" done From e289d5ebc622f063aac1cf00c24f40a1e164ac39 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 4 Dec 2018 08:54:13 -0800 Subject: [PATCH 049/279] chore: update license file (#68) --- core/paginator/LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/LICENSE b/core/paginator/LICENSE index 7a4a3ea2424..d6456956733 100644 --- a/core/paginator/LICENSE +++ b/core/paginator/LICENSE @@ -199,4 +199,4 @@ 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. \ No newline at end of file + limitations under the License. From 4e541701be2cd2eab93d9ee32750558bb0442740 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Wed, 5 Dec 2018 07:51:11 -0800 Subject: [PATCH 050/279] chore(build): update prettier config (#69) chore(build): update prettier config --- core/paginator/.prettierignore | 3 +++ core/paginator/.prettierrc | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 core/paginator/.prettierignore create mode 100644 core/paginator/.prettierrc diff --git a/core/paginator/.prettierignore b/core/paginator/.prettierignore new file mode 100644 index 00000000000..f6fac98b0a8 --- /dev/null +++ b/core/paginator/.prettierignore @@ -0,0 +1,3 @@ +node_modules/* +samples/node_modules/* +src/**/doc/* diff --git a/core/paginator/.prettierrc b/core/paginator/.prettierrc new file mode 100644 index 00000000000..df6eac07446 --- /dev/null +++ b/core/paginator/.prettierrc @@ -0,0 +1,8 @@ +--- +bracketSpacing: false +printWidth: 80 +semi: true +singleQuote: true +tabWidth: 2 +trailingComma: es5 +useTabs: false From f14875d0066f87f47ec6e180bd99398b336739e7 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 5 Dec 2018 15:56:03 -0800 Subject: [PATCH 051/279] chore: nyc ignore build/test by default (#71) --- core/paginator/.nycrc | 3 ++- core/paginator/package.json | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index a1a8e6920ce..feb032400d4 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -3,7 +3,8 @@ "exclude": [ "src/*{/*,/**/*}.js", "src/*/v*/*.js", - "test/**/*.js" + "test/**/*.js", + "build/test" ], "watermarks": { "branches": [ diff --git a/core/paginator/package.json b/core/paginator/package.json index 619cf8d4040..5da900e86c4 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -49,11 +49,6 @@ "typescript": "^3.0.0", "uuid": "^3.3.2" }, - "nyc": { - "exclude": [ - "build/test" - ] - }, "dependencies": { "arrify": "^1.0.1", "extend": "^3.0.1", From e121ca19ae5f9b7d383469cc7f59c2767276a847 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 5 Dec 2018 17:51:54 -0800 Subject: [PATCH 052/279] chore: always nyc report before calling codecov (#72) --- core/paginator/.kokoro/test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index eb25b89b95e..4d6c3f83188 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -22,5 +22,6 @@ cd $(dirname $0)/.. npm install npm test +./node_modules/nyc/bin/nyc.js report bash $KOKORO_GFILE_DIR/codecov.sh From 3ba61529bdfef72ea28fd9d27e1aa19d56cb5609 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 10 Dec 2018 13:35:48 -0800 Subject: [PATCH 053/279] build: add Kokoro configs for autorelease (#75) * build: add Kokoro configs for autorelease * build: add Kokoro configs for autorelease * chore: remove CircleCI config --- core/paginator/.circleci/config.yml | 179 ------------------ core/paginator/.circleci/npm-install-retry.js | 60 ------ core/paginator/.kokoro/publish.sh | 31 +++ core/paginator/.kokoro/release/publish.cfg | 28 +++ 4 files changed, 59 insertions(+), 239 deletions(-) delete mode 100644 core/paginator/.circleci/config.yml delete mode 100755 core/paginator/.circleci/npm-install-retry.js create mode 100644 core/paginator/.kokoro/publish.sh create mode 100644 core/paginator/.kokoro/release/publish.cfg diff --git a/core/paginator/.circleci/config.yml b/core/paginator/.circleci/config.yml deleted file mode 100644 index 86c63432242..00000000000 --- a/core/paginator/.circleci/config.yml +++ /dev/null @@ -1,179 +0,0 @@ -version: 2 -workflows: - version: 2 - tests: - jobs: &workflow_jobs - - node6: - filters: &all_commits - tags: - only: /.*/ - - node8: - filters: *all_commits - - node10: - filters: *all_commits - - lint: - requires: - - node6 - - node8 - - node10 - filters: *all_commits - - docs: - requires: - - node6 - - node8 - - node10 - filters: *all_commits - - system_tests: - requires: - - lint - - docs - filters: &master_and_releases - branches: - only: master - tags: &releases - only: '/^v[\d.]+$/' - - sample_tests: - requires: - - lint - - docs - filters: *master_and_releases - - publish_npm: - requires: - - system_tests - - sample_tests - filters: - branches: - ignore: /.*/ - tags: *releases - nightly: - triggers: - - schedule: - cron: 0 7 * * * - filters: - branches: - only: master - jobs: *workflow_jobs -jobs: - node6: - docker: - - image: 'node:6' - user: node - steps: &unit_tests_steps - - checkout - - run: &npm_install_and_link - name: Install and link the module - command: |- - mkdir -p /home/node/.npm-global - ./.circleci/npm-install-retry.js - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: npm test - node8: - docker: - - image: 'node:8' - user: node - steps: *unit_tests_steps - node10: - docker: - - image: 'node:10' - user: node - steps: *unit_tests_steps - lint: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: *npm_install_and_link - - run: &samples_npm_install_and_link - name: Link the module being tested to the samples. - command: | - cd samples/ - npm link ../ - ./../.circleci/npm-install-retry.js - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Run linting. - command: npm run lint - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - docs: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: *npm_install_and_link - - run: npm run docs - sample_tests: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: - name: Decrypt credentials. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - openssl aes-256-cbc -d -md md5 -in .circleci/key.json.enc \ - -out .circleci/key.json \ - -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - fi - - run: *npm_install_and_link - - run: *samples_npm_install_and_link - - run: - name: Run sample tests. - command: npm run samples-test - environment: - GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /home/node/samples/.circleci/key.json - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Remove unencrypted key. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - rm .circleci/key.json - fi - when: always - working_directory: /home/node/samples/ - system_tests: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: - name: Decrypt credentials. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - for encrypted_key in .circleci/*.json.enc; do - openssl aes-256-cbc -d -md md5 -in $encrypted_key \ - -out $(echo $encrypted_key | sed 's/\.enc//') \ - -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - done - fi - - run: *npm_install_and_link - - run: - name: Run system tests. - command: npm run system-test - environment: - GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /home/node/project/.circleci/key.json - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Remove unencrypted key. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - rm .circleci/*.json - fi - when: always - publish_npm: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: ./.circleci/npm-install-retry.js - - run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc - - run: npm publish --access=public diff --git a/core/paginator/.circleci/npm-install-retry.js b/core/paginator/.circleci/npm-install-retry.js deleted file mode 100755 index 3240aa2cbf2..00000000000 --- a/core/paginator/.circleci/npm-install-retry.js +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env node - -let spawn = require('child_process').spawn; - -// -//USE: ./index.js [... NPM ARGS] -// - -let timeout = process.argv[2] || process.env.NPM_INSTALL_TIMEOUT || 60000; -let attempts = process.argv[3] || 3; -let args = process.argv.slice(4); -if (args.length === 0) { - args = ['install']; -} - -(function npm() { - let timer; - args.push('--verbose'); - let proc = spawn('npm', args); - proc.stdout.pipe(process.stdout); - proc.stderr.pipe(process.stderr); - proc.stdin.end(); - proc.stdout.on('data', () => { - setTimer(); - }); - proc.stderr.on('data', () => { - setTimer(); - }); - - // side effect: this also restarts when npm exits with a bad code even if it - // didnt timeout - proc.on('close', (code, signal) => { - clearTimeout(timer); - if (code || signal) { - console.log('[npm-are-you-sleeping] npm exited with code ' + code + ''); - - if (--attempts) { - console.log('[npm-are-you-sleeping] restarting'); - npm(); - } else { - console.log('[npm-are-you-sleeping] i tried lots of times. giving up.'); - throw new Error("npm install fails"); - } - } - }); - - function setTimer() { - clearTimeout(timer); - timer = setTimeout(() => { - console.log('[npm-are-you-sleeping] killing npm with SIGTERM'); - proc.kill('SIGTERM'); - // wait a couple seconds - timer = setTimeout(() => { - // its it's still not closed sigkill - console.log('[npm-are-you-sleeping] killing npm with SIGKILL'); - proc.kill('SIGKILL'); - }, 2000); - }, timeout); - } -})(); diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh new file mode 100644 index 00000000000..f2a8adc0b43 --- /dev/null +++ b/core/paginator/.kokoro/publish.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +# Start the releasetool reporter +python3 -m pip install gcp-releasetool +python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script + +cd $(dirname $0)/.. + +NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google_cloud_npm_token) +echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + +npm install +npm publish --access=public diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg new file mode 100644 index 00000000000..5c969abdb0c --- /dev/null +++ b/core/paginator/.kokoro/release/publish.cfg @@ -0,0 +1,28 @@ +# Get npm token from Keystore +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google_cloud_npm_token" + backend_type: FASTCONFIGPUSH + } + } +} + + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-scheduler/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-scheduler/.kokoro/publish.sh" +} From 093c2c364c339397316e80bb001133992689f1c2 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 10 Dec 2018 16:12:05 -0800 Subject: [PATCH 054/279] fix(build): fix Kokoro release script (#76) --- core/paginator/.kokoro/release/publish.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 5c969abdb0c..21be2593adb 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -14,7 +14,7 @@ before_action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-scheduler/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -24,5 +24,5 @@ env_vars: { env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-scheduler/.kokoro/publish.sh" + value: "github/nodejs-paginator/.kokoro/publish.sh" } From e631552137600b426d040dbd311ef77ed7f43270 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 10 Dec 2018 19:36:54 -0800 Subject: [PATCH 055/279] chore: fix publish.sh permission +x (#77) --- core/paginator/.kokoro/publish.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 core/paginator/.kokoro/publish.sh diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh old mode 100644 new mode 100755 From 8c9ec0ae723f6fd7a349941e11be880e515dbe6f Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 11 Dec 2018 10:35:29 -0800 Subject: [PATCH 056/279] chore: update nyc and eslint configs (#79) --- core/paginator/.eslintignore | 1 + core/paginator/.nycrc | 1 + 2 files changed, 2 insertions(+) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index 2f642cb6044..f0c7aead4bf 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -1,3 +1,4 @@ **/node_modules src/**/doc/* build/ +docs/ diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index feb032400d4..88b001cb587 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -1,5 +1,6 @@ { "report-dir": "./.coverage", + "reporter": "lcov", "exclude": [ "src/*{/*,/**/*}.js", "src/*/v*/*.js", From b7d65d5b7985a36b973d1618f43fb21a257c203a Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 11 Dec 2018 18:38:40 -0800 Subject: [PATCH 057/279] chore(build): inject yoshi automation key (#80) --- core/paginator/.kokoro/release/publish.cfg | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 21be2593adb..19846f457d9 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -9,6 +9,14 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" From e58516ffb6686fddcb622782b0985d72e3c3bda7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 13 Dec 2018 13:45:46 -0800 Subject: [PATCH 058/279] chore(deps): update dependency @types/sinon to v7 (#81) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 5da900e86c4..b23573b6c27 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -34,7 +34,7 @@ "@types/mocha": "^5.2.4", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", - "@types/sinon": "^5.0.7", + "@types/sinon": "^7.0.0", "@types/through2": "^2.0.34", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", From fee3305b1ba5045c8d343ead2d98595bd770c7f8 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 8 Jan 2019 21:52:46 -0800 Subject: [PATCH 059/279] build: check broken links in generated docs (#82) --- core/paginator/.compodocrc | 10 ++++++++++ core/paginator/.gitignore | 1 + core/paginator/.jsdoc.js | 2 +- core/paginator/.kokoro/docs.sh | 8 ++++++++ core/paginator/package.json | 7 +++---- 5 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 core/paginator/.compodocrc diff --git a/core/paginator/.compodocrc b/core/paginator/.compodocrc new file mode 100644 index 00000000000..cd8b42152a6 --- /dev/null +++ b/core/paginator/.compodocrc @@ -0,0 +1,10 @@ +--- +tsconfig: ./tsconfig.json +output: ./docs +theme: material +hideGenerator: true +disablePrivate: true +disableProtected: true +disableInternal: true +disableCoverage: true +disableGraph: true diff --git a/core/paginator/.gitignore b/core/paginator/.gitignore index 4a9bdacc027..842bb9c24b0 100644 --- a/core/paginator/.gitignore +++ b/core/paginator/.gitignore @@ -2,3 +2,4 @@ node_modules .nyc_output build package-lock.json +docs/ diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index 0dcc1d44fee..44957699fe3 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -20,7 +20,7 @@ module.exports = { opts: { readme: './README.md', package: './package.json', - template: './node_modules/ink-docstrap/template', + template: './node_modules/jsdoc-baseline', recurse: true, verbose: true, destination: './docs/' diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh index 3af3193411a..8ca19ce2885 100755 --- a/core/paginator/.kokoro/docs.sh +++ b/core/paginator/.kokoro/docs.sh @@ -23,3 +23,11 @@ cd $(dirname $0)/.. npm install npm run docs + +# Check broken links +BIN=./node_modules/.bin + +npm install broken-link-checker +npm install http-server +$BIN/http-server -p 8080 docs/ & +$BIN/blc -r http://localhost:8080 diff --git a/core/paginator/package.json b/core/paginator/package.json index b23573b6c27..f27feef3918 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -6,9 +6,7 @@ "types": "build/src/index.d.ts", "repository": "googleapis/nodejs-paginator", "scripts": { - "test": "npm run test-only", - "test-only": "nyc mocha build/test", - "codecov": "nyc report --reporter=json && codecov -f coverage/*.json", + "test": "nyc mocha build/test", "lint": "gts check", "clean": "gts clean", "compile": "tsc -p .", @@ -16,7 +14,7 @@ "prepare": "npm run compile", "pretest": "npm run compile", "posttest": "npm run lint", - "docs": "echo no docs 👻", + "docs": "compodoc src/", "presystem-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "system-test": "mocha build/system-test" @@ -29,6 +27,7 @@ "author": "Google Inc.", "license": "Apache-2.0", "devDependencies": { + "@compodoc/compodoc": "^1.1.7", "@types/arrify": "^1.0.4", "@types/extend": "^3.0.0", "@types/mocha": "^5.2.4", From da096479c63cb95b7a16a65b4b2e2d86f10ed384 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 24 Jan 2019 12:02:14 -0700 Subject: [PATCH 060/279] build: ignore googleapis.com in doc link check (#84) --- core/paginator/.kokoro/docs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh index 8ca19ce2885..ea6e514f45d 100755 --- a/core/paginator/.kokoro/docs.sh +++ b/core/paginator/.kokoro/docs.sh @@ -30,4 +30,4 @@ BIN=./node_modules/.bin npm install broken-link-checker npm install http-server $BIN/http-server -p 8080 docs/ & -$BIN/blc -r http://localhost:8080 +$BIN/blc http://localhost:8080 -r --exclude www.googleapis.com From b501d5aa2b516f90e2cc3795cb9e7adc24aa2984 Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Tue, 5 Feb 2019 13:52:15 -0800 Subject: [PATCH 061/279] docs: add lint/fix example to contributing guide (#85) --- core/paginator/.github/CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/paginator/.github/CONTRIBUTING.md b/core/paginator/.github/CONTRIBUTING.md index aaeac9f9483..b958f235007 100644 --- a/core/paginator/.github/CONTRIBUTING.md +++ b/core/paginator/.github/CONTRIBUTING.md @@ -50,4 +50,8 @@ accept your pull requests. npm test +1. Lint (and maybe fix) any changes: + + npm run fix + [setup]: https://cloud.google.com/nodejs/docs/setup From 7fd1088d142247b3b55ff14925d1b6d3ef448272 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 7 Feb 2019 15:40:29 -0800 Subject: [PATCH 062/279] chore: move CONTRIBUTING.md to root (#87) --- core/paginator/{.github => }/CONTRIBUTING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename core/paginator/{.github => }/CONTRIBUTING.md (100%) diff --git a/core/paginator/.github/CONTRIBUTING.md b/core/paginator/CONTRIBUTING.md similarity index 100% rename from core/paginator/.github/CONTRIBUTING.md rename to core/paginator/CONTRIBUTING.md From 93ed24a394b025e0a5043656ba6ed816c9dfcea0 Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Thu, 7 Feb 2019 18:47:43 -0800 Subject: [PATCH 063/279] docs: update contributing path in README (#88) --- core/paginator/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/README.md b/core/paginator/README.md index 47f77371ec2..1388b047470 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -31,7 +31,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googlecloudplatform/google-cloud-node/blob/master/.github/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googlecloudplatform/google-cloud-node/blob/master/CONTRIBUTING.md). ## License From 5411042c3667ce2f555302fedaa0052e52ff54c2 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Fri, 8 Feb 2019 16:41:25 -0800 Subject: [PATCH 064/279] build: test using @grpc/grpc-js in CI (#89) * build: test using @grpc/grpc-js in CI * simplify configs --- .../.kokoro/continuous/node8/system-test-grpcjs.cfg | 12 ++++++++++++ .../.kokoro/presubmit/node8/system-test-grpcjs.cfg | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 core/paginator/.kokoro/continuous/node8/system-test-grpcjs.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/system-test-grpcjs.cfg diff --git a/core/paginator/.kokoro/continuous/node8/system-test-grpcjs.cfg b/core/paginator/.kokoro/continuous/node8/system-test-grpcjs.cfg new file mode 100644 index 00000000000..dbef30c60cc --- /dev/null +++ b/core/paginator/.kokoro/continuous/node8/system-test-grpcjs.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} + +env_vars: { + key: "GOOGLE_CLOUD_USE_GRPC_JS" + value: "1" +} diff --git a/core/paginator/.kokoro/presubmit/node8/system-test-grpcjs.cfg b/core/paginator/.kokoro/presubmit/node8/system-test-grpcjs.cfg new file mode 100644 index 00000000000..dbef30c60cc --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/system-test-grpcjs.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} + +env_vars: { + key: "GOOGLE_CLOUD_USE_GRPC_JS" + value: "1" +} From 702d8d01d7d379fda03e64ea25253c5b1dc644f0 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sun, 10 Feb 2019 20:54:01 -0800 Subject: [PATCH 065/279] build: create docs test npm scripts (#90) --- core/paginator/.kokoro/docs.sh | 10 +--------- core/paginator/package.json | 7 +++++-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh index ea6e514f45d..a4f318794e6 100755 --- a/core/paginator/.kokoro/docs.sh +++ b/core/paginator/.kokoro/docs.sh @@ -22,12 +22,4 @@ cd $(dirname $0)/.. npm install -npm run docs - -# Check broken links -BIN=./node_modules/.bin - -npm install broken-link-checker -npm install http-server -$BIN/http-server -p 8080 docs/ & -$BIN/blc http://localhost:8080 -r --exclude www.googleapis.com +npm run docs-test diff --git a/core/paginator/package.json b/core/paginator/package.json index f27feef3918..99633e54d2a 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -17,7 +17,9 @@ "docs": "compodoc src/", "presystem-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "system-test": "mocha build/system-test" + "system-test": "mocha build/system-test", + "docs-test": "blcl docs -r --exclude www.googleapis.com", + "predocs-test": "npm run docs" }, "keywords": [], "files": [ @@ -46,7 +48,8 @@ "source-map-support": "^0.5.6", "through2": "^3.0.0", "typescript": "^3.0.0", - "uuid": "^3.3.2" + "uuid": "^3.3.2", + "broken-link-checker-local": "^0.2.0" }, "dependencies": { "arrify": "^1.0.1", From db49203abba008e41e9e32a480f519b4c14cd02e Mon Sep 17 00:00:00 2001 From: Alex <7764119+AVaksman@users.noreply.github.com> Date: Wed, 13 Feb 2019 15:02:09 -0500 Subject: [PATCH 066/279] docs: update contributing path in README (#92) --- core/paginator/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/README.md b/core/paginator/README.md index 1388b047470..203f67eb99e 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -31,7 +31,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googlecloudplatform/google-cloud-node/blob/master/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-paginator/blob/master/CONTRIBUTING.md). ## License From a6942c5d488ce529fe2140df3c378c599879f2a9 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 14 Feb 2019 08:49:57 -0800 Subject: [PATCH 067/279] docs: update links in contrib guide (#94) --- core/paginator/CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core/paginator/CONTRIBUTING.md b/core/paginator/CONTRIBUTING.md index b958f235007..78aaa61b269 100644 --- a/core/paginator/CONTRIBUTING.md +++ b/core/paginator/CONTRIBUTING.md @@ -16,11 +16,9 @@ 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). + 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). + 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 From 20ed886a7f4c782f11347c5ccb65c8d50c03676e Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 14 Feb 2019 12:02:36 -0800 Subject: [PATCH 068/279] build: use linkinator for docs test (#93) --- core/paginator/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 99633e54d2a..fad03db9ffd 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -18,7 +18,7 @@ "presystem-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "system-test": "mocha build/system-test", - "docs-test": "blcl docs -r --exclude www.googleapis.com", + "docs-test": "linkinator docs -r --skip www.googleapis.com", "predocs-test": "npm run docs" }, "keywords": [], @@ -49,7 +49,7 @@ "through2": "^3.0.0", "typescript": "^3.0.0", "uuid": "^3.3.2", - "broken-link-checker-local": "^0.2.0" + "linkinator": "^1.1.2" }, "dependencies": { "arrify": "^1.0.1", From 8c8db36f621d4eddf5b07f6ad131d5e1a79f4561 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 19 Feb 2019 10:04:05 -0800 Subject: [PATCH 069/279] chore(deps): update dependency mocha to v6 chore(deps): update dependency mocha to v6 This PR contains the following updates: | Package | Type | Update | Change | References | |---|---|---|---|---| | mocha | devDependencies | major | `^5.2.0` -> `^6.0.0` | [homepage](https://mochajs.org/), [source](https://togithub.com/mochajs/mocha) | --- ### Release Notes
mochajs/mocha ### [`v6.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​600--2019-02-18) [Compare Source](https://togithub.com/mochajs/mocha/compare/v5.2.0...v6.0.0) #### :tada: Enhancements - [#​3726](https://togithub.com/mochajs/mocha/issues/3726): Add ability to unload files from `require` cache ([**@​plroebuck**](https://togithub.com/plroebuck)) #### :bug: Fixes - [#​3737](https://togithub.com/mochajs/mocha/issues/3737): Fix falsy values from options globals ([**@​plroebuck**](https://togithub.com/plroebuck)) - [#​3707](https://togithub.com/mochajs/mocha/issues/3707): Fix encapsulation issues for `Suite#_onlyTests` and `Suite#_onlySuites` ([**@​vkarpov15**](https://togithub.com/vkarpov15)) - [#​3711](https://togithub.com/mochajs/mocha/issues/3711): Fix diagnostic messages dealing with plurality and markup of output ([**@​plroebuck**](https://togithub.com/plroebuck)) - [#​3723](https://togithub.com/mochajs/mocha/issues/3723): Fix "reporter-option" to allow comma-separated options ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3722](https://togithub.com/mochajs/mocha/issues/3722): Fix code quality and performance of `lookupFiles` and `files` ([**@​plroebuck**](https://togithub.com/plroebuck)) - [#​3650](https://togithub.com/mochajs/mocha/issues/3650), [#​3654](https://togithub.com/mochajs/mocha/issues/3654): Fix noisy error message when no files found ([**@​craigtaub**](https://togithub.com/craigtaub)) - [#​3632](https://togithub.com/mochajs/mocha/issues/3632): Tests having an empty title are no longer confused with the "root" suite ([**@​juergba**](https://togithub.com/juergba)) - [#​3666](https://togithub.com/mochajs/mocha/issues/3666): Fix missing error codes ([**@​vkarpov15**](https://togithub.com/vkarpov15)) - [#​3684](https://togithub.com/mochajs/mocha/issues/3684): Fix exiting problem in Node.js v11.7.0+ ([**@​addaleax**](https://togithub.com/addaleax)) - [#​3691](https://togithub.com/mochajs/mocha/issues/3691): Fix `--delay` (and other boolean options) not working in all cases ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3692](https://togithub.com/mochajs/mocha/issues/3692): Fix invalid command-line argument usage not causing actual errors ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3698](https://togithub.com/mochajs/mocha/issues/3698), [#​3699](https://togithub.com/mochajs/mocha/issues/3699): Fix debug-related Node.js options not working in all cases ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3700](https://togithub.com/mochajs/mocha/issues/3700): Growl notifications now show the correct number of tests run ([**@​outsideris**](https://togithub.com/outsideris)) - [#​3686](https://togithub.com/mochajs/mocha/issues/3686): Avoid potential ReDoS when diffing large objects ([**@​cyjake**](https://togithub.com/cyjake)) - [#​3715](https://togithub.com/mochajs/mocha/issues/3715): Fix incorrect order of emitted events when used programmatically ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3706](https://togithub.com/mochajs/mocha/issues/3706): Fix regression wherein `--reporter-option`/`--reporter-options` did not support comma-separated key/value pairs ([**@​boneskull**](https://togithub.com/boneskull)) #### :book: Documentation - [#​3652](https://togithub.com/mochajs/mocha/issues/3652): Switch from Jekyll to Eleventy ([**@​Munter**](https://togithub.com/Munter)) #### :nut_and_bolt: Other - [#​3677](https://togithub.com/mochajs/mocha/issues/3677): Add error objects for createUnsupportedError and createInvalidExceptionError ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3733](https://togithub.com/mochajs/mocha/issues/3733): Removed unnecessary processing in post-processing hook ([**@​wanseob**](https://togithub.com/wanseob)) - [#​3730](https://togithub.com/mochajs/mocha/issues/3730): Update nyc to latest version ([**@​coreyfarrell**](https://togithub.com/coreyfarrell)) - [#​3648](https://togithub.com/mochajs/mocha/issues/3648), [#​3680](https://togithub.com/mochajs/mocha/issues/3680): Fixes to support latest versions of [unexpected](https://npm.im/unexpected) and [unexpected-sinon](https://npm.im/unexpected-sinon) ([**@​sunesimonsen**](https://togithub.com/sunesimonsen)) - [#​3638](https://togithub.com/mochajs/mocha/issues/3638): Add meta tag to site ([**@​MartijnCuppens**](https://togithub.com/MartijnCuppens)) - [#​3653](https://togithub.com/mochajs/mocha/issues/3653): Fix parts of test suite failing to run on Windows ([**@​boneskull**](https://togithub.com/boneskull))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`". :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#googleapis/nodejs-paginator). #95 automerged by dpebot --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index fad03db9ffd..03e1b81f7cd 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -41,7 +41,7 @@ "codecov": "^3.0.4", "gts": "^0.9.0", "intelli-espower-loader": "^1.0.1", - "mocha": "^5.2.0", + "mocha": "^6.0.0", "nyc": "^13.0.0", "proxyquire": "^2.0.1", "sinon": "^7.0.0", From 609c688004ff6b795916af8b2446065d450950cb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Tue, 5 Mar 2019 05:39:48 -0800 Subject: [PATCH 070/279] build: update release configuration This PR was generated using Autosynth. :rainbow: Here's the log from Synthtool: ``` synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py. .eslintignore .eslintrc.yml .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md .github/ISSUE_TEMPLATE/support_request.md .jsdoc.js .kokoro/common.cfg .kokoro/continuous/node10/common.cfg .kokoro/continuous/node10/test.cfg .kokoro/continuous/node11/common.cfg .kokoro/continuous/node11/test.cfg .kokoro/continuous/node6/common.cfg .kokoro/continuous/node6/test.cfg .kokoro/continuous/node8/common.cfg .kokoro/continuous/node8/docs.cfg .kokoro/continuous/node8/lint.cfg .kokoro/continuous/node8/samples-test.cfg .kokoro/continuous/node8/system-test-grpcjs.cfg .kokoro/continuous/node8/system-test.cfg .kokoro/continuous/node8/test.cfg .kokoro/docs.sh .kokoro/lint.sh .kokoro/presubmit/node10/common.cfg .kokoro/presubmit/node10/test.cfg .kokoro/presubmit/node11/common.cfg .kokoro/presubmit/node11/test.cfg .kokoro/presubmit/node6/common.cfg .kokoro/presubmit/node6/test.cfg .kokoro/presubmit/node8/common.cfg .kokoro/presubmit/node8/docs.cfg .kokoro/presubmit/node8/lint.cfg .kokoro/presubmit/node8/samples-test.cfg .kokoro/presubmit/node8/system-test-grpcjs.cfg .kokoro/presubmit/node8/system-test.cfg .kokoro/presubmit/node8/test.cfg .kokoro/presubmit/windows/common.cfg .kokoro/presubmit/windows/test.cfg .kokoro/publish.sh .kokoro/release/publish.cfg .kokoro/samples-test.sh .kokoro/system-test.sh .kokoro/test.bat .kokoro/test.sh .kokoro/trampoline.sh .nycrc .prettierignore .prettierrc CODE_OF_CONDUCT.md CONTRIBUTING.md LICENSE codecov.yaml renovate.json synthtool > Cleaned up 2 temporary directories. synthtool > Wrote metadata to synth.metadata. ``` --- core/paginator/.kokoro/release/publish.cfg | 20 ++++++++++++++++++++ core/paginator/synth.metadata | 13 ++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 19846f457d9..d3acba3184a 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -18,6 +18,26 @@ before_action { } } +# Fetch magictoken to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "releasetool-magictoken" + } + } +} + +# Fetch api key to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "magic-github-proxy-api-key" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 9e26dfeeb6e..4f5650f47ba 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1 +1,12 @@ -{} \ No newline at end of file +{ + "updateTime": "2019-03-05T12:20:14.145603Z", + "sources": [ + { + "template": { + "name": "node_library", + "origin": "synthtool.gcp", + "version": "2019.2.26" + } + } + ] +} \ No newline at end of file From 86df058bf77f85c7f377bc14cb4e07c264912b11 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 6 Mar 2019 17:46:06 -0800 Subject: [PATCH 071/279] build: fix types for sinon (#98) --- core/paginator/.gitignore | 1 + core/paginator/src/index.ts | 5 +---- core/paginator/test/index.ts | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/core/paginator/.gitignore b/core/paginator/.gitignore index 842bb9c24b0..4164f092b4b 100644 --- a/core/paginator/.gitignore +++ b/core/paginator/.gitignore @@ -3,3 +3,4 @@ node_modules build package-lock.json docs/ +.coverage diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 20da5676014..52affa6c113 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -24,7 +24,7 @@ import {split} from 'split-array-stream'; import {Transform, TransformOptions} from 'stream'; import * as streamEvents from 'stream-events'; -interface CreateLimiterOptions { +export interface CreateLimiterOptions { /** * The maximum number of API calls to make. */ @@ -328,16 +328,13 @@ export class Paginator { if (streamEnded) { return; } - if (nextQuery && resultsToSend !== 0) { limiter.makeRequest(nextQuery); return; } - stream.push(null); }); } - return limiter.stream; } } diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index b078999927f..97048a893f2 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -22,7 +22,7 @@ import * as streamEvents from 'stream-events'; import * as through from 'through2'; import * as uuid from 'uuid'; import * as P from '../src'; -import {paginator, Paginator, ParsedArguments} from '../src'; +import {paginator, ParsedArguments} from '../src'; const util = { noop: () => {} @@ -394,7 +394,7 @@ describe('paginator', () => { query: {maxApiCalls: 12345, pageSize: 23456}, }; - let limiterStub: sinon.SinonStub; + let limiterStub: sinon.SinonStub<[Function, (P.CreateLimiterOptions | undefined)?], P.Limiter>; beforeEach(() => { limiterStub = sandbox.stub(p, 'createLimiter').callsFake(makeRequest => { const transformStream = new stream.Transform({objectMode: true}); From 848db461dd41701be94899577a5ab8dec08135f8 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Wed, 6 Mar 2019 17:46:32 -0800 Subject: [PATCH 072/279] build: use node10 to run samples-test, system-test etc (#97) --- core/paginator/.kokoro/continuous/{node8 => node10}/docs.cfg | 0 core/paginator/.kokoro/continuous/{node8 => node10}/lint.cfg | 0 .../.kokoro/continuous/{node8 => node10}/samples-test.cfg | 0 .../.kokoro/continuous/{node8 => node10}/system-test-grpcjs.cfg | 0 .../.kokoro/continuous/{node8 => node10}/system-test.cfg | 0 core/paginator/.kokoro/presubmit/{node8 => node10}/docs.cfg | 0 core/paginator/.kokoro/presubmit/{node8 => node10}/lint.cfg | 0 .../.kokoro/presubmit/{node8 => node10}/samples-test.cfg | 0 .../.kokoro/presubmit/{node8 => node10}/system-test-grpcjs.cfg | 0 .../paginator/.kokoro/presubmit/{node8 => node10}/system-test.cfg | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename core/paginator/.kokoro/continuous/{node8 => node10}/docs.cfg (100%) rename core/paginator/.kokoro/continuous/{node8 => node10}/lint.cfg (100%) rename core/paginator/.kokoro/continuous/{node8 => node10}/samples-test.cfg (100%) rename core/paginator/.kokoro/continuous/{node8 => node10}/system-test-grpcjs.cfg (100%) rename core/paginator/.kokoro/continuous/{node8 => node10}/system-test.cfg (100%) rename core/paginator/.kokoro/presubmit/{node8 => node10}/docs.cfg (100%) rename core/paginator/.kokoro/presubmit/{node8 => node10}/lint.cfg (100%) rename core/paginator/.kokoro/presubmit/{node8 => node10}/samples-test.cfg (100%) rename core/paginator/.kokoro/presubmit/{node8 => node10}/system-test-grpcjs.cfg (100%) rename core/paginator/.kokoro/presubmit/{node8 => node10}/system-test.cfg (100%) diff --git a/core/paginator/.kokoro/continuous/node8/docs.cfg b/core/paginator/.kokoro/continuous/node10/docs.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node8/docs.cfg rename to core/paginator/.kokoro/continuous/node10/docs.cfg diff --git a/core/paginator/.kokoro/continuous/node8/lint.cfg b/core/paginator/.kokoro/continuous/node10/lint.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node8/lint.cfg rename to core/paginator/.kokoro/continuous/node10/lint.cfg diff --git a/core/paginator/.kokoro/continuous/node8/samples-test.cfg b/core/paginator/.kokoro/continuous/node10/samples-test.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node8/samples-test.cfg rename to core/paginator/.kokoro/continuous/node10/samples-test.cfg diff --git a/core/paginator/.kokoro/continuous/node8/system-test-grpcjs.cfg b/core/paginator/.kokoro/continuous/node10/system-test-grpcjs.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node8/system-test-grpcjs.cfg rename to core/paginator/.kokoro/continuous/node10/system-test-grpcjs.cfg diff --git a/core/paginator/.kokoro/continuous/node8/system-test.cfg b/core/paginator/.kokoro/continuous/node10/system-test.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node8/system-test.cfg rename to core/paginator/.kokoro/continuous/node10/system-test.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/docs.cfg b/core/paginator/.kokoro/presubmit/node10/docs.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node8/docs.cfg rename to core/paginator/.kokoro/presubmit/node10/docs.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/lint.cfg b/core/paginator/.kokoro/presubmit/node10/lint.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node8/lint.cfg rename to core/paginator/.kokoro/presubmit/node10/lint.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/samples-test.cfg b/core/paginator/.kokoro/presubmit/node10/samples-test.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node8/samples-test.cfg rename to core/paginator/.kokoro/presubmit/node10/samples-test.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/system-test-grpcjs.cfg b/core/paginator/.kokoro/presubmit/node10/system-test-grpcjs.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node8/system-test-grpcjs.cfg rename to core/paginator/.kokoro/presubmit/node10/system-test-grpcjs.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/system-test.cfg b/core/paginator/.kokoro/presubmit/node10/system-test.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node8/system-test.cfg rename to core/paginator/.kokoro/presubmit/node10/system-test.cfg From ace80fa2d40632b2f902aaa1e3aba936cda7a49c Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 7 Mar 2019 18:05:25 -0800 Subject: [PATCH 073/279] build: Add docuploader credentials to node publish jobs (#99) --- core/paginator/.kokoro/release/publish.cfg | 9 +++++++++ core/paginator/synth.metadata | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index d3acba3184a..c2bba21f12c 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -18,6 +18,15 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + # Fetch magictoken to use with Magic Github Proxy before_action { fetch_keystore { diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 4f5650f47ba..77e239b8ba4 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-03-05T12:20:14.145603Z", + "updateTime": "2019-03-08T00:45:41.352599Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.2.26" + "version": "2019.1.16" } } ] From f786be9ead68bc86a0347a334533e7aa070695fe Mon Sep 17 00:00:00 2001 From: Alex <7764119+AVaksman@users.noreply.github.com> Date: Fri, 8 Mar 2019 13:14:17 -0500 Subject: [PATCH 074/279] feat: handle promise based functions (#91) --- core/paginator/src/index.ts | 32 ++-- core/paginator/test/index.ts | 302 ++++++++++++++++++++++++----------- 2 files changed, 232 insertions(+), 102 deletions(-) diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 52affa6c113..af683815c25 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -221,8 +221,8 @@ export class Paginator { delete query.maxApiCalls; } - // maxResults is the user specified a limit. - if (callback && (maxResults !== -1 || query.autoPaginate === false)) { + // maxResults is the user specified limit. + if (maxResults !== -1 || query.autoPaginate === false) { autoPaginate = false; } } @@ -263,15 +263,21 @@ export class Paginator { run_(parsedArguments: ParsedArguments, originalMethod: Function) { const query = parsedArguments.query; const callback = parsedArguments.callback!; - if (parsedArguments.autoPaginate) { - const results = new Array<{}>(); + if (!parsedArguments.autoPaginate) { + return originalMethod(query, callback); + } + const results = new Array<{}>(); + const promise = new Promise((resolve, reject) => { paginator.runAsStream_(parsedArguments, originalMethod) - .on('error', callback) + .on('error', reject) .on('data', (data: {}) => results.push(data)) - .on('end', () => callback(null, results)); - } else { - originalMethod(query, callback); + .on('end', () => resolve(results)); + }); + if (!callback) { + return promise.then(results => [results]); } + promise.then( + results => callback(null, results), (err: Error) => callback(err)); } /** @@ -312,19 +318,19 @@ export class Paginator { } // tslint:disable-next-line:no-any - function onResultSet(err: Error, results: any[], nextQuery: any) { + function onResultSet(err: Error|null, results?: any[], nextQuery?: any) { if (err) { stream.destroy(err); return; } - if (resultsToSend >= 0 && results.length > resultsToSend) { - results = results.splice(0, resultsToSend); + if (resultsToSend >= 0 && results!.length > resultsToSend) { + results = results!.splice(0, resultsToSend); } - resultsToSend -= results.length; + resultsToSend -= results!.length; - split(results, stream).then(streamEnded => { + split(results!, stream).then(streamEnded => { if (streamEnded) { return; } diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 97048a893f2..ae0b117af7b 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -308,82 +308,151 @@ describe('paginator', () => { describe('run_', () => { describe('autoPaginate', () => { - it('should call runAsStream_ when autoPaginate:true', (done) => { - const parsedArguments = { - autoPaginate: true, - callback: util.noop, - }; + describe('originalmethod is callback based', () => { + it('should call runAsStream_ when autoPaginate:true', (done) => { + const parsedArguments = { + autoPaginate: true, + callback: util.noop, + }; + + sandbox.stub(paginator, 'runAsStream_') + .callsFake((args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + originalMethod(); + return through(); + }); + + paginator.run_(parsedArguments, done); + }); - sandbox.stub(paginator, 'runAsStream_') - .callsFake((args, originalMethod) => { - assert.strictEqual(args, parsedArguments); - originalMethod(); - return through(); - }); + it('should execute callback on error', (done) => { + const error = new Error('Error.'); - paginator.run_(parsedArguments, done); - }); + const parsedArguments = { + autoPaginate: true, + callback(err: Error) { + assert.strictEqual(err, error); + done(); + }, + }; - it('should execute callback on error', (done) => { - const error = new Error('Error.'); + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { + const stream = through(); + setImmediate(() => { + stream.emit('error', error); + }); + return stream; + }); - const parsedArguments = { - autoPaginate: true, - callback(err: Error) { - assert.strictEqual(err, error); - done(); - }, - }; + paginator.run_(parsedArguments, util.noop); + }); - sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - const stream = through(); - setImmediate(() => { - stream.emit('error', error); + it('should return all results on end', (done) => { + const results = [{a: 1}, {b: 2}, {c: 3}]; + + const parsedArguments = { + autoPaginate: true, + callback(err: Error, results_: {}) { + assert.deepStrictEqual(results_, results); + done(); + }, + }; + + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { + const stream = through.obj(); + setImmediate(() => { + results.forEach(result => stream.push(result)); + stream.push(null); + }); + return stream; }); - return stream; - }); - paginator.run_(parsedArguments, util.noop); + paginator.run_(parsedArguments, util.noop); + }); }); - it('should return all results on end', (done) => { - const results = [{a: 1}, {b: 2}, {c: 3}]; - + describe('original method is promise based', () => { const parsedArguments = { autoPaginate: true, - callback(err: Error, results_: {}) { - assert.deepStrictEqual(results_, results); - done(); - }, }; + it('should call runAsStream_ when autoPaginate:true', (done) => { + sandbox.stub(paginator, 'runAsStream_') + .callsFake((args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + originalMethod(); + return through(); + }); + + paginator.run_(parsedArguments, done); + }); - sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - const stream = through.obj(); - setImmediate(() => { - results.forEach(result => stream.push(result)); - stream.push(null); + it('should reject a promise on error', () => { + const error = new Error('Error.'); + + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { + const stream = through(); + setImmediate(() => { + stream.emit('error', error); + }); + return stream; }); - return stream; + + paginator.run_(parsedArguments, util.noop) + .then(util.noop, (err: Error) => assert.strictEqual(err, error)); }); - paginator.run_(parsedArguments, util.noop); + it('should resolve with all results on end', () => { + const results = [{a: 1}, {b: 2}, {c: 3}]; + + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { + const stream = through.obj(); + setImmediate(() => { + results.forEach(result => stream.push(result)); + stream.push(null); + }); + return stream; + }); + + paginator.run_(parsedArguments, util.noop) + .then( + ([results_]: [1]) => + assert.deepStrictEqual(results_, results)); + }); }); }); describe('manual pagination', () => { - it('should recoginze autoPaginate: false', (done) => { - const parsedArguments = { - autoPaginate: false, - query: { - a: 'b', - c: 'd', - }, - callback: done, - } as ParsedArguments; - sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); - paginator.run_(parsedArguments, (query: {}, callback: () => void) => { - assert.deepStrictEqual(query, parsedArguments.query); - callback(); + describe('originalmethod is callback based', () => { + it('should recognize autoPaginate: false', (done) => { + const parsedArguments = { + autoPaginate: false, + query: { + a: 'b', + c: 'd', + }, + callback: done, + } as ParsedArguments; + sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); + paginator.run_(parsedArguments, (query: {}, callback: () => void) => { + assert.deepStrictEqual(query, parsedArguments.query); + callback(); + }); + }); + }); + + describe('original method is promise based', () => { + it('should recognize autoPaginate: false', () => { + const parsedArguments = { + autoPaginate: false, + query: { + a: 'b', + c: 'd', + }, + } as ParsedArguments; + sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); + paginator.run_(parsedArguments, (query: {}) => { + assert.deepStrictEqual(query, parsedArguments.query); + }); }); }); }); @@ -392,6 +461,7 @@ describe('paginator', () => { describe('runAsStream_', () => { const PARSED_ARGUMENTS = { query: {maxApiCalls: 12345, pageSize: 23456}, + callback: util.noop }; let limiterStub: sinon.SinonStub<[Function, (P.CreateLimiterOptions | undefined)?], P.Limiter>; @@ -411,48 +481,100 @@ describe('paginator', () => { }); }); - it('should call original method when stream opens', (done) => { - function originalMethod(query: {}) { - assert.strictEqual(query, PARSED_ARGUMENTS.query); - done(); - } - p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - }); + describe('originalmethod is callback based', () => { + it('should call original method when stream opens', (done) => { + function originalMethod(query: {}) { + assert.strictEqual(query, PARSED_ARGUMENTS.query); + done(); + } + p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + }); + + it('should emit an error if one occurs', (done) => { + const error = new Error('Error.'); - it('should emit an error if one occurs', (done) => { - const error = new Error('Error.'); + function originalMethod(query: {}, callback: (err: Error) => void) { + setImmediate(() => { + callback(error); + }); + } - function originalMethod(query: {}, callback: (err: Error) => void) { - setImmediate(() => { - callback(error); + const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('error', (err: Error) => { + assert.deepStrictEqual(err, error); + done(); }); - } + }); - const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('error', (err: Error) => { - assert.deepStrictEqual(err, error); - done(); + it('should push results onto the stream', (done) => { + const results = ['a', 'b', 'c']; + const resultsReceived: Array<{}> = []; + + function originalMethod( + query: {}, callback: (err: Error|null, results: {}) => void) { + setImmediate(() => { + callback(null, results); + }); + } + + const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('data', (result: {}) => { + resultsReceived.push(result); + }); + rs.on('end', () => { + assert.deepStrictEqual(resultsReceived, ['a', 'b', 'c']); + done(); + }); }); }); - it('should push results onto the stream', (done) => { - const results = ['a', 'b', 'c']; - const resultsReceived: Array<{}> = []; + describe('originalmethod is promise based', () => { + before(() => { + delete PARSED_ARGUMENTS.callback; + }); + it('should call original method when stream opens', (done) => { + function originalMethod(query: {}) { + assert.strictEqual(query, PARSED_ARGUMENTS.query); + done(); + } + p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + }); - function originalMethod( - query: {}, callback: (err: Error|null, results: {}) => void) { - setImmediate(() => { - callback(null, results); - }); - } + it('should emit an error if one occurs', (done) => { + const error = new Error('Error.'); - const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('data', (result: {}) => { - resultsReceived.push(result); + function originalMethod(query: {}, callback: (err: Error) => void) { + setImmediate(() => { + callback(error); + }); + } + + const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('error', (err: Error) => { + assert.deepStrictEqual(err, error); + done(); + }); }); - rs.on('end', () => { - assert.deepStrictEqual(resultsReceived, ['a', 'b', 'c']); - done(); + + it('should push results onto the stream', (done) => { + const results = ['a', 'b', 'c']; + const resultsReceived: Array<{}> = []; + + function originalMethod( + query: {}, callback: (err: Error|null, results: {}) => void) { + setImmediate(() => { + callback(null, results); + }); + } + + const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); + rs.on('data', (result: {}) => { + resultsReceived.push(result); + }); + rs.on('end', () => { + assert.deepStrictEqual(resultsReceived, ['a', 'b', 'c']); + done(); + }); }); }); @@ -509,7 +631,9 @@ describe('paginator', () => { it('should respect maxResults', (done) => { let numResultsReceived = 0; - p.paginator.runAsStream_({maxResults: limit}, originalMethod) + p.paginator + .runAsStream_( + {maxResults: limit, callback: util.noop}, originalMethod) .on('data', () => { numResultsReceived++; From 4036681b8cb30e72868c5e155d58bcdb327c4445 Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Fri, 8 Mar 2019 11:24:05 -0800 Subject: [PATCH 075/279] refactor(ts): create generic for object streams (#101) --- core/paginator/src/index.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index af683815c25..91567e17b1b 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -42,6 +42,18 @@ export interface Limiter { stream: Transform; } +export type ResourceStream = { + addListener(event: 'data', listener: (data: T) => void): ResourceStream; + emit(event: 'data', data: T): boolean; + on(event: 'data', listener: (data: T) => void): ResourceStream; + once(event: 'data', listener: (data: T) => void): ResourceStream; + prependListener(event: 'data', listener: (data: T) => void): + ResourceStream; + prependOnceListener(event: 'data', listener: (data: T) => void): + ResourceStream; + removeListener(event: 'data', listener: (data: T) => void): ResourceStream; +}&Transform; + /** * Limit requests according to a `maxApiCalls` limit. * @@ -168,9 +180,11 @@ export class Paginator { * @param {string} methodName - Name of the method to streamify. * @return {function} - Wrapped function. */ - streamify(methodName: string) { - // tslint:disable-next-line:no-any - return function(this: {[index: string]: Function}, ...args: any[]) { + // tslint:disable-next-line:no-any + streamify(methodName: string) { + return function( + // tslint:disable-next-line:no-any + this: {[index: string]: Function}, ...args: any[]): ResourceStream { const parsedArguments = paginator.parseArguments_(args); const originalMethod = this[methodName + '_'] || this[methodName]; return paginator.runAsStream_(parsedArguments, originalMethod.bind(this)); From 504287357280b4438775cc519761d37b44b09b45 Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Fri, 8 Mar 2019 13:04:25 -0800 Subject: [PATCH 076/279] Release v0.2.0 (#102) --- core/paginator/CHANGELOG.md | 50 +++++++++++++++++++++++++++++++++++++ core/paginator/package.json | 2 +- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index a948d8fb0aa..50973c32267 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,56 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## v0.2.0 + +03-08-2019 12:15 PST + +### New Features +- feat: handle promise based functions ([#91](https://github.com/googleapis/nodejs-paginator/pull/91)) +- refactor(ts): create generic for object streams ([#101](https://github.com/googleapis/nodejs-paginator/pull/101)) + +### Dependencies +- chore(deps): update dependency through2 to v3 ([#53](https://github.com/googleapis/nodejs-paginator/pull/53)) +- chore(deps): update dependency @types/is to v0.0.21 ([#55](https://github.com/googleapis/nodejs-paginator/pull/55)) +- chore(deps): update dependency gts to ^0.9.0 ([#57](https://github.com/googleapis/nodejs-paginator/pull/57)) +- fix: Pin @types/sinon to last compatible version ([#61](https://github.com/googleapis/nodejs-paginator/pull/61)) +- refactor: trim a few dependencies ([#60](https://github.com/googleapis/nodejs-paginator/pull/60)) +- chore(deps): update dependency @types/sinon to v5.0.7 ([#62](https://github.com/googleapis/nodejs-paginator/pull/62)) +- chore(deps): update dependency @types/sinon to v7 ([#81](https://github.com/googleapis/nodejs-paginator/pull/81)) +- chore(deps): update dependency mocha to v6 + +### Documentation +- docs: add lint/fix example to contributing guide ([#85](https://github.com/googleapis/nodejs-paginator/pull/85)) +- chore: move CONTRIBUTING.md to root ([#87](https://github.com/googleapis/nodejs-paginator/pull/87)) +- docs: update links in contrib guide ([#94](https://github.com/googleapis/nodejs-paginator/pull/94)) +- docs: update contributing path in README ([#88](https://github.com/googleapis/nodejs-paginator/pull/88)) + +### Internal / Testing Changes +- chore: include build in eslintignore ([#49](https://github.com/googleapis/nodejs-paginator/pull/49)) +- chore: update CircleCI config ([#52](https://github.com/googleapis/nodejs-paginator/pull/52)) +- chore: use latest npm on Windows ([#54](https://github.com/googleapis/nodejs-paginator/pull/54)) +- chore: update eslintignore config ([#56](https://github.com/googleapis/nodejs-paginator/pull/56)) +- chore: add synth.metadata +- fix(build): fix system key decryption ([#64](https://github.com/googleapis/nodejs-paginator/pull/64)) +- chore: update license file ([#68](https://github.com/googleapis/nodejs-paginator/pull/68)) +- chore(build): update prettier config ([#69](https://github.com/googleapis/nodejs-paginator/pull/69)) +- chore: nyc ignore build/test by default ([#71](https://github.com/googleapis/nodejs-paginator/pull/71)) +- chore: always nyc report before calling codecov ([#72](https://github.com/googleapis/nodejs-paginator/pull/72)) +- build: add Kokoro configs for autorelease ([#75](https://github.com/googleapis/nodejs-paginator/pull/75)) +- fix(build): fix Kokoro release script ([#76](https://github.com/googleapis/nodejs-paginator/pull/76)) +- chore: fix publish.sh permission +x ([#77](https://github.com/googleapis/nodejs-paginator/pull/77)) +- chore: update nyc and eslint configs ([#79](https://github.com/googleapis/nodejs-paginator/pull/79)) +- chore(build): inject yoshi automation key ([#80](https://github.com/googleapis/nodejs-paginator/pull/80)) +- build: check broken links in generated docs ([#82](https://github.com/googleapis/nodejs-paginator/pull/82)) +- build: ignore googleapis.com in doc link check ([#84](https://github.com/googleapis/nodejs-paginator/pull/84)) +- build: test using @grpc/grpc-js in CI ([#89](https://github.com/googleapis/nodejs-paginator/pull/89)) +- build: create docs test npm scripts ([#90](https://github.com/googleapis/nodejs-paginator/pull/90)) +- build: use linkinator for docs test ([#93](https://github.com/googleapis/nodejs-paginator/pull/93)) +- build: update release configuration +- build: fix types for sinon ([#98](https://github.com/googleapis/nodejs-paginator/pull/98)) +- build: use node10 to run samples-test, system-test etc ([#97](https://github.com/googleapis/nodejs-paginator/pull/97)) +- build: Add docuploader credentials to node publish jobs ([#99](https://github.com/googleapis/nodejs-paginator/pull/99)) + ## v0.1.2 ### Bug fixes diff --git a/core/paginator/package.json b/core/paginator/package.json index 03e1b81f7cd..c44de8811b3 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "0.1.2", + "version": "0.2.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 4415f76ff04c0f4e8f2a8990fb02f7b24c9bc4b6 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 14 Mar 2019 17:15:27 -0700 Subject: [PATCH 077/279] build: use per-repo npm publish token (#103) --- core/paginator/.kokoro/release/publish.cfg | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index c2bba21f12c..72be9f9abb3 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -47,6 +47,15 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google-cloud-paginator-npm-token" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" From 49ef352303830cadd9a7962e91691e1ddaa6b332 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 19 Mar 2019 18:13:56 -0700 Subject: [PATCH 078/279] chore: publish to npm using wombat (#105) --- core/paginator/.kokoro/publish.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index f2a8adc0b43..51f4d72f2da 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -24,8 +24,8 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google_cloud_npm_token) -echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc +NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-paginator-npm-token) +echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install -npm publish --access=public +npm publish --access=public --registry=https://wombat-dressing-room.appspot.com From 1b274803bb0ee9582920a00795690aeb1802f1ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 5 Apr 2019 11:17:29 -0700 Subject: [PATCH 079/279] fix(deps): update dependency arrify to v2 (#109) --- core/paginator/package.json | 7 +++---- core/paginator/src/index.ts | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index c44de8811b3..7037d3ce357 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -30,7 +30,6 @@ "license": "Apache-2.0", "devDependencies": { "@compodoc/compodoc": "^1.1.7", - "@types/arrify": "^1.0.4", "@types/extend": "^3.0.0", "@types/mocha": "^5.2.4", "@types/node": "^10.5.2", @@ -41,6 +40,7 @@ "codecov": "^3.0.4", "gts": "^0.9.0", "intelli-espower-loader": "^1.0.1", + "linkinator": "^1.1.2", "mocha": "^6.0.0", "nyc": "^13.0.0", "proxyquire": "^2.0.1", @@ -48,11 +48,10 @@ "source-map-support": "^0.5.6", "through2": "^3.0.0", "typescript": "^3.0.0", - "uuid": "^3.3.2", - "linkinator": "^1.1.2" + "uuid": "^3.3.2" }, "dependencies": { - "arrify": "^1.0.1", + "arrify": "^2.0.0", "extend": "^3.0.1", "split-array-stream": "^2.0.0", "stream-events": "^1.0.4" diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 91567e17b1b..6b159741444 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -18,7 +18,7 @@ * @module common/paginator */ -import * as arrify from 'arrify'; +import arrify = require('arrify'); import * as extend from 'extend'; import {split} from 'split-array-stream'; import {Transform, TransformOptions} from 'stream'; From ed704c0868b1a7788ec523a75b9d2e1a8ad5652b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 16 Apr 2019 06:58:11 -0700 Subject: [PATCH 080/279] chore(deps): update dependency nyc to v14 chore(deps): update dependency nyc to v14 This PR contains the following updates: | Package | Type | Update | Change | References | |---|---|---|---|---| | nyc | devDependencies | major | [`^13.0.0` -> `^14.0.0`](https://diff.intrinsic.com/nyc/13.3.0/14.0.0) | [source](https://togithub.com/istanbuljs/nyc) | --- ### Release Notes
istanbuljs/nyc ### [`v14.0.0`](https://togithub.com/istanbuljs/nyc/blob/master/CHANGELOG.md#​1400httpsgithubcomistanbuljsnyccomparev1330v1400-2019-04-15) [Compare Source](https://togithub.com/istanbuljs/nyc/compare/v13.3.0...v14.0.0) ##### Bug Fixes - Add `cwd` option to instrument command ([#​1024](https://togithub.com/istanbuljs/nyc/issues/1024)) ([051d95a](https://togithub.com/istanbuljs/nyc/commit/051d95a)) - Add config values to hash salt ([#​988](https://togithub.com/istanbuljs/nyc/issues/988)) ([7ac325d](https://togithub.com/istanbuljs/nyc/commit/7ac325d)), closes [#​522](https://togithub.com/istanbuljs/nyc/issues/522) - Exclude negated not working with '--all' switch ([#​977](https://togithub.com/istanbuljs/nyc/issues/977)) ([91de23c](https://togithub.com/istanbuljs/nyc/commit/91de23c)) - Make --all work for transpiled code ([#​1047](https://togithub.com/istanbuljs/nyc/issues/1047)) ([18e04ba](https://togithub.com/istanbuljs/nyc/commit/18e04ba)) - Resolve absolute paths in nyc instrument ([#​1012](https://togithub.com/istanbuljs/nyc/issues/1012)) ([3cb1861](https://togithub.com/istanbuljs/nyc/commit/3cb1861)), closes [#​1014](https://togithub.com/istanbuljs/nyc/issues/1014) - Set processinfo pid/ppid to actual numbers ([#​1057](https://togithub.com/istanbuljs/nyc/issues/1057)) ([32f75b0](https://togithub.com/istanbuljs/nyc/commit/32f75b0)) - Use a single instance of nyc for all actions of main command. ([#​1059](https://togithub.com/istanbuljs/nyc/issues/1059)) ([b909575](https://togithub.com/istanbuljs/nyc/commit/b909575)) ##### Features - Add `delete` option to instrument command ([#​1005](https://togithub.com/istanbuljs/nyc/issues/1005)) ([d6db551](https://togithub.com/istanbuljs/nyc/commit/d6db551)) - Add `include` and `exclude` options to instrument command ([#​1007](https://togithub.com/istanbuljs/nyc/issues/1007)) ([8da097e](https://togithub.com/istanbuljs/nyc/commit/8da097e)) - Add processinfo index, add externalId ([#​1055](https://togithub.com/istanbuljs/nyc/issues/1055)) ([8dcf180](https://togithub.com/istanbuljs/nyc/commit/8dcf180)) - Add support for nyc.config.js ([#​1019](https://togithub.com/istanbuljs/nyc/issues/1019)) ([3b203c7](https://togithub.com/istanbuljs/nyc/commit/3b203c7)) - Add support to exclude files on coverage report generation ([#​982](https://togithub.com/istanbuljs/nyc/issues/982)) ([509c6aa](https://togithub.com/istanbuljs/nyc/commit/509c6aa)) - Add test-exclude args to check-coverage and report subcommands. ([0fc217e](https://togithub.com/istanbuljs/nyc/commit/0fc217e)) - Always build the processinfo temp dir ([#​1061](https://togithub.com/istanbuljs/nyc/issues/1061)) ([c213469](https://togithub.com/istanbuljs/nyc/commit/c213469)) - Enable `es-modules` option for nyc instrument command ([#​1006](https://togithub.com/istanbuljs/nyc/issues/1006)) ([596b120](https://togithub.com/istanbuljs/nyc/commit/596b120)) - Fix excludeAfterRemap functionality. ([36bcc0b](https://togithub.com/istanbuljs/nyc/commit/36bcc0b)) - Implement `nyc instrument --complete-copy` ([#​1056](https://togithub.com/istanbuljs/nyc/issues/1056)) ([2eb13c6](https://togithub.com/istanbuljs/nyc/commit/2eb13c6)) - Remove bundling ([#​1017](https://togithub.com/istanbuljs/nyc/issues/1017)) ([b25492a](https://togithub.com/istanbuljs/nyc/commit/b25492a)) - Support turning off node_modules default exclude via `exclude-node-modules` option ([#​912](https://togithub.com/istanbuljs/nyc/issues/912)) ([b7e16cd](https://togithub.com/istanbuljs/nyc/commit/b7e16cd)) - Add support for `--exclude-node-modules` to subcommands. ([#​1053](https://togithub.com/istanbuljs/nyc/issues/1053)) ([e597c46](https://togithub.com/istanbuljs/nyc/commit/e597c46)) ##### BREAKING CHANGES - The `--exclude-after-remap` option is now functional and enabled by default. This causes the `include` and `exclude` lists to be processed after using source maps to determine the original filename of sources. - Add a file named 'index.json' to the .nyc_output/processinfo directory, which has a different format from the other files in this dir. - Change the data type of the pid/ppid fields in processinfo files - `nyc instrument` now honors `include` and `exclude` settings, potentially resulting in some files that were previously instrumented being ignored. - The `plugins` option has been renamed to `parser-plugins`. - The logic involving include/exclude processing has changed. Results should be verified to ensure all desired sources have coverage data. - `nyc instrument` now enables the `--es-module` option by default. This can cause failures to instrument scripts which violate `'use strict'` rules.
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`". :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#googleapis/nodejs-paginator). #110 automerged by dpebot --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 7037d3ce357..bc1f2a1b268 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -42,7 +42,7 @@ "intelli-espower-loader": "^1.0.1", "linkinator": "^1.1.2", "mocha": "^6.0.0", - "nyc": "^13.0.0", + "nyc": "^14.0.0", "proxyquire": "^2.0.1", "sinon": "^7.0.0", "source-map-support": "^0.5.6", From c4fb016f795d80eaf3a54814de7bd88986592a10 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 26 Apr 2019 17:14:51 -0700 Subject: [PATCH 081/279] docs: use repo-metadata to generate the README (#112) --- core/paginator/.gitignore | 1 + core/paginator/.repo-metadata.json | 8 +++ core/paginator/README.md | 85 ++++++++++++++++++++++++++---- core/paginator/synth.metadata | 4 +- 4 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 core/paginator/.repo-metadata.json diff --git a/core/paginator/.gitignore b/core/paginator/.gitignore index 4164f092b4b..e993f945563 100644 --- a/core/paginator/.gitignore +++ b/core/paginator/.gitignore @@ -4,3 +4,4 @@ build package-lock.json docs/ .coverage +__pycache__ diff --git a/core/paginator/.repo-metadata.json b/core/paginator/.repo-metadata.json new file mode 100644 index 00000000000..c15504eeb9f --- /dev/null +++ b/core/paginator/.repo-metadata.json @@ -0,0 +1,8 @@ +{ + "name": "paginator", + "name_pretty": "Google Cloud Common Paginator", + "release_level": "ga", + "language": "nodejs", + "repo": "googleapis/nodejs-paginator", + "distribution_name": "@google-cloud/paginator" +} diff --git a/core/paginator/README.md b/core/paginator/README.md index 203f67eb99e..57f32dd2f71 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -1,29 +1,84 @@ +[//]: # "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 -# @google-cloud/common-paginator -> A result paging utility used by Google node.js modules +# [Google Cloud Common Paginator: Node.js Client](https://github.com/googleapis/nodejs-paginator) -Google Cloud Common node.js module contains stuff used by other Cloud API modules. +[![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![npm version](https://img.shields.io/npm/v/@google-cloud/paginator.svg)](https://www.npmjs.org/package/@google-cloud/paginator) +[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-paginator/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-paginator) -* [github.com/googlecloudplatform/google-cloud-node](https://github.com/googlecloudplatform/google-cloud-node) + + + +A result paging utility used by Google node.js modules + + + + +* [github.com/googleapis/nodejs-paginator](https://github.com/googleapis/nodejs-paginator) 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 -### Installing the package +**Table of contents:** + + +* [Quickstart](#quickstart) + + * [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 + +### Installing the client library + +```bash +npm install @google-cloud/paginator +``` + + +### Using the client library + +```javascript +const {paginator} = require('@google-cloud/paginator'); +console.log(paginator); + +``` + + + +## Samples + +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-paginator/tree/master/samples) directory. The samples' `README.md` +has instructions for running the samples. + +| Sample | Source Code | Try it | +| --------------------------- | --------------------------------- | ------ | +| Quickstart | [source code](https://github.com/googleapis/nodejs-paginator/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | + -It's unlikely you will need to install this package directly, as it will be -installed as a dependency when you install other `@google-cloud` packages. ## Versioning This library follows [Semantic Versioning](http://semver.org/). -This library is considered to be in **alpha**. This means it is still a -work-in-progress and under active development. Any release is subject to -backwards-incompatible changes at any time. + +This library is considered to be **General Availability (GA)**. This means it +is 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 **GA** libraries +are addressed with the highest priority. + + + + More Information: [Google Cloud Platform Launch Stages][launch_stages] @@ -37,4 +92,12 @@ Contributions welcome! See the [Contributing Guide](https://github.com/googleapi Apache Version 2.0 -See [LICENSE](https://github.com/googlecloudplatform/google-cloud-node/blob/master/LICENSE) +See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/master/LICENSE) + + + +[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 + +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 77e239b8ba4..565db1eec7f 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-03-08T00:45:41.352599Z", + "updateTime": "2019-04-26T23:54:40.436313Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.1.16" + "version": "2019.4.10" } } ] From 0a9a0f3322fa06f306b817d835e20a828a152f96 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 29 Apr 2019 15:04:21 -0700 Subject: [PATCH 082/279] update to .nycrc with --all enabled (#113) --- core/paginator/.nycrc | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index 88b001cb587..bfe4073a6ab 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -1,28 +1,22 @@ { "report-dir": "./.coverage", - "reporter": "lcov", + "reporter": ["text", "lcov"], "exclude": [ - "src/*{/*,/**/*}.js", - "src/*/v*/*.js", - "test/**/*.js", - "build/test" + "**/*-test", + "**/.coverage", + "**/apis", + "**/benchmark", + "**/docs", + "**/samples", + "**/scripts", + "**/src/**/v*/**/*.js", + "**/test", + ".jsdoc.js", + "**/.jsdoc.js", + "karma.conf.js", + "webpack-tests.config.js", + "webpack.config.js" ], - "watermarks": { - "branches": [ - 95, - 100 - ], - "functions": [ - 95, - 100 - ], - "lines": [ - 95, - 100 - ], - "statements": [ - 95, - 100 - ] - } + "exclude-after-remap": false, + "all": true } From 1538aecf2b11f879639afe70d39d988525eca9c2 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 2 May 2019 10:01:25 -0700 Subject: [PATCH 083/279] chore: removing node6 CI (#116) --- .../.kokoro/continuous/node6/common.cfg | 24 ------------------- .../.kokoro/continuous/node6/test.cfg | 0 .../.kokoro/presubmit/node6/common.cfg | 24 ------------------- .../.kokoro/presubmit/node6/test.cfg | 0 4 files changed, 48 deletions(-) delete mode 100644 core/paginator/.kokoro/continuous/node6/common.cfg delete mode 100644 core/paginator/.kokoro/continuous/node6/test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node6/common.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node6/test.cfg diff --git a/core/paginator/.kokoro/continuous/node6/common.cfg b/core/paginator/.kokoro/continuous/node6/common.cfg deleted file mode 100644 index 559b68128ec..00000000000 --- a/core/paginator/.kokoro/continuous/node6/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/continuous/node6/test.cfg b/core/paginator/.kokoro/continuous/node6/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/.kokoro/presubmit/node6/common.cfg b/core/paginator/.kokoro/presubmit/node6/common.cfg deleted file mode 100644 index 559b68128ec..00000000000 --- a/core/paginator/.kokoro/presubmit/node6/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node6/test.cfg b/core/paginator/.kokoro/presubmit/node6/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 From a2e6b8f111ca917b44036143e5a5a733cf2fe0c2 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 2 May 2019 11:30:36 -0700 Subject: [PATCH 084/279] build!: upgrade engines field to >=8.10.0 (#115) --- core/paginator/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/paginator/package.json b/core/paginator/package.json index bc1f2a1b268..f9d98421aff 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -55,5 +55,8 @@ "extend": "^3.0.1", "split-array-stream": "^2.0.0", "stream-events": "^1.0.4" + }, + "engines": { + "node": ">=8.10.0" } } From 48f49425a112d3bc44c5002b802f343cb4233679 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 2 May 2019 16:49:44 -0700 Subject: [PATCH 085/279] chore(deps): update dependency gts to v1 (#111) --- core/paginator/package.json | 2 +- core/paginator/src/index.ts | 55 +++++---- core/paginator/test/index.ts | 210 ++++++++++++++++++++--------------- 3 files changed, 154 insertions(+), 113 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index f9d98421aff..aae39fcf0d5 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -38,7 +38,7 @@ "@types/through2": "^2.0.34", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", - "gts": "^0.9.0", + "gts": "^1.0.0", "intelli-espower-loader": "^1.0.1", "linkinator": "^1.1.2", "mocha": "^6.0.0", diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 6b159741444..b0a751742fe 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -38,7 +38,7 @@ export interface CreateLimiterOptions { export interface Limiter { // tslint:disable-next-line no-any - makeRequest(...args: any[]): Transform|undefined; + makeRequest(...args: any[]): Transform | undefined; stream: Transform; } @@ -47,12 +47,16 @@ export type ResourceStream = { emit(event: 'data', data: T): boolean; on(event: 'data', listener: (data: T) => void): ResourceStream; once(event: 'data', listener: (data: T) => void): ResourceStream; - prependListener(event: 'data', listener: (data: T) => void): - ResourceStream; - prependOnceListener(event: 'data', listener: (data: T) => void): - ResourceStream; + prependListener( + event: 'data', + listener: (data: T) => void + ): ResourceStream; + prependOnceListener( + event: 'data', + listener: (data: T) => void + ): ResourceStream; removeListener(event: 'data', listener: (data: T) => void): ResourceStream; -}&Transform; +} & Transform; /** * Limit requests according to a `maxApiCalls` limit. @@ -63,7 +67,9 @@ export type ResourceStream = { * @param {object} options.streamOptions - Options to pass to the Stream constructor. */ export function createLimiter( - makeRequestFn: Function, options?: CreateLimiterOptions): Limiter { + makeRequestFn: Function, + options?: CreateLimiterOptions +): Limiter { options = options || {}; const streamOptions = options.streamOptions || {}; @@ -151,7 +157,7 @@ export class Paginator { * @param {string|string[]} methodNames - Name(s) of the methods to extend. */ // tslint:disable-next-line:variable-name - extend(Class: Function, methodNames: string|string[]) { + extend(Class: Function, methodNames: string | string[]) { methodNames = arrify(methodNames); methodNames.forEach(methodName => { const originalMethod = Class.prototype[methodName]; @@ -183,8 +189,11 @@ export class Paginator { // tslint:disable-next-line:no-any streamify(methodName: string) { return function( - // tslint:disable-next-line:no-any - this: {[index: string]: Function}, ...args: any[]): ResourceStream { + // tslint:disable-next-line:no-any + this: {[index: string]: Function}, + // tslint:disable-next-line:no-any + ...args: any[] + ): ResourceStream { const parsedArguments = paginator.parseArguments_(args); const originalMethod = this[methodName + '_'] || this[methodName]; return paginator.runAsStream_(parsedArguments, originalMethod.bind(this)); @@ -199,11 +208,11 @@ export class Paginator { */ // tslint:disable-next-line:no-any parseArguments_(args: any[]) { - let query: string|ParsedArguments|undefined; + let query: string | ParsedArguments | undefined; let autoPaginate = true; let maxApiCalls = -1; let maxResults = -1; - let callback: Function|undefined; + let callback: Function | undefined; const firstArgument = args[0]; const lastArgument = args[args.length - 1]; @@ -250,7 +259,10 @@ export class Paginator { } as ParsedArguments; parsedArguments.streamOptions = extend<{}, ParsedArguments>( - true, {}, parsedArguments.query as ParsedArguments); + true, + {}, + parsedArguments.query as ParsedArguments + ); delete parsedArguments.streamOptions.autoPaginate; delete parsedArguments.streamOptions.maxResults; delete parsedArguments.streamOptions.pageSize; @@ -282,16 +294,19 @@ export class Paginator { } const results = new Array<{}>(); const promise = new Promise((resolve, reject) => { - paginator.runAsStream_(parsedArguments, originalMethod) - .on('error', reject) - .on('data', (data: {}) => results.push(data)) - .on('end', () => resolve(results)); + paginator + .runAsStream_(parsedArguments, originalMethod) + .on('error', reject) + .on('data', (data: {}) => results.push(data)) + .on('end', () => resolve(results)); }); if (!callback) { return promise.then(results => [results]); } promise.then( - results => callback(null, results), (err: Error) => callback(err)); + results => callback(null, results), + (err: Error) => callback(err) + ); } /** @@ -327,12 +342,12 @@ export class Paginator { limiter.makeRequest(query); }); - function makeRequest(query?: ParsedArguments|string) { + function makeRequest(query?: ParsedArguments | string) { originalMethod(query, onResultSet); } // tslint:disable-next-line:no-any - function onResultSet(err: Error|null, results?: any[], nextQuery?: any) { + function onResultSet(err: Error | null, results?: any[], nextQuery?: any) { if (err) { stream.destroy(err); return; diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index ae0b117af7b..b2423274b10 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -25,14 +25,14 @@ import * as P from '../src'; import {paginator, ParsedArguments} from '../src'; const util = { - noop: () => {} + noop: () => {}, }; const p = proxyquire('../src', { - 'stream-events': fakeStreamEvents, - }) as typeof P; + 'stream-events': fakeStreamEvents, +}) as typeof P; -let streamEventsOverride: Function|null; +let streamEventsOverride: Function | null; function fakeStreamEvents() { return (streamEventsOverride || streamEvents).apply(null, arguments); } @@ -59,7 +59,7 @@ describe('paginator', () => { const originalMethod = FakeClass.prototype.methodToExtend; paginator.extend(FakeClass, 'methodToExtend'); const overwrittenMethod = FakeClass.prototype.methodToExtend; - assert.notEqual(originalMethod, overwrittenMethod); + assert.notStrictEqual(originalMethod, overwrittenMethod); }); it('should store the original method as a private member', () => { @@ -74,11 +74,14 @@ describe('paginator', () => { const anotherMethod = FakeClass.prototype.anotherMethodToExtend; const methodsToExtend = ['methodToExtend', 'anotherMethodToExtend']; paginator.extend(FakeClass, methodsToExtend); - assert.notEqual(originalMethod, FakeClass.prototype.methodToExtend); - assert.notEqual(anotherMethod, FakeClass.prototype.anotherMethodToExtend); + assert.notStrictEqual(originalMethod, FakeClass.prototype.methodToExtend); + assert.notStrictEqual( + anotherMethod, + FakeClass.prototype.anotherMethodToExtend + ); }); - it('should parse the arguments', (done) => { + it('should parse the arguments', done => { sandbox.stub(paginator, 'parseArguments_').callsFake(args => { assert.deepStrictEqual([].slice.call(args), [1, 2, 3]); done(); @@ -89,14 +92,14 @@ describe('paginator', () => { FakeClass.prototype.methodToExtend(1, 2, 3); }); - it('should call router when the original method is called', (done) => { + it('should call router when the original method is called', done => { const expectedReturnValue = FakeClass.prototype.methodToExtend(); const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; sandbox.stub(paginator, 'parseArguments_').returns(parsedArguments); sandbox.stub(paginator, 'run_').callsFake((args, originalMethod) => { assert.strictEqual(args, parsedArguments); - assert.equal(originalMethod(), expectedReturnValue); + assert.strictEqual(originalMethod(), expectedReturnValue); done(); }); @@ -104,7 +107,7 @@ describe('paginator', () => { FakeClass.prototype.methodToExtend(); }); - it('should maintain `this` context', (done) => { + it('should maintain `this` context', done => { FakeClass.prototype.methodToExtend = function() { return this.uuid; }; @@ -114,7 +117,7 @@ describe('paginator', () => { cls.uuid = uuid.v1(); sandbox.stub(paginator, 'run_').callsFake((_, originalMethod) => { - assert.equal(originalMethod(), cls.uuid); + assert.strictEqual(originalMethod(), cls.uuid); done(); }); @@ -128,7 +131,7 @@ describe('paginator', () => { return uniqueValue; }); paginator.extend(FakeClass, 'methodToExtend'); - assert.equal(FakeClass.prototype.methodToExtend(), uniqueValue); + assert.strictEqual(FakeClass.prototype.methodToExtend(), uniqueValue); }); }); @@ -142,7 +145,7 @@ describe('paginator', () => { assert.strictEqual(typeof fakeStreamMethod, 'function'); }); - it('should parse the arguments', (done) => { + it('should parse the arguments', done => { const fakeArgs = [1, 2, 3]; sandbox.stub(paginator, 'parseArguments_').callsFake(args => { @@ -154,7 +157,7 @@ describe('paginator', () => { FakeClass.prototype.streamMethod.apply(FakeClass.prototype, fakeArgs); }); - it('should run the method as a stream', (done) => { + it('should run the method as a stream', done => { const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; sandbox.stub(paginator, 'parseArguments_').callsFake(() => { return parsedArguments; @@ -168,7 +171,7 @@ describe('paginator', () => { FakeClass.prototype.streamMethod(); }); - it('should apply the proper context', (done) => { + it('should apply the proper context', done => { const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; FakeClass.prototype.methodToExtend = function() { return this; @@ -183,7 +186,7 @@ describe('paginator', () => { FakeClass.prototype.streamMethod(); }); - it('should check for a private member', (done) => { + it('should check for a private member', done => { const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; const fakeValue = 123; @@ -309,23 +312,24 @@ describe('paginator', () => { describe('run_', () => { describe('autoPaginate', () => { describe('originalmethod is callback based', () => { - it('should call runAsStream_ when autoPaginate:true', (done) => { + it('should call runAsStream_ when autoPaginate:true', done => { const parsedArguments = { autoPaginate: true, callback: util.noop, }; - sandbox.stub(paginator, 'runAsStream_') - .callsFake((args, originalMethod) => { - assert.strictEqual(args, parsedArguments); - originalMethod(); - return through(); - }); + sandbox + .stub(paginator, 'runAsStream_') + .callsFake((args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + originalMethod(); + return through(); + }); paginator.run_(parsedArguments, done); }); - it('should execute callback on error', (done) => { + it('should execute callback on error', done => { const error = new Error('Error.'); const parsedArguments = { @@ -347,7 +351,7 @@ describe('paginator', () => { paginator.run_(parsedArguments, util.noop); }); - it('should return all results on end', (done) => { + it('should return all results on end', done => { const results = [{a: 1}, {b: 2}, {c: 3}]; const parsedArguments = { @@ -375,13 +379,14 @@ describe('paginator', () => { const parsedArguments = { autoPaginate: true, }; - it('should call runAsStream_ when autoPaginate:true', (done) => { - sandbox.stub(paginator, 'runAsStream_') - .callsFake((args, originalMethod) => { - assert.strictEqual(args, parsedArguments); - originalMethod(); - return through(); - }); + it('should call runAsStream_ when autoPaginate:true', done => { + sandbox + .stub(paginator, 'runAsStream_') + .callsFake((args, originalMethod) => { + assert.strictEqual(args, parsedArguments); + originalMethod(); + return through(); + }); paginator.run_(parsedArguments, done); }); @@ -397,8 +402,9 @@ describe('paginator', () => { return stream; }); - paginator.run_(parsedArguments, util.noop) - .then(util.noop, (err: Error) => assert.strictEqual(err, error)); + paginator + .run_(parsedArguments, util.noop) + .then(util.noop, (err: Error) => assert.strictEqual(err, error)); }); it('should resolve with all results on end', () => { @@ -413,17 +419,18 @@ describe('paginator', () => { return stream; }); - paginator.run_(parsedArguments, util.noop) - .then( - ([results_]: [1]) => - assert.deepStrictEqual(results_, results)); + paginator + .run_(parsedArguments, util.noop) + .then(([results_]: [1]) => + assert.deepStrictEqual(results_, results) + ); }); }); }); describe('manual pagination', () => { describe('originalmethod is callback based', () => { - it('should recognize autoPaginate: false', (done) => { + it('should recognize autoPaginate: false', done => { const parsedArguments = { autoPaginate: false, query: { @@ -461,10 +468,13 @@ describe('paginator', () => { describe('runAsStream_', () => { const PARSED_ARGUMENTS = { query: {maxApiCalls: 12345, pageSize: 23456}, - callback: util.noop + callback: util.noop, }; - let limiterStub: sinon.SinonStub<[Function, (P.CreateLimiterOptions | undefined)?], P.Limiter>; + let limiterStub: sinon.SinonStub< + [Function, (P.CreateLimiterOptions | undefined)?], + P.Limiter + >; beforeEach(() => { limiterStub = sandbox.stub(p, 'createLimiter').callsFake(makeRequest => { const transformStream = new stream.Transform({objectMode: true}); @@ -482,7 +492,7 @@ describe('paginator', () => { }); describe('originalmethod is callback based', () => { - it('should call original method when stream opens', (done) => { + it('should call original method when stream opens', done => { function originalMethod(query: {}) { assert.strictEqual(query, PARSED_ARGUMENTS.query); done(); @@ -490,7 +500,7 @@ describe('paginator', () => { p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); }); - it('should emit an error if one occurs', (done) => { + it('should emit an error if one occurs', done => { const error = new Error('Error.'); function originalMethod(query: {}, callback: (err: Error) => void) { @@ -506,12 +516,14 @@ describe('paginator', () => { }); }); - it('should push results onto the stream', (done) => { + it('should push results onto the stream', done => { const results = ['a', 'b', 'c']; const resultsReceived: Array<{}> = []; function originalMethod( - query: {}, callback: (err: Error|null, results: {}) => void) { + query: {}, + callback: (err: Error | null, results: {}) => void + ) { setImmediate(() => { callback(null, results); }); @@ -532,7 +544,7 @@ describe('paginator', () => { before(() => { delete PARSED_ARGUMENTS.callback; }); - it('should call original method when stream opens', (done) => { + it('should call original method when stream opens', done => { function originalMethod(query: {}) { assert.strictEqual(query, PARSED_ARGUMENTS.query); done(); @@ -540,7 +552,7 @@ describe('paginator', () => { p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); }); - it('should emit an error if one occurs', (done) => { + it('should emit an error if one occurs', done => { const error = new Error('Error.'); function originalMethod(query: {}, callback: (err: Error) => void) { @@ -556,12 +568,14 @@ describe('paginator', () => { }); }); - it('should push results onto the stream', (done) => { + it('should push results onto the stream', done => { const results = ['a', 'b', 'c']; const resultsReceived: Array<{}> = []; function originalMethod( - query: {}, callback: (err: Error|null, results: {}) => void) { + query: {}, + callback: (err: Error | null, results: {}) => void + ) { setImmediate(() => { callback(null, results); }); @@ -581,7 +595,7 @@ describe('paginator', () => { describe('maxApiCalls', () => { const maxApiCalls = 10; - it('should create a limiter', (done) => { + it('should create a limiter', done => { limiterStub.restore(); sandbox.stub(p, 'createLimiter').callsFake((_, options) => { assert.strictEqual(options!.maxApiCalls, maxApiCalls); @@ -599,7 +613,7 @@ describe('paginator', () => { highWaterMark: 8, }; - it('should pass through stream options', (done) => { + it('should pass through stream options', done => { limiterStub.restore(); sandbox.stub(p, 'createLimiter').callsFake((_, options) => { assert.strictEqual(options!.streamOptions, streamOptions); @@ -610,11 +624,12 @@ describe('paginator', () => { }); p.paginator.runAsStream_( - { - maxApiCalls: 100, - streamOptions, - } as ParsedArguments, - util.noop); + { + maxApiCalls: 100, + streamOptions, + } as ParsedArguments, + util.noop + ); }); }); @@ -622,36 +637,40 @@ describe('paginator', () => { const limit = 1; function originalMethod( - query: {}, callback: (err: Error|null, results: number[]) => void) { + query: {}, + callback: (err: Error | null, results: number[]) => void + ) { setImmediate(() => { callback(null, [1, 2, 3]); }); } - it('should respect maxResults', (done) => { + it('should respect maxResults', done => { let numResultsReceived = 0; p.paginator - .runAsStream_( - {maxResults: limit, callback: util.noop}, originalMethod) - .on('data', - () => { - numResultsReceived++; - }) - .on('end', () => { - assert.strictEqual(numResultsReceived, limit); - done(); - }); + .runAsStream_( + {maxResults: limit, callback: util.noop}, + originalMethod + ) + .on('data', () => { + numResultsReceived++; + }) + .on('end', () => { + assert.strictEqual(numResultsReceived, limit); + done(); + }); }); }); - it('should get more results if nextQuery exists', (done) => { + it('should get more results if nextQuery exists', done => { const nextQuery = {a: 'b', c: 'd'}; let nextQuerySent = false; function originalMethod( - query: {}, - callback: (err: Error|null, res: Array<{}>, nextQuery: {}) => void) { + query: {}, + callback: (err: Error | null, res: Array<{}>, nextQuery: {}) => void + ) { if (nextQuerySent) { assert.deepStrictEqual(query, nextQuery); done(); @@ -667,11 +686,13 @@ describe('paginator', () => { p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); }); - it('should not push more results if stream ends early', (done) => { + it('should not push more results if stream ends early', done => { const results = ['a', 'b', 'c']; function originalMethod( - query: {}, callback: (err: Error|null, results: string[]) => void) { + query: {}, + callback: (err: Error | null, results: string[]) => void + ) { setImmediate(() => { callback(null, results); }); @@ -684,21 +705,22 @@ describe('paginator', () => { rs.end(); } - assert.notEqual(result, 'c'); + assert.notStrictEqual(result, 'c'); }); rs.on('end', () => { done(); }); }); - it('should not get more results if stream ends early', (done) => { + it('should not get more results if stream ends early', done => { const results = ['a', 'b', 'c']; let originalMethodCalledCount = 0; function originalMethod( - query: {}, - callback: (err: Error|null, results: string[], body: {}) => void) { + query: {}, + callback: (err: Error | null, results: string[], body: {}) => void + ) { originalMethodCalledCount++; setImmediate(() => { @@ -714,7 +736,7 @@ describe('paginator', () => { } }); rs.on('end', () => { - assert.equal(originalMethodCalledCount, 1); + assert.strictEqual(originalMethodCalledCount, 1); done(); }); }); @@ -729,7 +751,7 @@ describe('createLimiter', () => { }, }; - it('should create an object stream with stream-events', (done) => { + it('should create an object stream with stream-events', done => { streamEventsOverride = (stream: stream.Readable) => { // tslint:disable-next-line:no-any assert.strictEqual((stream as any)._readableState.objectMode, true); @@ -742,7 +764,7 @@ describe('createLimiter', () => { it('should return a makeRequest function', () => { const limiter = p.createLimiter(REQUEST_FN, OPTIONS); - assert.equal(typeof limiter.makeRequest, 'function'); + assert.strictEqual(typeof limiter.makeRequest, 'function'); }); it('should return the created stream', () => { @@ -760,13 +782,14 @@ describe('createLimiter', () => { const limiter = p.createLimiter(REQUEST_FN, OPTIONS); assert.strictEqual( - // tslint:disable-next-line:no-any - (limiter.stream as any)._readableState.highWaterMark, - OPTIONS.streamOptions.highWaterMark); + // tslint:disable-next-line:no-any + (limiter.stream as any)._readableState.highWaterMark, + OPTIONS.streamOptions.highWaterMark + ); }); describe('makeRequest', () => { - it('should pass arguments to request method', (done) => { + it('should pass arguments to request method', done => { const args = [{}, {}]; const limiter = p.createLimiter((obj1: {}, obj2: {}) => { @@ -778,16 +801,19 @@ describe('createLimiter', () => { limiter.makeRequest.apply(null, args); }); - it('should not make more requests than the limit', (done) => { + it('should not make more requests than the limit', done => { let callsMade = 0; const maxApiCalls = 10; - const limiter = p.createLimiter(() => { - callsMade++; - limiter.makeRequest(); - }, { - maxApiCalls, - }); + const limiter = p.createLimiter( + () => { + callsMade++; + limiter.makeRequest(); + }, + { + maxApiCalls, + } + ); limiter.makeRequest(); From c4adc511c756e97161f77958618aa81c09854cfd Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Fri, 3 May 2019 09:20:49 -0700 Subject: [PATCH 086/279] chore: do not run CI on grpc-js (#118) --- .../.kokoro/continuous/node10/system-test-grpcjs.cfg | 12 ------------ .../.kokoro/presubmit/node10/system-test-grpcjs.cfg | 12 ------------ 2 files changed, 24 deletions(-) delete mode 100644 core/paginator/.kokoro/continuous/node10/system-test-grpcjs.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/system-test-grpcjs.cfg diff --git a/core/paginator/.kokoro/continuous/node10/system-test-grpcjs.cfg b/core/paginator/.kokoro/continuous/node10/system-test-grpcjs.cfg deleted file mode 100644 index dbef30c60cc..00000000000 --- a/core/paginator/.kokoro/continuous/node10/system-test-grpcjs.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" -} - -env_vars: { - key: "GOOGLE_CLOUD_USE_GRPC_JS" - value: "1" -} diff --git a/core/paginator/.kokoro/presubmit/node10/system-test-grpcjs.cfg b/core/paginator/.kokoro/presubmit/node10/system-test-grpcjs.cfg deleted file mode 100644 index dbef30c60cc..00000000000 --- a/core/paginator/.kokoro/presubmit/node10/system-test-grpcjs.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" -} - -env_vars: { - key: "GOOGLE_CLOUD_USE_GRPC_JS" - value: "1" -} From 6a2ce0284cbb6d12f4611bc040295d685ead2f5b Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 3 May 2019 12:40:26 -0700 Subject: [PATCH 087/279] chore: release 1.0.0 (#117) --- core/paginator/CHANGELOG.md | 18 +++++++++++++++++- core/paginator/package.json | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 50973c32267..ff027ba41b0 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,23 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [1.0.0](https://www.github.com/googleapis/nodejs-paginator/compare/v0.2.0...v1.0.0) (2019-05-03) + + +### Bug Fixes + +* **deps:** update dependency arrify to v2 ([#109](https://www.github.com/googleapis/nodejs-paginator/issues/109)) ([9f06c83](https://www.github.com/googleapis/nodejs-paginator/commit/9f06c83)) + + +### Build System + +* upgrade engines field to >=8.10.0 ([#115](https://www.github.com/googleapis/nodejs-paginator/issues/115)) ([0921076](https://www.github.com/googleapis/nodejs-paginator/commit/0921076)) + + +### BREAKING CHANGES + +* upgrade engines field to >=8.10.0 (#115) + ## v0.2.0 03-08-2019 12:15 PST @@ -92,4 +109,3 @@ - chore(deps): update dependency typescript to v3 (#6) - chore: assert.deelEqual => assert.deepStrictEqual (#5) - chore: move mocha options to mocha.opts (#4) - diff --git a/core/paginator/package.json b/core/paginator/package.json index aae39fcf0d5..7959ca30bd0 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "0.2.0", + "version": "1.0.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From d1782534003452266f25f55234199baab5a9cd7e Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 6 May 2019 12:02:44 -0700 Subject: [PATCH 088/279] build: patch Windows container, fixing Node 10 (#120) --- core/paginator/.kokoro/test.bat | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/paginator/.kokoro/test.bat b/core/paginator/.kokoro/test.bat index 767320757e0..fddff757050 100644 --- a/core/paginator/.kokoro/test.bat +++ b/core/paginator/.kokoro/test.bat @@ -17,7 +17,15 @@ cd /d %~dp0 cd .. -call npm install -g npm@latest || goto :error +@rem The image we're currently running has a broken version of Node.js enabled +@rem by nvm (v10.15.3), which has no npm bin. This hack uses the functional +@rem Node v8.9.1 to install npm@latest, it then uses this version of npm to +@rem install npm for v10.15.3. +call nvm use v8.9.1 || goto :error +call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm-bootstrap\bin\npm-cli.js i npm -g || goto :error +call nvm use v10.15.3 || goto :error +call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm\bin\npm-cli.js i npm -g || goto :error + call npm install || goto :error call npm run test || goto :error From 2c9138cc68f0968d1194edb5d82829be0ac5015e Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 6 May 2019 15:31:58 -0700 Subject: [PATCH 089/279] build: allow Node 10 to push to codecov (#121) --- core/paginator/.kokoro/continuous/node10/test.cfg | 9 +++++++++ core/paginator/.kokoro/continuous/node8/test.cfg | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ b/core/paginator/.kokoro/continuous/node10/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} diff --git a/core/paginator/.kokoro/continuous/node8/test.cfg b/core/paginator/.kokoro/continuous/node8/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/core/paginator/.kokoro/continuous/node8/test.cfg +++ b/core/paginator/.kokoro/continuous/node8/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} From 3682cd51d716e8d30cdb9839e74a232ff9227cc2 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 6 May 2019 18:05:21 -0700 Subject: [PATCH 090/279] build: allow Node 10 on presubmit to push to codecov (#122) --- core/paginator/.kokoro/presubmit/node10/test.cfg | 9 +++++++++ core/paginator/.kokoro/presubmit/node8/test.cfg | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/paginator/.kokoro/presubmit/node10/test.cfg b/core/paginator/.kokoro/presubmit/node10/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/core/paginator/.kokoro/presubmit/node10/test.cfg +++ b/core/paginator/.kokoro/presubmit/node10/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} diff --git a/core/paginator/.kokoro/presubmit/node8/test.cfg b/core/paginator/.kokoro/presubmit/node8/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/core/paginator/.kokoro/presubmit/node8/test.cfg +++ b/core/paginator/.kokoro/presubmit/node8/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} From 1d71d0fd36eaea3bea9ce7fa0b8546089dd9002a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Mon, 6 May 2019 22:10:20 -0700 Subject: [PATCH 091/279] build: only pipe to codecov if tests run on Node 10 --- core/paginator/.kokoro/lint.sh | 10 ++++++---- core/paginator/.kokoro/samples-test.sh | 16 +++++++++------- core/paginator/.kokoro/test.sh | 12 ++++++++++-- core/paginator/synth.metadata | 4 ++-- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/core/paginator/.kokoro/lint.sh b/core/paginator/.kokoro/lint.sh index 7c2ea2a28f9..bcb7508363b 100755 --- a/core/paginator/.kokoro/lint.sh +++ b/core/paginator/.kokoro/lint.sh @@ -23,9 +23,11 @@ cd $(dirname $0)/.. npm install # Install and link samples -cd samples/ -npm link ../ -npm install -cd .. +if [ -f samples/package.json ]; then + cd samples/ + npm link ../ + npm install + cd .. +fi npm run lint diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 5a81ec01fcc..f83f712a88a 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -31,12 +31,14 @@ if [ -f .kokoro/pre-samples-test.sh ]; then set -x fi -npm install +if [ -f samples/package.json ]; then + npm install -# Install and link samples -cd samples/ -npm link ../ -npm install -cd .. + # Install and link samples + cd samples/ + npm link ../ + npm install + cd .. -npm run samples-test + npm run samples-test +fi diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 4d6c3f83188..f7e9fe78163 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -22,6 +22,14 @@ cd $(dirname $0)/.. npm install npm test -./node_modules/nyc/bin/nyc.js report -bash $KOKORO_GFILE_DIR/codecov.sh +COVERAGE_NODE=10 +if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then + NYC_BIN=./node_modules/nyc/bin/nyc.js + if [ -f "$NYC_BIN" ]; then + $NYC_BIN report + fi + bash $KOKORO_GFILE_DIR/codecov.sh +else + echo "coverage is only reported for Node $COVERAGE_NODE" +fi diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 565db1eec7f..1dff5548c16 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-04-26T23:54:40.436313Z", + "updateTime": "2019-05-04T11:18:36.464967Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.4.10" + "version": "2019.5.2" } } ] From a283b7f1b7322647541360cfed0827c4954559d1 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 17 May 2019 08:17:44 -0700 Subject: [PATCH 092/279] build: add new kokoro config for coverage and release-please (#123) --- .../.kokoro/continuous/node10/common.cfg | 10 ++++++++ .../.kokoro/continuous/node10/test.cfg | 9 ------- .../.kokoro/presubmit/node10/common.cfg | 10 ++++++++ .../.kokoro/presubmit/node10/test.cfg | 9 ------- .../.kokoro/release-candidate-issue.sh | 25 +++++++++++++++++++ core/paginator/.kokoro/release-requested.sh | 25 +++++++++++++++++++ core/paginator/.kokoro/release/common.cfg | 8 ++++++ core/paginator/.kokoro/release/publish.cfg | 9 ------- .../release/release-candidate-issue.cfg | 22 ++++++++++++++++ .../.kokoro/release/release-requested.cfg | 22 ++++++++++++++++ core/paginator/.kokoro/samples-test.sh | 13 ++++++++++ core/paginator/.kokoro/system-test.sh | 13 ++++++++++ core/paginator/.kokoro/test.sh | 4 ++- core/paginator/synth.metadata | 4 +-- 14 files changed, 153 insertions(+), 30 deletions(-) create mode 100755 core/paginator/.kokoro/release-candidate-issue.sh create mode 100755 core/paginator/.kokoro/release-requested.sh create mode 100644 core/paginator/.kokoro/release/common.cfg create mode 100644 core/paginator/.kokoro/release/release-candidate-issue.cfg create mode 100644 core/paginator/.kokoro/release/release-requested.cfg diff --git a/core/paginator/.kokoro/continuous/node10/common.cfg b/core/paginator/.kokoro/continuous/node10/common.cfg index 0481f24a315..ad31de3e5f2 100644 --- a/core/paginator/.kokoro/continuous/node10/common.cfg +++ b/core/paginator/.kokoro/continuous/node10/common.cfg @@ -7,6 +7,16 @@ action { } } +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ b/core/paginator/.kokoro/continuous/node10/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/core/paginator/.kokoro/presubmit/node10/common.cfg b/core/paginator/.kokoro/presubmit/node10/common.cfg index 0481f24a315..ad31de3e5f2 100644 --- a/core/paginator/.kokoro/presubmit/node10/common.cfg +++ b/core/paginator/.kokoro/presubmit/node10/common.cfg @@ -7,6 +7,16 @@ action { } } +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/core/paginator/.kokoro/presubmit/node10/test.cfg b/core/paginator/.kokoro/presubmit/node10/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/core/paginator/.kokoro/presubmit/node10/test.cfg +++ b/core/paginator/.kokoro/presubmit/node10/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/core/paginator/.kokoro/release-candidate-issue.sh b/core/paginator/.kokoro/release-candidate-issue.sh new file mode 100755 index 00000000000..09772f6a1a2 --- /dev/null +++ b/core/paginator/.kokoro/release-candidate-issue.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright 2019 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. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) + +npx release-please candidate-issue --token=$GITHUB_TOKEN \ + --repo-url=googleapis/nodejs-paginator \ + --package-name=@google-cloud/paginator diff --git a/core/paginator/.kokoro/release-requested.sh b/core/paginator/.kokoro/release-requested.sh new file mode 100755 index 00000000000..bb12043dbe4 --- /dev/null +++ b/core/paginator/.kokoro/release-requested.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright 2019 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. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) + +npx release-please detect-checked --token=$GITHUB_TOKEN \ + --repo-url=googleapis/nodejs-paginator \ + --package-name=@google-cloud/paginator diff --git a/core/paginator/.kokoro/release/common.cfg b/core/paginator/.kokoro/release/common.cfg new file mode 100644 index 00000000000..3ba2eb095fe --- /dev/null +++ b/core/paginator/.kokoro/release/common.cfg @@ -0,0 +1,8 @@ +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 72be9f9abb3..a8912f0d4d7 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -9,15 +9,6 @@ before_action { } } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - } - } -} - before_action { fetch_keystore { keystore_resource { diff --git a/core/paginator/.kokoro/release/release-candidate-issue.cfg b/core/paginator/.kokoro/release/release-candidate-issue.cfg new file mode 100644 index 00000000000..58c398035b3 --- /dev/null +++ b/core/paginator/.kokoro/release/release-candidate-issue.cfg @@ -0,0 +1,22 @@ +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/release-candidate-issue.sh" +} diff --git a/core/paginator/.kokoro/release/release-requested.cfg b/core/paginator/.kokoro/release/release-requested.cfg new file mode 100644 index 00000000000..c45da85127e --- /dev/null +++ b/core/paginator/.kokoro/release/release-requested.cfg @@ -0,0 +1,22 @@ +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/release-requested.sh" +} diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index f83f712a88a..07d31dccc45 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -42,3 +42,16 @@ if [ -f samples/package.json ]; then npm run samples-test fi + +# codecov combines coverage across integration and unit tests. Include +# the logic below for any environment you wish to collect coverage for: +COVERAGE_NODE=10 +if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then + NYC_BIN=./node_modules/nyc/bin/nyc.js + if [ -f "$NYC_BIN" ]; then + $NYC_BIN report || true + fi + bash $KOKORO_GFILE_DIR/codecov.sh +else + echo "coverage is only reported for Node $COVERAGE_NODE" +fi diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index fd8f0b638d0..b7374d0ad45 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -34,3 +34,16 @@ fi npm install npm run system-test + +# codecov combines coverage across integration and unit tests. Include +# the logic below for any environment you wish to collect coverage for: +COVERAGE_NODE=10 +if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then + NYC_BIN=./node_modules/nyc/bin/nyc.js + if [ -f "$NYC_BIN" ]; then + $NYC_BIN report || true + fi + bash $KOKORO_GFILE_DIR/codecov.sh +else + echo "coverage is only reported for Node $COVERAGE_NODE" +fi diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index f7e9fe78163..bfc7b26154e 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -23,11 +23,13 @@ cd $(dirname $0)/.. npm install npm test +# codecov combines coverage across integration and unit tests. Include +# the logic below for any environment you wish to collect coverage for: COVERAGE_NODE=10 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then - $NYC_BIN report + $NYC_BIN report || true fi bash $KOKORO_GFILE_DIR/codecov.sh else diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 1dff5548c16..ce8d982e15b 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-05-04T11:18:36.464967Z", + "updateTime": "2019-05-17T01:08:52.170365Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.5.2" + "version": "2019.4.10" } } ] From 2443f670124be20073bcab9ffc38cfbf619d9862 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 17 May 2019 16:49:41 -0700 Subject: [PATCH 093/279] build: updated kokoro config for coverage and release-please (#124) --- .../.kokoro/continuous/node10/test.cfg | 19 ++++++++++++++ .../.kokoro/release-candidate-issue.sh | 25 ------------------- core/paginator/.kokoro/release-requested.sh | 25 ------------------- core/paginator/.kokoro/release/publish.cfg | 9 +++++++ .../release/release-candidate-issue.cfg | 22 ---------------- .../.kokoro/release/release-requested.cfg | 22 ---------------- core/paginator/.kokoro/test.sh | 8 ++++++ core/paginator/synth.metadata | 2 +- 8 files changed, 37 insertions(+), 95 deletions(-) delete mode 100755 core/paginator/.kokoro/release-candidate-issue.sh delete mode 100755 core/paginator/.kokoro/release-requested.sh delete mode 100644 core/paginator/.kokoro/release/release-candidate-issue.cfg delete mode 100644 core/paginator/.kokoro/release/release-requested.cfg diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg index e69de29bb2d..38c174e6b3d 100644 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ b/core/paginator/.kokoro/continuous/node10/test.cfg @@ -0,0 +1,19 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} + +# token used by release-please to keep an up-to-date release PR. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} diff --git a/core/paginator/.kokoro/release-candidate-issue.sh b/core/paginator/.kokoro/release-candidate-issue.sh deleted file mode 100755 index 09772f6a1a2..00000000000 --- a/core/paginator/.kokoro/release-candidate-issue.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Copyright 2019 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. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) - -npx release-please candidate-issue --token=$GITHUB_TOKEN \ - --repo-url=googleapis/nodejs-paginator \ - --package-name=@google-cloud/paginator diff --git a/core/paginator/.kokoro/release-requested.sh b/core/paginator/.kokoro/release-requested.sh deleted file mode 100755 index bb12043dbe4..00000000000 --- a/core/paginator/.kokoro/release-requested.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Copyright 2019 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. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) - -npx release-please detect-checked --token=$GITHUB_TOKEN \ - --repo-url=googleapis/nodejs-paginator \ - --package-name=@google-cloud/paginator diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index a8912f0d4d7..72be9f9abb3 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -9,6 +9,15 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} + before_action { fetch_keystore { keystore_resource { diff --git a/core/paginator/.kokoro/release/release-candidate-issue.cfg b/core/paginator/.kokoro/release/release-candidate-issue.cfg deleted file mode 100644 index 58c398035b3..00000000000 --- a/core/paginator/.kokoro/release/release-candidate-issue.cfg +++ /dev/null @@ -1,22 +0,0 @@ -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/release-candidate-issue.sh" -} diff --git a/core/paginator/.kokoro/release/release-requested.cfg b/core/paginator/.kokoro/release/release-requested.cfg deleted file mode 100644 index c45da85127e..00000000000 --- a/core/paginator/.kokoro/release/release-requested.cfg +++ /dev/null @@ -1,22 +0,0 @@ -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/release-requested.sh" -} diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index bfc7b26154e..dda6a32661c 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -35,3 +35,11 @@ if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then else echo "coverage is only reported for Node $COVERAGE_NODE" fi + +# if the GITHUB_TOKEN is set, we kick off a task to update the release-PR. +GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) || true +if [ "$GITHUB_TOKEN" ]; then + npx release-please release-pr --token=$GITHUB_TOKEN \ + --repo-url=googleapis/nodejs-paginator \ + --package-name=@google-cloud/paginator +fi diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index ce8d982e15b..98df9f1d5c6 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-05-17T01:08:52.170365Z", + "updateTime": "2019-05-17T19:48:16.021019Z", "sources": [ { "template": { From bfb1265593f6a8d65ca5223067a21b13d69e8171 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 23 May 2019 16:56:50 -0700 Subject: [PATCH 094/279] build: add configuration for automated doc deployment (#125) --- core/paginator/.kokoro/release/docs.cfg | 26 +++++++++++++ core/paginator/.kokoro/release/docs.sh | 50 +++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 core/paginator/.kokoro/release/docs.cfg create mode 100755 core/paginator/.kokoro/release/docs.sh diff --git a/core/paginator/.kokoro/release/docs.cfg b/core/paginator/.kokoro/release/docs.cfg new file mode 100644 index 00000000000..0617507214b --- /dev/null +++ b/core/paginator/.kokoro/release/docs.cfg @@ -0,0 +1,26 @@ +# service account used to publish up-to-date docs. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + +# doc publications use a Python image. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/release/docs.sh" +} diff --git a/core/paginator/.kokoro/release/docs.sh b/core/paginator/.kokoro/release/docs.sh new file mode 100755 index 00000000000..4d3a0868531 --- /dev/null +++ b/core/paginator/.kokoro/release/docs.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Copyright 2019 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. + +set -eo pipefail + +# build jsdocs (Python is installed on the Node 10 docker image). +if [[ -z "$CREDENTIALS" ]]; then + # if CREDENTIALS are explicitly set, assume we're testing locally + # and don't set NPM_CONFIG_PREFIX. + export NPM_CONFIG_PREFIX=/home/node/.npm-global + export PATH="$PATH:/home/node/.npm-global/bin" + cd $(dirname $0)/../.. +fi +npm install +npm run docs + +# create docs.metadata, based on package.json and .repo-metadata.json. +npm i json@9.0.6 -g +python3 -m pip install --user gcp-docuploader +python3 -m docuploader create-metadata \ + --name=$(cat .repo-metadata.json | json name) \ + --version=$(cat package.json | json version) \ + --language=$(cat .repo-metadata.json | json language) \ + --distribution-name=$(cat .repo-metadata.json | json distribution_name) \ + --product-page=$(cat .repo-metadata.json | json product_documentation) \ + --github-repository=$(cat .repo-metadata.json | json repo) \ + --issue-tracker=$(cat .repo-metadata.json | json issue_tracker) +cp docs.metadata ./docs/docs.metadata + +# deploy the docs. +if [[ -z "$CREDENTIALS" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi +if [[ -z "$BUCKET" ]]; then + BUCKET=docs-staging +fi +python3 -m docuploader upload ./docs --credentials $CREDENTIALS --staging-bucket $BUCKET From 3c99fe19f00acb93cb7a488af576567d0dfd00ba Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 28 May 2019 20:39:46 +0000 Subject: [PATCH 095/279] build: ignore proto files in test coverage (#126) --- core/paginator/.nycrc | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index bfe4073a6ab..83a421a0628 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -10,6 +10,7 @@ "**/samples", "**/scripts", "**/src/**/v*/**/*.js", + "**/protos", "**/test", ".jsdoc.js", "**/.jsdoc.js", From 37c937f1b08a4244446bf1a82352c35bb285dccb Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 29 May 2019 21:53:56 +0200 Subject: [PATCH 096/279] build: remove verbose logging from test scripts (#127) --- core/paginator/.kokoro/docs.sh | 2 +- core/paginator/.kokoro/lint.sh | 2 +- core/paginator/.kokoro/samples-test.sh | 2 +- core/paginator/.kokoro/system-test.sh | 2 +- core/paginator/.kokoro/test.sh | 2 +- core/paginator/.kokoro/trampoline.sh | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh index a4f318794e6..952403faede 100755 --- a/core/paginator/.kokoro/docs.sh +++ b/core/paginator/.kokoro/docs.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/core/paginator/.kokoro/lint.sh b/core/paginator/.kokoro/lint.sh index bcb7508363b..b03cb0439a6 100755 --- a/core/paginator/.kokoro/lint.sh +++ b/core/paginator/.kokoro/lint.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 07d31dccc45..20e3241c9e9 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index b7374d0ad45..fc5824e6667 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index dda6a32661c..b3fe0f33df2 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/core/paginator/.kokoro/trampoline.sh b/core/paginator/.kokoro/trampoline.sh index 87ffd2ca960..9bd4905c4b5 100755 --- a/core/paginator/.kokoro/trampoline.sh +++ b/core/paginator/.kokoro/trampoline.sh @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail # Always run the cleanup script, regardless of the success of bouncing into # the container. From 9ce1dad0651c13728cbe5ffda97d75c27672555f Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 10 Jun 2019 07:54:11 -0700 Subject: [PATCH 097/279] build: remove unused clang format (#128) --- core/paginator/.clang-format | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 core/paginator/.clang-format diff --git a/core/paginator/.clang-format b/core/paginator/.clang-format deleted file mode 100644 index 7d6cf97e108..00000000000 --- a/core/paginator/.clang-format +++ /dev/null @@ -1,3 +0,0 @@ -Language: JavaScript -BasedOnStyle: Google -ColumnLimit: 80 \ No newline at end of file From ed668cf176a493484b4a8dca8a03a3bbf9b6782a Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 12 Jun 2019 22:10:18 -0700 Subject: [PATCH 098/279] fix(docs): move to new client docs URL (#129) --- core/paginator/.repo-metadata.json | 5 +++-- core/paginator/README.md | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/paginator/.repo-metadata.json b/core/paginator/.repo-metadata.json index c15504eeb9f..18eb0dd46ff 100644 --- a/core/paginator/.repo-metadata.json +++ b/core/paginator/.repo-metadata.json @@ -4,5 +4,6 @@ "release_level": "ga", "language": "nodejs", "repo": "googleapis/nodejs-paginator", - "distribution_name": "@google-cloud/paginator" -} + "distribution_name": "@google-cloud/paginator", + "client_documentation": "https://googleapis.dev/nodejs/paginator/latest" +} \ No newline at end of file diff --git a/core/paginator/README.md b/core/paginator/README.md index 57f32dd2f71..0d16612cede 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -14,7 +14,7 @@ A result paging utility used by Google node.js modules - +* [Google Cloud Common Paginator Node.js Client API Reference][client-docs] * [github.com/googleapis/nodejs-paginator](https://github.com/googleapis/nodejs-paginator) @@ -65,6 +65,9 @@ has instructions for running the samples. +The [Google Cloud Common Paginator Node.js Client API Reference][client-docs] documentation +also contains samples. + ## Versioning This library follows [Semantic Versioning](http://semver.org/). @@ -94,7 +97,7 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/master/LICENSE) - +[client-docs]: https://googleapis.dev/nodejs/paginator/latest [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project From 85453e6dfcea171c564379c27d65b471625a0239 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 14 Jun 2019 08:31:23 -0700 Subject: [PATCH 099/279] chore: release 1.0.1 (#130) * updated CHANGELOG.md * updated package.json * updated samples/package.json --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index ff027ba41b0..7fefe4c27b8 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [1.0.1](https://www.github.com/googleapis/nodejs-paginator/compare/v1.0.0...v1.0.1) (2019-06-14) + + +### Bug Fixes + +* **docs:** move to new client docs URL ([#129](https://www.github.com/googleapis/nodejs-paginator/issues/129)) ([689f483](https://www.github.com/googleapis/nodejs-paginator/commit/689f483)) + ## [1.0.0](https://www.github.com/googleapis/nodejs-paginator/compare/v0.2.0...v1.0.0) (2019-05-03) diff --git a/core/paginator/package.json b/core/paginator/package.json index 7959ca30bd0..55d85bc628d 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "1.0.0", + "version": "1.0.1", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 04554455ee2cd69326245403844c5de922e1dcdd Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 18 Jun 2019 10:04:24 -0700 Subject: [PATCH 100/279] build: switch to GitHub magic proxy (#131) --- .../.kokoro/continuous/node10/test.cfg | 22 +++++++++++++++++-- core/paginator/.kokoro/test.sh | 11 +++++----- core/paginator/synth.metadata | 4 ++-- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg index 38c174e6b3d..fefee48ba76 100644 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ b/core/paginator/.kokoro/continuous/node10/test.cfg @@ -8,12 +8,30 @@ before_action { } } -# token used by release-please to keep an up-to-date release PR. +# tokens used by release-please to keep an up-to-date release PR. before_action { fetch_keystore { keystore_resource { keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" + keyname: "github-magic-proxy-key-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-token-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-url-release-please" } } } diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index b3fe0f33df2..67268061dd6 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -36,10 +36,11 @@ else echo "coverage is only reported for Node $COVERAGE_NODE" fi -# if the GITHUB_TOKEN is set, we kick off a task to update the release-PR. -GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) || true -if [ "$GITHUB_TOKEN" ]; then - npx release-please release-pr --token=$GITHUB_TOKEN \ +# if release-please keys set, we kick off a task to update the release-PR. +if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then + npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ --repo-url=googleapis/nodejs-paginator \ - --package-name=@google-cloud/paginator + --package-name=@google-cloud/paginator \ + --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ + --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please fi diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 98df9f1d5c6..63cf48216a5 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-05-17T19:48:16.021019Z", + "updateTime": "2019-06-18T01:02:47.669407Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.4.10" + "version": "2019.5.2" } } ] From ba750f1b796d87b72bd9a38e5ce7697c4b10c960 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 25 Jun 2019 16:42:29 -0700 Subject: [PATCH 101/279] fix(docs): link to reference docs section on googleapis.dev (#132) * fix(docs): reference docs should link to section of googleapis.dev with API reference * fix(docs): make anchors work in jsdoc --- core/paginator/.jsdoc.js | 3 +++ core/paginator/README.md | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index 44957699fe3..143df4abfdc 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -41,5 +41,8 @@ module.exports = { sourceFiles: false, systemName: '@google-cloud/paginator', theme: 'lumen' + }, + markdown: { + idInHeadings: true } }; diff --git a/core/paginator/README.md b/core/paginator/README.md index 0d16612cede..0cba710bba6 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -97,10 +97,12 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/paginator/latest +[client-docs]: https://googleapis.dev/nodejs/paginator/latest#reference [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 -[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file +[auth]: https://cloud.google.com/docs/authentication/getting-started + + From 68b904dc19a6924c91b31743a125c1211f44ddd1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 26 Jun 2019 15:25:03 -0700 Subject: [PATCH 102/279] chore: release 1.0.2 (#133) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json [ci skip] --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 7fefe4c27b8..c74d68bfa4b 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [1.0.2](https://www.github.com/googleapis/nodejs-paginator/compare/v1.0.1...v1.0.2) (2019-06-26) + + +### Bug Fixes + +* **docs:** link to reference docs section on googleapis.dev ([#132](https://www.github.com/googleapis/nodejs-paginator/issues/132)) ([be231be](https://www.github.com/googleapis/nodejs-paginator/commit/be231be)) + ### [1.0.1](https://www.github.com/googleapis/nodejs-paginator/compare/v1.0.0...v1.0.1) (2019-06-14) diff --git a/core/paginator/package.json b/core/paginator/package.json index 55d85bc628d..0974ab63b10 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "1.0.1", + "version": "1.0.2", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 20368e495937e582e017833ed2514bf887a2cc7a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 28 Jun 2019 10:06:46 -0700 Subject: [PATCH 103/279] build: use config file for linkinator (#135) --- core/paginator/linkinator.config.json | 7 +++++++ core/paginator/package.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 core/paginator/linkinator.config.json diff --git a/core/paginator/linkinator.config.json b/core/paginator/linkinator.config.json new file mode 100644 index 00000000000..d780d6bfff5 --- /dev/null +++ b/core/paginator/linkinator.config.json @@ -0,0 +1,7 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "www.googleapis.com" + ] +} diff --git a/core/paginator/package.json b/core/paginator/package.json index 0974ab63b10..9adf6d94431 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -18,7 +18,7 @@ "presystem-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "system-test": "mocha build/system-test", - "docs-test": "linkinator docs -r --skip www.googleapis.com", + "docs-test": "linkinator docs", "predocs-test": "npm run docs" }, "keywords": [], @@ -40,7 +40,7 @@ "codecov": "^3.0.4", "gts": "^1.0.0", "intelli-espower-loader": "^1.0.1", - "linkinator": "^1.1.2", + "linkinator": "^1.5.0", "mocha": "^6.0.0", "nyc": "^14.0.0", "proxyquire": "^2.0.1", From 930a6f4b937cfea46e789597530eb8188e9fbd01 Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Fri, 12 Jul 2019 13:26:57 -0400 Subject: [PATCH 104/279] refactor!: rewrite streaming logic (#136) --- core/paginator/package.json | 4 +- core/paginator/src/index.ts | 136 +------- core/paginator/src/resource-stream.ts | 101 ++++++ core/paginator/test/index.ts | 427 +++---------------------- core/paginator/test/resource-stream.ts | 285 +++++++++++++++++ 5 files changed, 446 insertions(+), 507 deletions(-) create mode 100644 core/paginator/src/resource-stream.ts create mode 100644 core/paginator/test/resource-stream.ts diff --git a/core/paginator/package.json b/core/paginator/package.json index 9adf6d94431..9f31d3da133 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -52,9 +52,7 @@ }, "dependencies": { "arrify": "^2.0.0", - "extend": "^3.0.1", - "split-array-stream": "^2.0.0", - "stream-events": "^1.0.4" + "extend": "^3.0.1" }, "engines": { "node": ">=8.10.0" diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index b0a751742fe..1c300f23c78 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -20,83 +20,8 @@ import arrify = require('arrify'); import * as extend from 'extend'; -import {split} from 'split-array-stream'; -import {Transform, TransformOptions} from 'stream'; -import * as streamEvents from 'stream-events'; - -export interface CreateLimiterOptions { - /** - * The maximum number of API calls to make. - */ - maxApiCalls?: number; - - /** - * Options to pass to the Stream constructor. - */ - streamOptions?: TransformOptions; -} - -export interface Limiter { - // tslint:disable-next-line no-any - makeRequest(...args: any[]): Transform | undefined; - stream: Transform; -} - -export type ResourceStream = { - addListener(event: 'data', listener: (data: T) => void): ResourceStream; - emit(event: 'data', data: T): boolean; - on(event: 'data', listener: (data: T) => void): ResourceStream; - once(event: 'data', listener: (data: T) => void): ResourceStream; - prependListener( - event: 'data', - listener: (data: T) => void - ): ResourceStream; - prependOnceListener( - event: 'data', - listener: (data: T) => void - ): ResourceStream; - removeListener(event: 'data', listener: (data: T) => void): ResourceStream; -} & Transform; - -/** - * Limit requests according to a `maxApiCalls` limit. - * - * @param {function} makeRequestFn - The function that will be called. - * @param {object=} options - Configuration object. - * @param {number} options.maxApiCalls - The maximum number of API calls to make. - * @param {object} options.streamOptions - Options to pass to the Stream constructor. - */ -export function createLimiter( - makeRequestFn: Function, - options?: CreateLimiterOptions -): Limiter { - options = options || {}; - - const streamOptions = options.streamOptions || {}; - streamOptions.objectMode = true; - const stream = streamEvents(new Transform(streamOptions)) as Transform; - - let requestsMade = 0; - let requestsToMake = -1; - - if (typeof options.maxApiCalls === 'number') { - requestsToMake = options.maxApiCalls!; - } - - return { - // tslint:disable-next-line:no-any - makeRequest(...args: any[]) { - requestsMade++; - if (requestsToMake >= 0 && requestsMade > requestsToMake) { - stream.push(null); - return; - } - makeRequestFn.apply(null, args); - return stream; - }, - stream, - }; -} +import {TransformOptions} from 'stream'; +import {ResourceStream} from './resource-stream'; export interface ParsedArguments extends TransformOptions { /** @@ -196,7 +121,10 @@ export class Paginator { ): ResourceStream { const parsedArguments = paginator.parseArguments_(args); const originalMethod = this[methodName + '_'] || this[methodName]; - return paginator.runAsStream_(parsedArguments, originalMethod.bind(this)); + return paginator.runAsStream_( + parsedArguments, + originalMethod.bind(this) + ); }; } @@ -327,52 +255,16 @@ export class Paginator { * and returns `nextQuery` to receive more results. * @return {stream} - Readable object stream. */ - runAsStream_(parsedArguments: ParsedArguments, originalMethod: Function) { - const query = parsedArguments.query; - let resultsToSend = parsedArguments.maxResults!; - - const limiter = exports.createLimiter(makeRequest, { - maxApiCalls: parsedArguments.maxApiCalls, - streamOptions: parsedArguments.streamOptions, - }); - - const stream = limiter.stream; - - stream.once('reading', () => { - limiter.makeRequest(query); - }); - - function makeRequest(query?: ParsedArguments | string) { - originalMethod(query, onResultSet); - } - - // tslint:disable-next-line:no-any - function onResultSet(err: Error | null, results?: any[], nextQuery?: any) { - if (err) { - stream.destroy(err); - return; - } - - if (resultsToSend >= 0 && results!.length > resultsToSend) { - results = results!.splice(0, resultsToSend); - } - - resultsToSend -= results!.length; - - split(results!, stream).then(streamEnded => { - if (streamEnded) { - return; - } - if (nextQuery && resultsToSend !== 0) { - limiter.makeRequest(nextQuery); - return; - } - stream.push(null); - }); - } - return limiter.stream; + // tslint:disable-next-line:no-any + runAsStream_( + parsedArguments: ParsedArguments, + originalMethod: Function + ): ResourceStream { + return new ResourceStream(parsedArguments, originalMethod); } } const paginator = new Paginator(); export {paginator}; + +export {ResourceStream}; diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts new file mode 100644 index 00000000000..a2249f49860 --- /dev/null +++ b/core/paginator/src/resource-stream.ts @@ -0,0 +1,101 @@ +/*! + * Copyright 2019 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 {Transform} from 'stream'; +import {ParsedArguments} from './'; + +interface ResourceEvents { + addListener(event: 'data', listener: (data: T) => void): this; + emit(event: 'data', data: T): boolean; + on(event: 'data', listener: (data: T) => void): this; + once(event: 'data', listener: (data: T) => void): this; + prependListener(event: 'data', listener: (data: T) => void): this; + prependOnceListener(event: 'data', listener: (data: T) => void): this; + removeListener(event: 'data', listener: (data: T) => void): this; +} + +export class ResourceStream extends Transform implements ResourceEvents { + _ended: boolean; + _maxApiCalls: number; + _nextQuery: {} | null; + _reading: boolean; + _requestFn: Function; + _requestsMade: number; + _resultsToSend: number; + constructor(args: ParsedArguments, requestFn: Function) { + const options = Object.assign({objectMode: true}, args.streamOptions); + super(options); + + this._ended = false; + this._maxApiCalls = args.maxApiCalls === -1 ? Infinity : args.maxApiCalls!; + this._nextQuery = args.query!; + this._reading = false; + this._requestFn = requestFn; + this._requestsMade = 0; + this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults!; + } + // tslint:disable-next-line:no-any + end(...args: any[]) { + this._ended = true; + return super.end(...args); + } + _read() { + if (this._reading) { + return; + } + + this._reading = true; + + this._requestFn( + this._nextQuery, + (err: Error | null, results: T[], nextQuery: {} | null) => { + if (err) { + this.destroy(err); + return; + } + + this._nextQuery = nextQuery; + + if (this._resultsToSend !== Infinity) { + results = results.splice(0, this._resultsToSend); + this._resultsToSend -= results.length; + } + + let more = true; + + for (const result of results) { + if (this._ended) { + break; + } + more = this.push(result); + } + + const isFinished = !this._nextQuery || this._resultsToSend < 1; + const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls; + + if (isFinished || madeMaxCalls) { + this.end(); + } + + if (more && !this._ended) { + setImmediate(() => this._read()); + } + + this._reading = false; + } + ); + } +} diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index b2423274b10..2af10519482 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -18,7 +18,6 @@ import * as assert from 'assert'; import * as proxyquire from 'proxyquire'; import * as sinon from 'sinon'; import * as stream from 'stream'; -import * as streamEvents from 'stream-events'; import * as through from 'through2'; import * as uuid from 'uuid'; import * as P from '../src'; @@ -28,21 +27,29 @@ const util = { noop: () => {}, }; +class FakeResourceStream extends stream.Transform { + calledWith: IArguments; + constructor() { + super({objectMode: true}); + this.calledWith = arguments; + } +} + const p = proxyquire('../src', { - 'stream-events': fakeStreamEvents, + './resource-stream': {ResourceStream: FakeResourceStream}, }) as typeof P; -let streamEventsOverride: Function | null; -function fakeStreamEvents() { - return (streamEventsOverride || streamEvents).apply(null, arguments); -} - const sandbox = sinon.createSandbox(); + afterEach(() => { sandbox.restore(); - streamEventsOverride = null; }); +// tslint:disable-next-line no-any +function createFakeStream() { + return through.obj() as P.ResourceStream; +} + describe('paginator', () => { const UUID = uuid.v1(); function FakeClass() {} @@ -153,7 +160,7 @@ describe('paginator', () => { done(); return args as ParsedArguments; }); - sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); + sandbox.stub(paginator, 'runAsStream_').callsFake(createFakeStream); FakeClass.prototype.streamMethod.apply(FakeClass.prototype, fakeArgs); }); @@ -165,7 +172,8 @@ describe('paginator', () => { sandbox.stub(paginator, 'runAsStream_').callsFake((args, callback) => { assert.strictEqual(args, parsedArguments); assert.strictEqual(callback(), UUID); - done(); + setImmediate(done); + return createFakeStream(); }); FakeClass.prototype.streamMethod(); @@ -181,7 +189,8 @@ describe('paginator', () => { }); sandbox.stub(paginator, 'runAsStream_').callsFake((_, callback) => { assert.strictEqual(callback(), FakeClass.prototype); - done(); + setImmediate(done); + return createFakeStream(); }); FakeClass.prototype.streamMethod(); }); @@ -198,19 +207,16 @@ describe('paginator', () => { }); sandbox.stub(paginator, 'runAsStream_').callsFake((_, callback) => { assert.strictEqual(callback(), fakeValue); - done(); + setImmediate(done); + return createFakeStream(); }); FakeClass.prototype.streamMethod(); }); it('should return a stream', () => { - const fakeStream = through.obj(); - sandbox.stub(paginator, 'parseArguments_').callsFake(() => { - return {}; - }); - sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - return fakeStream; - }); + const fakeStream = createFakeStream(); + sandbox.stub(paginator, 'parseArguments_').returns({}); + sandbox.stub(paginator, 'runAsStream_').returns(fakeStream); const stream = FakeClass.prototype.streamMethod(); assert.strictEqual(fakeStream, stream); }); @@ -323,7 +329,7 @@ describe('paginator', () => { .callsFake((args, originalMethod) => { assert.strictEqual(args, parsedArguments); originalMethod(); - return through(); + return createFakeStream(); }); paginator.run_(parsedArguments, done); @@ -341,7 +347,7 @@ describe('paginator', () => { }; sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - const stream = through(); + const stream = createFakeStream(); setImmediate(() => { stream.emit('error', error); }); @@ -363,7 +369,7 @@ describe('paginator', () => { }; sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - const stream = through.obj(); + const stream = createFakeStream(); setImmediate(() => { results.forEach(result => stream.push(result)); stream.push(null); @@ -385,7 +391,7 @@ describe('paginator', () => { .callsFake((args, originalMethod) => { assert.strictEqual(args, parsedArguments); originalMethod(); - return through(); + return createFakeStream(); }); paginator.run_(parsedArguments, done); @@ -395,7 +401,7 @@ describe('paginator', () => { const error = new Error('Error.'); sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - const stream = through(); + const stream = createFakeStream(); setImmediate(() => { stream.emit('error', error); }); @@ -411,7 +417,7 @@ describe('paginator', () => { const results = [{a: 1}, {b: 2}, {c: 3}]; sandbox.stub(paginator, 'runAsStream_').callsFake(() => { - const stream = through.obj(); + const stream = createFakeStream(); setImmediate(() => { results.forEach(result => stream.push(result)); stream.push(null); @@ -439,7 +445,7 @@ describe('paginator', () => { }, callback: done, } as ParsedArguments; - sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); + sandbox.stub(paginator, 'runAsStream_').callsFake(createFakeStream); paginator.run_(parsedArguments, (query: {}, callback: () => void) => { assert.deepStrictEqual(query, parsedArguments.query); callback(); @@ -456,370 +462,27 @@ describe('paginator', () => { c: 'd', }, } as ParsedArguments; - sandbox.stub(paginator, 'runAsStream_').callsFake(util.noop); + sandbox.stub(paginator, 'runAsStream_').callsFake(createFakeStream); paginator.run_(parsedArguments, (query: {}) => { assert.deepStrictEqual(query, parsedArguments.query); }); }); }); }); - }); - - describe('runAsStream_', () => { - const PARSED_ARGUMENTS = { - query: {maxApiCalls: 12345, pageSize: 23456}, - callback: util.noop, - }; - - let limiterStub: sinon.SinonStub< - [Function, (P.CreateLimiterOptions | undefined)?], - P.Limiter - >; - beforeEach(() => { - limiterStub = sandbox.stub(p, 'createLimiter').callsFake(makeRequest => { - const transformStream = new stream.Transform({objectMode: true}); - transformStream.destroy = through.obj().destroy.bind(transformStream); - - setImmediate(() => { - transformStream.emit('reading'); - }); - - return { - makeRequest, - stream: transformStream, - } as P.Limiter; - }); - }); - - describe('originalmethod is callback based', () => { - it('should call original method when stream opens', done => { - function originalMethod(query: {}) { - assert.strictEqual(query, PARSED_ARGUMENTS.query); - done(); - } - p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - }); - - it('should emit an error if one occurs', done => { - const error = new Error('Error.'); - - function originalMethod(query: {}, callback: (err: Error) => void) { - setImmediate(() => { - callback(error); - }); - } - - const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('error', (err: Error) => { - assert.deepStrictEqual(err, error); - done(); - }); - }); - - it('should push results onto the stream', done => { - const results = ['a', 'b', 'c']; - const resultsReceived: Array<{}> = []; - - function originalMethod( - query: {}, - callback: (err: Error | null, results: {}) => void - ) { - setImmediate(() => { - callback(null, results); - }); - } - - const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('data', (result: {}) => { - resultsReceived.push(result); - }); - rs.on('end', () => { - assert.deepStrictEqual(resultsReceived, ['a', 'b', 'c']); - done(); - }); - }); - }); - - describe('originalmethod is promise based', () => { - before(() => { - delete PARSED_ARGUMENTS.callback; - }); - it('should call original method when stream opens', done => { - function originalMethod(query: {}) { - assert.strictEqual(query, PARSED_ARGUMENTS.query); - done(); - } - p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - }); - - it('should emit an error if one occurs', done => { - const error = new Error('Error.'); - - function originalMethod(query: {}, callback: (err: Error) => void) { - setImmediate(() => { - callback(error); - }); - } - - const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('error', (err: Error) => { - assert.deepStrictEqual(err, error); - done(); - }); - }); - - it('should push results onto the stream', done => { - const results = ['a', 'b', 'c']; - const resultsReceived: Array<{}> = []; - - function originalMethod( - query: {}, - callback: (err: Error | null, results: {}) => void - ) { - setImmediate(() => { - callback(null, results); - }); - } - - const rs = p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('data', (result: {}) => { - resultsReceived.push(result); - }); - rs.on('end', () => { - assert.deepStrictEqual(resultsReceived, ['a', 'b', 'c']); - done(); - }); - }); - }); - - describe('maxApiCalls', () => { - const maxApiCalls = 10; - - it('should create a limiter', done => { - limiterStub.restore(); - sandbox.stub(p, 'createLimiter').callsFake((_, options) => { - assert.strictEqual(options!.maxApiCalls, maxApiCalls); - setImmediate(done); - return { - stream: through.obj(), - } as P.Limiter; - }); - p.paginator.runAsStream_({maxApiCalls}, util.noop); - }); - }); - - describe('streamOptions', () => { - const streamOptions = { - highWaterMark: 8, - }; - - it('should pass through stream options', done => { - limiterStub.restore(); - sandbox.stub(p, 'createLimiter').callsFake((_, options) => { - assert.strictEqual(options!.streamOptions, streamOptions); - setImmediate(done); - return { - stream: through.obj(), - } as P.Limiter; - }); - - p.paginator.runAsStream_( - { - maxApiCalls: 100, - streamOptions, - } as ParsedArguments, - util.noop - ); - }); - }); - - describe('limits', () => { - const limit = 1; - - function originalMethod( - query: {}, - callback: (err: Error | null, results: number[]) => void - ) { - setImmediate(() => { - callback(null, [1, 2, 3]); - }); - } - - it('should respect maxResults', done => { - let numResultsReceived = 0; - - p.paginator - .runAsStream_( - {maxResults: limit, callback: util.noop}, - originalMethod - ) - .on('data', () => { - numResultsReceived++; - }) - .on('end', () => { - assert.strictEqual(numResultsReceived, limit); - done(); - }); - }); - }); - - it('should get more results if nextQuery exists', done => { - const nextQuery = {a: 'b', c: 'd'}; - let nextQuerySent = false; - - function originalMethod( - query: {}, - callback: (err: Error | null, res: Array<{}>, nextQuery: {}) => void - ) { - if (nextQuerySent) { - assert.deepStrictEqual(query, nextQuery); - done(); - return; - } - - setImmediate(() => { - nextQuerySent = true; - callback(null, [], nextQuery); - }); - } - - p.paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - }); - - it('should not push more results if stream ends early', done => { - const results = ['a', 'b', 'c']; - - function originalMethod( - query: {}, - callback: (err: Error | null, results: string[]) => void - ) { - setImmediate(() => { - callback(null, results); - }); - } - - const rs = paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('data', (result: string) => { - if (result === 'b') { - // Pre-maturely end the stream. - rs.end(); - } - - assert.notStrictEqual(result, 'c'); - }); - rs.on('end', () => { - done(); - }); - }); - - it('should not get more results if stream ends early', done => { - const results = ['a', 'b', 'c']; - - let originalMethodCalledCount = 0; - - function originalMethod( - query: {}, - callback: (err: Error | null, results: string[], body: {}) => void - ) { - originalMethodCalledCount++; - - setImmediate(() => { - callback(null, results, {}); - }); - } - - const rs = paginator.runAsStream_(PARSED_ARGUMENTS, originalMethod); - rs.on('data', (result: string) => { - if (result === 'b') { - // Pre-maturely end the stream. - rs.end(); - } - }); - rs.on('end', () => { - assert.strictEqual(originalMethodCalledCount, 1); - done(); - }); - }); - }); -}); - -describe('createLimiter', () => { - function REQUEST_FN() {} - const OPTIONS = { - streamOptions: { - highWaterMark: 8, - }, - }; - - it('should create an object stream with stream-events', done => { - streamEventsOverride = (stream: stream.Readable) => { - // tslint:disable-next-line:no-any - assert.strictEqual((stream as any)._readableState.objectMode, true); - setImmediate(done); - return stream; - }; - - p.createLimiter(REQUEST_FN, OPTIONS); - }); - - it('should return a makeRequest function', () => { - const limiter = p.createLimiter(REQUEST_FN, OPTIONS); - assert.strictEqual(typeof limiter.makeRequest, 'function'); - }); - - it('should return the created stream', () => { - const streamEventsStream = {}; - streamEventsOverride = () => { - return streamEventsStream; - }; + describe('runAsStream_', () => { + it('should create a resource stream', () => { + const fakeArgs = {}; + const fakeFn = sandbox.spy(); + const stream = (p.paginator.runAsStream_( + fakeArgs, + fakeFn + ) as unknown) as FakeResourceStream; - const limiter = p.createLimiter(REQUEST_FN, OPTIONS); - assert.strictEqual(limiter.stream, streamEventsStream); - }); - - it('should pass stream options to through', () => { - const limiter = p.createLimiter(REQUEST_FN, OPTIONS); - - assert.strictEqual( - // tslint:disable-next-line:no-any - (limiter.stream as any)._readableState.highWaterMark, - OPTIONS.streamOptions.highWaterMark - ); - }); - - describe('makeRequest', () => { - it('should pass arguments to request method', done => { - const args = [{}, {}]; - - const limiter = p.createLimiter((obj1: {}, obj2: {}) => { - assert.strictEqual(obj1, args[0]); - assert.strictEqual(obj2, args[1]); - done(); - }); - - limiter.makeRequest.apply(null, args); - }); - - it('should not make more requests than the limit', done => { - let callsMade = 0; - const maxApiCalls = 10; - - const limiter = p.createLimiter( - () => { - callsMade++; - limiter.makeRequest(); - }, - { - maxApiCalls, - } - ); - - limiter.makeRequest(); - - limiter.stream.on('data', util.noop).on('end', () => { - assert.strictEqual(callsMade, maxApiCalls); - done(); + assert(stream instanceof FakeResourceStream); + const [args, requestFn] = stream.calledWith; + assert.strictEqual(args, fakeArgs); + assert.strictEqual(requestFn, fakeFn); }); }); }); diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts new file mode 100644 index 00000000000..ecef87bed18 --- /dev/null +++ b/core/paginator/test/resource-stream.ts @@ -0,0 +1,285 @@ +/** + * Copyright 2019 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 * as assert from 'assert'; +import * as sinon from 'sinon'; +import {Transform} from 'stream'; + +import {ResourceStream} from '../src/resource-stream'; + +describe('ResourceStream', () => { + const sandbox = sinon.createSandbox(); + + const config = { + maxApiCalls: -1, + maxResults: -1, + query: {}, + }; + + let requestSpy: sinon.SinonSpy; + let stream: ResourceStream<{}>; + + beforeEach(() => { + requestSpy = sandbox.spy(); + stream = new ResourceStream(config, requestSpy); + }); + + afterEach(() => { + sandbox.restore(); + }); + + describe('instantiation', () => { + it('should pass the streamingOptions to the constructor', () => { + const highWaterMark = 1; + const options = { + streamOptions: {highWaterMark}, + }, + stream = new ResourceStream(options, requestSpy); + assert.strictEqual(stream.readableHighWaterMark, highWaterMark); + }); + + it('should set ended to false', () => { + assert.strictEqual(stream._ended, false); + }); + + it('should set reading to false', () => { + assert.strictEqual(stream._reading, false); + }); + + it('should set requestsMade to 0', () => { + assert.strictEqual(stream._requestsMade, 0); + }); + + it('should localize the first query', () => { + assert.strictEqual(stream._nextQuery, config.query); + }); + + it('should localize the request function', () => { + assert.strictEqual(stream._requestFn, requestSpy); + }); + + describe('maxApiCalls', () => { + it('should localize maxApiCalls', () => { + const maxApiCalls = 100; + stream = new ResourceStream({maxApiCalls}, requestSpy); + assert.strictEqual(stream._maxApiCalls, maxApiCalls); + }); + + it('should set it to Infinity if not specified', () => { + assert.strictEqual(stream._maxApiCalls, Infinity); + }); + }); + + describe('resultsToSend', () => { + it('should localize maxResults as resultsToSend', () => { + const maxResults = 100; + stream = new ResourceStream({maxResults}, requestSpy); + assert.strictEqual(stream._resultsToSend, maxResults); + }); + + it('should set it to Infinity if not specified', () => { + assert.strictEqual(stream._resultsToSend, Infinity); + }); + }); + }); + + describe('end', () => { + it('should set ended to true', () => { + stream.end(); + assert.strictEqual(stream._ended, true); + }); + + it('should call through to super.end', () => { + const stub = sandbox.stub(Transform.prototype, 'end'); + + stream.end(); + assert.strictEqual(stub.callCount, 1); + }); + }); + + describe('_read', () => { + it('should set reading to true', () => { + stream._read(); + assert.strictEqual(stream._reading, true); + }); + + it('should noop if already reading', () => { + stream._read(); + stream._read(); + + assert.strictEqual(requestSpy.callCount, 1); + }); + + it('should pass in the query options', () => { + stream._read(); + + const query = requestSpy.lastCall.args[0]; + assert.strictEqual(query, config.query); + }); + + it('should destroy the stream if an error occurs', () => { + const fakeError = new Error('err'); + const stub = sandbox.stub(stream, 'destroy').withArgs(fakeError); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(fakeError); + + assert.strictEqual(stub.callCount, 1); + }); + + it('should cache the next query', () => { + const fakeQuery = {}; + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, [], fakeQuery); + + assert.strictEqual(stream._nextQuery, fakeQuery); + }); + + it('should adjust the results to send counter', () => { + const maxResults = 100; + const results = [{}, {}]; + const expected = maxResults - results.length; + + stream = new ResourceStream({maxResults}, requestSpy); + stream._read(); + + const callback = requestSpy.lastCall.args[1]; + callback(null, results); + + assert.strictEqual(stream._resultsToSend, expected); + }); + + it('should push in all the results', () => { + // tslint:disable-next-line ban + const results = Array(20).fill({}); + const stub = sandbox.stub(stream, 'push'); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, results, {}); + + assert.strictEqual(stub.callCount, results.length); + + results.forEach((result, i) => { + const pushed = stub.getCall(i).args[0]; + assert.strictEqual(pushed, result); + }); + }); + + it('should stop pushing results if the stream is ended', () => { + // tslint:disable-next-line ban + const results = Array(20).fill({}); + + stream.on('data', () => stream.end()); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, results, {}); + + assert.strictEqual(requestSpy.callCount, 1); + }); + + it('should end the stream if there is no next query', () => { + const stub = sandbox.stub(stream, 'end'); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, []); + + assert.strictEqual(stub.callCount, 1); + }); + + it('should end the stream if max results is hit', () => { + const maxResults = 10; + // tslint:disable-next-line ban + const results = Array(maxResults).fill({}); + stream = new ResourceStream({maxResults}, requestSpy); + const stub = sandbox.stub(stream, 'end'); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, results, {}); + + assert.strictEqual(stub.callCount, 1); + }); + + it('should end the stream if max api calls is hit', () => { + const maxApiCalls = 1; + stream = new ResourceStream({maxApiCalls}, requestSpy); + const stub = sandbox.stub(stream, 'end'); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, [], {}); + + assert.strictEqual(stub.callCount, 1); + }); + + it('should stop reading if the buffer is full', () => { + const clock = sandbox.useFakeTimers(); + + // tslint:disable-next-line ban + const results = Array(stream.readableHighWaterMark).fill({}); + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, results, {}); + + const stub = sandbox.stub(stream, '_read'); + clock.runAll(); + + assert.strictEqual(stub.callCount, 0); + }); + + it('should stop reading if the stream ended', () => { + const clock = sandbox.useFakeTimers(); + + stream.on('data', () => stream.end()); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, [{}], {}); + + const stub = sandbox.stub(stream, '_read'); + clock.runAll(); + + assert.strictEqual(stub.callCount, 0); + }); + + it('should keep reading if not full/ended', () => { + const clock = sandbox.useFakeTimers(); + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, [{}], {}); + + const stub = sandbox.stub(stream, '_read'); + clock.runAll(); + + assert.strictEqual(stub.callCount, 1); + }); + + it('should set reading to false inbetween reads', () => { + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, [{}], {}); + + assert.strictEqual(stream._reading, false); + }); + }); +}); From 0dfafcfc2399d086e3a27ac095a128286ecae4ed Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 12 Jul 2019 10:38:21 -0700 Subject: [PATCH 105/279] chore: release 2.0.0 (#137) --- core/paginator/CHANGELOG.md | 11 +++++++++++ core/paginator/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index c74d68bfa4b..0a3fbaff393 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,17 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [2.0.0](https://www.github.com/googleapis/nodejs-paginator/compare/v1.0.2...v2.0.0) (2019-07-12) + + +### ⚠ BREAKING CHANGES + +* rewrite streaming logic (#136) + +### Code Refactoring + +* rewrite streaming logic ([#136](https://www.github.com/googleapis/nodejs-paginator/issues/136)) ([641d82d](https://www.github.com/googleapis/nodejs-paginator/commit/641d82d)) + ### [1.0.2](https://www.github.com/googleapis/nodejs-paginator/compare/v1.0.1...v1.0.2) (2019-06-26) diff --git a/core/paginator/package.json b/core/paginator/package.json index 9f31d3da133..64e21f662d3 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "1.0.2", + "version": "2.0.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 2a258ab7567d63ab72a55c6b0981888de12aba41 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 19 Jul 2019 18:16:06 -0700 Subject: [PATCH 106/279] chore(deps): drop dependency on through2 (#138) --- core/paginator/package.json | 2 -- core/paginator/test/index.ts | 7 +++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 64e21f662d3..fc186604c6c 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -35,7 +35,6 @@ "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", "@types/sinon": "^7.0.0", - "@types/through2": "^2.0.34", "@types/uuid": "^3.4.3", "codecov": "^3.0.4", "gts": "^1.0.0", @@ -46,7 +45,6 @@ "proxyquire": "^2.0.1", "sinon": "^7.0.0", "source-map-support": "^0.5.6", - "through2": "^3.0.0", "typescript": "^3.0.0", "uuid": "^3.3.2" }, diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 2af10519482..0840399913d 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -17,8 +17,7 @@ import * as assert from 'assert'; import * as proxyquire from 'proxyquire'; import * as sinon from 'sinon'; -import * as stream from 'stream'; -import * as through from 'through2'; +import {PassThrough, Transform} from 'stream'; import * as uuid from 'uuid'; import * as P from '../src'; import {paginator, ParsedArguments} from '../src'; @@ -27,7 +26,7 @@ const util = { noop: () => {}, }; -class FakeResourceStream extends stream.Transform { +class FakeResourceStream extends Transform { calledWith: IArguments; constructor() { super({objectMode: true}); @@ -47,7 +46,7 @@ afterEach(() => { // tslint:disable-next-line no-any function createFakeStream() { - return through.obj() as P.ResourceStream; + return new PassThrough({objectMode: true}) as P.ResourceStream; } describe('paginator', () => { From 9c6299f46683cc14db88c92a4fee5b02fe274445 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 31 Jul 2019 08:42:35 -0700 Subject: [PATCH 107/279] docs: use the jsdoc-fresh theme (#139) --- core/paginator/.jsdoc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index 143df4abfdc..f9a94ca6834 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -20,7 +20,7 @@ module.exports = { opts: { readme: './README.md', package: './package.json', - template: './node_modules/jsdoc-baseline', + template: './node_modules/jsdoc-fresh', recurse: true, verbose: true, destination: './docs/' From 8fdf30a584d6783a9062c3653cb6f2e1a380fb76 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 31 Jul 2019 17:11:51 -0700 Subject: [PATCH 108/279] build: add Node 12 remove Node 11 (#140) --- core/paginator/.kokoro/continuous/{node11 => node12}/common.cfg | 2 +- core/paginator/.kokoro/continuous/{node11 => node12}/test.cfg | 0 core/paginator/.kokoro/presubmit/{node11 => node12}/common.cfg | 2 +- core/paginator/.kokoro/presubmit/{node11 => node12}/test.cfg | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename core/paginator/.kokoro/continuous/{node11 => node12}/common.cfg (89%) rename core/paginator/.kokoro/continuous/{node11 => node12}/test.cfg (100%) rename core/paginator/.kokoro/presubmit/{node11 => node12}/common.cfg (89%) rename core/paginator/.kokoro/presubmit/{node11 => node12}/test.cfg (100%) diff --git a/core/paginator/.kokoro/continuous/node11/common.cfg b/core/paginator/.kokoro/continuous/node12/common.cfg similarity index 89% rename from core/paginator/.kokoro/continuous/node11/common.cfg rename to core/paginator/.kokoro/continuous/node12/common.cfg index 0fdf9966f5d..f1b834d6984 100644 --- a/core/paginator/.kokoro/continuous/node11/common.cfg +++ b/core/paginator/.kokoro/continuous/node12/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/continuous/node11/test.cfg b/core/paginator/.kokoro/continuous/node12/test.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node11/test.cfg rename to core/paginator/.kokoro/continuous/node12/test.cfg diff --git a/core/paginator/.kokoro/presubmit/node11/common.cfg b/core/paginator/.kokoro/presubmit/node12/common.cfg similarity index 89% rename from core/paginator/.kokoro/presubmit/node11/common.cfg rename to core/paginator/.kokoro/presubmit/node12/common.cfg index 0fdf9966f5d..f1b834d6984 100644 --- a/core/paginator/.kokoro/presubmit/node11/common.cfg +++ b/core/paginator/.kokoro/presubmit/node12/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/presubmit/node11/test.cfg b/core/paginator/.kokoro/presubmit/node12/test.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node11/test.cfg rename to core/paginator/.kokoro/presubmit/node12/test.cfg From 3ba437e86dd9a325e755135e8798b206135e7363 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sat, 17 Aug 2019 13:43:44 -0700 Subject: [PATCH 109/279] fix(deps): use the latest extend (#141) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index fc186604c6c..96088776b3b 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "arrify": "^2.0.0", - "extend": "^3.0.1" + "extend": "^3.0.2" }, "engines": { "node": ">=8.10.0" From 4140265a567c75e14568c87dd879b5dbae4d936a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 25 Aug 2019 19:28:22 -0700 Subject: [PATCH 110/279] chore: release 2.0.1 (#142) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json [ci skip] --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 0a3fbaff393..8134578c284 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [2.0.1](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.0...v2.0.1) (2019-08-25) + + +### Bug Fixes + +* **deps:** use the latest extend ([#141](https://www.github.com/googleapis/nodejs-paginator/issues/141)) ([61b383e](https://www.github.com/googleapis/nodejs-paginator/commit/61b383e)) + ## [2.0.0](https://www.github.com/googleapis/nodejs-paginator/compare/v1.0.2...v2.0.0) (2019-07-12) diff --git a/core/paginator/package.json b/core/paginator/package.json index 96088776b3b..15e7320552d 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "2.0.0", + "version": "2.0.1", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From e1f70f0fd6ea6feceb5bd7409ebd731d4d72a4e2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 28 Aug 2019 12:32:01 -0700 Subject: [PATCH 111/279] docs: update link to client docs (#144) --- core/paginator/README.md | 4 +--- core/paginator/synth.metadata | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/core/paginator/README.md b/core/paginator/README.md index 0cba710bba6..2a449e377bd 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -97,12 +97,10 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/paginator/latest#reference +[client-docs]: https://googleapis.dev/nodejs/paginator/latest [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 [auth]: https://cloud.google.com/docs/authentication/getting-started - - diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 63cf48216a5..bef9555453f 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-06-18T01:02:47.669407Z", + "updateTime": "2019-08-28T11:17:46.127812Z", "sources": [ { "template": { From f99a97b1f7a92721ea3d436908870cc4345eb559 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 6 Sep 2019 18:11:42 -0400 Subject: [PATCH 112/279] update .nycrc ignore rules (#145) --- core/paginator/.nycrc | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index 83a421a0628..23e322204ec 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -6,6 +6,7 @@ "**/.coverage", "**/apis", "**/benchmark", + "**/conformance", "**/docs", "**/samples", "**/scripts", From c98a4d28fc0005acc1f353b25f8608f3f9024678 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 18 Sep 2019 05:28:01 -0700 Subject: [PATCH 113/279] build: switch to GitHub app for releases (#146) --- core/paginator/.github/release-please.yml | 0 .../.kokoro/continuous/node10/test.cfg | 28 ------------------- core/paginator/.kokoro/test.sh | 9 ------ 3 files changed, 37 deletions(-) create mode 100644 core/paginator/.github/release-please.yml diff --git a/core/paginator/.github/release-please.yml b/core/paginator/.github/release-please.yml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg index fefee48ba76..468b8c7197a 100644 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ b/core/paginator/.kokoro/continuous/node10/test.cfg @@ -7,31 +7,3 @@ before_action { } } } - -# tokens used by release-please to keep an up-to-date release PR. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-key-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-token-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-url-release-please" - } - } -} diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 67268061dd6..9db11bb09d6 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -35,12 +35,3 @@ if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then else echo "coverage is only reported for Node $COVERAGE_NODE" fi - -# if release-please keys set, we kick off a task to update the release-PR. -if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then - npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ - --repo-url=googleapis/nodejs-paginator \ - --package-name=@google-cloud/paginator \ - --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ - --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please -fi From b75125c3368f4a9b23e1d64689ac5c8fcd0b73e8 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Fri, 27 Sep 2019 02:04:35 -0400 Subject: [PATCH 114/279] chore: add protos/ to .eslintignore --- core/paginator/.eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index f0c7aead4bf..09b31fe735a 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -2,3 +2,4 @@ src/**/doc/* build/ docs/ +protos/ From 4d1f8ef03e37e2cfc29d1e3a3c0b2742b4357db1 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 27 Sep 2019 17:39:07 -0400 Subject: [PATCH 115/279] chore: update pull request template --- core/paginator/.github/PULL_REQUEST_TEMPLATE.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md index 809750308d7..46cd1076bd7 100644 --- a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md +++ b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,7 @@ -Fixes # (it's a good idea to open an issue first for discussion) - -- [ ] Tests and linter pass +Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/{{metadata['repo']['name']}}/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +- [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) + +Fixes # 🦕 From c9af7e4e3b8009d045b22b2e0c75be890d07e937 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 7 Oct 2019 16:17:31 -0700 Subject: [PATCH 116/279] chore: update pull request template --- core/paginator/.github/PULL_REQUEST_TEMPLATE.md | 2 +- core/paginator/synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md index 46cd1076bd7..fee31864b31 100644 --- a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md +++ b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,5 @@ Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/{{metadata['repo']['name']}}/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/nodejs-paginator/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index bef9555453f..b92dcc06ea3 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-08-28T11:17:46.127812Z", + "updateTime": "2019-10-01T11:25:06.117470Z", "sources": [ { "template": { From a7c167535aea49603de9da29a7d543ee2f602c25 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 8 Oct 2019 17:23:26 -0700 Subject: [PATCH 117/279] chore: update CONTRIBUTING.md and make releaseType node (#153) --- core/paginator/.github/release-please.yml | 1 + core/paginator/CONTRIBUTING.md | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/core/paginator/.github/release-please.yml b/core/paginator/.github/release-please.yml index e69de29bb2d..85344b92c7f 100644 --- a/core/paginator/.github/release-please.yml +++ b/core/paginator/.github/release-please.yml @@ -0,0 +1 @@ +releaseType: node diff --git a/core/paginator/CONTRIBUTING.md b/core/paginator/CONTRIBUTING.md index 78aaa61b269..f6c4cf010e3 100644 --- a/core/paginator/CONTRIBUTING.md +++ b/core/paginator/CONTRIBUTING.md @@ -34,6 +34,7 @@ accept your pull requests. 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. ## Running the tests @@ -46,8 +47,17 @@ accept your pull requests. 1. Run the tests: + # Run unit tests. npm test + # Run sample integration tests. + gcloud auth application-default login + npm run samples-test + + # Run all system tests. + gcloud auth application-default login + npm run system-test + 1. Lint (and maybe fix) any changes: npm run fix From 7ec4318e896dfe72650c98eb37e98801700140a0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 31 Oct 2019 12:40:47 -0700 Subject: [PATCH 118/279] test: don't exclude src in coverage --- core/paginator/.nycrc | 1 - core/paginator/synth.metadata | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index 23e322204ec..367688844eb 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -10,7 +10,6 @@ "**/docs", "**/samples", "**/scripts", - "**/src/**/v*/**/*.js", "**/protos", "**/test", ".jsdoc.js", diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index b92dcc06ea3..ef60934e3a8 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-10-01T11:25:06.117470Z", + "updateTime": "2019-10-30T22:21:02.863371Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.5.2" + "version": "2019.10.17" } } ] From 4f761bafcd87a5b522617a4f8533c2f2bfc5fceb Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 13 Nov 2019 12:43:53 -0800 Subject: [PATCH 119/279] fix(docs): add jsdoc-region-tag plugin (#155) --- core/paginator/.jsdoc.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index f9a94ca6834..88826d72102 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -26,7 +26,8 @@ module.exports = { destination: './docs/' }, plugins: [ - 'plugins/markdown' + 'plugins/markdown', + 'jsdoc-region-tag' ], source: { excludePattern: '(^|\\/|\\\\)[._]', From 6547fad3052a8a2ae7d550d27a374569932689c4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2019 15:32:09 -0800 Subject: [PATCH 120/279] chore: release 2.0.2 (#156) --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 8134578c284..8cb32891170 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [2.0.2](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.1...v2.0.2) (2019-11-13) + + +### Bug Fixes + +* **docs:** add jsdoc-region-tag plugin ([#155](https://www.github.com/googleapis/nodejs-paginator/issues/155)) ([b983799](https://www.github.com/googleapis/nodejs-paginator/commit/b98379905848fd179c6268aff3e1cfaf2bf76663)) + ### [2.0.1](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.0...v2.0.1) (2019-08-25) diff --git a/core/paginator/package.json b/core/paginator/package.json index 15e7320552d..a1b3a8acaa9 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "2.0.1", + "version": "2.0.2", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From e309c39d06bca03c0b5958eb8db0c03dff6d6f03 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 14 Nov 2019 13:23:56 -0800 Subject: [PATCH 121/279] chore: add gitattributes to kokoro --- core/paginator/.kokoro/.gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 core/paginator/.kokoro/.gitattributes diff --git a/core/paginator/.kokoro/.gitattributes b/core/paginator/.kokoro/.gitattributes new file mode 100644 index 00000000000..87acd4f484e --- /dev/null +++ b/core/paginator/.kokoro/.gitattributes @@ -0,0 +1 @@ +* linguist-generated=true From 73efbeae832e556f5a254f3e6d30d9361cf9cf85 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 25 Nov 2019 08:54:45 -0800 Subject: [PATCH 122/279] chore: update license headers --- core/paginator/system-test/system.ts | 28 ++++++++++++-------------- core/paginator/test/index.ts | 28 ++++++++++++-------------- core/paginator/test/resource-stream.ts | 28 ++++++++++++-------------- 3 files changed, 39 insertions(+), 45 deletions(-) diff --git a/core/paginator/system-test/system.ts b/core/paginator/system-test/system.ts index 4672462af5d..d366a5f770c 100644 --- a/core/paginator/system-test/system.ts +++ b/core/paginator/system-test/system.ts @@ -1,17 +1,15 @@ -/** - * Copyright 2018 Google LLC. 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. - */ +// Copyright 2018 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. console.warn(`no system tests available 👻`); diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 0840399913d..5513638e885 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2015 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. - */ +// Copyright 2015 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 * as proxyquire from 'proxyquire'; diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts index ecef87bed18..a01000eb58e 100644 --- a/core/paginator/test/resource-stream.ts +++ b/core/paginator/test/resource-stream.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2019 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. - */ +// Copyright 2019 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 * as sinon from 'sinon'; From 4e03e7d937802f0d30b8e9940d5b0c0f310d7bec Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 5 Dec 2019 10:45:33 -0800 Subject: [PATCH 123/279] fix(deps): pin TypeScript below 3.7.0 --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index a1b3a8acaa9..14de400d5dc 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -45,7 +45,7 @@ "proxyquire": "^2.0.1", "sinon": "^7.0.0", "source-map-support": "^0.5.6", - "typescript": "^3.0.0", + "typescript": "3.6.4", "uuid": "^3.3.2" }, "dependencies": { From 0f1be76bb7d13d97b80fd5ce1011933f93323b9b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2019 15:38:58 -0800 Subject: [PATCH 124/279] chore: release 2.0.3 (#160) --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 8cb32891170..bd901834f85 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [2.0.3](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.2...v2.0.3) (2019-12-05) + + +### Bug Fixes + +* **deps:** pin TypeScript below 3.7.0 ([e06e1b0](https://www.github.com/googleapis/nodejs-paginator/commit/e06e1b0a2e2bb1cf56fc806c1703b8b5e468b954)) + ### [2.0.2](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.1...v2.0.2) (2019-11-13) diff --git a/core/paginator/package.json b/core/paginator/package.json index 14de400d5dc..180bea0c222 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "2.0.2", + "version": "2.0.3", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From b9c024d2d065ed1d20f8730e0f22a86a15cc251d Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 26 Dec 2019 16:34:47 -0500 Subject: [PATCH 125/279] docs: update jsdoc license/samples-README (#161) --- core/paginator/.jsdoc.js | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index 88826d72102..ca6e67e71e0 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -1,18 +1,17 @@ -/*! - * Copyright 2018 Google LLC. 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. - */ +// Copyright 2019 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'; From df25ccb1d7826e4ce3d759242b0b628b879dbef2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Dec 2019 18:09:52 +0200 Subject: [PATCH 126/279] chore(deps): update dependency sinon to v8 (#164) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 180bea0c222..c8e2e17c3d1 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "mocha": "^6.0.0", "nyc": "^14.0.0", "proxyquire": "^2.0.1", - "sinon": "^7.0.0", + "sinon": "^8.0.0", "source-map-support": "^0.5.6", "typescript": "3.6.4", "uuid": "^3.3.2" From 50f68cfcf2bcc21329e72db44261c873a71704cd Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 30 Dec 2019 11:36:00 -0800 Subject: [PATCH 127/279] refactor: use explicit mocha imports --- core/paginator/test/index.ts | 1 + core/paginator/test/resource-stream.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 5513638e885..ff66e7f3171 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import * as proxyquire from 'proxyquire'; import * as sinon from 'sinon'; import {PassThrough, Transform} from 'stream'; diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts index a01000eb58e..10a1da1a543 100644 --- a/core/paginator/test/resource-stream.ts +++ b/core/paginator/test/resource-stream.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import * as sinon from 'sinon'; import {Transform} from 'stream'; From 1b29fd3b9d9b30cae87c6671ace0ff4053103dc3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 30 Dec 2019 14:45:23 -0800 Subject: [PATCH 128/279] build: add list of tracked files to synth.metadata --- core/paginator/synth.metadata | 511 +++++++++++++++++++++++++++++++++- 1 file changed, 510 insertions(+), 1 deletion(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index ef60934e3a8..c815406e8bd 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-10-30T22:21:02.863371Z", + "updateTime": "2019-12-21T12:21:11.196489Z", "sources": [ { "template": { @@ -8,5 +8,514 @@ "version": "2019.10.17" } } + ], + "newFiles": [ + { + "path": ".repo-metadata.json" + }, + { + "path": "README.md" + }, + { + "path": "package.json" + }, + { + "path": "CHANGELOG.md" + }, + { + "path": ".gitignore" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": ".prettierrc" + }, + { + "path": ".eslintignore" + }, + { + "path": "linkinator.config.json" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": "renovate.json" + }, + { + "path": "synth.metadata" + }, + { + "path": ".compodocrc" + }, + { + "path": ".prettierignore" + }, + { + "path": "synth.py" + }, + { + "path": "codecov.yaml" + }, + { + "path": "tslint.json" + }, + { + "path": ".jsdoc.js" + }, + { + "path": "LICENSE" + }, + { + "path": ".nycrc" + }, + { + "path": "tsconfig.json" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/resource-stream.ts" + }, + { + "path": "__pycache__/synth.cpython-36.pyc" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/package.json" + }, + { + "path": "samples/.eslintrc.yml" + }, + { + "path": "samples/quickstart.js" + }, + { + "path": "samples/test/test.js" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/.gitattributes" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/release/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".git/packed-refs" + }, + { + "path": ".git/HEAD" + }, + { + "path": ".git/config" + }, + { + "path": ".git/index" + }, + { + "path": ".git/shallow" + }, + { + "path": ".git/logs/HEAD" + }, + { + "path": ".git/logs/refs/remotes/origin/HEAD" + }, + { + "path": ".git/logs/refs/heads/autosynth" + }, + { + "path": ".git/logs/refs/heads/master" + }, + { + "path": ".git/refs/tags/v2.0.3" + }, + { + "path": ".git/refs/remotes/origin/HEAD" + }, + { + "path": ".git/refs/heads/autosynth" + }, + { + "path": ".git/refs/heads/master" + }, + { + "path": ".git/objects/20/e3241c9e9b2997cbe7065cfa14f2418efcfd63" + }, + { + "path": ".git/objects/a2/249f4986006cc6a64dc6cafe2e9d596c5380f0" + }, + { + "path": ".git/objects/04/81f24a315931b1be0c11551dce54e64f16b063" + }, + { + "path": ".git/objects/04/bc97601c4b7d8dbd33d5368b341edb35046ffc" + }, + { + "path": ".git/objects/4d/3a0868531a8d2a326c034645720d9a4456e860" + }, + { + "path": ".git/objects/df/6eac074460d9207249e4317071f9cb1726c228" + }, + { + "path": ".git/objects/f9/4bfc2ff77b2441ba5b9cd23edb22820c6c181e" + }, + { + "path": ".git/objects/d6/45695673349e3947e8e5ae42332d0ac3164cd7" + }, + { + "path": ".git/objects/d6/e25e0b1b8e1326666bff681406e3d470b4d626" + }, + { + "path": ".git/objects/7d/d30478d36bbf220fd22b838d899c644142980a" + }, + { + "path": ".git/objects/c4/7d07b54a9333cf355e621ba66f917dc8e42abd" + }, + { + "path": ".git/objects/55/13638e885cd15d2c1c32588b37b812fd42bcf1" + }, + { + "path": ".git/objects/88/826d721020a2841036331b10ea044c26875904" + }, + { + "path": ".git/objects/61/7dc975bae89aeee4632ded9ae02ccdf7eb3139" + }, + { + "path": ".git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391" + }, + { + "path": ".git/objects/18/eb0dd46ffcbdbb7a46ef748a910f5ea006f381" + }, + { + "path": ".git/objects/18/0bea0c222e58fe2f5008eaf139d92d432d5255" + }, + { + "path": ".git/objects/10/2e03c78297a4e98fdd1173507ec54b7f68bf69" + }, + { + "path": ".git/objects/09/b31fe735a0b8ec9e81db4225552b738fe21dbc" + }, + { + "path": ".git/objects/46/b2a08ea6d1728faf0f111691adde837a0239a7" + }, + { + "path": ".git/objects/46/8b8c7197ae5d857234e9bb81b76be3e30dc7ff" + }, + { + "path": ".git/objects/ff/b8804ee1508be7f3c78ebe366cb37f05068dd4" + }, + { + "path": ".git/objects/59/164c9b25f9359cd552fece95c2525c75129e75" + }, + { + "path": ".git/objects/93/9fa12b6d07abf2a15f9fca4b449a668111604e" + }, + { + "path": ".git/objects/95/2403faedeef1cee177bba1e7fd72dfdb6d7a6e" + }, + { + "path": ".git/objects/95/18bf36fdc6ce82ad08aed4f8d8f8c97bf705e7" + }, + { + "path": ".git/objects/d0/1653e4cf7d33d3cf2832c05a7e5e9229df9733" + }, + { + "path": ".git/objects/9b/d4905c4b591a45bb8905beb718f89fc1b35daf" + }, + { + "path": ".git/objects/b0/3cb0439a6e9c1992e40adf14626cc284a12158" + }, + { + "path": ".git/objects/5d/57fc51e6dda860b13b64fc8f99abfa52fd1320" + }, + { + "path": ".git/objects/23/4b0ce66a977254146a647705c69c620b47defe" + }, + { + "path": ".git/objects/87/acd4f484eef3f4d1703deeee61eac213682058" + }, + { + "path": ".git/objects/3a/2c35c59b421cdbdba01eadc56620301172ed9d" + }, + { + "path": ".git/objects/3a/84472f882a839a500c5de2f93283edb4afc812" + }, + { + "path": ".git/objects/85/344b92c7f444698f87bdafba2dc85deae40f52" + }, + { + "path": ".git/objects/36/7688844ebf4b5ff213f4473663d231767953c1" + }, + { + "path": ".git/objects/48/bf1c3df1878ba3e006dde897697143fd65390d" + }, + { + "path": ".git/objects/2a/449e377bd0ae0f441bf8172c9e0f4d4898bcd5" + }, + { + "path": ".git/objects/90/b2b5fc760d842588c38ff6f2dab5d8002cec54" + }, + { + "path": ".git/objects/28/2535f55f6a1004719983b7f7fac43423aee5f3" + }, + { + "path": ".git/objects/a0/1000eb58ea5ecb8dfe4d8c9f0ffe72594b016f" + }, + { + "path": ".git/objects/63/65857f33c6c4c98eb292cf87dcfa000b301fb9" + }, + { + "path": ".git/objects/63/d2eb0806858cbafeeb4583099b9eb237d69c5c" + }, + { + "path": ".git/objects/57/24ea9478d717c05010eae9ac2dbd62fc0d8324" + }, + { + "path": ".git/objects/70/0e8d04419ec382c44310ee14e52d81814b9e74" + }, + { + "path": ".git/objects/f3/84b90d1a5f39faa19bc64a3c7ba153fc550390" + }, + { + "path": ".git/objects/f6/c4cf010e34c952b47ec9777a0649c8cbe71ef2" + }, + { + "path": ".git/objects/f6/fac98b0a8e7c9a222d4dbfdc6efb7ffdb30061" + }, + { + "path": ".git/objects/b1/0ee498aefc4a632fe7fa107d06fc409ec720df" + }, + { + "path": ".git/objects/72/be9f9abb3eff9b2b73aee5b516d411d8c85cc5" + }, + { + "path": ".git/objects/bb/b48b6fce76983cb07285a9fbf883ee0da4dd41" + }, + { + "path": ".git/objects/ad/70e7c24e8e2b18d57e347e20f5ccad05fb3a47" + }, + { + "path": ".git/objects/ad/31de3e5f24826ade257cc6974a2bd0c5371087" + }, + { + "path": ".git/objects/76/fcb2603b88ccac0913fe789652456f73c7fa0b" + }, + { + "path": ".git/objects/1e/92244dec657f94099108aa430a817bf32cdf9a" + }, + { + "path": ".git/objects/99/5869032125fb2e0d6830a2898ea07e0c061499" + }, + { + "path": ".git/objects/06/17507214b89f3262b467a71256ba32935c5eac" + }, + { + "path": ".git/objects/73/eeec27612d4e7fccfdbf97b7ce79b0b82e2525" + }, + { + "path": ".git/objects/b6/cdbaa4e5dd00aedf484730e9edb46777bf5025" + }, + { + "path": ".git/objects/cd/8b42152a61c8e7b33eb925d2275791bbf467b0" + }, + { + "path": ".git/objects/3b/a2eb095fe1c0308dfe8ed801701c9e8002bc05" + }, + { + "path": ".git/objects/d3/66a5f770c84e9f097b03948930f2fe3706afb7" + }, + { + "path": ".git/objects/fd/dff757050d447a37543f802e457374f5f14771" + }, + { + "path": ".git/objects/3c/3c783d863e79f635985b832208bbf897578516" + }, + { + "path": ".git/objects/14/b2182a6a7cc33fe5ea813c94cd22893624b39c" + }, + { + "path": ".git/objects/fe/e31864b313d77fb8f2892abda9471e00402de7" + }, + { + "path": ".git/objects/f1/b834d6984e81a17d25a9f7cf9e55301fd31666" + }, + { + "path": ".git/objects/d7/80d6bfff5a4893de8b6296807b380c50fa91bc" + }, + { + "path": ".git/objects/e9/93f9455639c9a13fd7b5590bcd48043c5ed8db" + }, + { + "path": ".git/objects/e9/efaf71e59dfa44205594ad9dde20b8aacf4943" + }, + { + "path": ".git/objects/fc/df9c7cbfd233b66e1e45b753eae2bf8b0d32d0" + }, + { + "path": ".git/objects/fc/5824e6667aeeee5f833dae00a87539d360a1ac" + }, + { + "path": ".git/objects/51/f4d72f2dad4985933476d5dad709ba6839fad5" + }, + { + "path": ".git/objects/45/fdaf96c6ffa99a3d7e70b1c91dbd680e53e7bb" + }, + { + "path": ".git/objects/7b/c9982d0057b71a569b9699e2b67966932a49f8" + }, + { + "path": ".git/objects/bd/901834f85a5507cdddb9535edd9df1c57418e4" + }, + { + "path": ".git/objects/1c/300f23c7852ceae26052792574c66572544d09" + }, + { + "path": ".git/objects/cc/a504d965b9b450baf41da5a5ce7613e30adc18" + }, + { + "path": ".git/objects/9d/b11bb09d6937c11499d0a9026233ec18c78858" + }, + { + "path": ".git/objects/ef/60934e3a8ac961d53c0fc0c8724347683e3227" + }, + { + "path": ".git/objects/82/c56794f418524513beb64a899a93ed1899caf2" + }, + { + "path": "test/index.ts" + }, + { + "path": "test/resource-stream.ts" + }, + { + "path": "test/mocha.opts" + }, + { + "path": "system-test/system.ts" + } ] } \ No newline at end of file From eeb6661cab96c8842f044327d4d7626058e2c420 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 31 Dec 2019 13:13:08 -0800 Subject: [PATCH 129/279] build: use c8 for coverage (#165) --- core/paginator/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index c8e2e17c3d1..3ff97a6c65d 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -6,7 +6,7 @@ "types": "build/src/index.d.ts", "repository": "googleapis/nodejs-paginator", "scripts": { - "test": "nyc mocha build/test", + "test": "c8 mocha build/test", "lint": "gts check", "clean": "gts clean", "compile": "tsc -p .", @@ -41,7 +41,7 @@ "intelli-espower-loader": "^1.0.1", "linkinator": "^1.5.0", "mocha": "^6.0.0", - "nyc": "^14.0.0", + "c8": "^7.0.0", "proxyquire": "^2.0.1", "sinon": "^8.0.0", "source-map-support": "^0.5.6", From 3f5aaeeac046ad1e35a6a66d39d9f2c7e4851cdc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 3 Jan 2020 09:59:41 -0800 Subject: [PATCH 130/279] build: add **/*.d.ts to coverage ignore list --- core/paginator/.nycrc | 1 + core/paginator/synth.metadata | 348 +++++++++++++++++++--------------- 2 files changed, 193 insertions(+), 156 deletions(-) diff --git a/core/paginator/.nycrc b/core/paginator/.nycrc index 367688844eb..b18d5472b62 100644 --- a/core/paginator/.nycrc +++ b/core/paginator/.nycrc @@ -12,6 +12,7 @@ "**/scripts", "**/protos", "**/test", + "**/*.d.ts", ".jsdoc.js", "**/.jsdoc.js", "karma.conf.js", diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index c815406e8bd..a78fa92898b 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-12-21T12:21:11.196489Z", + "updateTime": "2020-01-03T12:18:24.869972Z", "sources": [ { "template": { @@ -10,335 +10,368 @@ } ], "newFiles": [ + { + "path": "synth.metadata" + }, { "path": ".repo-metadata.json" }, { - "path": "README.md" + "path": "CONTRIBUTING.md" }, { - "path": "package.json" + "path": "linkinator.config.json" }, { - "path": "CHANGELOG.md" + "path": ".compodocrc" + }, + { + "path": ".prettierignore" + }, + { + "path": "tsconfig.json" + }, + { + "path": ".jsdoc.js" }, { "path": ".gitignore" }, + { + "path": "synth.py" + }, { "path": "CODE_OF_CONDUCT.md" }, { - "path": "CONTRIBUTING.md" + "path": "README.md" }, { "path": ".prettierrc" }, { - "path": ".eslintignore" + "path": "codecov.yaml" }, { - "path": "linkinator.config.json" + "path": ".nycrc" + }, + { + "path": "package.json" }, { "path": ".eslintrc.yml" }, + { + "path": "tslint.json" + }, { "path": "renovate.json" }, { - "path": "synth.metadata" + "path": "LICENSE" }, { - "path": ".compodocrc" + "path": "CHANGELOG.md" }, { - "path": ".prettierignore" + "path": ".eslintignore" }, { - "path": "synth.py" + "path": ".github/PULL_REQUEST_TEMPLATE.md" }, { - "path": "codecov.yaml" + "path": ".github/release-please.yml" }, { - "path": "tslint.json" + "path": ".github/ISSUE_TEMPLATE/support_request.md" }, { - "path": ".jsdoc.js" + "path": ".github/ISSUE_TEMPLATE/bug_report.md" }, { - "path": "LICENSE" + "path": ".github/ISSUE_TEMPLATE/feature_request.md" }, { - "path": ".nycrc" + "path": ".kokoro/samples-test.sh" }, { - "path": "tsconfig.json" + "path": ".kokoro/system-test.sh" }, { - "path": "src/index.ts" + "path": ".kokoro/docs.sh" }, { - "path": "src/resource-stream.ts" + "path": ".kokoro/lint.sh" }, { - "path": "__pycache__/synth.cpython-36.pyc" + "path": ".kokoro/.gitattributes" }, { - "path": "samples/README.md" + "path": ".kokoro/publish.sh" }, { - "path": "samples/package.json" + "path": ".kokoro/trampoline.sh" }, { - "path": "samples/.eslintrc.yml" + "path": ".kokoro/common.cfg" }, { - "path": "samples/quickstart.js" + "path": ".kokoro/test.bat" }, { - "path": "samples/test/test.js" + "path": ".kokoro/test.sh" }, { - "path": ".github/PULL_REQUEST_TEMPLATE.md" + "path": ".kokoro/release/docs.sh" }, { - "path": ".github/release-please.yml" + "path": ".kokoro/release/docs.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/support_request.md" + "path": ".kokoro/release/common.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" + "path": ".kokoro/release/publish.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" + "path": ".kokoro/presubmit/node12/test.cfg" }, { - "path": ".kokoro/test.sh" + "path": ".kokoro/presubmit/node12/common.cfg" }, { - "path": ".kokoro/docs.sh" + "path": ".kokoro/presubmit/node8/test.cfg" }, { - "path": ".kokoro/samples-test.sh" + "path": ".kokoro/presubmit/node8/common.cfg" }, { - "path": ".kokoro/.gitattributes" + "path": ".kokoro/presubmit/windows/test.cfg" }, { - "path": ".kokoro/trampoline.sh" + "path": ".kokoro/presubmit/windows/common.cfg" }, { - "path": ".kokoro/lint.sh" + "path": ".kokoro/presubmit/node10/lint.cfg" }, { - "path": ".kokoro/publish.sh" + "path": ".kokoro/presubmit/node10/system-test.cfg" }, { - "path": ".kokoro/test.bat" + "path": ".kokoro/presubmit/node10/test.cfg" }, { - "path": ".kokoro/common.cfg" + "path": ".kokoro/presubmit/node10/docs.cfg" }, { - "path": ".kokoro/system-test.sh" + "path": ".kokoro/presubmit/node10/common.cfg" }, { - "path": ".kokoro/release/docs.cfg" + "path": ".kokoro/presubmit/node10/samples-test.cfg" }, { - "path": ".kokoro/release/docs.sh" + "path": ".kokoro/continuous/node12/test.cfg" }, { - "path": ".kokoro/release/publish.cfg" + "path": ".kokoro/continuous/node12/common.cfg" }, { - "path": ".kokoro/release/common.cfg" + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" }, { "path": ".kokoro/continuous/node10/lint.cfg" }, { - "path": ".kokoro/continuous/node10/docs.cfg" + "path": ".kokoro/continuous/node10/system-test.cfg" }, { "path": ".kokoro/continuous/node10/test.cfg" }, { - "path": ".kokoro/continuous/node10/system-test.cfg" + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" }, { "path": ".kokoro/continuous/node10/samples-test.cfg" }, { - "path": ".kokoro/continuous/node10/common.cfg" + "path": "test/mocha.opts" }, { - "path": ".kokoro/continuous/node8/test.cfg" + "path": "test/index.ts" }, { - "path": ".kokoro/continuous/node8/common.cfg" + "path": "test/resource-stream.ts" }, { - "path": ".kokoro/continuous/node12/test.cfg" + "path": "system-test/system.ts" }, { - "path": ".kokoro/continuous/node12/common.cfg" + "path": ".git/shallow" }, { - "path": ".kokoro/presubmit/node10/lint.cfg" + "path": ".git/HEAD" }, { - "path": ".kokoro/presubmit/node10/docs.cfg" + "path": ".git/config" }, { - "path": ".kokoro/presubmit/node10/test.cfg" + "path": ".git/packed-refs" }, { - "path": ".kokoro/presubmit/node10/system-test.cfg" + "path": ".git/index" }, { - "path": ".kokoro/presubmit/node10/samples-test.cfg" + "path": ".git/description" }, { - "path": ".kokoro/presubmit/node10/common.cfg" + "path": ".git/objects/3a/2c35c59b421cdbdba01eadc56620301172ed9d" }, { - "path": ".kokoro/presubmit/node8/test.cfg" + "path": ".git/objects/3a/84472f882a839a500c5de2f93283edb4afc812" }, { - "path": ".kokoro/presubmit/node8/common.cfg" + "path": ".git/objects/3a/2e2232ce51a5036e274e19288f1926891411b0" }, { - "path": ".kokoro/presubmit/node12/test.cfg" + "path": ".git/objects/d6/e25e0b1b8e1326666bff681406e3d470b4d626" }, { - "path": ".kokoro/presubmit/node12/common.cfg" + "path": ".git/objects/d6/45695673349e3947e8e5ae42332d0ac3164cd7" }, { - "path": ".kokoro/presubmit/windows/test.cfg" + "path": ".git/objects/90/b2b5fc760d842588c38ff6f2dab5d8002cec54" }, { - "path": ".kokoro/presubmit/windows/common.cfg" + "path": ".git/objects/ff/66e7f317139cb61efc7f0b58563c8b92225778" }, { - "path": ".git/packed-refs" + "path": ".git/objects/ff/b8804ee1508be7f3c78ebe366cb37f05068dd4" }, { - "path": ".git/HEAD" + "path": ".git/objects/85/344b92c7f444698f87bdafba2dc85deae40f52" }, { - "path": ".git/config" + "path": ".git/objects/23/4b0ce66a977254146a647705c69c620b47defe" }, { - "path": ".git/index" + "path": ".git/objects/3c/3c783d863e79f635985b832208bbf897578516" }, { - "path": ".git/shallow" + "path": ".git/objects/99/5869032125fb2e0d6830a2898ea07e0c061499" }, { - "path": ".git/logs/HEAD" + "path": ".git/objects/c4/7d07b54a9333cf355e621ba66f917dc8e42abd" }, { - "path": ".git/logs/refs/remotes/origin/HEAD" + "path": ".git/objects/fe/e31864b313d77fb8f2892abda9471e00402de7" }, { - "path": ".git/logs/refs/heads/autosynth" + "path": ".git/objects/ad/70e7c24e8e2b18d57e347e20f5ccad05fb3a47" }, { - "path": ".git/logs/refs/heads/master" + "path": ".git/objects/ad/31de3e5f24826ade257cc6974a2bd0c5371087" }, { - "path": ".git/refs/tags/v2.0.3" + "path": ".git/objects/2a/449e377bd0ae0f441bf8172c9e0f4d4898bcd5" }, { - "path": ".git/refs/remotes/origin/HEAD" + "path": ".git/objects/76/fcb2603b88ccac0913fe789652456f73c7fa0b" }, { - "path": ".git/refs/heads/autosynth" + "path": ".git/objects/48/bf1c3df1878ba3e006dde897697143fd65390d" }, { - "path": ".git/refs/heads/master" + "path": ".git/objects/c8/15406e8bdaf45260e4ec4058a28ba0e4dca616" }, { - "path": ".git/objects/20/e3241c9e9b2997cbe7065cfa14f2418efcfd63" + "path": ".git/objects/28/2535f55f6a1004719983b7f7fac43423aee5f3" }, { - "path": ".git/objects/a2/249f4986006cc6a64dc6cafe2e9d596c5380f0" + "path": ".git/objects/3b/a2eb095fe1c0308dfe8ed801701c9e8002bc05" }, { - "path": ".git/objects/04/81f24a315931b1be0c11551dce54e64f16b063" + "path": ".git/objects/82/c56794f418524513beb64a899a93ed1899caf2" }, { - "path": ".git/objects/04/bc97601c4b7d8dbd33d5368b341edb35046ffc" + "path": ".git/objects/9d/b11bb09d6937c11499d0a9026233ec18c78858" }, { - "path": ".git/objects/4d/3a0868531a8d2a326c034645720d9a4456e860" + "path": ".git/objects/98/b85db2db4f5a2a1acde32913e50070bbbf8d3c" }, { - "path": ".git/objects/df/6eac074460d9207249e4317071f9cb1726c228" + "path": ".git/objects/8a/47012d1c32e948cb2f08a4bfea4edfe39e6fb6" }, { - "path": ".git/objects/f9/4bfc2ff77b2441ba5b9cd23edb22820c6c181e" + "path": ".git/objects/95/2403faedeef1cee177bba1e7fd72dfdb6d7a6e" }, { - "path": ".git/objects/d6/45695673349e3947e8e5ae42332d0ac3164cd7" + "path": ".git/objects/95/18bf36fdc6ce82ad08aed4f8d8f8c97bf705e7" }, { - "path": ".git/objects/d6/e25e0b1b8e1326666bff681406e3d470b4d626" + "path": ".git/objects/87/acd4f484eef3f4d1703deeee61eac213682058" }, { - "path": ".git/objects/7d/d30478d36bbf220fd22b838d899c644142980a" + "path": ".git/objects/bd/901834f85a5507cdddb9535edd9df1c57418e4" }, { - "path": ".git/objects/c4/7d07b54a9333cf355e621ba66f917dc8e42abd" + "path": ".git/objects/46/b2a08ea6d1728faf0f111691adde837a0239a7" }, { - "path": ".git/objects/55/13638e885cd15d2c1c32588b37b812fd42bcf1" + "path": ".git/objects/46/8b8c7197ae5d857234e9bb81b76be3e30dc7ff" }, { - "path": ".git/objects/88/826d721020a2841036331b10ea044c26875904" + "path": ".git/objects/a2/249f4986006cc6a64dc6cafe2e9d596c5380f0" }, { - "path": ".git/objects/61/7dc975bae89aeee4632ded9ae02ccdf7eb3139" + "path": ".git/objects/7d/d30478d36bbf220fd22b838d899c644142980a" + }, + { + "path": ".git/objects/93/9fa12b6d07abf2a15f9fca4b449a668111604e" }, { "path": ".git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391" }, { - "path": ".git/objects/18/eb0dd46ffcbdbb7a46ef748a910f5ea006f381" + "path": ".git/objects/1c/300f23c7852ceae26052792574c66572544d09" }, { - "path": ".git/objects/18/0bea0c222e58fe2f5008eaf139d92d432d5255" + "path": ".git/objects/b6/cdbaa4e5dd00aedf484730e9edb46777bf5025" }, { - "path": ".git/objects/10/2e03c78297a4e98fdd1173507ec54b7f68bf69" + "path": ".git/objects/fc/5824e6667aeeee5f833dae00a87539d360a1ac" }, { - "path": ".git/objects/09/b31fe735a0b8ec9e81db4225552b738fe21dbc" + "path": ".git/objects/fc/df9c7cbfd233b66e1e45b753eae2bf8b0d32d0" }, { - "path": ".git/objects/46/b2a08ea6d1728faf0f111691adde837a0239a7" + "path": ".git/objects/df/6eac074460d9207249e4317071f9cb1726c228" }, { - "path": ".git/objects/46/8b8c7197ae5d857234e9bb81b76be3e30dc7ff" + "path": ".git/objects/51/f4d72f2dad4985933476d5dad709ba6839fad5" }, { - "path": ".git/objects/ff/b8804ee1508be7f3c78ebe366cb37f05068dd4" + "path": ".git/objects/20/e3241c9e9b2997cbe7065cfa14f2418efcfd63" }, { - "path": ".git/objects/59/164c9b25f9359cd552fece95c2525c75129e75" + "path": ".git/objects/61/7dc975bae89aeee4632ded9ae02ccdf7eb3139" }, { - "path": ".git/objects/93/9fa12b6d07abf2a15f9fca4b449a668111604e" + "path": ".git/objects/04/81f24a315931b1be0c11551dce54e64f16b063" }, { - "path": ".git/objects/95/2403faedeef1cee177bba1e7fd72dfdb6d7a6e" + "path": ".git/objects/04/bc97601c4b7d8dbd33d5368b341edb35046ffc" }, { - "path": ".git/objects/95/18bf36fdc6ce82ad08aed4f8d8f8c97bf705e7" + "path": ".git/objects/73/eeec27612d4e7fccfdbf97b7ce79b0b82e2525" + }, + { + "path": ".git/objects/3f/f97a6c65d3e95cbd75a954f00b5038446670f0" }, { "path": ".git/objects/d0/1653e4cf7d33d3cf2832c05a7e5e9229df9733" @@ -347,43 +380,46 @@ "path": ".git/objects/9b/d4905c4b591a45bb8905beb718f89fc1b35daf" }, { - "path": ".git/objects/b0/3cb0439a6e9c1992e40adf14626cc284a12158" + "path": ".git/objects/e9/93f9455639c9a13fd7b5590bcd48043c5ed8db" }, { - "path": ".git/objects/5d/57fc51e6dda860b13b64fc8f99abfa52fd1320" + "path": ".git/objects/e9/efaf71e59dfa44205594ad9dde20b8aacf4943" }, { - "path": ".git/objects/23/4b0ce66a977254146a647705c69c620b47defe" + "path": ".git/objects/d3/66a5f770c84e9f097b03948930f2fe3706afb7" }, { - "path": ".git/objects/87/acd4f484eef3f4d1703deeee61eac213682058" + "path": ".git/objects/10/a1da1a54345829942dfc8921c1096e920afce2" }, { - "path": ".git/objects/3a/2c35c59b421cdbdba01eadc56620301172ed9d" + "path": ".git/objects/10/2e03c78297a4e98fdd1173507ec54b7f68bf69" }, { - "path": ".git/objects/3a/84472f882a839a500c5de2f93283edb4afc812" + "path": ".git/objects/42/c9e213e5d515f1c4cac47856eee5c33ca7b110" }, { - "path": ".git/objects/85/344b92c7f444698f87bdafba2dc85deae40f52" + "path": ".git/objects/f9/4bfc2ff77b2441ba5b9cd23edb22820c6c181e" }, { - "path": ".git/objects/36/7688844ebf4b5ff213f4473663d231767953c1" + "path": ".git/objects/4d/3a0868531a8d2a326c034645720d9a4456e860" }, { - "path": ".git/objects/48/bf1c3df1878ba3e006dde897697143fd65390d" + "path": ".git/objects/f1/b834d6984e81a17d25a9f7cf9e55301fd31666" }, { - "path": ".git/objects/2a/449e377bd0ae0f441bf8172c9e0f4d4898bcd5" + "path": ".git/objects/5d/57fc51e6dda860b13b64fc8f99abfa52fd1320" }, { - "path": ".git/objects/90/b2b5fc760d842588c38ff6f2dab5d8002cec54" + "path": ".git/objects/09/b31fe735a0b8ec9e81db4225552b738fe21dbc" }, { - "path": ".git/objects/28/2535f55f6a1004719983b7f7fac43423aee5f3" + "path": ".git/objects/36/7688844ebf4b5ff213f4473663d231767953c1" + }, + { + "path": ".git/objects/f6/fac98b0a8e7c9a222d4dbfdc6efb7ffdb30061" }, { - "path": ".git/objects/a0/1000eb58ea5ecb8dfe4d8c9f0ffe72594b016f" + "path": ".git/objects/f6/c4cf010e34c952b47ec9777a0649c8cbe71ef2" }, { "path": ".git/objects/63/65857f33c6c4c98eb292cf87dcfa000b301fb9" @@ -392,130 +428,130 @@ "path": ".git/objects/63/d2eb0806858cbafeeb4583099b9eb237d69c5c" }, { - "path": ".git/objects/57/24ea9478d717c05010eae9ac2dbd62fc0d8324" + "path": ".git/objects/ca/6e67e71e0c0c4b38e76964dc810ce67e9ce231" }, { - "path": ".git/objects/70/0e8d04419ec382c44310ee14e52d81814b9e74" + "path": ".git/objects/fd/dff757050d447a37543f802e457374f5f14771" }, { - "path": ".git/objects/f3/84b90d1a5f39faa19bc64a3c7ba153fc550390" + "path": ".git/objects/dd/218c69b4f0807f548350a154f9664ef05aa3a1" }, { - "path": ".git/objects/f6/c4cf010e34c952b47ec9777a0649c8cbe71ef2" + "path": ".git/objects/45/fdaf96c6ffa99a3d7e70b1c91dbd680e53e7bb" }, { - "path": ".git/objects/f6/fac98b0a8e7c9a222d4dbfdc6efb7ffdb30061" + "path": ".git/objects/b0/3cb0439a6e9c1992e40adf14626cc284a12158" }, { - "path": ".git/objects/b1/0ee498aefc4a632fe7fa107d06fc409ec720df" + "path": ".git/objects/72/be9f9abb3eff9b2b73aee5b516d411d8c85cc5" }, { - "path": ".git/objects/72/be9f9abb3eff9b2b73aee5b516d411d8c85cc5" + "path": ".git/objects/b1/0ee498aefc4a632fe7fa107d06fc409ec720df" }, { - "path": ".git/objects/bb/b48b6fce76983cb07285a9fbf883ee0da4dd41" + "path": ".git/objects/70/0e8d04419ec382c44310ee14e52d81814b9e74" }, { - "path": ".git/objects/ad/70e7c24e8e2b18d57e347e20f5ccad05fb3a47" + "path": ".git/objects/57/24ea9478d717c05010eae9ac2dbd62fc0d8324" }, { - "path": ".git/objects/ad/31de3e5f24826ade257cc6974a2bd0c5371087" + "path": ".git/objects/18/eb0dd46ffcbdbb7a46ef748a910f5ea006f381" }, { - "path": ".git/objects/76/fcb2603b88ccac0913fe789652456f73c7fa0b" + "path": ".git/objects/7b/c9982d0057b71a569b9699e2b67966932a49f8" }, { - "path": ".git/objects/1e/92244dec657f94099108aa430a817bf32cdf9a" + "path": ".git/objects/06/17507214b89f3262b467a71256ba32935c5eac" }, { - "path": ".git/objects/99/5869032125fb2e0d6830a2898ea07e0c061499" + "path": ".git/objects/cd/8b42152a61c8e7b33eb925d2275791bbf467b0" }, { - "path": ".git/objects/06/17507214b89f3262b467a71256ba32935c5eac" + "path": ".git/objects/14/b2182a6a7cc33fe5ea813c94cd22893624b39c" }, { - "path": ".git/objects/73/eeec27612d4e7fccfdbf97b7ce79b0b82e2525" + "path": ".git/objects/d7/80d6bfff5a4893de8b6296807b380c50fa91bc" }, { - "path": ".git/objects/b6/cdbaa4e5dd00aedf484730e9edb46777bf5025" + "path": ".git/logs/HEAD" }, { - "path": ".git/objects/cd/8b42152a61c8e7b33eb925d2275791bbf467b0" + "path": ".git/logs/refs/heads/master" }, { - "path": ".git/objects/3b/a2eb095fe1c0308dfe8ed801701c9e8002bc05" + "path": ".git/logs/refs/heads/autosynth" }, { - "path": ".git/objects/d3/66a5f770c84e9f097b03948930f2fe3706afb7" + "path": ".git/logs/refs/remotes/origin/HEAD" }, { - "path": ".git/objects/fd/dff757050d447a37543f802e457374f5f14771" + "path": ".git/hooks/update.sample" }, { - "path": ".git/objects/3c/3c783d863e79f635985b832208bbf897578516" + "path": ".git/hooks/pre-push.sample" }, { - "path": ".git/objects/14/b2182a6a7cc33fe5ea813c94cd22893624b39c" + "path": ".git/hooks/pre-rebase.sample" }, { - "path": ".git/objects/fe/e31864b313d77fb8f2892abda9471e00402de7" + "path": ".git/hooks/pre-commit.sample" }, { - "path": ".git/objects/f1/b834d6984e81a17d25a9f7cf9e55301fd31666" + "path": ".git/hooks/applypatch-msg.sample" }, { - "path": ".git/objects/d7/80d6bfff5a4893de8b6296807b380c50fa91bc" + "path": ".git/hooks/post-update.sample" }, { - "path": ".git/objects/e9/93f9455639c9a13fd7b5590bcd48043c5ed8db" + "path": ".git/hooks/pre-applypatch.sample" }, { - "path": ".git/objects/e9/efaf71e59dfa44205594ad9dde20b8aacf4943" + "path": ".git/hooks/prepare-commit-msg.sample" }, { - "path": ".git/objects/fc/df9c7cbfd233b66e1e45b753eae2bf8b0d32d0" + "path": ".git/hooks/commit-msg.sample" }, { - "path": ".git/objects/fc/5824e6667aeeee5f833dae00a87539d360a1ac" + "path": ".git/hooks/pre-receive.sample" }, { - "path": ".git/objects/51/f4d72f2dad4985933476d5dad709ba6839fad5" + "path": ".git/hooks/fsmonitor-watchman.sample" }, { - "path": ".git/objects/45/fdaf96c6ffa99a3d7e70b1c91dbd680e53e7bb" + "path": ".git/refs/heads/master" }, { - "path": ".git/objects/7b/c9982d0057b71a569b9699e2b67966932a49f8" + "path": ".git/refs/heads/autosynth" }, { - "path": ".git/objects/bd/901834f85a5507cdddb9535edd9df1c57418e4" + "path": ".git/refs/remotes/origin/HEAD" }, { - "path": ".git/objects/1c/300f23c7852ceae26052792574c66572544d09" + "path": ".git/info/exclude" }, { - "path": ".git/objects/cc/a504d965b9b450baf41da5a5ce7613e30adc18" + "path": "src/index.ts" }, { - "path": ".git/objects/9d/b11bb09d6937c11499d0a9026233ec18c78858" + "path": "src/resource-stream.ts" }, { - "path": ".git/objects/ef/60934e3a8ac961d53c0fc0c8724347683e3227" + "path": "samples/README.md" }, { - "path": ".git/objects/82/c56794f418524513beb64a899a93ed1899caf2" + "path": "samples/package.json" }, { - "path": "test/index.ts" + "path": "samples/quickstart.js" }, { - "path": "test/resource-stream.ts" + "path": "samples/.eslintrc.yml" }, { - "path": "test/mocha.opts" + "path": "samples/test/test.js" }, { - "path": "system-test/system.ts" + "path": "__pycache__/synth.cpython-36.pyc" } ] } \ No newline at end of file From 1505338ee3b2672297e9fa30dafc524f5c809d5c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 7 Jan 2020 01:16:27 +0200 Subject: [PATCH 131/279] chore(deps): update dependency mocha to v7 --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 3ff97a6c65d..4af6b7ad3e0 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -40,7 +40,7 @@ "gts": "^1.0.0", "intelli-espower-loader": "^1.0.1", "linkinator": "^1.5.0", - "mocha": "^6.0.0", + "mocha": "^7.0.0", "c8": "^7.0.0", "proxyquire": "^2.0.1", "sinon": "^8.0.0", From 8f50097490dbaddc7b116022bacec64ae8896232 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 21 Jan 2020 15:40:50 -0800 Subject: [PATCH 132/279] build: update windows configuration to match new vm --- core/paginator/.kokoro/test.bat | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/core/paginator/.kokoro/test.bat b/core/paginator/.kokoro/test.bat index fddff757050..ae59e59be3e 100644 --- a/core/paginator/.kokoro/test.bat +++ b/core/paginator/.kokoro/test.bat @@ -17,14 +17,12 @@ cd /d %~dp0 cd .. -@rem The image we're currently running has a broken version of Node.js enabled -@rem by nvm (v10.15.3), which has no npm bin. This hack uses the functional -@rem Node v8.9.1 to install npm@latest, it then uses this version of npm to -@rem install npm for v10.15.3. -call nvm use v8.9.1 || goto :error -call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm-bootstrap\bin\npm-cli.js i npm -g || goto :error -call nvm use v10.15.3 || goto :error -call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm\bin\npm-cli.js i npm -g || goto :error +@rem npm path is not currently set in our image, we should fix this next time +@rem we upgrade Node.js in the image: +SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm + +call nvm use v12.14.1 +call which node call npm install || goto :error call npm run test || goto :error From 338482a691d1ad9280f73c4e5ad0bd298e189912 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 23 Jan 2020 16:25:56 -0800 Subject: [PATCH 133/279] chore: clear synth.metadata --- core/paginator/synth.metadata | 557 ---------------------------------- 1 file changed, 557 deletions(-) delete mode 100644 core/paginator/synth.metadata diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata deleted file mode 100644 index a78fa92898b..00000000000 --- a/core/paginator/synth.metadata +++ /dev/null @@ -1,557 +0,0 @@ -{ - "updateTime": "2020-01-03T12:18:24.869972Z", - "sources": [ - { - "template": { - "name": "node_library", - "origin": "synthtool.gcp", - "version": "2019.10.17" - } - } - ], - "newFiles": [ - { - "path": "synth.metadata" - }, - { - "path": ".repo-metadata.json" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "linkinator.config.json" - }, - { - "path": ".compodocrc" - }, - { - "path": ".prettierignore" - }, - { - "path": "tsconfig.json" - }, - { - "path": ".jsdoc.js" - }, - { - "path": ".gitignore" - }, - { - "path": "synth.py" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "README.md" - }, - { - "path": ".prettierrc" - }, - { - "path": "codecov.yaml" - }, - { - "path": ".nycrc" - }, - { - "path": "package.json" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": "tslint.json" - }, - { - "path": "renovate.json" - }, - { - "path": "LICENSE" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": ".eslintignore" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/.gitattributes" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/common.cfg" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": "test/mocha.opts" - }, - { - "path": "test/index.ts" - }, - { - "path": "test/resource-stream.ts" - }, - { - "path": "system-test/system.ts" - }, - { - "path": ".git/shallow" - }, - { - "path": ".git/HEAD" - }, - { - "path": ".git/config" - }, - { - "path": ".git/packed-refs" - }, - { - "path": ".git/index" - }, - { - "path": ".git/description" - }, - { - "path": ".git/objects/3a/2c35c59b421cdbdba01eadc56620301172ed9d" - }, - { - "path": ".git/objects/3a/84472f882a839a500c5de2f93283edb4afc812" - }, - { - "path": ".git/objects/3a/2e2232ce51a5036e274e19288f1926891411b0" - }, - { - "path": ".git/objects/d6/e25e0b1b8e1326666bff681406e3d470b4d626" - }, - { - "path": ".git/objects/d6/45695673349e3947e8e5ae42332d0ac3164cd7" - }, - { - "path": ".git/objects/90/b2b5fc760d842588c38ff6f2dab5d8002cec54" - }, - { - "path": ".git/objects/ff/66e7f317139cb61efc7f0b58563c8b92225778" - }, - { - "path": ".git/objects/ff/b8804ee1508be7f3c78ebe366cb37f05068dd4" - }, - { - "path": ".git/objects/85/344b92c7f444698f87bdafba2dc85deae40f52" - }, - { - "path": ".git/objects/23/4b0ce66a977254146a647705c69c620b47defe" - }, - { - "path": ".git/objects/3c/3c783d863e79f635985b832208bbf897578516" - }, - { - "path": ".git/objects/99/5869032125fb2e0d6830a2898ea07e0c061499" - }, - { - "path": ".git/objects/c4/7d07b54a9333cf355e621ba66f917dc8e42abd" - }, - { - "path": ".git/objects/fe/e31864b313d77fb8f2892abda9471e00402de7" - }, - { - "path": ".git/objects/ad/70e7c24e8e2b18d57e347e20f5ccad05fb3a47" - }, - { - "path": ".git/objects/ad/31de3e5f24826ade257cc6974a2bd0c5371087" - }, - { - "path": ".git/objects/2a/449e377bd0ae0f441bf8172c9e0f4d4898bcd5" - }, - { - "path": ".git/objects/76/fcb2603b88ccac0913fe789652456f73c7fa0b" - }, - { - "path": ".git/objects/48/bf1c3df1878ba3e006dde897697143fd65390d" - }, - { - "path": ".git/objects/c8/15406e8bdaf45260e4ec4058a28ba0e4dca616" - }, - { - "path": ".git/objects/28/2535f55f6a1004719983b7f7fac43423aee5f3" - }, - { - "path": ".git/objects/3b/a2eb095fe1c0308dfe8ed801701c9e8002bc05" - }, - { - "path": ".git/objects/82/c56794f418524513beb64a899a93ed1899caf2" - }, - { - "path": ".git/objects/9d/b11bb09d6937c11499d0a9026233ec18c78858" - }, - { - "path": ".git/objects/98/b85db2db4f5a2a1acde32913e50070bbbf8d3c" - }, - { - "path": ".git/objects/8a/47012d1c32e948cb2f08a4bfea4edfe39e6fb6" - }, - { - "path": ".git/objects/95/2403faedeef1cee177bba1e7fd72dfdb6d7a6e" - }, - { - "path": ".git/objects/95/18bf36fdc6ce82ad08aed4f8d8f8c97bf705e7" - }, - { - "path": ".git/objects/87/acd4f484eef3f4d1703deeee61eac213682058" - }, - { - "path": ".git/objects/bd/901834f85a5507cdddb9535edd9df1c57418e4" - }, - { - "path": ".git/objects/46/b2a08ea6d1728faf0f111691adde837a0239a7" - }, - { - "path": ".git/objects/46/8b8c7197ae5d857234e9bb81b76be3e30dc7ff" - }, - { - "path": ".git/objects/a2/249f4986006cc6a64dc6cafe2e9d596c5380f0" - }, - { - "path": ".git/objects/7d/d30478d36bbf220fd22b838d899c644142980a" - }, - { - "path": ".git/objects/93/9fa12b6d07abf2a15f9fca4b449a668111604e" - }, - { - "path": ".git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391" - }, - { - "path": ".git/objects/1c/300f23c7852ceae26052792574c66572544d09" - }, - { - "path": ".git/objects/b6/cdbaa4e5dd00aedf484730e9edb46777bf5025" - }, - { - "path": ".git/objects/fc/5824e6667aeeee5f833dae00a87539d360a1ac" - }, - { - "path": ".git/objects/fc/df9c7cbfd233b66e1e45b753eae2bf8b0d32d0" - }, - { - "path": ".git/objects/df/6eac074460d9207249e4317071f9cb1726c228" - }, - { - "path": ".git/objects/51/f4d72f2dad4985933476d5dad709ba6839fad5" - }, - { - "path": ".git/objects/20/e3241c9e9b2997cbe7065cfa14f2418efcfd63" - }, - { - "path": ".git/objects/61/7dc975bae89aeee4632ded9ae02ccdf7eb3139" - }, - { - "path": ".git/objects/04/81f24a315931b1be0c11551dce54e64f16b063" - }, - { - "path": ".git/objects/04/bc97601c4b7d8dbd33d5368b341edb35046ffc" - }, - { - "path": ".git/objects/73/eeec27612d4e7fccfdbf97b7ce79b0b82e2525" - }, - { - "path": ".git/objects/3f/f97a6c65d3e95cbd75a954f00b5038446670f0" - }, - { - "path": ".git/objects/d0/1653e4cf7d33d3cf2832c05a7e5e9229df9733" - }, - { - "path": ".git/objects/9b/d4905c4b591a45bb8905beb718f89fc1b35daf" - }, - { - "path": ".git/objects/e9/93f9455639c9a13fd7b5590bcd48043c5ed8db" - }, - { - "path": ".git/objects/e9/efaf71e59dfa44205594ad9dde20b8aacf4943" - }, - { - "path": ".git/objects/d3/66a5f770c84e9f097b03948930f2fe3706afb7" - }, - { - "path": ".git/objects/10/a1da1a54345829942dfc8921c1096e920afce2" - }, - { - "path": ".git/objects/10/2e03c78297a4e98fdd1173507ec54b7f68bf69" - }, - { - "path": ".git/objects/42/c9e213e5d515f1c4cac47856eee5c33ca7b110" - }, - { - "path": ".git/objects/f9/4bfc2ff77b2441ba5b9cd23edb22820c6c181e" - }, - { - "path": ".git/objects/4d/3a0868531a8d2a326c034645720d9a4456e860" - }, - { - "path": ".git/objects/f1/b834d6984e81a17d25a9f7cf9e55301fd31666" - }, - { - "path": ".git/objects/5d/57fc51e6dda860b13b64fc8f99abfa52fd1320" - }, - { - "path": ".git/objects/09/b31fe735a0b8ec9e81db4225552b738fe21dbc" - }, - { - "path": ".git/objects/36/7688844ebf4b5ff213f4473663d231767953c1" - }, - { - "path": ".git/objects/f6/fac98b0a8e7c9a222d4dbfdc6efb7ffdb30061" - }, - { - "path": ".git/objects/f6/c4cf010e34c952b47ec9777a0649c8cbe71ef2" - }, - { - "path": ".git/objects/63/65857f33c6c4c98eb292cf87dcfa000b301fb9" - }, - { - "path": ".git/objects/63/d2eb0806858cbafeeb4583099b9eb237d69c5c" - }, - { - "path": ".git/objects/ca/6e67e71e0c0c4b38e76964dc810ce67e9ce231" - }, - { - "path": ".git/objects/fd/dff757050d447a37543f802e457374f5f14771" - }, - { - "path": ".git/objects/dd/218c69b4f0807f548350a154f9664ef05aa3a1" - }, - { - "path": ".git/objects/45/fdaf96c6ffa99a3d7e70b1c91dbd680e53e7bb" - }, - { - "path": ".git/objects/b0/3cb0439a6e9c1992e40adf14626cc284a12158" - }, - { - "path": ".git/objects/72/be9f9abb3eff9b2b73aee5b516d411d8c85cc5" - }, - { - "path": ".git/objects/b1/0ee498aefc4a632fe7fa107d06fc409ec720df" - }, - { - "path": ".git/objects/70/0e8d04419ec382c44310ee14e52d81814b9e74" - }, - { - "path": ".git/objects/57/24ea9478d717c05010eae9ac2dbd62fc0d8324" - }, - { - "path": ".git/objects/18/eb0dd46ffcbdbb7a46ef748a910f5ea006f381" - }, - { - "path": ".git/objects/7b/c9982d0057b71a569b9699e2b67966932a49f8" - }, - { - "path": ".git/objects/06/17507214b89f3262b467a71256ba32935c5eac" - }, - { - "path": ".git/objects/cd/8b42152a61c8e7b33eb925d2275791bbf467b0" - }, - { - "path": ".git/objects/14/b2182a6a7cc33fe5ea813c94cd22893624b39c" - }, - { - "path": ".git/objects/d7/80d6bfff5a4893de8b6296807b380c50fa91bc" - }, - { - "path": ".git/logs/HEAD" - }, - { - "path": ".git/logs/refs/heads/master" - }, - { - "path": ".git/logs/refs/heads/autosynth" - }, - { - "path": ".git/logs/refs/remotes/origin/HEAD" - }, - { - "path": ".git/hooks/update.sample" - }, - { - "path": ".git/hooks/pre-push.sample" - }, - { - "path": ".git/hooks/pre-rebase.sample" - }, - { - "path": ".git/hooks/pre-commit.sample" - }, - { - "path": ".git/hooks/applypatch-msg.sample" - }, - { - "path": ".git/hooks/post-update.sample" - }, - { - "path": ".git/hooks/pre-applypatch.sample" - }, - { - "path": ".git/hooks/prepare-commit-msg.sample" - }, - { - "path": ".git/hooks/commit-msg.sample" - }, - { - "path": ".git/hooks/pre-receive.sample" - }, - { - "path": ".git/hooks/fsmonitor-watchman.sample" - }, - { - "path": ".git/refs/heads/master" - }, - { - "path": ".git/refs/heads/autosynth" - }, - { - "path": ".git/refs/remotes/origin/HEAD" - }, - { - "path": ".git/info/exclude" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/resource-stream.ts" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/package.json" - }, - { - "path": "samples/quickstart.js" - }, - { - "path": "samples/.eslintrc.yml" - }, - { - "path": "samples/test/test.js" - }, - { - "path": "__pycache__/synth.cpython-36.pyc" - } - ] -} \ No newline at end of file From bcaf4e1bc5626dc64f8f5ce9cf3fff023d3e8515 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 27 Jan 2020 21:21:01 -0800 Subject: [PATCH 134/279] chore: regenerate synth.metadata (#172) --- core/paginator/synth.metadata | 233 ++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 core/paginator/synth.metadata diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata new file mode 100644 index 00000000000..0b237d0f455 --- /dev/null +++ b/core/paginator/synth.metadata @@ -0,0 +1,233 @@ +{ + "updateTime": "2020-01-24T12:26:08.860984Z", + "sources": [ + { + "template": { + "name": "node_library", + "origin": "synthtool.gcp", + "version": "2019.10.17" + } + } + ], + "newFiles": [ + { + "path": ".compodocrc" + }, + { + "path": ".eslintignore" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".gitignore" + }, + { + "path": ".jsdoc.js" + }, + { + "path": ".kokoro/.gitattributes" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/release/common.cfg" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".nycrc" + }, + { + "path": ".prettierignore" + }, + { + "path": ".prettierrc" + }, + { + "path": ".repo-metadata.json" + }, + { + "path": "CHANGELOG.md" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": "LICENSE" + }, + { + "path": "README.md" + }, + { + "path": "codecov.yaml" + }, + { + "path": "linkinator.config.json" + }, + { + "path": "package.json" + }, + { + "path": "renovate.json" + }, + { + "path": "samples/.eslintrc.yml" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/package.json" + }, + { + "path": "samples/quickstart.js" + }, + { + "path": "samples/test/test.js" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/resource-stream.ts" + }, + { + "path": "synth.py" + }, + { + "path": "system-test/system.ts" + }, + { + "path": "test/index.ts" + }, + { + "path": "test/mocha.opts" + }, + { + "path": "test/resource-stream.ts" + }, + { + "path": "tsconfig.json" + }, + { + "path": "tslint.json" + } + ] +} \ No newline at end of file From 98101a52e336e2c1793c680102b6273452d5fee7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 30 Jan 2020 16:34:19 +0100 Subject: [PATCH 135/279] chore(deps): update dependency @types/mocha to v7 --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 4af6b7ad3e0..589ae7ca5f6 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -31,7 +31,7 @@ "devDependencies": { "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", - "@types/mocha": "^5.2.4", + "@types/mocha": "^7.0.0", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", "@types/sinon": "^7.0.0", From 62b8fd6de7ea77ea8371d8d14080662d9106349c Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 31 Jan 2020 17:22:48 -0800 Subject: [PATCH 136/279] chore: skip img.shields.io in docs test --- core/paginator/linkinator.config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/paginator/linkinator.config.json b/core/paginator/linkinator.config.json index d780d6bfff5..b555215ca02 100644 --- a/core/paginator/linkinator.config.json +++ b/core/paginator/linkinator.config.json @@ -2,6 +2,7 @@ "recurse": true, "skip": [ "https://codecov.io/gh/googleapis/", - "www.googleapis.com" + "www.googleapis.com", + "img.shields.io" ] } From 146d36d8c472c52805d10569578f9849aef434f0 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 31 Jan 2020 18:52:36 -0800 Subject: [PATCH 137/279] test: modernize mocha config (#174) --- core/paginator/.mocharc.json | 5 +++++ core/paginator/package.json | 2 -- core/paginator/test/mocha.opts | 4 ---- 3 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 core/paginator/.mocharc.json delete mode 100644 core/paginator/test/mocha.opts diff --git a/core/paginator/.mocharc.json b/core/paginator/.mocharc.json new file mode 100644 index 00000000000..670c5e2c24b --- /dev/null +++ b/core/paginator/.mocharc.json @@ -0,0 +1,5 @@ +{ + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000 +} diff --git a/core/paginator/package.json b/core/paginator/package.json index 589ae7ca5f6..dd3593d0505 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -38,13 +38,11 @@ "@types/uuid": "^3.4.3", "codecov": "^3.0.4", "gts": "^1.0.0", - "intelli-espower-loader": "^1.0.1", "linkinator": "^1.5.0", "mocha": "^7.0.0", "c8": "^7.0.0", "proxyquire": "^2.0.1", "sinon": "^8.0.0", - "source-map-support": "^0.5.6", "typescript": "3.6.4", "uuid": "^3.3.2" }, diff --git a/core/paginator/test/mocha.opts b/core/paginator/test/mocha.opts deleted file mode 100644 index 48bf1c3df18..00000000000 --- a/core/paginator/test/mocha.opts +++ /dev/null @@ -1,4 +0,0 @@ ---require source-map-support/register ---require intelli-espower-loader ---timeout 10000 ---throw-deprecation From 8fc1dade7652e88784754197a1ee0c0f21a62f09 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 10 Feb 2020 18:04:59 +0100 Subject: [PATCH 138/279] chore(deps): update dependency linkinator to v2 --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index dd3593d0505..a5bf1b26d02 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -38,7 +38,7 @@ "@types/uuid": "^3.4.3", "codecov": "^3.0.4", "gts": "^1.0.0", - "linkinator": "^1.5.0", + "linkinator": "^2.0.0", "mocha": "^7.0.0", "c8": "^7.0.0", "proxyquire": "^2.0.1", From d1182efdf835aa6da89df72aeae54e3c3d7a6606 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 20 Feb 2020 02:30:10 +0100 Subject: [PATCH 139/279] chore(deps): update dependency sinon to v9 --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index a5bf1b26d02..a9d2c3458b2 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -42,7 +42,7 @@ "mocha": "^7.0.0", "c8": "^7.0.0", "proxyquire": "^2.0.1", - "sinon": "^8.0.0", + "sinon": "^9.0.0", "typescript": "3.6.4", "uuid": "^3.3.2" }, From 45897cfe70cd62669ed7484229c6fc886f54aba2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Feb 2020 21:35:05 +0100 Subject: [PATCH 140/279] chore(deps): update dependency uuid to v7 --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index a9d2c3458b2..1d71829528b 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -44,7 +44,7 @@ "proxyquire": "^2.0.1", "sinon": "^9.0.0", "typescript": "3.6.4", - "uuid": "^3.3.2" + "uuid": "^7.0.0" }, "dependencies": { "arrify": "^2.0.0", From a086564e17710209597a51a0256676f4a966163b Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 26 Feb 2020 20:00:15 -0800 Subject: [PATCH 141/279] build: add publish.yml enabling GitHub app for publishes --- core/paginator/.github/publish.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 core/paginator/.github/publish.yml diff --git a/core/paginator/.github/publish.yml b/core/paginator/.github/publish.yml new file mode 100644 index 00000000000..e69de29bb2d From 3b584c30697178e49a8596729bab002c3b408984 Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Thu, 27 Feb 2020 11:54:10 -0800 Subject: [PATCH 142/279] chore: update jsdoc.js (#183) --- core/paginator/.jsdoc.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index ca6e67e71e0..eb2b323187b 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -36,11 +36,14 @@ module.exports = { includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2018 Google, LLC.', + copyright: 'Copyright 2019 Google, LLC.', includeDate: false, sourceFiles: false, systemName: '@google-cloud/paginator', - theme: 'lumen' + theme: 'lumen', + default: { + "outputSourceFiles": false + } }, markdown: { idInHeadings: true From ddb999532d059bb116e88c1bb86de3fb0810d905 Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Thu, 27 Feb 2020 21:42:28 -0800 Subject: [PATCH 143/279] chore: correct .jsdoc.js protos and double quotes (#185) --- core/paginator/.jsdoc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index eb2b323187b..9884f8c3ee0 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -31,7 +31,7 @@ module.exports = { source: { excludePattern: '(^|\\/|\\\\)[._]', include: [ - 'src' + 'src', ], includePattern: '\\.js$' }, @@ -42,7 +42,7 @@ module.exports = { systemName: '@google-cloud/paginator', theme: 'lumen', default: { - "outputSourceFiles": false + outputSourceFiles: false } }, markdown: { From 461d4db2890420f538be6b5c47cbef01d94b9fc2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 3 Mar 2020 02:44:34 +0100 Subject: [PATCH 144/279] chore(deps): update dependency @types/uuid to v7 (#182) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 1d71829528b..399b65a59fa 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -35,7 +35,7 @@ "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", "@types/sinon": "^7.0.0", - "@types/uuid": "^3.4.3", + "@types/uuid": "^7.0.0", "codecov": "^3.0.4", "gts": "^1.0.0", "linkinator": "^2.0.0", From 01a0321cd2341e76efed442a94213a38543a3f68 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 5 Mar 2020 17:24:46 -0800 Subject: [PATCH 145/279] build: update linkinator config (#186) --- core/paginator/linkinator.config.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/paginator/linkinator.config.json b/core/paginator/linkinator.config.json index b555215ca02..29a223b6db6 100644 --- a/core/paginator/linkinator.config.json +++ b/core/paginator/linkinator.config.json @@ -4,5 +4,7 @@ "https://codecov.io/gh/googleapis/", "www.googleapis.com", "img.shields.io" - ] + ], + "silent": true, + "concurrency": 10 } From fac73717b74bc5c4168cd73ea40261549538d078 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 6 Mar 2020 14:58:03 -0800 Subject: [PATCH 146/279] build(tests): fix coveralls and enable build cop (#187) --- core/paginator/.kokoro/samples-test.sh | 11 ++++++++++ core/paginator/.kokoro/system-test.sh | 12 +++++++++++ core/paginator/.kokoro/test.sh | 11 ++++++++++ core/paginator/.mocharc.js | 28 ++++++++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 core/paginator/.mocharc.js diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 20e3241c9e9..86e83c9d3da 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -39,6 +39,17 @@ if [ -f samples/package.json ]; then npm link ../ npm install cd .. + # If tests are running against master, configure Build Cop + # to open issues on failures: + if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml + export MOCHA_REPORTER=xunit + cleanup() { + chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop + $KOKORO_GFILE_DIR/linux_amd64/buildcop + } + trap cleanup EXIT HUP + fi npm run samples-test fi diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index fc5824e6667..dfae142a231 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -33,6 +33,18 @@ fi npm install +# If tests are running against master, configure Build Cop +# to open issues on failures: +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml + export MOCHA_REPORTER=xunit + cleanup() { + chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop + $KOKORO_GFILE_DIR/linux_amd64/buildcop + } + trap cleanup EXIT HUP +fi + npm run system-test # codecov combines coverage across integration and unit tests. Include diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 9db11bb09d6..8d9c2954579 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -21,6 +21,17 @@ export NPM_CONFIG_PREFIX=/home/node/.npm-global cd $(dirname $0)/.. npm install +# If tests are running against master, configure Build Cop +# to open issues on failures: +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml + export MOCHA_REPORTER=xunit + cleanup() { + chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop + $KOKORO_GFILE_DIR/linux_amd64/buildcop + } + trap cleanup EXIT HUP +fi npm test # codecov combines coverage across integration and unit tests. Include diff --git a/core/paginator/.mocharc.js b/core/paginator/.mocharc.js new file mode 100644 index 00000000000..ff7b34fa5d1 --- /dev/null +++ b/core/paginator/.mocharc.js @@ -0,0 +1,28 @@ +// Copyright 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 +// +// 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 +} +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 From e3c613e2948c3a2f9c547c32152af4e7b5a8fa3c Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 18 Mar 2020 12:59:06 -0700 Subject: [PATCH 147/279] docs: mention templates in contributing section of README (#189) --- core/paginator/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/paginator/README.md b/core/paginator/README.md index 2a449e377bd..33831f0a51b 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -91,6 +91,12 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-paginator/blob/master/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 template in this +[directory](https://github.com/googleapis/synthtool/tree/master/synthtool/gcp/templates/node_library). + ## License Apache Version 2.0 From 1dc1ecb1aaaf5cf3c11f29eef30999e0b34fd5a5 Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Thu, 19 Mar 2020 12:56:33 -0700 Subject: [PATCH 148/279] chore(deps)!: deprecated node 8 to 10; upgrade typescript --- core/paginator/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 399b65a59fa..52fedd27f82 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "c8": "^7.0.0", "proxyquire": "^2.0.1", "sinon": "^9.0.0", - "typescript": "3.6.4", + "typescript": "^3.8.3", "uuid": "^7.0.0" }, "dependencies": { @@ -51,6 +51,6 @@ "extend": "^3.0.2" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" } } From 9455f233d1ddd833453df4daebe4a756df07eb00 Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Mon, 23 Mar 2020 11:22:43 -0700 Subject: [PATCH 149/279] chore(dep)!: upgrade gts 2.0.0 (#194) --- core/paginator/.eslintignore | 2 +- core/paginator/.eslintrc.json | 3 +++ core/paginator/.eslintrc.yml | 15 --------------- core/paginator/.prettierignore | 8 +++++--- core/paginator/.prettierrc | 8 -------- core/paginator/.prettierrc.js | 17 +++++++++++++++++ core/paginator/package.json | 11 +++++------ core/paginator/src/index.ts | 10 +++++----- core/paginator/src/resource-stream.ts | 2 +- core/paginator/test/index.ts | 19 ++++++++++++------- core/paginator/test/resource-stream.ts | 2 +- core/paginator/tsconfig.json | 1 + 12 files changed, 51 insertions(+), 47 deletions(-) create mode 100644 core/paginator/.eslintrc.json delete mode 100644 core/paginator/.eslintrc.yml delete mode 100644 core/paginator/.prettierrc create mode 100644 core/paginator/.prettierrc.js diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index 09b31fe735a..a4ac7b37510 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -1,5 +1,5 @@ **/node_modules -src/**/doc/* +**/.coverage build/ docs/ protos/ diff --git a/core/paginator/.eslintrc.json b/core/paginator/.eslintrc.json new file mode 100644 index 00000000000..78215349546 --- /dev/null +++ b/core/paginator/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/core/paginator/.eslintrc.yml b/core/paginator/.eslintrc.yml deleted file mode 100644 index 73eeec27612..00000000000 --- a/core/paginator/.eslintrc.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -extends: - - 'eslint:recommended' - - 'plugin:node/recommended' - - prettier -plugins: - - node - - prettier -rules: - prettier/prettier: error - block-scoped-var: error - eqeqeq: error - no-warning-comments: warn - no-var: error - prefer-const: error diff --git a/core/paginator/.prettierignore b/core/paginator/.prettierignore index f6fac98b0a8..a4ac7b37510 100644 --- a/core/paginator/.prettierignore +++ b/core/paginator/.prettierignore @@ -1,3 +1,5 @@ -node_modules/* -samples/node_modules/* -src/**/doc/* +**/node_modules +**/.coverage +build/ +docs/ +protos/ diff --git a/core/paginator/.prettierrc b/core/paginator/.prettierrc deleted file mode 100644 index df6eac07446..00000000000 --- a/core/paginator/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ ---- -bracketSpacing: false -printWidth: 80 -semi: true -singleQuote: true -tabWidth: 2 -trailingComma: es5 -useTabs: false diff --git a/core/paginator/.prettierrc.js b/core/paginator/.prettierrc.js new file mode 100644 index 00000000000..08cba3775be --- /dev/null +++ b/core/paginator/.prettierrc.js @@ -0,0 +1,17 @@ +// Copyright 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 +// +// 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. + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/core/paginator/package.json b/core/paginator/package.json index 52fedd27f82..8dc51d28f69 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -7,13 +7,12 @@ "repository": "googleapis/nodejs-paginator", "scripts": { "test": "c8 mocha build/test", - "lint": "gts check", - "clean": "gts clean", "compile": "tsc -p .", "fix": "gts fix", + "prelint": "cd samples; npm link ../; npm i", + "lint": "gts check", "prepare": "npm run compile", "pretest": "npm run compile", - "posttest": "npm run lint", "docs": "compodoc src/", "presystem-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", @@ -36,11 +35,11 @@ "@types/proxyquire": "^1.3.28", "@types/sinon": "^7.0.0", "@types/uuid": "^7.0.0", + "c8": "^7.0.0", "codecov": "^3.0.4", - "gts": "^1.0.0", + "gts": "2.0.0-alpha.4", "linkinator": "^2.0.0", - "mocha": "^7.0.0", - "c8": "^7.0.0", + "mocha": "^7.1.1", "proxyquire": "^2.0.1", "sinon": "^9.0.0", "typescript": "^3.8.3", diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 1c300f23c78..bc7adbc0e53 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -91,7 +91,7 @@ export class Paginator { Class.prototype[methodName + '_'] = originalMethod; // overwrite the original to auto-paginate - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ Class.prototype[methodName] = function(...args: any[]) { const parsedArguments = paginator.parseArguments_(args); return paginator.run_(parsedArguments, originalMethod.bind(this)); @@ -111,12 +111,12 @@ export class Paginator { * @param {string} methodName - Name of the method to streamify. * @return {function} - Wrapped function. */ - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ streamify(methodName: string) { return function( // tslint:disable-next-line:no-any this: {[index: string]: Function}, - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ ...args: any[] ): ResourceStream { const parsedArguments = paginator.parseArguments_(args); @@ -134,7 +134,7 @@ export class Paginator { * @param {array} args - The original `arguments` pseduo-array that the original * method received. */ - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ parseArguments_(args: any[]) { let query: string | ParsedArguments | undefined; let autoPaginate = true; @@ -255,7 +255,7 @@ export class Paginator { * and returns `nextQuery` to receive more results. * @return {stream} - Readable object stream. */ - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ runAsStream_( parsedArguments: ParsedArguments, originalMethod: Function diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts index a2249f49860..77ee762227a 100644 --- a/core/paginator/src/resource-stream.ts +++ b/core/paginator/src/resource-stream.ts @@ -47,7 +47,7 @@ export class ResourceStream extends Transform implements ResourceEvents { this._requestsMade = 0; this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults!; } - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ end(...args: any[]) { this._ended = true; return super.end(...args); diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index ff66e7f3171..b09d844f01d 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, beforeEach, afterEach} from 'mocha'; import * as proxyquire from 'proxyquire'; import * as sinon from 'sinon'; import {PassThrough, Transform} from 'stream'; @@ -22,13 +22,16 @@ import * as P from '../src'; import {paginator, ParsedArguments} from '../src'; const util = { - noop: () => {}, + noop: () => { + // do nothing + }, }; class FakeResourceStream extends Transform { calledWith: IArguments; constructor() { super({objectMode: true}); + /* eslint-disable-next-line prefer-rest-params */ this.calledWith = arguments; } } @@ -39,18 +42,21 @@ const p = proxyquire('../src', { const sandbox = sinon.createSandbox(); +// eslint-disable-next-line no-undef afterEach(() => { sandbox.restore(); }); -// tslint:disable-next-line no-any +/* eslint-disable @typescript-eslint/no-explicit-any */ function createFakeStream() { return new PassThrough({objectMode: true}) as P.ResourceStream; } describe('paginator', () => { const UUID = uuid.v1(); - function FakeClass() {} + function FakeClass() { + // do nothing + } beforeEach(() => { FakeClass.prototype.methodToExtend = () => { @@ -75,7 +81,6 @@ describe('paginator', () => { it('should accept an array or string method names', () => { const originalMethod = FakeClass.prototype.methodToExtend; - FakeClass.prototype.anotherMethodToExtend = () => {}; const anotherMethod = FakeClass.prototype.anotherMethodToExtend; const methodsToExtend = ['methodToExtend', 'anotherMethodToExtend']; paginator.extend(FakeClass, methodsToExtend); @@ -117,7 +122,7 @@ describe('paginator', () => { return this.uuid; }; - // tslint:disable-next-line:no-any + /* eslint-disable @typescript-eslint/no-explicit-any */ const cls = new (FakeClass as any)(); cls.uuid = uuid.v1(); @@ -159,7 +164,7 @@ describe('paginator', () => { return args as ParsedArguments; }); sandbox.stub(paginator, 'runAsStream_').callsFake(createFakeStream); - FakeClass.prototype.streamMethod.apply(FakeClass.prototype, fakeArgs); + FakeClass.prototype.streamMethod(...fakeArgs); }); it('should run the method as a stream', done => { diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts index 10a1da1a543..64d17903d3e 100644 --- a/core/paginator/test/resource-stream.ts +++ b/core/paginator/test/resource-stream.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, beforeEach, afterEach} from 'mocha'; import * as sinon from 'sinon'; import {Transform} from 'stream'; diff --git a/core/paginator/tsconfig.json b/core/paginator/tsconfig.json index b10ee498aef..8b14ad98550 100644 --- a/core/paginator/tsconfig.json +++ b/core/paginator/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { + "lib": ["es2018", "dom"], "rootDir": ".", "outDir": "build" }, From 10eb9c4bb2efb59d8da5585e40638a532a4d2111 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 23 Mar 2020 17:45:13 -0700 Subject: [PATCH 150/279] docs: document version support goals (#197) --- core/paginator/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/paginator/README.md b/core/paginator/README.md index 33831f0a51b..00fbd86a664 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -68,6 +68,27 @@ has instructions for running the samples. The [Google Cloud Common Paginator 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://nodejs.org/en/about/releases/). +Libraries are compatible with all current _active_ and _maintenance_ versions of +Node.js. + +Client libraries targetting some end-of-life versions of Node.js are available, and +can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). +The dist-tags follow the naming convention `legacy-(version)`. + +_Legacy Node.js versions are supported as a best effort:_ + +* Legacy versions will not be tested in continuous integration. +* Some security patches may not be able to be backported. +* Dependencies will not be kept up-to-date, and features will not be backported. + +#### Legacy tags available + +* `legacy-8`: install client libraries from this dist-tag for versions + compatible with Node.js 8. + ## Versioning This library follows [Semantic Versioning](http://semver.org/). From 57f8fce4b8579e2b82ff040ed3edbdb81d32aaa8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Mar 2020 01:00:10 -0700 Subject: [PATCH 151/279] chore: update github actions configuration (#196) This PR was generated using Autosynth. :rainbow:
Log from Synthtool ``` 2020-03-22 04:38:38,041 synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py. .eslintignore .eslintrc.yml .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md .github/ISSUE_TEMPLATE/support_request.md .github/PULL_REQUEST_TEMPLATE.md .github/publish.yml .github/release-please.yml .github/workflows/ci.yaml .kokoro/common.cfg .kokoro/continuous/node10/common.cfg .kokoro/continuous/node10/docs.cfg .kokoro/continuous/node10/lint.cfg .kokoro/continuous/node10/samples-test.cfg .kokoro/continuous/node10/system-test.cfg .kokoro/continuous/node10/test.cfg .kokoro/continuous/node12/common.cfg .kokoro/continuous/node12/test.cfg .kokoro/continuous/node8/common.cfg .kokoro/continuous/node8/test.cfg .kokoro/docs.sh .kokoro/lint.sh .kokoro/presubmit/node10/common.cfg .kokoro/presubmit/node10/docs.cfg .kokoro/presubmit/node10/lint.cfg .kokoro/presubmit/node10/samples-test.cfg .kokoro/presubmit/node10/system-test.cfg .kokoro/presubmit/node10/test.cfg .kokoro/presubmit/node12/common.cfg .kokoro/presubmit/node12/test.cfg .kokoro/presubmit/node8/common.cfg .kokoro/presubmit/node8/test.cfg .kokoro/presubmit/windows/common.cfg .kokoro/presubmit/windows/test.cfg .kokoro/publish.sh .kokoro/release/docs.cfg .kokoro/release/docs.sh .kokoro/release/publish.cfg .kokoro/samples-test.sh .kokoro/system-test.sh .kokoro/test.bat .kokoro/test.sh .kokoro/trampoline.sh .mocharc.js .nycrc .prettierignore .prettierrc CODE_OF_CONDUCT.md CONTRIBUTING.md LICENSE README.md codecov.yaml renovate.json samples/README.md 2020-03-22 04:38:38,792 synthtool > Wrote metadata to synth.metadata. ```
--- core/paginator/synth.metadata | 231 +--------------------------------- 1 file changed, 5 insertions(+), 226 deletions(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 0b237d0f455..0e4a4c976e2 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,233 +1,12 @@ { - "updateTime": "2020-01-24T12:26:08.860984Z", + "updateTime": "2020-03-22T11:38:38.791994Z", "sources": [ { - "template": { - "name": "node_library", - "origin": "synthtool.gcp", - "version": "2019.10.17" + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "7e98e1609c91082f4eeb63b530c6468aefd18cfd" } } - ], - "newFiles": [ - { - "path": ".compodocrc" - }, - { - "path": ".eslintignore" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".gitignore" - }, - { - "path": ".jsdoc.js" - }, - { - "path": ".kokoro/.gitattributes" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/release/common.cfg" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".nycrc" - }, - { - "path": ".prettierignore" - }, - { - "path": ".prettierrc" - }, - { - "path": ".repo-metadata.json" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "LICENSE" - }, - { - "path": "README.md" - }, - { - "path": "codecov.yaml" - }, - { - "path": "linkinator.config.json" - }, - { - "path": "package.json" - }, - { - "path": "renovate.json" - }, - { - "path": "samples/.eslintrc.yml" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/package.json" - }, - { - "path": "samples/quickstart.js" - }, - { - "path": "samples/test/test.js" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/resource-stream.ts" - }, - { - "path": "synth.py" - }, - { - "path": "system-test/system.ts" - }, - { - "path": "test/index.ts" - }, - { - "path": "test/mocha.opts" - }, - { - "path": "test/resource-stream.ts" - }, - { - "path": "tsconfig.json" - }, - { - "path": "tslint.json" - } ] } \ No newline at end of file From ece50cdb4d42148ecc3e574d93b468a282cd0972 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2020 09:50:53 -0700 Subject: [PATCH 152/279] chore: release 3.0.0 (#193) --- core/paginator/CHANGELOG.md | 13 +++++++++++++ core/paginator/package.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index bd901834f85..dc1555cd859 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,19 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [3.0.0](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.3...v3.0.0) (2020-03-25) + + +### ⚠ BREAKING CHANGES + +* **dep:** upgrade gts 2.0.0 (#194) +* **deps:** deprecated node 8 to 10; upgrade typescript + +### Miscellaneous Chores + +* **dep:** upgrade gts 2.0.0 ([#194](https://www.github.com/googleapis/nodejs-paginator/issues/194)) ([4eaf9be](https://www.github.com/googleapis/nodejs-paginator/commit/4eaf9bed1fcfd0f10e877ff15c1d0e968e3356c8)) +* **deps:** deprecated node 8 to 10; upgrade typescript ([f6434ab](https://www.github.com/googleapis/nodejs-paginator/commit/f6434ab9cacb6ab804c070f19c38b6072ca326b5)) + ### [2.0.3](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.2...v2.0.3) (2019-12-05) diff --git a/core/paginator/package.json b/core/paginator/package.json index 8dc51d28f69..0463aba7a46 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "2.0.3", + "version": "3.0.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 4c750f102c460413756bcc05bfb86f38a45c2197 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 31 Mar 2020 18:37:18 -0700 Subject: [PATCH 153/279] build: set AUTOSYNTH_MULTIPLE_COMMITS=true for context aware commits (#201) --- core/paginator/synth.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/paginator/synth.py b/core/paginator/synth.py index 76fcb2603b8..8fe4eeaf595 100644 --- a/core/paginator/synth.py +++ b/core/paginator/synth.py @@ -2,6 +2,9 @@ import synthtool.gcp as gcp import logging logging.basicConfig(level=logging.DEBUG) + +AUTOSYNTH_MULTIPLE_COMMITS = True + common_templates = gcp.CommonTemplates() templates = common_templates.node_library() s.copy(templates) From b3203950d4f667c556a1cfc497ec5dc5616418b2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 1 Apr 2020 11:55:32 -0700 Subject: [PATCH 154/279] build: update templates for Node.js libraries (#203) --- core/paginator/.eslintignore | 2 +- core/paginator/.prettierignore | 8 +++----- core/paginator/synth.metadata | 5 +++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index a4ac7b37510..09b31fe735a 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -1,5 +1,5 @@ **/node_modules -**/.coverage +src/**/doc/* build/ docs/ protos/ diff --git a/core/paginator/.prettierignore b/core/paginator/.prettierignore index a4ac7b37510..f6fac98b0a8 100644 --- a/core/paginator/.prettierignore +++ b/core/paginator/.prettierignore @@ -1,5 +1,3 @@ -**/node_modules -**/.coverage -build/ -docs/ -protos/ +node_modules/* +samples/node_modules/* +src/**/doc/* diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 0e4a4c976e2..b1af1d32ca7 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,11 +1,12 @@ { - "updateTime": "2020-03-22T11:38:38.791994Z", + "updateTime": "2020-04-01T12:19:57.498300Z", "sources": [ { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7e98e1609c91082f4eeb63b530c6468aefd18cfd" + "sha": "99820243d348191bc9c634f2b48ddf65096285ed", + "log": "99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\ne36822bfa0acb355502dab391b8ef9c4f30208d8\nchore(java): treat samples shared configuration dependency update as chore (#457)\n\n\n1b4cc80a7aaf164f6241937dd87f3bd1f4149e0c\nfix: do not run node 8 CI (#456)\n\n\nee4330a0e5f4b93978e8683fbda8e6d4148326b7\nchore(java_templates): mark version bumps of current library as a chore (#452)\n\nWith the samples/install-without-bom/pom.xml referencing the latest released library, we want to mark updates of this version as a chore for renovate bot.\na0d3133a5d45544a66345059eebf76933265c099\nfix(java): run mvn install with retry (#453)\n\n* fix(java): run mvn install with retry\n\n* fix invocation of command\n6a17abc7652e2fe563e1288c6e8c23fc260dda97\ndocs: document the release schedule we follow (#454)\n\n\n" } } ] From 0a02b3c95862c40edfce6a6901290d93f777bcb4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Apr 2020 22:53:13 +0200 Subject: [PATCH 155/279] chore(deps): update dependency @types/sinon to v9 (#202) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 0463aba7a46..ec08f9e9151 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -33,7 +33,7 @@ "@types/mocha": "^7.0.0", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", - "@types/sinon": "^7.0.0", + "@types/sinon": "^9.0.0", "@types/uuid": "^7.0.0", "c8": "^7.0.0", "codecov": "^3.0.4", From d1cb7d60c1f3b3084e5cebef93d7e51fa84b11ba Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sun, 5 Apr 2020 12:49:18 -0700 Subject: [PATCH 156/279] chore: remove duplicate mocha config (#204) --- core/paginator/.mocharc.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 core/paginator/.mocharc.json diff --git a/core/paginator/.mocharc.json b/core/paginator/.mocharc.json deleted file mode 100644 index 670c5e2c24b..00000000000 --- a/core/paginator/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "enable-source-maps": true, - "throw-deprecation": true, - "timeout": 10000 -} From 2d587f9b92fd0cc8074536a1f7fa5bfa9b7a4211 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sat, 11 Apr 2020 19:18:37 -0700 Subject: [PATCH 157/279] build: remove unused codecov config (#206) --- core/paginator/codecov.yaml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 core/paginator/codecov.yaml diff --git a/core/paginator/codecov.yaml b/core/paginator/codecov.yaml deleted file mode 100644 index 5724ea9478d..00000000000 --- a/core/paginator/codecov.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -codecov: - ci: - - source.cloud.google.com From 3d79efe3792e98cd355729573dbb511e3661dd32 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sun, 12 Apr 2020 14:48:02 -0700 Subject: [PATCH 158/279] chore: upgrade to gts v2 (#208) --- core/paginator/package.json | 2 +- core/paginator/src/index.ts | 4 ++-- core/paginator/system-test/system.ts | 2 +- core/paginator/test/index.ts | 4 ++-- core/paginator/tslint.json | 3 --- 5 files changed, 6 insertions(+), 9 deletions(-) delete mode 100644 core/paginator/tslint.json diff --git a/core/paginator/package.json b/core/paginator/package.json index ec08f9e9151..05f99f5ab5a 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -37,7 +37,7 @@ "@types/uuid": "^7.0.0", "c8": "^7.0.0", "codecov": "^3.0.4", - "gts": "2.0.0-alpha.4", + "gts": "^2.0.0", "linkinator": "^2.0.0", "mocha": "^7.1.1", "proxyquire": "^2.0.1", diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index bc7adbc0e53..3bf04969edb 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -92,7 +92,7 @@ export class Paginator { // overwrite the original to auto-paginate /* eslint-disable @typescript-eslint/no-explicit-any */ - Class.prototype[methodName] = function(...args: any[]) { + Class.prototype[methodName] = function (...args: any[]) { const parsedArguments = paginator.parseArguments_(args); return paginator.run_(parsedArguments, originalMethod.bind(this)); }; @@ -113,7 +113,7 @@ export class Paginator { */ /* eslint-disable @typescript-eslint/no-explicit-any */ streamify(methodName: string) { - return function( + return function ( // tslint:disable-next-line:no-any this: {[index: string]: Function}, /* eslint-disable @typescript-eslint/no-explicit-any */ diff --git a/core/paginator/system-test/system.ts b/core/paginator/system-test/system.ts index d366a5f770c..05638eda311 100644 --- a/core/paginator/system-test/system.ts +++ b/core/paginator/system-test/system.ts @@ -12,4 +12,4 @@ // See the License for the specific language governing permissions and // limitations under the License. -console.warn(`no system tests available 👻`); +console.warn('no system tests available 👻'); diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index b09d844f01d..3e539fe04f5 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -118,7 +118,7 @@ describe('paginator', () => { }); it('should maintain `this` context', done => { - FakeClass.prototype.methodToExtend = function() { + FakeClass.prototype.methodToExtend = function () { return this.uuid; }; @@ -184,7 +184,7 @@ describe('paginator', () => { it('should apply the proper context', done => { const parsedArguments = {a: 'b', c: 'd'} as ParsedArguments; - FakeClass.prototype.methodToExtend = function() { + FakeClass.prototype.methodToExtend = function () { return this; }; sandbox.stub(paginator, 'parseArguments_').callsFake(() => { diff --git a/core/paginator/tslint.json b/core/paginator/tslint.json deleted file mode 100644 index 617dc975bae..00000000000 --- a/core/paginator/tslint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "gts/tslint.json" -} From 393384473d03fa92c191286e357fc81e57f617e2 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 13 Apr 2020 14:54:58 -0700 Subject: [PATCH 159/279] chore: update lint ignore files (#210) --- core/paginator/.eslintignore | 3 ++- core/paginator/.prettierignore | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index 09b31fe735a..9340ad9b86d 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -1,5 +1,6 @@ **/node_modules -src/**/doc/* +**/coverage +test/fixtures build/ docs/ protos/ diff --git a/core/paginator/.prettierignore b/core/paginator/.prettierignore index f6fac98b0a8..9340ad9b86d 100644 --- a/core/paginator/.prettierignore +++ b/core/paginator/.prettierignore @@ -1,3 +1,6 @@ -node_modules/* -samples/node_modules/* -src/**/doc/* +**/node_modules +**/coverage +test/fixtures +build/ +docs/ +protos/ From 62ad593ff05488ef10c27733bb3967d59630717a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 14 Apr 2020 08:40:15 -0700 Subject: [PATCH 160/279] fix: apache license URL (#468) (#211) --- core/paginator/.prettierrc.js | 2 +- core/paginator/synth.metadata | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/paginator/.prettierrc.js b/core/paginator/.prettierrc.js index 08cba3775be..d1b95106f4c 100644 --- a/core/paginator/.prettierrc.js +++ b/core/paginator/.prettierrc.js @@ -4,7 +4,7 @@ // 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 +// 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, diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index b1af1d32ca7..62100e986c4 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -1,12 +1,18 @@ { - "updateTime": "2020-04-01T12:19:57.498300Z", "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/nodejs-paginator.git", + "sha": "63551fd991f7a83eb33825d1894148f85cd34c9e" + } + }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "99820243d348191bc9c634f2b48ddf65096285ed", - "log": "99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\ne36822bfa0acb355502dab391b8ef9c4f30208d8\nchore(java): treat samples shared configuration dependency update as chore (#457)\n\n\n1b4cc80a7aaf164f6241937dd87f3bd1f4149e0c\nfix: do not run node 8 CI (#456)\n\n\nee4330a0e5f4b93978e8683fbda8e6d4148326b7\nchore(java_templates): mark version bumps of current library as a chore (#452)\n\nWith the samples/install-without-bom/pom.xml referencing the latest released library, we want to mark updates of this version as a chore for renovate bot.\na0d3133a5d45544a66345059eebf76933265c099\nfix(java): run mvn install with retry (#453)\n\n* fix(java): run mvn install with retry\n\n* fix invocation of command\n6a17abc7652e2fe563e1288c6e8c23fc260dda97\ndocs: document the release schedule we follow (#454)\n\n\n" + "sha": "1df68ed6735ddce6797d0f83641a731c3c3f75b4", + "log": "1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n" } } ] From c2dd4f573ee916ed483232aa7640be2fa73ed438 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 20 Apr 2020 15:41:13 -0700 Subject: [PATCH 161/279] build: use codecov's action, now that it's authless (#213) --- core/paginator/synth.metadata | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 62100e986c4..223c39038ac 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,15 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "63551fd991f7a83eb33825d1894148f85cd34c9e" + "sha": "f343b7f7e184fd1b453f20ac1463d17520aac7ad" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1df68ed6735ddce6797d0f83641a731c3c3f75b4", - "log": "1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n" + "sha": "19465d3ec5e5acdb01521d8f3bddd311bcbee28d" } } ] From 24eb2e466af6a8d201f0ba3592507240272f4375 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 23 Apr 2020 19:35:19 -0700 Subject: [PATCH 162/279] chore: update npm scripts and synth.py (#214) Update npm scripts: add clean, prelint, prefix; make sure that lint and fix are set properly. Use post-process feature of synthtool. --- core/paginator/package.json | 6 ++++-- core/paginator/synth.py | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 05f99f5ab5a..483cff02b75 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -9,7 +9,7 @@ "test": "c8 mocha build/test", "compile": "tsc -p .", "fix": "gts fix", - "prelint": "cd samples; npm link ../; npm i", + "prelint": "cd samples; npm link ../; npm install", "lint": "gts check", "prepare": "npm run compile", "pretest": "npm run compile", @@ -18,7 +18,9 @@ "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "system-test": "mocha build/system-test", "docs-test": "linkinator docs", - "predocs-test": "npm run docs" + "predocs-test": "npm run docs", + "clean": "gts clean", + "precompile": "gts clean" }, "keywords": [], "files": [ diff --git a/core/paginator/synth.py b/core/paginator/synth.py index 8fe4eeaf595..d7e1a674b42 100644 --- a/core/paginator/synth.py +++ b/core/paginator/synth.py @@ -1,5 +1,6 @@ import synthtool as s import synthtool.gcp as gcp +import synthtool.languages.node as node import logging logging.basicConfig(level=logging.DEBUG) @@ -8,3 +9,5 @@ common_templates = gcp.CommonTemplates() templates = common_templates.node_library() s.copy(templates) +node.install() +node.fix() From caf36ad76a8d23e4fc59ffed0108f838e264ea9e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 May 2020 06:55:04 +0200 Subject: [PATCH 163/279] chore(deps): update dependency uuid to v8 (#215) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [uuid](https://togithub.com/uuidjs/uuid) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/uuid/7.0.3/8.0.0) | --- ### Release Notes
uuidjs/uuid ### [`v8.0.0`](https://togithub.com/uuidjs/uuid/blob/master/CHANGELOG.md#​800-httpsgithubcomuuidjsuuidcomparev703v800-2020-04-29) [Compare Source](https://togithub.com/uuidjs/uuid/compare/v7.0.3...v8.0.0) ##### ⚠ BREAKING CHANGES - For native ECMAScript Module (ESM) usage in Node.js only named exports are exposed, there is no more default export. ```diff -import uuid from 'uuid'; -console.log(uuid.v4()); // -> 'cd6c3b08-0adc-4f4b-a6ef-36087a1c9869' +import { v4 as uuidv4 } from 'uuid'; +uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' ``` - Deep requiring specific algorithms of this library like `require('uuid/v4')`, which has been deprecated in `uuid@7`, is no longer supported. Instead use the named exports that this module exports. For ECMAScript Modules (ESM): ```diff -import uuidv4 from 'uuid/v4'; +import { v4 as uuidv4 } from 'uuid'; uuidv4(); ``` For CommonJS: ```diff -const uuidv4 = require('uuid/v4'); +const { v4: uuidv4 } = require('uuid'); uuidv4(); ``` ##### Features - native Node.js ES Modules (wrapper approach) ([#​423](https://togithub.com/uuidjs/uuid/issues/423)) ([2d9f590](https://togithub.com/uuidjs/uuid/commit/2d9f590ad9701d692625c07ed62f0a0f91227991)), closes [#​245](https://togithub.com/uuidjs/uuid/issues/245) [#​419](https://togithub.com/uuidjs/uuid/issues/419) [#​342](https://togithub.com/uuidjs/uuid/issues/342) - remove deep requires ([#​426](https://togithub.com/uuidjs/uuid/issues/426)) ([daf72b8](https://togithub.com/uuidjs/uuid/commit/daf72b84ceb20272a81bb5fbddb05dd95922cbba)) ##### Bug Fixes - add CommonJS syntax example to README quickstart section ([#​417](https://togithub.com/uuidjs/uuid/issues/417)) ([e0ec840](https://togithub.com/uuidjs/uuid/commit/e0ec8402c7ad44b7ef0453036c612f5db513fda0)) ##### [7.0.3](https://togithub.com/uuidjs/uuid/compare/v7.0.2...v7.0.3) (2020-03-31) ##### Bug Fixes - make deep require deprecation warning work in browsers ([#​409](https://togithub.com/uuidjs/uuid/issues/409)) ([4b71107](https://togithub.com/uuidjs/uuid/commit/4b71107d8c0d2ef56861ede6403fc9dc35a1e6bf)), closes [#​408](https://togithub.com/uuidjs/uuid/issues/408) ##### [7.0.2](https://togithub.com/uuidjs/uuid/compare/v7.0.1...v7.0.2) (2020-03-04) ##### Bug Fixes - make access to msCrypto consistent ([#​393](https://togithub.com/uuidjs/uuid/issues/393)) ([8bf2a20](https://togithub.com/uuidjs/uuid/commit/8bf2a20f3565df743da7215eebdbada9d2df118c)) - simplify link in deprecation warning ([#​391](https://togithub.com/uuidjs/uuid/issues/391)) ([bb2c8e4](https://togithub.com/uuidjs/uuid/commit/bb2c8e4e9f4c5f9c1eaaf3ea59710c633cd90cb7)) - update links to match content in readme ([#​386](https://togithub.com/uuidjs/uuid/issues/386)) ([44f2f86](https://togithub.com/uuidjs/uuid/commit/44f2f86e9d2bbf14ee5f0f00f72a3db1292666d4)) ##### [7.0.1](https://togithub.com/uuidjs/uuid/compare/v7.0.0...v7.0.1) (2020-02-25) ##### Bug Fixes - clean up esm builds for node and browser ([#​383](https://togithub.com/uuidjs/uuid/issues/383)) ([59e6a49](https://togithub.com/uuidjs/uuid/commit/59e6a49e7ce7b3e8fb0f3ee52b9daae72af467dc)) - provide browser versions independent from module system ([#​380](https://togithub.com/uuidjs/uuid/issues/380)) ([4344a22](https://togithub.com/uuidjs/uuid/commit/4344a22e7aed33be8627eeaaf05360f256a21753)), closes [#​378](https://togithub.com/uuidjs/uuid/issues/378)
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 483cff02b75..ceb13dae020 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -45,7 +45,7 @@ "proxyquire": "^2.0.1", "sinon": "^9.0.0", "typescript": "^3.8.3", - "uuid": "^7.0.0" + "uuid": "^8.0.0" }, "dependencies": { "arrify": "^2.0.0", From 748c1b222db5446ed2518620fe59fc79c943b891 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 8 May 2020 11:27:58 -0700 Subject: [PATCH 164/279] build: do not fail builds on codecov errors (#528) (#216) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/2f68300a-9812-4342-86c6-33ab267ece4f/targets Source-Link: https://github.com/googleapis/synthtool/commit/be74d3e532faa47eb59f1a0eaebde0860d1d8ab4 --- core/paginator/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 223c39038ac..bb337935944 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "f343b7f7e184fd1b453f20ac1463d17520aac7ad" + "sha": "13396a780c9e75613591bf847a0df748336a4bf0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "19465d3ec5e5acdb01521d8f3bddd311bcbee28d" + "sha": "be74d3e532faa47eb59f1a0eaebde0860d1d8ab4" } } ] From 47c8fea40cf8e02ed958af279deccc272dd56fc8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 May 2020 21:56:23 +0200 Subject: [PATCH 165/279] chore(deps): update dependency @types/uuid to v8 (#217) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/uuid](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fuuid/7.0.4/8.0.0) | --- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index ceb13dae020..36fd4711ac7 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -36,7 +36,7 @@ "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", "@types/sinon": "^9.0.0", - "@types/uuid": "^7.0.0", + "@types/uuid": "^8.0.0", "c8": "^7.0.0", "codecov": "^3.0.4", "gts": "^2.0.0", From 1208f8fa2f026e52cb41237af32676e2115a9d0f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2020 12:28:42 -0700 Subject: [PATCH 166/279] chore: release 3.0.1 (#212) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index dc1555cd859..53e6a28964f 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.1](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.0...v3.0.1) (2020-05-20) + + +### Bug Fixes + +* apache license URL ([#468](https://www.github.com/googleapis/nodejs-paginator/issues/468)) ([#211](https://www.github.com/googleapis/nodejs-paginator/issues/211)) ([f343b7f](https://www.github.com/googleapis/nodejs-paginator/commit/f343b7f7e184fd1b453f20ac1463d17520aac7ad)) + ## [3.0.0](https://www.github.com/googleapis/nodejs-paginator/compare/v2.0.3...v3.0.0) (2020-03-25) diff --git a/core/paginator/package.json b/core/paginator/package.json index 36fd4711ac7..fbb51771d1d 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.0", + "version": "3.0.1", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From ac02c0b446333070d7c312b5d4796d53c76e5085 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 9 Jun 2020 16:47:58 -0700 Subject: [PATCH 167/279] build(secrets): begin migration to secret manager from keystore (#218) Source-Author: Benjamin E. Coe Source-Date: Mon Jun 8 09:51:11 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 1c92077459db3dc50741e878f98b08c6261181e0 Source-Link: https://github.com/googleapis/synthtool/commit/1c92077459db3dc50741e878f98b08c6261181e0 --- core/paginator/.kokoro/populate-secrets.sh | 32 ++++++++++++++++++++++ core/paginator/.kokoro/publish.sh | 2 +- core/paginator/.kokoro/release/publish.cfg | 10 ++----- core/paginator/.kokoro/trampoline.sh | 1 + core/paginator/synth.metadata | 4 +-- 5 files changed, 39 insertions(+), 10 deletions(-) create mode 100755 core/paginator/.kokoro/populate-secrets.sh diff --git a/core/paginator/.kokoro/populate-secrets.sh b/core/paginator/.kokoro/populate-secrets.sh new file mode 100755 index 00000000000..85801f403e2 --- /dev/null +++ b/core/paginator/.kokoro/populate-secrets.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Copyright 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 +# +# 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. + +set -eo pipefail + +# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: +# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com +SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" +mkdir -p ${SECRET_LOCATION} +for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") +do + docker run --entrypoint=gcloud \ + --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ + gcr.io/google.com/cloudsdktool/cloud-sdk \ + secrets versions access latest \ + --credential-file-override=${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json \ + --project cloud-devrel-kokoro-resources \ + --secret $key > \ + "$SECRET_LOCATION/$key" +done diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index 51f4d72f2da..24957d71def 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -24,7 +24,7 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-paginator-npm-token) +NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 72be9f9abb3..7b03bbd63e0 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -47,13 +47,9 @@ before_action { } } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "google-cloud-paginator-npm-token" - } - } +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "npm_publish_token" } # Download trampoline resources. diff --git a/core/paginator/.kokoro/trampoline.sh b/core/paginator/.kokoro/trampoline.sh index 9bd4905c4b5..a4241db23f4 100755 --- a/core/paginator/.kokoro/trampoline.sh +++ b/core/paginator/.kokoro/trampoline.sh @@ -24,4 +24,5 @@ function cleanup() { } trap cleanup EXIT +$(dirname $0)/populate-secrets.sh # Secret Manager secrets. python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index bb337935944..28038312dc9 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "13396a780c9e75613591bf847a0df748336a4bf0" + "sha": "a7f67587933268ac8959897267fcb58f753cc559" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "be74d3e532faa47eb59f1a0eaebde0860d1d8ab4" + "sha": "1c92077459db3dc50741e878f98b08c6261181e0" } } ] From 4b42a6f8177ded44ba9ecb4ac31291bc208c8622 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Jun 2020 17:46:52 +0200 Subject: [PATCH 168/279] chore(deps): update dependency mocha to v8 (#219) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/mocha/7.2.0/8.0.1) | --- ### Release Notes
mochajs/mocha ### [`v8.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​801--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.0...v8.0.1) The obligatory patch after a major. #### :bug: Fixes - [#​4328](https://togithub.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@​boneskull**](https://togithub.com/boneskull)) ### [`v8.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​800--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.2.0...v8.0.0) In this major release, Mocha adds the ability to _run tests in parallel_. Better late than never! Please note the **breaking changes** detailed below. Let's welcome [**@​giltayar**](https://togithub.com/giltayar) and [**@​nicojs**](https://togithub.com/nicojs) to the maintenance team! #### :boom: Breaking Changes - [#​4164](https://togithub.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.0.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@​UlisesGascon**](https://togithub.com/UlisesGascon)) - [#​4175](https://togithub.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@​juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs). - [#​4260](https://togithub.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@​craigtaub**](https://togithub.com/craigtaub)) :sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`. - [#​4315](https://togithub.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@​juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`). - [#​4309](https://togithub.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@​juergba**](https://togithub.com/juergba)) - [#​4282](https://togithub.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@​arvidOtt**](https://togithub.com/arvidOtt)) - [#​4223](https://togithub.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@​juergba**](https://togithub.com/juergba)) - [#​4178](https://togithub.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@​wnghdcjfe**](https://togithub.com/wnghdcjfe)): - `Mocha.prototype.ignoreLeaks()` - `Mocha.prototype.useColors()` - `Mocha.prototype.useInlineDiffs()` - `Mocha.prototype.hideDiff()` #### :tada: Enhancements - [#​4245](https://togithub.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@​boneskull**](https://togithub.com/boneskull)) :exclamation: See also [#​4244](https://togithub.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- _root hooks must be defined via Root Hook Plugins to work in parallel mode_ - [#​4304](https://togithub.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@​JacobLey**](https://togithub.com/JacobLey)) - [#​4299](https://togithub.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- _use at your own risk!_ ([**@​giltayar**](https://togithub.com/giltayar)) #### :book: Documentation - [#​4246](https://togithub.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@​boneskull**](https://togithub.com/boneskull)) #### :bug: Fixes (All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index fbb51771d1d..adf1b1d8ab8 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -41,7 +41,7 @@ "codecov": "^3.0.4", "gts": "^2.0.0", "linkinator": "^2.0.0", - "mocha": "^7.1.1", + "mocha": "^8.0.0", "proxyquire": "^2.0.1", "sinon": "^9.0.0", "typescript": "^3.8.3", From 83293516943bf393d2dc19ab82dec6edc9bcecec Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 11 Jun 2020 15:00:55 -0700 Subject: [PATCH 169/279] chore(nodejs_templates): add script logging to node_library populate-secrets.sh (#220) --- core/paginator/.kokoro/populate-secrets.sh | 12 ++++++++++++ core/paginator/synth.metadata | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/paginator/.kokoro/populate-secrets.sh b/core/paginator/.kokoro/populate-secrets.sh index 85801f403e2..e6ce8200d75 100755 --- a/core/paginator/.kokoro/populate-secrets.sh +++ b/core/paginator/.kokoro/populate-secrets.sh @@ -15,12 +15,19 @@ set -eo pipefail +function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} +function msg { println "$*" >&2 ;} +function println { printf '%s\n' "$(now) $*" ;} + + # Populates requested secrets set in SECRET_MANAGER_KEYS from service account: # kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" +msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" mkdir -p ${SECRET_LOCATION} for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") do + msg "Retrieving secret ${key}" docker run --entrypoint=gcloud \ --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ gcr.io/google.com/cloudsdktool/cloud-sdk \ @@ -29,4 +36,9 @@ do --project cloud-devrel-kokoro-resources \ --secret $key > \ "$SECRET_LOCATION/$key" + if [[ $? == 0 ]]; then + msg "Secret written to ${SECRET_LOCATION}/${key}" + else + msg "Error retrieving secret ${key}" + fi done diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 28038312dc9..35cf8e15858 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "a7f67587933268ac8959897267fcb58f753cc559" + "sha": "1935d08060a79fc76787223c8daeaf4085ec9004" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1c92077459db3dc50741e878f98b08c6261181e0" + "sha": "e7034945fbdc0e79d3c57f6e299e5c90b0f11469" } } ] From acd60cc6f11828ffa3138806f52a2e8784149a5e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 18 Jun 2020 11:04:28 -0700 Subject: [PATCH 170/279] fix: update node issue template (#221) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/37f383f8-7560-459e-b66c-def10ff830cb/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/b10590a4a1568548dd13cfcea9aa11d40898144b --- core/paginator/.github/ISSUE_TEMPLATE/bug_report.md | 11 ++++++++--- core/paginator/synth.metadata | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md index e9efaf71e59..bf591dd077a 100644 --- a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md +++ b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,13 +8,18 @@ Thanks for stopping by to let us know something could be better! **PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. -Please run down the following list and make sure you've tried the usual "quick fixes": +1) Is this a client library issue or a product issue? +This is the client library for . We will only be able to assist with issues that pertain to the behaviors of this library. If the issue you're experiencing is due to the behavior of the product itself, please visit the [ Support page]() to reach the most relevant engineers. +2) Did someone already solve this? - Search the issues already opened: https://github.com/googleapis/nodejs-paginator/issues - Search the issues on our "catch-all" repository: https://github.com/googleapis/google-cloud-node - - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js + - Search or ask on StackOverflow (engineers monitor these tags): http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js -If you are still having issues, please be sure to include as much information as possible: +3) Do you have a support contract? +Please create an issue in the [support console](https://cloud.google.com/support/) to ensure a timely response. + +If the support paths suggested above still do not result in a resolution, please provide the following details. #### Environment details diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 35cf8e15858..8318568f392 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "1935d08060a79fc76787223c8daeaf4085ec9004" + "sha": "0ee0a297b30d2dd9641f154182d260d367fc9add" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e7034945fbdc0e79d3c57f6e299e5c90b0f11469" + "sha": "b10590a4a1568548dd13cfcea9aa11d40898144b" } } ] From 612e7b47a4c4af1cc76467188d08a93a9c4f3882 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 29 Jun 2020 13:25:36 -0700 Subject: [PATCH 171/279] build: add config .gitattributes (#223) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/e6ac0f7f-2fc1-4ac2-9eb5-23ba1215b6a2/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/dc9caca650c77b7039e2bbc3339ffb34ae78e5b7 --- core/paginator/.gitattributes | 3 +++ core/paginator/synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 core/paginator/.gitattributes diff --git a/core/paginator/.gitattributes b/core/paginator/.gitattributes new file mode 100644 index 00000000000..2e63216ae9c --- /dev/null +++ b/core/paginator/.gitattributes @@ -0,0 +1,3 @@ +*.ts text eol=lf +*.js test eol=lf +protos/* linguist-generated diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 8318568f392..64dfa521bab 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "0ee0a297b30d2dd9641f154182d260d367fc9add" + "sha": "088153c4fca6d53e2e5ef4bb42365ce5493b913d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b10590a4a1568548dd13cfcea9aa11d40898144b" + "sha": "dc9caca650c77b7039e2bbc3339ffb34ae78e5b7" } } ] From 3d62877c8b939aaf80df3500c4f3fd6a7b0871f7 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 6 Jul 2020 11:22:05 -0700 Subject: [PATCH 172/279] chore: update CODEOWNERS (#224) --- core/paginator/.github/CODEOWNERS | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 core/paginator/.github/CODEOWNERS diff --git a/core/paginator/.github/CODEOWNERS b/core/paginator/.github/CODEOWNERS new file mode 100644 index 00000000000..d904d1e2bde --- /dev/null +++ b/core/paginator/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# Code owners file. +# This file controls who is tagged for review for any given pull request. +# +# For syntax help see: +# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax + + +# The yoshi-nodejs team is the default owner for nodejs repositories. +* @googleapis/yoshi-nodejs From a962e1844052718f06adb033d2195baa31d6dd07 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2020 13:15:33 -0700 Subject: [PATCH 173/279] chore: release 3.0.2 (#222) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 53e6a28964f..0a8239662a9 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.2](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.1...v3.0.2) (2020-07-06) + + +### Bug Fixes + +* update node issue template ([#221](https://www.github.com/googleapis/nodejs-paginator/issues/221)) ([088153c](https://www.github.com/googleapis/nodejs-paginator/commit/088153c4fca6d53e2e5ef4bb42365ce5493b913d)) + ### [3.0.1](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.0...v3.0.1) (2020-05-20) diff --git a/core/paginator/package.json b/core/paginator/package.json index adf1b1d8ab8..245d889b405 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.1", + "version": "3.0.2", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From a15efad4124a434e518c20e86195270573d68ab2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 9 Jul 2020 17:50:51 -0700 Subject: [PATCH 174/279] build: typeo in nodejs .gitattribute (#225) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/cc99acfa-05b8-434b-9500-2f6faf2eaa02/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b --- core/paginator/.gitattributes | 2 +- core/paginator/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.gitattributes b/core/paginator/.gitattributes index 2e63216ae9c..d4f4169b28b 100644 --- a/core/paginator/.gitattributes +++ b/core/paginator/.gitattributes @@ -1,3 +1,3 @@ *.ts text eol=lf -*.js test eol=lf +*.js text eol=lf protos/* linguist-generated diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 64dfa521bab..179a7c5d33e 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "088153c4fca6d53e2e5ef4bb42365ce5493b913d" + "sha": "07944f9a49962da38baec5a1ceebecf090e7d41e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "dc9caca650c77b7039e2bbc3339ffb34ae78e5b7" + "sha": "799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b" } } ] From cc4a49f88aa48366e12366efea7dfa4cce3815d2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 12 Jul 2020 18:49:09 +0200 Subject: [PATCH 175/279] chore(deps): update dependency @types/mocha to v8 (#226) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/7.0.2/8.0.0) | --- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 245d889b405..6bb9f76e016 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", - "@types/mocha": "^7.0.0", + "@types/mocha": "^8.0.0", "@types/node": "^10.5.2", "@types/proxyquire": "^1.3.28", "@types/sinon": "^9.0.0", From b5b0e16b6c26d02156a3fde9e79f5ab31d9ed0dd Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Tue, 14 Jul 2020 19:58:04 -0400 Subject: [PATCH 176/279] chore: delete Node 8 presubmit tests (#227) --- .../.kokoro/presubmit/node8/common.cfg | 24 ------------------- .../.kokoro/presubmit/node8/test.cfg | 0 2 files changed, 24 deletions(-) delete mode 100644 core/paginator/.kokoro/presubmit/node8/common.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node8/test.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/common.cfg b/core/paginator/.kokoro/presubmit/node8/common.cfg deleted file mode 100644 index ffb8804ee15..00000000000 --- a/core/paginator/.kokoro/presubmit/node8/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node8/test.cfg b/core/paginator/.kokoro/presubmit/node8/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 From 904a1a7336cb6941f7c5058c66239f12c42b2616 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 16:05:02 -0700 Subject: [PATCH 177/279] build: add Node 8 tests (#230) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5b03461e-47c0-40e8-a8ad-c465ee146cc5/targets - [ ] To automatically regenerate this PR, check this box. --- .../.kokoro/presubmit/node8/common.cfg | 24 +++++++++++++++++++ .../.kokoro/presubmit/node8/test.cfg | 0 core/paginator/synth.metadata | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 core/paginator/.kokoro/presubmit/node8/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/node8/test.cfg diff --git a/core/paginator/.kokoro/presubmit/node8/common.cfg b/core/paginator/.kokoro/presubmit/node8/common.cfg new file mode 100644 index 00000000000..ffb8804ee15 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node8/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node8/test.cfg b/core/paginator/.kokoro/presubmit/node8/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 179a7c5d33e..a6c835ddfdd 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "07944f9a49962da38baec5a1ceebecf090e7d41e" + "sha": "91f58c450bcb8e20d73135241269bec412931883" } }, { From 89aa16e9a9a98f0916d0629a0622e43871dadb8a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 16:28:25 -0700 Subject: [PATCH 178/279] build: missing closing paren in publish script, delete template for Node 8, add config files for cloud-rad (#231) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5b03461e-47c0-40e8-a8ad-c465ee146cc5/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/21f1470ecd01424dc91c70f1a7c798e4e87d1eec Source-Link: https://github.com/googleapis/synthtool/commit/388e10f5ae302d3e8de1fac99f3a95d1ab8f824a Source-Link: https://github.com/googleapis/synthtool/commit/d82deccf657a66e31bd5da9efdb96c6fa322fc7e --- core/paginator/.kokoro/publish.sh | 2 +- .../.kokoro/release/docs-devsite.cfg | 26 ++ .../paginator/.kokoro/release/docs-devsite.sh | 62 +++ core/paginator/api-extractor.json | 369 ++++++++++++++++++ core/paginator/synth.metadata | 2 +- 5 files changed, 459 insertions(+), 2 deletions(-) create mode 100644 core/paginator/.kokoro/release/docs-devsite.cfg create mode 100755 core/paginator/.kokoro/release/docs-devsite.sh create mode 100644 core/paginator/api-extractor.json diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index 24957d71def..f056d861729 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -24,7 +24,7 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token +NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token) echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install diff --git a/core/paginator/.kokoro/release/docs-devsite.cfg b/core/paginator/.kokoro/release/docs-devsite.cfg new file mode 100644 index 00000000000..77a501f8f20 --- /dev/null +++ b/core/paginator/.kokoro/release/docs-devsite.cfg @@ -0,0 +1,26 @@ +# service account used to publish up-to-date docs. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + +# doc publications use a Python image. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-scheduler/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-scheduler/.kokoro/release/docs-devsite.sh" +} diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh new file mode 100755 index 00000000000..b679c48c044 --- /dev/null +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Copyright 2019 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. + +set -eo pipefail + +# build jsdocs (Python is installed on the Node 10 docker image). +if [[ -z "$CREDENTIALS" ]]; then + # if CREDENTIALS are explicitly set, assume we're testing locally + # and don't set NPM_CONFIG_PREFIX. + export NPM_CONFIG_PREFIX=/home/node/.npm-global + export PATH="$PATH:/home/node/.npm-global/bin" + cd $(dirname $0)/../.. +fi + +mkdir ./etc + +npm install +npm run api-extractor +npm run api-documenter + +npm i json@9.0.6 -g +NAME=$(cat .repo-metadata.json | json name) + +mkdir ./_devsite +cp ./yaml/$NAME/* ./_devsite +cp ./yaml/toc.yml ./_devsite/_toc.yaml + +# create docs.metadata, based on package.json and .repo-metadata.json. +pip install -U pip +python3 -m pip install --user gcp-docuploader +python3 -m docuploader create-metadata \ + --name=$NAME \ + --version=$(cat package.json | json version) \ + --language=$(cat .repo-metadata.json | json language) \ + --distribution-name=$(cat .repo-metadata.json | json distribution_name) \ + --product-page=$(cat .repo-metadata.json | json product_documentation) \ + --github-repository=$(cat .repo-metadata.json | json repo) \ + --issue-tracker=$(cat .repo-metadata.json | json issue_tracker) +cp docs.metadata ./_devsite/docs.metadata + +# deploy the docs. +if [[ -z "$CREDENTIALS" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi +if [[ -z "$BUCKET" ]]; then + BUCKET=docs-staging-v2-staging +fi + +python3 -m docuploader upload ./_devsite --destination-prefix docfx --credentials $CREDENTIALS --staging-bucket $BUCKET diff --git a/core/paginator/api-extractor.json b/core/paginator/api-extractor.json new file mode 100644 index 00000000000..de228294b23 --- /dev/null +++ b/core/paginator/api-extractor.json @@ -0,0 +1,369 @@ +/** + * Config file for API Extractor. For more info, please visit: https://api-extractor.com + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + /** + * Optionally specifies another JSON config file that this file extends from. This provides a way for + * standard settings to be shared across multiple projects. + * + * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains + * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be + * resolved using NodeJS require(). + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "extends": "./shared/api-extractor-base.json" + // "extends": "my-package/include/api-extractor-base.json" + + /** + * Determines the "" token that can be used with other config file settings. The project folder + * typically contains the tsconfig.json and package.json config files, but the path is user-defined. + * + * The path is resolved relative to the folder of the config file that contains the setting. + * + * The default value for "projectFolder" is the token "", which means the folder is determined by traversing + * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder + * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error + * will be reported. + * + * SUPPORTED TOKENS: + * DEFAULT VALUE: "" + */ + // "projectFolder": "..", + + /** + * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor + * analyzes the symbols exported by this module. + * + * The file extension must be ".d.ts" and not ".ts". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + */ + "mainEntryPointFilePath": "/protos/protos.d.ts", + + /** + * A list of NPM package names whose exports should be treated as part of this package. + * + * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", + * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part + * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly + * imports library2. To avoid this, we can specify: + * + * "bundledPackages": [ "library2" ], + * + * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been + * local files for library1. + */ + "bundledPackages": [ ], + + /** + * Determines how the TypeScript compiler engine will be invoked by API Extractor. + */ + "compiler": { + /** + * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * Note: This setting will be ignored if "overrideTsconfig" is used. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/tsconfig.json" + */ + // "tsconfigFilePath": "/tsconfig.json", + + /** + * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. + * The object must conform to the TypeScript tsconfig schema: + * + * http://json.schemastore.org/tsconfig + * + * If omitted, then the tsconfig.json file will be read from the "projectFolder". + * + * DEFAULT VALUE: no overrideTsconfig section + */ + // "overrideTsconfig": { + // . . . + // } + + /** + * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended + * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when + * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses + * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. + * + * DEFAULT VALUE: false + */ + // "skipLibCheck": true, + }, + + /** + * Configures how the API report file (*.api.md) will be generated. + */ + "apiReport": { + /** + * (REQUIRED) Whether to generate an API report. + */ + "enabled": true, + + /** + * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce + * a full file path. + * + * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". + * + * SUPPORTED TOKENS: , + * DEFAULT VALUE: ".api.md" + */ + // "reportFileName": ".api.md", + + /** + * Specifies the folder where the API report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, + * e.g. for an API review. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/etc/" + */ + // "reportFolder": "/etc/", + + /** + * Specifies the folder where the temporary report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * After the temporary file is written to disk, it is compared with the file in the "reportFolder". + * If they are different, a production build will fail. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + // "reportTempFolder": "/temp/" + }, + + /** + * Configures how the doc model file (*.api.json) will be generated. + */ + "docModel": { + /** + * (REQUIRED) Whether to generate a doc model file. + */ + "enabled": true, + + /** + * The output path for the doc model file. The file extension should be ".api.json". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/.api.json" + */ + // "apiJsonFilePath": "/temp/.api.json" + }, + + /** + * Configures how the .d.ts rollup file will be generated. + */ + "dtsRollup": { + /** + * (REQUIRED) Whether to generate the .d.ts rollup file. + */ + "enabled": true, + + /** + * Specifies the output path for a .d.ts rollup file to be generated without any trimming. + * This file will include all declarations that are exported by the main entry point. + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/dist/.d.ts" + */ + // "untrimmedFilePath": "/dist/.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. + * This file will include only declarations that are marked as "@public" or "@beta". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "betaTrimmedFilePath": "/dist/-beta.d.ts", + + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. + * This file will include only declarations that are marked as "@public". + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "publicTrimmedFilePath": "/dist/-public.d.ts", + + /** + * When a declaration is trimmed, by default it will be replaced by a code comment such as + * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the + * declaration completely. + * + * DEFAULT VALUE: false + */ + // "omitTrimmingComments": true + }, + + /** + * Configures how the tsdoc-metadata.json file will be generated. + */ + "tsdocMetadata": { + /** + * Whether to generate the tsdoc-metadata.json file. + * + * DEFAULT VALUE: true + */ + // "enabled": true, + + /** + * Specifies where the TSDoc metadata file should be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", + * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup + * falls back to "tsdoc-metadata.json" in the package folder. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" + }, + + /** + * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files + * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. + * To use the OS's default newline kind, specify "os". + * + * DEFAULT VALUE: "crlf" + */ + // "newlineKind": "crlf", + + /** + * Configures how API Extractor reports error and warning messages produced during analysis. + * + * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. + */ + "messages": { + /** + * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing + * the input .d.ts files. + * + * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "compilerMessageReporting": { + /** + * Configures the default routing for messages that don't match an explicit rule in this table. + */ + "default": { + /** + * Specifies whether the message should be written to the the tool's output log. Note that + * the "addToApiReportFile" property may supersede this option. + * + * Possible values: "error", "warning", "none" + * + * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail + * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes + * the "--local" option), the warning is displayed but the build will not fail. + * + * DEFAULT VALUE: "warning" + */ + "logLevel": "warning", + + /** + * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), + * then the message will be written inside that file; otherwise, the message is instead logged according to + * the "logLevel" option. + * + * DEFAULT VALUE: false + */ + // "addToApiReportFile": false + }, + + // "TS2551": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by API Extractor during its analysis. + * + * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" + * + * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings + */ + "extractorMessageReporting": { + "default": { + "logLevel": "warning", + // "addToApiReportFile": false + }, + + // "ae-extra-release-tag": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by the TSDoc parser when analyzing code comments. + * + * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "tsdocMessageReporting": { + "default": { + "logLevel": "warning", + // "addToApiReportFile": false + } + + // "tsdoc-link-tag-unescaped-text": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + } + } + +} diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index a6c835ddfdd..b4d4103f9b1 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b" + "sha": "21f1470ecd01424dc91c70f1a7c798e4e87d1eec" } } ] From 20f41078100710e61e800db9ab8b2b22f649c9a5 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Tue, 21 Jul 2020 14:47:57 -0400 Subject: [PATCH 179/279] chore: add dev dependencies for cloud-rad ref docs (#232) --- core/paginator/package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 6bb9f76e016..93ac2421be7 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -20,7 +20,9 @@ "docs-test": "linkinator docs", "predocs-test": "npm run docs", "clean": "gts clean", - "precompile": "gts clean" + "precompile": "gts clean", + "api-extractor": "api-extractor run --local", + "api-documenter": "api-documenter yaml --input-folder=temp" }, "keywords": [], "files": [ @@ -45,7 +47,9 @@ "proxyquire": "^2.0.1", "sinon": "^9.0.0", "typescript": "^3.8.3", - "uuid": "^8.0.0" + "uuid": "^8.0.0", + "@microsoft/api-documenter": "^7.8.10", + "@microsoft/api-extractor": "^7.8.10" }, "dependencies": { "arrify": "^2.0.0", From 44f6d086eceda443975f8704651ea4f0fff63bba Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 22 Jul 2020 17:37:45 -0700 Subject: [PATCH 180/279] build: rename _toc to toc (#233) Source-Author: F. Hinkelmann Source-Date: Tue Jul 21 10:53:20 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 99c93fe09f8c1dca09dfc0301c8668e3a70dd796 Source-Link: https://github.com/googleapis/synthtool/commit/99c93fe09f8c1dca09dfc0301c8668e3a70dd796 Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/.kokoro/release/docs-devsite.sh | 2 +- core/paginator/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index b679c48c044..3b93137d4db 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -36,7 +36,7 @@ NAME=$(cat .repo-metadata.json | json name) mkdir ./_devsite cp ./yaml/$NAME/* ./_devsite -cp ./yaml/toc.yml ./_devsite/_toc.yaml +cp ./yaml/toc.yml ./_devsite/toc.yml # create docs.metadata, based on package.json and .repo-metadata.json. pip install -U pip diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index b4d4103f9b1..7a0a2adbfc5 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "91f58c450bcb8e20d73135241269bec412931883" + "sha": "a74769c0115bee6ec1212f2d9cd9b91a98412e17" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "21f1470ecd01424dc91c70f1a7c798e4e87d1eec" + "sha": "99c93fe09f8c1dca09dfc0301c8668e3a70dd796" } } ] From e7ab3c8dd0cf22fdb121bd7e39884be517163657 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 24 Jul 2020 01:29:37 -0700 Subject: [PATCH 181/279] fix: move gitattributes files to node templates (#234) Source-Author: F. Hinkelmann Source-Date: Thu Jul 23 01:45:04 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3 Source-Link: https://github.com/googleapis/synthtool/commit/3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3 --- core/paginator/.gitattributes | 1 + core/paginator/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/paginator/.gitattributes b/core/paginator/.gitattributes index d4f4169b28b..33739cb74e4 100644 --- a/core/paginator/.gitattributes +++ b/core/paginator/.gitattributes @@ -1,3 +1,4 @@ *.ts text eol=lf *.js text eol=lf protos/* linguist-generated +**/api-extractor.json linguist-language=JSON-with-Comments diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 7a0a2adbfc5..2f5abcc7c0f 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "a74769c0115bee6ec1212f2d9cd9b91a98412e17" + "sha": "5308b4fd784aba6d48c1a5b46713ea4080d81c84" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "99c93fe09f8c1dca09dfc0301c8668e3a70dd796" + "sha": "3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3" } } ] From 533dac6e2cc38faf36f9c512f2ca45a6851f98e3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Jul 2020 10:17:00 -0700 Subject: [PATCH 182/279] chore: release 3.0.3 (#235) * chore: updated samples/package.json [ci skip] * chore: updated CHANGELOG.md [ci skip] * chore: updated package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 0a8239662a9..64c8fc23f4f 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.3](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.2...v3.0.3) (2020-07-24) + + +### Bug Fixes + +* move gitattributes files to node templates ([#234](https://www.github.com/googleapis/nodejs-paginator/issues/234)) ([30e881c](https://www.github.com/googleapis/nodejs-paginator/commit/30e881ce7415749b93b6b7e4e71745ea3fb248b6)) + ### [3.0.2](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.1...v3.0.2) (2020-07-06) diff --git a/core/paginator/package.json b/core/paginator/package.json index 93ac2421be7..d93f3bd66c9 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.2", + "version": "3.0.3", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 6d6c031209cce0403ccf507432e6c480ed213060 Mon Sep 17 00:00:00 2001 From: Stephen Date: Thu, 6 Aug 2020 10:05:06 -0400 Subject: [PATCH 183/279] fix: destroy ResourceStream with pre-flight error (#236) --- core/paginator/src/resource-stream.ts | 65 ++++++++++++++------------ core/paginator/test/resource-stream.ts | 12 +++++ 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts index 77ee762227a..330948bfe8a 100644 --- a/core/paginator/src/resource-stream.ts +++ b/core/paginator/src/resource-stream.ts @@ -59,43 +59,50 @@ export class ResourceStream extends Transform implements ResourceEvents { this._reading = true; - this._requestFn( - this._nextQuery, - (err: Error | null, results: T[], nextQuery: {} | null) => { - if (err) { - this.destroy(err); - return; - } + // Wrap in a try/catch to catch input linting errors, e.g. + // an invalid BigQuery query. These errors are thrown in an + // async fashion, which makes them un-catchable by the user. + try { + this._requestFn( + this._nextQuery, + (err: Error | null, results: T[], nextQuery: {} | null) => { + if (err) { + this.destroy(err); + return; + } - this._nextQuery = nextQuery; + this._nextQuery = nextQuery; - if (this._resultsToSend !== Infinity) { - results = results.splice(0, this._resultsToSend); - this._resultsToSend -= results.length; - } + if (this._resultsToSend !== Infinity) { + results = results.splice(0, this._resultsToSend); + this._resultsToSend -= results.length; + } - let more = true; + let more = true; - for (const result of results) { - if (this._ended) { - break; + for (const result of results) { + if (this._ended) { + break; + } + more = this.push(result); } - more = this.push(result); - } - const isFinished = !this._nextQuery || this._resultsToSend < 1; - const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls; + const isFinished = !this._nextQuery || this._resultsToSend < 1; + const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls; - if (isFinished || madeMaxCalls) { - this.end(); - } + if (isFinished || madeMaxCalls) { + this.end(); + } - if (more && !this._ended) { - setImmediate(() => this._read()); - } + if (more && !this._ended) { + setImmediate(() => this._read()); + } - this._reading = false; - } - ); + this._reading = false; + } + ); + } catch (e) { + this.destroy(e); + } } } diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts index 64d17903d3e..27a47f96da7 100644 --- a/core/paginator/test/resource-stream.ts +++ b/core/paginator/test/resource-stream.ts @@ -280,5 +280,17 @@ describe('ResourceStream', () => { assert.strictEqual(stream._reading, false); }); + + it('should destroy the stream if the request method throws', done => { + const error = new Error('Error.'); + stream._requestFn = () => { + throw error; + }; + stream.on('error', err => { + assert.strictEqual(err, error); + done(); + }); + stream._read(); + }); }); }); From 1e72e75e6b49636a27b0fc0e88c3c413720a3775 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 6 Aug 2020 10:11:32 -0400 Subject: [PATCH 184/279] chore: release 3.0.4 (#239) * chore: updated samples/package.json [ci skip] * chore: updated CHANGELOG.md [ci skip] * chore: updated package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 64c8fc23f4f..c07ed92be8e 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.4](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.3...v3.0.4) (2020-08-06) + + +### Bug Fixes + +* destroy ResourceStream with pre-flight error ([#236](https://www.github.com/googleapis/nodejs-paginator/issues/236)) ([d57beb4](https://www.github.com/googleapis/nodejs-paginator/commit/d57beb424d875a7bf502d458cc208f1bbe47a42a)) + ### [3.0.3](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.2...v3.0.3) (2020-07-24) diff --git a/core/paginator/package.json b/core/paginator/package.json index d93f3bd66c9..2c30242b376 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.3", + "version": "3.0.4", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 9f842b45655a66cec683e71bb39ef72a0db033d4 Mon Sep 17 00:00:00 2001 From: sofisl <55454395+sofisl@users.noreply.github.com> Date: Tue, 1 Sep 2020 12:14:37 -0700 Subject: [PATCH 185/279] fix: add configs by running synthtool (#241) --- core/paginator/.kokoro/continuous/node12/lint.cfg | 4 ++++ core/paginator/.kokoro/continuous/node12/samples-test.cfg | 7 +++++++ core/paginator/.kokoro/continuous/node12/system-test.cfg | 7 +++++++ core/paginator/.kokoro/populate-secrets.sh | 1 - core/paginator/.kokoro/presubmit/node12/samples-test.cfg | 7 +++++++ core/paginator/.kokoro/presubmit/node12/system-test.cfg | 7 +++++++ core/paginator/.kokoro/release/docs-devsite.cfg | 4 ++-- core/paginator/.kokoro/release/docs-devsite.sh | 5 +++++ core/paginator/.kokoro/release/publish.cfg | 4 ++-- core/paginator/.kokoro/samples-test.sh | 2 +- core/paginator/.kokoro/system-test.sh | 2 +- core/paginator/.kokoro/test.sh | 2 +- core/paginator/README.md | 3 +++ core/paginator/synth.metadata | 6 +++--- 14 files changed, 50 insertions(+), 11 deletions(-) create mode 100644 core/paginator/.kokoro/continuous/node12/lint.cfg create mode 100644 core/paginator/.kokoro/continuous/node12/samples-test.cfg create mode 100644 core/paginator/.kokoro/continuous/node12/system-test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node12/samples-test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node12/system-test.cfg diff --git a/core/paginator/.kokoro/continuous/node12/lint.cfg b/core/paginator/.kokoro/continuous/node12/lint.cfg new file mode 100644 index 00000000000..939fa12b6d0 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node12/lint.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/lint.sh" +} diff --git a/core/paginator/.kokoro/continuous/node12/samples-test.cfg b/core/paginator/.kokoro/continuous/node12/samples-test.cfg new file mode 100644 index 00000000000..3a84472f882 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node12/samples-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/samples-test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node12/system-test.cfg b/core/paginator/.kokoro/continuous/node12/system-test.cfg new file mode 100644 index 00000000000..f94bfc2ff77 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node12/system-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} diff --git a/core/paginator/.kokoro/populate-secrets.sh b/core/paginator/.kokoro/populate-secrets.sh index e6ce8200d75..6f9d228859d 100755 --- a/core/paginator/.kokoro/populate-secrets.sh +++ b/core/paginator/.kokoro/populate-secrets.sh @@ -32,7 +32,6 @@ do --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ gcr.io/google.com/cloudsdktool/cloud-sdk \ secrets versions access latest \ - --credential-file-override=${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json \ --project cloud-devrel-kokoro-resources \ --secret $key > \ "$SECRET_LOCATION/$key" diff --git a/core/paginator/.kokoro/presubmit/node12/samples-test.cfg b/core/paginator/.kokoro/presubmit/node12/samples-test.cfg new file mode 100644 index 00000000000..3a84472f882 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node12/samples-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/samples-test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node12/system-test.cfg b/core/paginator/.kokoro/presubmit/node12/system-test.cfg new file mode 100644 index 00000000000..f94bfc2ff77 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node12/system-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} diff --git a/core/paginator/.kokoro/release/docs-devsite.cfg b/core/paginator/.kokoro/release/docs-devsite.cfg index 77a501f8f20..30a98d3509e 100644 --- a/core/paginator/.kokoro/release/docs-devsite.cfg +++ b/core/paginator/.kokoro/release/docs-devsite.cfg @@ -18,9 +18,9 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-scheduler/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-scheduler/.kokoro/release/docs-devsite.sh" + value: "github/nodejs-paginator/.kokoro/release/docs-devsite.sh" } diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index 3b93137d4db..fa089cf290e 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -36,6 +36,11 @@ NAME=$(cat .repo-metadata.json | json name) mkdir ./_devsite cp ./yaml/$NAME/* ./_devsite + +# Delete SharePoint item, see https://github.com/microsoft/rushstack/issues/1229 +sed -i -e '1,3d' ./yaml/toc.yml +sed -i -e 's/^ //' ./yaml/toc.yml + cp ./yaml/toc.yml ./_devsite/toc.yml # create docs.metadata, based on package.json and .repo-metadata.json. diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 7b03bbd63e0..566c677815d 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -49,7 +49,7 @@ before_action { env_vars: { key: "SECRET_MANAGER_KEYS" - value: "npm_publish_token" + value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" } # Download trampoline resources. @@ -61,7 +61,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 86e83c9d3da..c0c40139cb7 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -41,7 +41,7 @@ if [ -f samples/package.json ]; then cd .. # If tests are running against master, configure Build Cop # to open issues on failures: - if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index dfae142a231..283f1700fef 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -35,7 +35,7 @@ npm install # If tests are running against master, configure Build Cop # to open issues on failures: -if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 8d9c2954579..47be59b987c 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -23,7 +23,7 @@ cd $(dirname $0)/.. npm install # If tests are running against master, configure Build Cop # to open issues on failures: -if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { diff --git a/core/paginator/README.md b/core/paginator/README.md index 00fbd86a664..4dc9e953243 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -14,6 +14,9 @@ A result paging utility used by Google node.js modules +A comprehensive list of changes in each version may be found in +[the CHANGELOG](https://github.com/googleapis/nodejs-paginator/blob/master/CHANGELOG.md). + * [Google Cloud Common Paginator Node.js Client API Reference][client-docs] * [github.com/googleapis/nodejs-paginator](https://github.com/googleapis/nodejs-paginator) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 2f5abcc7c0f..2e5f385ff60 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -3,15 +3,15 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "5308b4fd784aba6d48c1a5b46713ea4080d81c84" + "remote": "git@github.com:googleapis/nodejs-paginator.git", + "sha": "2f26fa50bea7c6959bd351b65144f4e021669b0c" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3" + "sha": "d91dd8aac77f7a9c5506c238038a26fa4f9e361e" } } ] From 75d81095f3f2fbc9f3932c9f20c1da5d9a953486 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 1 Sep 2020 13:06:33 -0700 Subject: [PATCH 186/279] chore(node): fix kokoro build path for cloud-rad (#237) Source-Author: F. Hinkelmann Source-Date: Wed Jul 29 00:28:42 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa Source-Link: https://github.com/googleapis/synthtool/commit/89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/synth.metadata | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 2e5f385ff60..42d4ff6762b 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -3,15 +3,15 @@ { "git": { "name": ".", - "remote": "git@github.com:googleapis/nodejs-paginator.git", - "sha": "2f26fa50bea7c6959bd351b65144f4e021669b0c" + "remote": "https://github.com/googleapis/nodejs-paginator.git", + "sha": "98bb9e06a987cfa47a86e7d4685b5ed0976d9433" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "d91dd8aac77f7a9c5506c238038a26fa4f9e361e" + "sha": "89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa" } } ] From a92437468d5d5aaf11944d9b38256f18a5219302 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 2 Sep 2020 09:57:30 -0700 Subject: [PATCH 187/279] chore: start tracking obsolete files (#243) --- core/paginator/synth.metadata | 57 +++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 42d4ff6762b..5695713fc5a 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,15 +4,68 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "98bb9e06a987cfa47a86e7d4685b5ed0976d9433" + "sha": "77b6ea90f0e7fe1bb60a0be6dcb11c2ce4401526" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa" + "sha": "d91dd8aac77f7a9c5506c238038a26fa4f9e361e" } } + ], + "generatedFiles": [ + ".eslintignore", + ".eslintrc.json", + ".gitattributes", + ".github/ISSUE_TEMPLATE/bug_report.md", + ".github/ISSUE_TEMPLATE/feature_request.md", + ".github/ISSUE_TEMPLATE/support_request.md", + ".github/PULL_REQUEST_TEMPLATE.md", + ".github/release-please.yml", + ".github/workflows/ci.yaml", + ".kokoro/.gitattributes", + ".kokoro/common.cfg", + ".kokoro/continuous/node10/common.cfg", + ".kokoro/continuous/node10/docs.cfg", + ".kokoro/continuous/node10/test.cfg", + ".kokoro/continuous/node12/common.cfg", + ".kokoro/continuous/node12/lint.cfg", + ".kokoro/continuous/node12/samples-test.cfg", + ".kokoro/continuous/node12/system-test.cfg", + ".kokoro/continuous/node12/test.cfg", + ".kokoro/docs.sh", + ".kokoro/lint.sh", + ".kokoro/populate-secrets.sh", + ".kokoro/presubmit/node10/common.cfg", + ".kokoro/presubmit/node12/common.cfg", + ".kokoro/presubmit/node12/samples-test.cfg", + ".kokoro/presubmit/node12/system-test.cfg", + ".kokoro/presubmit/node12/test.cfg", + ".kokoro/publish.sh", + ".kokoro/release/docs-devsite.cfg", + ".kokoro/release/docs-devsite.sh", + ".kokoro/release/docs.cfg", + ".kokoro/release/docs.sh", + ".kokoro/release/publish.cfg", + ".kokoro/samples-test.sh", + ".kokoro/system-test.sh", + ".kokoro/test.bat", + ".kokoro/test.sh", + ".kokoro/trampoline.sh", + ".mocharc.js", + ".nycrc", + ".prettierignore", + ".prettierrc.js", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "README.md", + "api-extractor.json", + "package-lock.json.2724744430", + "renovate.json", + "samples/README.md", + "samples/package-lock.json.465480222" ] } \ No newline at end of file From 68024ec427c3dd7005c4785e05aaf7e87b822c40 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 11:21:56 -0700 Subject: [PATCH 188/279] chore: release 3.0.5 (#242) * chore: updated samples/package.json [ci skip] * chore: updated CHANGELOG.md [ci skip] * chore: updated package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index c07ed92be8e..eff5ef59c59 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.5](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.4...v3.0.5) (2020-09-02) + + +### Bug Fixes + +* add configs by running synthtool ([#241](https://www.github.com/googleapis/nodejs-paginator/issues/241)) ([643593a](https://www.github.com/googleapis/nodejs-paginator/commit/643593ae9ffb8febff69a7bdae19239f5bcb1266)) + ### [3.0.4](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.3...v3.0.4) (2020-08-06) diff --git a/core/paginator/package.json b/core/paginator/package.json index 2c30242b376..e5b4f7bb617 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.4", + "version": "3.0.5", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 3516ccc532a07b5455b9ff080ae8c61b40218f19 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 12 Sep 2020 11:20:07 -0700 Subject: [PATCH 189/279] build(test): recursively find test files; fail on unsupported dependency versions (#245) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/0832b96d-f20d-428a-9244-9373d24004a9/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/fdd03c161003ab97657cc0218f25c82c89ddf4b6 --- core/paginator/.mocharc.js | 3 ++- core/paginator/synth.metadata | 8 +++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/core/paginator/.mocharc.js b/core/paginator/.mocharc.js index ff7b34fa5d1..0b600509bed 100644 --- a/core/paginator/.mocharc.js +++ b/core/paginator/.mocharc.js @@ -14,7 +14,8 @@ const config = { "enable-source-maps": true, "throw-deprecation": true, - "timeout": 10000 + "timeout": 10000, + "recursive": true } if (process.env.MOCHA_THROW_DEPRECATION === 'false') { delete config['throw-deprecation']; diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 5695713fc5a..bf7ea76e06f 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "77b6ea90f0e7fe1bb60a0be6dcb11c2ce4401526" + "sha": "86961f368b97df46fa0d7b92750813fb5a07f579" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "d91dd8aac77f7a9c5506c238038a26fa4f9e361e" + "sha": "fdd03c161003ab97657cc0218f25c82c89ddf4b6" } } ], @@ -63,9 +63,7 @@ "LICENSE", "README.md", "api-extractor.json", - "package-lock.json.2724744430", "renovate.json", - "samples/README.md", - "samples/package-lock.json.465480222" + "samples/README.md" ] } \ No newline at end of file From cd511d2a310a3b4e3c3382df8566b59fcbc976ad Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 2 Oct 2020 08:10:12 -0700 Subject: [PATCH 190/279] chore: update bucket for cloud-rad (#246) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/abddcc47-cb76-4fc4-b8c1-feafeaf13e14/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/079dcce498117f9570cebe6e6cff254b38ba3860 --- core/paginator/.kokoro/release/docs-devsite.sh | 2 +- core/paginator/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index fa089cf290e..458fe4f9062 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -61,7 +61,7 @@ if [[ -z "$CREDENTIALS" ]]; then CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account fi if [[ -z "$BUCKET" ]]; then - BUCKET=docs-staging-v2-staging + BUCKET=docs-staging-v2 fi python3 -m docuploader upload ./_devsite --destination-prefix docfx --credentials $CREDENTIALS --staging-bucket $BUCKET diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index bf7ea76e06f..b31a55425c7 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "86961f368b97df46fa0d7b92750813fb5a07f579" + "sha": "bb3740c976159deac327a265491896f7d79195b2" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "fdd03c161003ab97657cc0218f25c82c89ddf4b6" + "sha": "079dcce498117f9570cebe6e6cff254b38ba3860" } } ], From 21ea5e7984f9e5a364b4811d98b0d159f242b721 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 5 Oct 2020 10:42:43 -0700 Subject: [PATCH 191/279] build(node_library): migrate to Trampoline V2 (#247) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/1e3d0729-fe1f-4f75-babe-29f5584e5b6a/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9 --- core/paginator/.kokoro/common.cfg | 2 +- .../.kokoro/continuous/node10/common.cfg | 2 +- .../.kokoro/continuous/node12/common.cfg | 2 +- core/paginator/.kokoro/docs.sh | 2 +- core/paginator/.kokoro/lint.sh | 2 +- core/paginator/.kokoro/populate-secrets.sh | 65 ++- .../.kokoro/presubmit/node10/common.cfg | 2 +- .../.kokoro/presubmit/node12/common.cfg | 2 +- core/paginator/.kokoro/publish.sh | 2 +- .../.kokoro/release/docs-devsite.cfg | 2 +- .../paginator/.kokoro/release/docs-devsite.sh | 4 +- core/paginator/.kokoro/release/docs.cfg | 2 +- core/paginator/.kokoro/release/docs.sh | 4 +- core/paginator/.kokoro/release/publish.cfg | 6 +- core/paginator/.kokoro/samples-test.sh | 2 +- core/paginator/.kokoro/system-test.sh | 2 +- core/paginator/.kokoro/test.sh | 2 +- core/paginator/.kokoro/trampoline.sh | 4 + core/paginator/.kokoro/trampoline_v2.sh | 488 ++++++++++++++++++ core/paginator/.trampolinerc | 51 ++ core/paginator/synth.metadata | 6 +- 21 files changed, 616 insertions(+), 38 deletions(-) create mode 100755 core/paginator/.kokoro/trampoline_v2.sh create mode 100644 core/paginator/.trampolinerc diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 0481f24a315..593f5cf185e 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/core/paginator/.kokoro/continuous/node10/common.cfg b/core/paginator/.kokoro/continuous/node10/common.cfg index ad31de3e5f2..bcc20f2c321 100644 --- a/core/paginator/.kokoro/continuous/node10/common.cfg +++ b/core/paginator/.kokoro/continuous/node10/common.cfg @@ -21,7 +21,7 @@ before_action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/core/paginator/.kokoro/continuous/node12/common.cfg b/core/paginator/.kokoro/continuous/node12/common.cfg index f1b834d6984..5ea81b9a558 100644 --- a/core/paginator/.kokoro/continuous/node12/common.cfg +++ b/core/paginator/.kokoro/continuous/node12/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/core/paginator/.kokoro/docs.sh b/core/paginator/.kokoro/docs.sh index 952403faede..85901242b5e 100755 --- a/core/paginator/.kokoro/docs.sh +++ b/core/paginator/.kokoro/docs.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. diff --git a/core/paginator/.kokoro/lint.sh b/core/paginator/.kokoro/lint.sh index b03cb0439a6..aef4866e4c4 100755 --- a/core/paginator/.kokoro/lint.sh +++ b/core/paginator/.kokoro/lint.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. diff --git a/core/paginator/.kokoro/populate-secrets.sh b/core/paginator/.kokoro/populate-secrets.sh index 6f9d228859d..deb2b199eb4 100755 --- a/core/paginator/.kokoro/populate-secrets.sh +++ b/core/paginator/.kokoro/populate-secrets.sh @@ -13,31 +13,64 @@ # See the License for the specific language governing permissions and # limitations under the License. +# This file is called in the early stage of `trampoline_v2.sh` to +# populate secrets needed for the CI builds. + set -eo pipefail function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} function msg { println "$*" >&2 ;} function println { printf '%s\n' "$(now) $*" ;} +# Populates requested secrets set in SECRET_MANAGER_KEYS + +# In Kokoro CI builds, we use the service account attached to the +# Kokoro VM. This means we need to setup auth on other CI systems. +# For local run, we just use the gcloud command for retrieving the +# secrets. + +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + GCLOUD_COMMANDS=( + "docker" + "run" + "--entrypoint=gcloud" + "--volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR}" + "gcr.io/google.com/cloudsdktool/cloud-sdk" + ) + if [[ "${TRAMPOLINE_CI:-}" == "kokoro" ]]; then + SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" + else + echo "Authentication for this CI system is not implemented yet." + exit 2 + # TODO: Determine appropriate SECRET_LOCATION and the GCLOUD_COMMANDS. + fi +else + # For local run, use /dev/shm or temporary directory for + # KOKORO_GFILE_DIR. + if [[ -d "/dev/shm" ]]; then + export KOKORO_GFILE_DIR=/dev/shm + else + export KOKORO_GFILE_DIR=$(mktemp -d -t ci-XXXXXXXX) + fi + SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" + GCLOUD_COMMANDS=("gcloud") +fi -# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: -# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com -SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" mkdir -p ${SECRET_LOCATION} + for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") do - msg "Retrieving secret ${key}" - docker run --entrypoint=gcloud \ - --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ - gcr.io/google.com/cloudsdktool/cloud-sdk \ - secrets versions access latest \ - --project cloud-devrel-kokoro-resources \ - --secret $key > \ - "$SECRET_LOCATION/$key" - if [[ $? == 0 ]]; then - msg "Secret written to ${SECRET_LOCATION}/${key}" - else - msg "Error retrieving secret ${key}" - fi + msg "Retrieving secret ${key}" + "${GCLOUD_COMMANDS[@]}" \ + secrets versions access latest \ + --project cloud-devrel-kokoro-resources \ + --secret $key > \ + "$SECRET_LOCATION/$key" + if [[ $? == 0 ]]; then + msg "Secret written to ${SECRET_LOCATION}/${key}" + else + msg "Error retrieving secret ${key}" + exit 2 + fi done diff --git a/core/paginator/.kokoro/presubmit/node10/common.cfg b/core/paginator/.kokoro/presubmit/node10/common.cfg index ad31de3e5f2..bcc20f2c321 100644 --- a/core/paginator/.kokoro/presubmit/node10/common.cfg +++ b/core/paginator/.kokoro/presubmit/node10/common.cfg @@ -21,7 +21,7 @@ before_action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/core/paginator/.kokoro/presubmit/node12/common.cfg b/core/paginator/.kokoro/presubmit/node12/common.cfg index f1b834d6984..5ea81b9a558 100644 --- a/core/paginator/.kokoro/presubmit/node12/common.cfg +++ b/core/paginator/.kokoro/presubmit/node12/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index f056d861729..4db6bf1c7f5 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Start the releasetool reporter python3 -m pip install gcp-releasetool diff --git a/core/paginator/.kokoro/release/docs-devsite.cfg b/core/paginator/.kokoro/release/docs-devsite.cfg index 30a98d3509e..c28f6da0021 100644 --- a/core/paginator/.kokoro/release/docs-devsite.cfg +++ b/core/paginator/.kokoro/release/docs-devsite.cfg @@ -18,7 +18,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index 458fe4f9062..0d11b7ae951 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -20,8 +20,8 @@ set -eo pipefail if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. - export NPM_CONFIG_PREFIX=/home/node/.npm-global - export PATH="$PATH:/home/node/.npm-global/bin" + export NPM_CONFIG_PREFIX=${HOME}/.npm-global + export PATH="$PATH:${NPM_CONFIG_PREFIX}/bin" cd $(dirname $0)/../.. fi diff --git a/core/paginator/.kokoro/release/docs.cfg b/core/paginator/.kokoro/release/docs.cfg index 0617507214b..66279e409db 100644 --- a/core/paginator/.kokoro/release/docs.cfg +++ b/core/paginator/.kokoro/release/docs.cfg @@ -18,7 +18,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/release/docs.sh b/core/paginator/.kokoro/release/docs.sh index 4d3a0868531..4c866c86000 100755 --- a/core/paginator/.kokoro/release/docs.sh +++ b/core/paginator/.kokoro/release/docs.sh @@ -20,8 +20,8 @@ set -eo pipefail if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. - export NPM_CONFIG_PREFIX=/home/node/.npm-global - export PATH="$PATH:/home/node/.npm-global/bin" + export NPM_CONFIG_PREFIX=${HOME}/.npm-global + export PATH="$PATH:${NPM_CONFIG_PREFIX}/bin" cd $(dirname $0)/../.. fi npm install diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 566c677815d..26515570b18 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -27,7 +27,7 @@ before_action { } } -# Fetch magictoken to use with Magic Github Proxy +# Fetch magictoken to use with Magic Github Proxy before_action { fetch_keystore { keystore_resource { @@ -37,7 +37,7 @@ before_action { } } -# Fetch api key to use with Magic Github Proxy +# Fetch api key to use with Magic Github Proxy before_action { fetch_keystore { keystore_resource { @@ -56,7 +56,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index c0c40139cb7..bab7ba4e967 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 283f1700fef..8a08400484a 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 47be59b987c..5be385fef64 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. diff --git a/core/paginator/.kokoro/trampoline.sh b/core/paginator/.kokoro/trampoline.sh index a4241db23f4..f693a1ce7aa 100755 --- a/core/paginator/.kokoro/trampoline.sh +++ b/core/paginator/.kokoro/trampoline.sh @@ -13,6 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +# This file is not used any more, but we keep this file for making it +# easy to roll back. +# TODO: Remove this file from the template. + set -eo pipefail # Always run the cleanup script, regardless of the success of bouncing into diff --git a/core/paginator/.kokoro/trampoline_v2.sh b/core/paginator/.kokoro/trampoline_v2.sh new file mode 100755 index 00000000000..5ae75f977d7 --- /dev/null +++ b/core/paginator/.kokoro/trampoline_v2.sh @@ -0,0 +1,488 @@ +#!/usr/bin/env bash +# Copyright 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 +# +# 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. + +# trampoline_v2.sh +# +# If you want to make a change to this file, consider doing so at: +# https://github.com/googlecloudplatform/docker-ci-helper +# +# This script is for running CI builds. For Kokoro builds, we +# set this script to `build_file` field in the Kokoro configuration. + +# This script does 3 things. +# +# 1. Prepare the Docker image for the test +# 2. Run the Docker with appropriate flags to run the test +# 3. Upload the newly built Docker image +# +# in a way that is somewhat compatible with trampoline_v1. +# +# These environment variables are required: +# TRAMPOLINE_IMAGE: The docker image to use. +# TRAMPOLINE_DOCKERFILE: The location of the Dockerfile. +# +# You can optionally change these environment variables: +# TRAMPOLINE_IMAGE_UPLOAD: +# (true|false): Whether to upload the Docker image after the +# successful builds. +# TRAMPOLINE_BUILD_FILE: The script to run in the docker container. +# TRAMPOLINE_WORKSPACE: The workspace path in the docker container. +# Defaults to /workspace. +# Potentially there are some repo specific envvars in .trampolinerc in +# the project root. +# +# Here is an example for running this script. +# TRAMPOLINE_IMAGE=gcr.io/cloud-devrel-kokoro-resources/node:10-user \ +# TRAMPOLINE_BUILD_FILE=.kokoro/system-test.sh \ +# .kokoro/trampoline_v2.sh + +set -euo pipefail + +TRAMPOLINE_VERSION="2.0.7" + +if command -v tput >/dev/null && [[ -n "${TERM:-}" ]]; then + readonly IO_COLOR_RED="$(tput setaf 1)" + readonly IO_COLOR_GREEN="$(tput setaf 2)" + readonly IO_COLOR_YELLOW="$(tput setaf 3)" + readonly IO_COLOR_RESET="$(tput sgr0)" +else + readonly IO_COLOR_RED="" + readonly IO_COLOR_GREEN="" + readonly IO_COLOR_YELLOW="" + readonly IO_COLOR_RESET="" +fi + +function function_exists { + [ $(LC_ALL=C type -t $1)"" == "function" ] +} + +# Logs a message using the given color. The first argument must be one +# of the IO_COLOR_* variables defined above, such as +# "${IO_COLOR_YELLOW}". The remaining arguments will be logged in the +# given color. The log message will also have an RFC-3339 timestamp +# prepended (in UTC). You can disable the color output by setting +# TERM=vt100. +function log_impl() { + local color="$1" + shift + local timestamp="$(date -u "+%Y-%m-%dT%H:%M:%SZ")" + echo "================================================================" + echo "${color}${timestamp}:" "$@" "${IO_COLOR_RESET}" + echo "================================================================" +} + +# Logs the given message with normal coloring and a timestamp. +function log() { + log_impl "${IO_COLOR_RESET}" "$@" +} + +# Logs the given message in green with a timestamp. +function log_green() { + log_impl "${IO_COLOR_GREEN}" "$@" +} + +# Logs the given message in yellow with a timestamp. +function log_yellow() { + log_impl "${IO_COLOR_YELLOW}" "$@" +} + +# Logs the given message in red with a timestamp. +function log_red() { + log_impl "${IO_COLOR_RED}" "$@" +} + +readonly tmpdir=$(mktemp -d -t ci-XXXXXXXX) +readonly tmphome="${tmpdir}/h" +mkdir -p "${tmphome}" + +function cleanup() { + rm -rf "${tmpdir}" +} +trap cleanup EXIT + +RUNNING_IN_CI="${RUNNING_IN_CI:-false}" + +# The workspace in the container, defaults to /workspace. +TRAMPOLINE_WORKSPACE="${TRAMPOLINE_WORKSPACE:-/workspace}" + +pass_down_envvars=( + # TRAMPOLINE_V2 variables. + # Tells scripts whether they are running as part of CI or not. + "RUNNING_IN_CI" + # Indicates which CI system we're in. + "TRAMPOLINE_CI" + # Indicates the version of the script. + "TRAMPOLINE_VERSION" +) + +log_yellow "Building with Trampoline ${TRAMPOLINE_VERSION}" + +# Detect which CI systems we're in. If we're in any of the CI systems +# we support, `RUNNING_IN_CI` will be true and `TRAMPOLINE_CI` will be +# the name of the CI system. Both envvars will be passing down to the +# container for telling which CI system we're in. +if [[ -n "${KOKORO_BUILD_ID:-}" ]]; then + # descriptive env var for indicating it's on CI. + RUNNING_IN_CI="true" + TRAMPOLINE_CI="kokoro" + if [[ "${TRAMPOLINE_USE_LEGACY_SERVICE_ACCOUNT:-}" == "true" ]]; then + if [[ ! -f "${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json" ]]; then + log_red "${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json does not exist. Did you forget to mount cloud-devrel-kokoro-resources/trampoline? Aborting." + exit 1 + fi + # This service account will be activated later. + TRAMPOLINE_SERVICE_ACCOUNT="${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json" + else + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + gcloud auth list + fi + log_yellow "Configuring Container Registry access" + gcloud auth configure-docker --quiet + fi + pass_down_envvars+=( + # KOKORO dynamic variables. + "KOKORO_BUILD_NUMBER" + "KOKORO_BUILD_ID" + "KOKORO_JOB_NAME" + "KOKORO_GIT_COMMIT" + "KOKORO_GITHUB_COMMIT" + "KOKORO_GITHUB_PULL_REQUEST_NUMBER" + "KOKORO_GITHUB_PULL_REQUEST_COMMIT" + # For Build Cop Bot + "KOKORO_GITHUB_COMMIT_URL" + "KOKORO_GITHUB_PULL_REQUEST_URL" + ) +elif [[ "${TRAVIS:-}" == "true" ]]; then + RUNNING_IN_CI="true" + TRAMPOLINE_CI="travis" + pass_down_envvars+=( + "TRAVIS_BRANCH" + "TRAVIS_BUILD_ID" + "TRAVIS_BUILD_NUMBER" + "TRAVIS_BUILD_WEB_URL" + "TRAVIS_COMMIT" + "TRAVIS_COMMIT_MESSAGE" + "TRAVIS_COMMIT_RANGE" + "TRAVIS_JOB_NAME" + "TRAVIS_JOB_NUMBER" + "TRAVIS_JOB_WEB_URL" + "TRAVIS_PULL_REQUEST" + "TRAVIS_PULL_REQUEST_BRANCH" + "TRAVIS_PULL_REQUEST_SHA" + "TRAVIS_PULL_REQUEST_SLUG" + "TRAVIS_REPO_SLUG" + "TRAVIS_SECURE_ENV_VARS" + "TRAVIS_TAG" + ) +elif [[ -n "${GITHUB_RUN_ID:-}" ]]; then + RUNNING_IN_CI="true" + TRAMPOLINE_CI="github-workflow" + pass_down_envvars+=( + "GITHUB_WORKFLOW" + "GITHUB_RUN_ID" + "GITHUB_RUN_NUMBER" + "GITHUB_ACTION" + "GITHUB_ACTIONS" + "GITHUB_ACTOR" + "GITHUB_REPOSITORY" + "GITHUB_EVENT_NAME" + "GITHUB_EVENT_PATH" + "GITHUB_SHA" + "GITHUB_REF" + "GITHUB_HEAD_REF" + "GITHUB_BASE_REF" + ) +elif [[ "${CIRCLECI:-}" == "true" ]]; then + RUNNING_IN_CI="true" + TRAMPOLINE_CI="circleci" + pass_down_envvars+=( + "CIRCLE_BRANCH" + "CIRCLE_BUILD_NUM" + "CIRCLE_BUILD_URL" + "CIRCLE_COMPARE_URL" + "CIRCLE_JOB" + "CIRCLE_NODE_INDEX" + "CIRCLE_NODE_TOTAL" + "CIRCLE_PREVIOUS_BUILD_NUM" + "CIRCLE_PROJECT_REPONAME" + "CIRCLE_PROJECT_USERNAME" + "CIRCLE_REPOSITORY_URL" + "CIRCLE_SHA1" + "CIRCLE_STAGE" + "CIRCLE_USERNAME" + "CIRCLE_WORKFLOW_ID" + "CIRCLE_WORKFLOW_JOB_ID" + "CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS" + "CIRCLE_WORKFLOW_WORKSPACE_ID" + ) +fi + +# Configure the service account for pulling the docker image. +function repo_root() { + local dir="$1" + while [[ ! -d "${dir}/.git" ]]; do + dir="$(dirname "$dir")" + done + echo "${dir}" +} + +# Detect the project root. In CI builds, we assume the script is in +# the git tree and traverse from there, otherwise, traverse from `pwd` +# to find `.git` directory. +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + PROGRAM_PATH="$(realpath "$0")" + PROGRAM_DIR="$(dirname "${PROGRAM_PATH}")" + PROJECT_ROOT="$(repo_root "${PROGRAM_DIR}")" +else + PROJECT_ROOT="$(repo_root $(pwd))" +fi + +log_yellow "Changing to the project root: ${PROJECT_ROOT}." +cd "${PROJECT_ROOT}" + +# To support relative path for `TRAMPOLINE_SERVICE_ACCOUNT`, we need +# to use this environment variable in `PROJECT_ROOT`. +if [[ -n "${TRAMPOLINE_SERVICE_ACCOUNT:-}" ]]; then + + mkdir -p "${tmpdir}/gcloud" + gcloud_config_dir="${tmpdir}/gcloud" + + log_yellow "Using isolated gcloud config: ${gcloud_config_dir}." + export CLOUDSDK_CONFIG="${gcloud_config_dir}" + + log_yellow "Using ${TRAMPOLINE_SERVICE_ACCOUNT} for authentication." + gcloud auth activate-service-account \ + --key-file "${TRAMPOLINE_SERVICE_ACCOUNT}" + log_yellow "Configuring Container Registry access" + gcloud auth configure-docker --quiet +fi + +required_envvars=( + # The basic trampoline configurations. + "TRAMPOLINE_IMAGE" + "TRAMPOLINE_BUILD_FILE" +) + +if [[ -f "${PROJECT_ROOT}/.trampolinerc" ]]; then + source "${PROJECT_ROOT}/.trampolinerc" +fi + +log_yellow "Checking environment variables." +for e in "${required_envvars[@]}" +do + if [[ -z "${!e:-}" ]]; then + log "Missing ${e} env var. Aborting." + exit 1 + fi +done + +# We want to support legacy style TRAMPOLINE_BUILD_FILE used with V1 +# script: e.g. "github/repo-name/.kokoro/run_tests.sh" +TRAMPOLINE_BUILD_FILE="${TRAMPOLINE_BUILD_FILE#github/*/}" +log_yellow "Using TRAMPOLINE_BUILD_FILE: ${TRAMPOLINE_BUILD_FILE}" + +# ignore error on docker operations and test execution +set +e + +log_yellow "Preparing Docker image." +# We only download the docker image in CI builds. +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + # Download the docker image specified by `TRAMPOLINE_IMAGE` + + # We may want to add --max-concurrent-downloads flag. + + log_yellow "Start pulling the Docker image: ${TRAMPOLINE_IMAGE}." + if docker pull "${TRAMPOLINE_IMAGE}"; then + log_green "Finished pulling the Docker image: ${TRAMPOLINE_IMAGE}." + has_image="true" + else + log_red "Failed pulling the Docker image: ${TRAMPOLINE_IMAGE}." + has_image="false" + fi +else + # For local run, check if we have the image. + if docker images "${TRAMPOLINE_IMAGE}" | grep "${TRAMPOLINE_IMAGE%:*}"; then + has_image="true" + else + has_image="false" + fi +fi + + +# The default user for a Docker container has uid 0 (root). To avoid +# creating root-owned files in the build directory we tell docker to +# use the current user ID. +user_uid="$(id -u)" +user_gid="$(id -g)" +user_name="$(id -un)" + +# To allow docker in docker, we add the user to the docker group in +# the host os. +docker_gid=$(cut -d: -f3 < <(getent group docker)) + +update_cache="false" +if [[ "${TRAMPOLINE_DOCKERFILE:-none}" != "none" ]]; then + # Build the Docker image from the source. + context_dir=$(dirname "${TRAMPOLINE_DOCKERFILE}") + docker_build_flags=( + "-f" "${TRAMPOLINE_DOCKERFILE}" + "-t" "${TRAMPOLINE_IMAGE}" + "--build-arg" "UID=${user_uid}" + "--build-arg" "USERNAME=${user_name}" + ) + if [[ "${has_image}" == "true" ]]; then + docker_build_flags+=("--cache-from" "${TRAMPOLINE_IMAGE}") + fi + + log_yellow "Start building the docker image." + if [[ "${TRAMPOLINE_VERBOSE:-false}" == "true" ]]; then + echo "docker build" "${docker_build_flags[@]}" "${context_dir}" + fi + + # ON CI systems, we want to suppress docker build logs, only + # output the logs when it fails. + if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + if docker build "${docker_build_flags[@]}" "${context_dir}" \ + > "${tmpdir}/docker_build.log" 2>&1; then + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + cat "${tmpdir}/docker_build.log" + fi + + log_green "Finished building the docker image." + update_cache="true" + else + log_red "Failed to build the Docker image, aborting." + log_yellow "Dumping the build logs:" + cat "${tmpdir}/docker_build.log" + exit 1 + fi + else + if docker build "${docker_build_flags[@]}" "${context_dir}"; then + log_green "Finished building the docker image." + update_cache="true" + else + log_red "Failed to build the Docker image, aborting." + exit 1 + fi + fi +else + if [[ "${has_image}" != "true" ]]; then + log_red "We do not have ${TRAMPOLINE_IMAGE} locally, aborting." + exit 1 + fi +fi + +# We use an array for the flags so they are easier to document. +docker_flags=( + # Remove the container after it exists. + "--rm" + + # Use the host network. + "--network=host" + + # Run in priviledged mode. We are not using docker for sandboxing or + # isolation, just for packaging our dev tools. + "--privileged" + + # Run the docker script with the user id. Because the docker image gets to + # write in ${PWD} you typically want this to be your user id. + # To allow docker in docker, we need to use docker gid on the host. + "--user" "${user_uid}:${docker_gid}" + + # Pass down the USER. + "--env" "USER=${user_name}" + + # Mount the project directory inside the Docker container. + "--volume" "${PROJECT_ROOT}:${TRAMPOLINE_WORKSPACE}" + "--workdir" "${TRAMPOLINE_WORKSPACE}" + "--env" "PROJECT_ROOT=${TRAMPOLINE_WORKSPACE}" + + # Mount the temporary home directory. + "--volume" "${tmphome}:/h" + "--env" "HOME=/h" + + # Allow docker in docker. + "--volume" "/var/run/docker.sock:/var/run/docker.sock" + + # Mount the /tmp so that docker in docker can mount the files + # there correctly. + "--volume" "/tmp:/tmp" + # Pass down the KOKORO_GFILE_DIR and KOKORO_KEYSTORE_DIR + # TODO(tmatsuo): This part is not portable. + "--env" "TRAMPOLINE_SECRET_DIR=/secrets" + "--volume" "${KOKORO_GFILE_DIR:-/dev/shm}:/secrets/gfile" + "--env" "KOKORO_GFILE_DIR=/secrets/gfile" + "--volume" "${KOKORO_KEYSTORE_DIR:-/dev/shm}:/secrets/keystore" + "--env" "KOKORO_KEYSTORE_DIR=/secrets/keystore" +) + +# Add an option for nicer output if the build gets a tty. +if [[ -t 0 ]]; then + docker_flags+=("-it") +fi + +# Passing down env vars +for e in "${pass_down_envvars[@]}" +do + if [[ -n "${!e:-}" ]]; then + docker_flags+=("--env" "${e}=${!e}") + fi +done + +# If arguments are given, all arguments will become the commands run +# in the container, otherwise run TRAMPOLINE_BUILD_FILE. +if [[ $# -ge 1 ]]; then + log_yellow "Running the given commands '" "${@:1}" "' in the container." + readonly commands=("${@:1}") + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + echo docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" "${commands[@]}" + fi + docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" "${commands[@]}" +else + log_yellow "Running the tests in a Docker container." + docker_flags+=("--entrypoint=${TRAMPOLINE_BUILD_FILE}") + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + echo docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" + fi + docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" +fi + + +test_retval=$? + +if [[ ${test_retval} -eq 0 ]]; then + log_green "Build finished with ${test_retval}" +else + log_red "Build finished with ${test_retval}" +fi + +# Only upload it when the test passes. +if [[ "${update_cache}" == "true" ]] && \ + [[ $test_retval == 0 ]] && \ + [[ "${TRAMPOLINE_IMAGE_UPLOAD:-false}" == "true" ]]; then + log_yellow "Uploading the Docker image." + if docker push "${TRAMPOLINE_IMAGE}"; then + log_green "Finished uploading the Docker image." + else + log_red "Failed uploading the Docker image." + fi + # Call trampoline_after_upload_hook if it's defined. + if function_exists trampoline_after_upload_hook; then + trampoline_after_upload_hook + fi + +fi + +exit "${test_retval}" diff --git a/core/paginator/.trampolinerc b/core/paginator/.trampolinerc new file mode 100644 index 00000000000..164613b9e6a --- /dev/null +++ b/core/paginator/.trampolinerc @@ -0,0 +1,51 @@ +# Copyright 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 +# +# 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. + +# Template for .trampolinerc + +# Add required env vars here. +required_envvars+=( +) + +# Add env vars which are passed down into the container here. +pass_down_envvars+=( + "AUTORELEASE_PR" +) + +# Prevent unintentional override on the default image. +if [[ "${TRAMPOLINE_IMAGE_UPLOAD:-false}" == "true" ]] && \ + [[ -z "${TRAMPOLINE_IMAGE:-}" ]]; then + echo "Please set TRAMPOLINE_IMAGE if you want to upload the Docker image." + exit 1 +fi + +# Define the default value if it makes sense. +if [[ -z "${TRAMPOLINE_IMAGE_UPLOAD:-}" ]]; then + TRAMPOLINE_IMAGE_UPLOAD="" +fi + +if [[ -z "${TRAMPOLINE_IMAGE:-}" ]]; then + TRAMPOLINE_IMAGE="" +fi + +if [[ -z "${TRAMPOLINE_DOCKERFILE:-}" ]]; then + TRAMPOLINE_DOCKERFILE="" +fi + +if [[ -z "${TRAMPOLINE_BUILD_FILE:-}" ]]; then + TRAMPOLINE_BUILD_FILE="" +fi + +# Secret Manager secrets. +source ${PROJECT_ROOT}/.kokoro/populate-secrets.sh diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index b31a55425c7..70e12a7d23f 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "bb3740c976159deac327a265491896f7d79195b2" + "sha": "b88317196e5313fb2b26485982eaf7248f64d9e6" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "079dcce498117f9570cebe6e6cff254b38ba3860" + "sha": "0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9" } } ], @@ -54,10 +54,12 @@ ".kokoro/test.bat", ".kokoro/test.sh", ".kokoro/trampoline.sh", + ".kokoro/trampoline_v2.sh", ".mocharc.js", ".nycrc", ".prettierignore", ".prettierrc.js", + ".trampolinerc", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "LICENSE", From 1991c14e0b48ced7d5f8242c3694ddf77f07685c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Oct 2020 02:36:37 +0200 Subject: [PATCH 192/279] chore(deps): update dependency gts to v3 (#248) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [gts](https://togithub.com/google/gts) | devDependencies | major | [`^2.0.0` -> `^3.0.0`](https://renovatebot.com/diffs/npm/gts/2.0.2/3.0.0) | --- ### Release Notes
google/gts ### [`v3.0.0`](https://togithub.com/google/gts/blob/master/CHANGELOG.md#​300-httpswwwgithubcomgooglegtscomparev202v300-2020-10-08) [Compare Source](https://togithub.com/google/gts/compare/v2.0.2...v3.0.0) ##### ⚠ BREAKING CHANGES - change default `check` to `lint` ([#​570](https://togithub.com/google/gts/issues/570)) - **deps:** require TypeScript 4.x ([#​565](https://togithub.com/google/gts/issues/565)) ##### Features - Add TypeScript v4 support ([#​551](https://www.github.com/google/gts/issues/551)) ([0883956](https://www.github.com/google/gts/commit/08839565a1d2b4b39d532c9b0b596f01b18856fe)) - change default `check` to `lint` ([#​570](https://www.github.com/google/gts/issues/570)) ([c527b66](https://www.github.com/google/gts/commit/c527b66be1ef6a78ea14b3d29225a8d7fb7097bd)) - generate .eslintignore when running init ([#​521](https://www.github.com/google/gts/issues/521)) ([8bce036](https://www.github.com/google/gts/commit/8bce0368767f0c2ad7d0700deb839962bc928d16)) ##### Bug Fixes - add build/.eslintrc.json to files field ([#​553](https://www.github.com/google/gts/issues/553)) ([3b516ad](https://www.github.com/google/gts/commit/3b516ad5e9f0d58201dde469461db7c6ed1c1b78)) - **deps:** require TypeScript 4.x ([#​565](https://www.github.com/google/gts/issues/565)) ([cbc5267](https://www.github.com/google/gts/commit/cbc5267579ef24e8c8ceaa2ef794df3ef54ea56a)) - **deps:** update dependency update-notifier to v5 ([#​574](https://www.github.com/google/gts/issues/574)) ([9a882bf](https://www.github.com/google/gts/commit/9a882bf4ac30ad06e7b91a65ad5721d8e8b41c4b)) - **deps:** update typescript-eslint monorepo to v2.34.0 ([#​509](https://www.github.com/google/gts/issues/509)) ([998a4ac](https://www.github.com/google/gts/commit/998a4ac9b75c97f04d8e5db37563f32d31652f23)) - **deps:** update typescript-eslint monorepo to v3 (major) ([#​528](https://www.github.com/google/gts/issues/528)) ([e22e173](https://www.github.com/google/gts/commit/e22e17338db2ddb7eb829c821037c2f4e77ff869)) - **deps:** update typescript-eslint monorepo to v4 ([#​556](https://www.github.com/google/gts/issues/556)) ([54148df](https://www.github.com/google/gts/commit/54148dfbd8b5f8b36a0f44f901c5db933393a661)) - better error message for broken tsconfig.json ([#​501](https://www.github.com/google/gts/issues/501)) ([0c17a76](https://www.github.com/google/gts/commit/0c17a76c6650eee1d8abaff11a897a432eeaa65f)) - prohibit calls for it.only and describe.only ([#​499](https://www.github.com/google/gts/issues/499)) ([071c33c](https://www.github.com/google/gts/commit/071c33ceef0e3765166aaebf6ed4698167ac0f98)) ##### [2.0.2](https://www.github.com/google/gts/compare/v2.0.1...v2.0.2) (2020-05-11) ##### Bug Fixes - Revert 'update dependency eslint to v7'" ([#​507](https://www.github.com/google/gts/issues/507)) ([0f9950b](https://www.github.com/google/gts/commit/0f9950b273329dbcce5f3cc20864c3dcd076f08c)) - **deps:** pin release of eslint-typescript ([#​508](https://www.github.com/google/gts/issues/508)) ([bd86b42](https://www.github.com/google/gts/commit/bd86b42e2bb904d3765dee82262e4691a11b9958)) - **deps:** update dependency eslint to v7 ([#​504](https://www.github.com/google/gts/issues/504)) ([6aee159](https://www.github.com/google/gts/commit/6aee1595d0486ae2c7fd68d16b1b59c4c4015753)) ##### [2.0.1](https://www.github.com/google/gts/compare/v2.0.0...v2.0.1) (2020-05-07) ##### Bug Fixes - throw an error if running with an unsupported version of nodejs ([#​493](https://www.github.com/google/gts/issues/493)) ([94fdf1e](https://www.github.com/google/gts/commit/94fdf1eaed634aa73c3e44c7a3d9f1325f773b07)) - **deps:** update dependency meow to v7 ([#​502](https://www.github.com/google/gts/issues/502)) ([cf91cda](https://www.github.com/google/gts/commit/cf91cda1afab25759427511d3c97d0037d61c649))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index e5b4f7bb617..ff621b212db 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -41,7 +41,7 @@ "@types/uuid": "^8.0.0", "c8": "^7.0.0", "codecov": "^3.0.4", - "gts": "^2.0.0", + "gts": "^3.0.0", "linkinator": "^2.0.0", "mocha": "^8.0.0", "proxyquire": "^2.0.1", From 960403659d0b545e6278771877eeb8527ff3c519 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 16 Oct 2020 10:08:30 -0700 Subject: [PATCH 193/279] build: only check --engine-strict for production deps (#249) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/05b05b53-a254-4e87-acf9-e9bae7f17a4e/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/5451633881133e5573cc271a18e73b18caca8b1b --- core/paginator/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 70e12a7d23f..7c961c81a64 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "b88317196e5313fb2b26485982eaf7248f64d9e6" + "sha": "a688d6962c21f2ce0d7ff204dddab43ea80f3bf0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9" + "sha": "5451633881133e5573cc271a18e73b18caca8b1b" } } ], From 9840508d23d4b74424f953484ec1cb52fdcddc37 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 21 Oct 2020 16:14:36 -0700 Subject: [PATCH 194/279] chore: clean up Node.js TOC for cloud-rad (#250) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/53e2a61c-af19-4be7-b9af-c352b89a29fb/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/901ddd44e9ef7887ee681b9183bbdea99437fdcc Source-Link: https://github.com/googleapis/synthtool/commit/f96d3b455fe27c3dc7bc37c3c9cd27b1c6d269c8 --- core/paginator/.kokoro/release/docs-devsite.sh | 4 ++++ core/paginator/synth.metadata | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index 0d11b7ae951..7657be3377a 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -37,9 +37,13 @@ NAME=$(cat .repo-metadata.json | json name) mkdir ./_devsite cp ./yaml/$NAME/* ./_devsite +# Clean up TOC # Delete SharePoint item, see https://github.com/microsoft/rushstack/issues/1229 sed -i -e '1,3d' ./yaml/toc.yml sed -i -e 's/^ //' ./yaml/toc.yml +# Delete interfaces from TOC (name and uid) +sed -i -e '/name: I[A-Z]/{N;d;}' ./yaml/toc.yml +sed -i -e '/^ *\@google-cloud.*:interface/d' ./yaml/toc.yml cp ./yaml/toc.yml ./_devsite/toc.yml diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 7c961c81a64..0391cd151de 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "a688d6962c21f2ce0d7ff204dddab43ea80f3bf0" + "sha": "210defa79f0a73731f41b6ed1ed5dd0d4876e87d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5451633881133e5573cc271a18e73b18caca8b1b" + "sha": "901ddd44e9ef7887ee681b9183bbdea99437fdcc" } } ], From cf7d6fcc6f550aa801e168082c387cc90d917c8e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 2 Nov 2020 09:16:32 -0800 Subject: [PATCH 195/279] docs: updated code of conduct (includes update to actions) (#253) * chore(docs): update code of conduct of synthtool and templates Source-Author: Christopher Wilcox Source-Date: Thu Oct 22 14:22:01 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 5f6ef0ec5501d33c4667885b37a7685a30d41a76 Source-Link: https://github.com/googleapis/synthtool/commit/5f6ef0ec5501d33c4667885b37a7685a30d41a76 * build(node): update testing matrix Source-Author: Benjamin E. Coe Source-Date: Thu Oct 22 22:32:52 2020 -0500 Source-Repo: googleapis/synthtool Source-Sha: b7413d38b763827c72c0360f0a3d286c84656eeb Source-Link: https://github.com/googleapis/synthtool/commit/b7413d38b763827c72c0360f0a3d286c84656eeb * build(node): don't run prepare during smoke test Source-Author: Benjamin E. Coe Source-Date: Fri Oct 23 17:27:51 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: a783321fd55f010709294455584a553f4b24b944 Source-Link: https://github.com/googleapis/synthtool/commit/a783321fd55f010709294455584a553f4b24b944 * build(node): cleanup production deps before installing dev/production Source-Author: Benjamin E. Coe Source-Date: Mon Oct 26 10:37:03 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 89c849ba5013e45e8fb688b138f33c2ec6083dc5 Source-Link: https://github.com/googleapis/synthtool/commit/89c849ba5013e45e8fb688b138f33c2ec6083dc5 --- core/paginator/CODE_OF_CONDUCT.md | 123 +++++++++++++++++++++--------- core/paginator/synth.metadata | 4 +- 2 files changed, 89 insertions(+), 38 deletions(-) diff --git a/core/paginator/CODE_OF_CONDUCT.md b/core/paginator/CODE_OF_CONDUCT.md index 46b2a08ea6d..2add2547a81 100644 --- a/core/paginator/CODE_OF_CONDUCT.md +++ b/core/paginator/CODE_OF_CONDUCT.md @@ -1,43 +1,94 @@ -# Contributor Code of Conduct + +# Code of Conduct -As contributors and maintainers of this project, -and in the interest of fostering an open and welcoming community, -we pledge to respect all people who contribute through reporting issues, -posting feature requests, updating documentation, -submitting pull requests or patches, and other activities. +## Our Pledge -We are committed to making participation in this project -a harassment-free experience for everyone, -regardless of level of experience, gender, gender identity and expression, -sexual orientation, disability, personal appearance, -body size, race, ethnicity, age, religion, or nationality. +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 -* Personal attacks -* Trolling or insulting/derogatory comments -* Public or private harassment -* Publishing other's private information, -such as physical or electronic -addresses, without explicit permission -* Other unethical or unprofessional conduct. +* 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. -By adopting this Code of Conduct, -project maintainers commit themselves to fairly and consistently -applying these principles to every aspect of managing this project. -Project maintainers who do not follow or enforce the Code of Conduct -may be permanently removed from the project team. - -This code of conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. - -Instances of abusive, harassing, or otherwise unacceptable behavior -may be reported by opening an issue -or contacting one or more of the project maintainers. - -This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, -available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) +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/core/paginator/synth.metadata b/core/paginator/synth.metadata index 0391cd151de..45792cd1ffc 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "210defa79f0a73731f41b6ed1ed5dd0d4876e87d" + "sha": "b5c56b5399df1310d8f95fcbebd7abe47eb4b203" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "901ddd44e9ef7887ee681b9183bbdea99437fdcc" + "sha": "89c849ba5013e45e8fb688b138f33c2ec6083dc5" } } ], From e7c847ede7b42523b01a7c64462876d353e6c0f0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 2 Nov 2020 15:58:54 -0800 Subject: [PATCH 196/279] build(node): add KOKORO_BUILD_ARTIFACTS_SUBDIR to env (#254) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/2b12f6c9-10d8-4a5e-b86e-af5827858559/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/ba9918cd22874245b55734f57470c719b577e591 --- core/paginator/.kokoro/trampoline_v2.sh | 2 ++ core/paginator/synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/paginator/.kokoro/trampoline_v2.sh b/core/paginator/.kokoro/trampoline_v2.sh index 5ae75f977d7..606d4321458 100755 --- a/core/paginator/.kokoro/trampoline_v2.sh +++ b/core/paginator/.kokoro/trampoline_v2.sh @@ -125,6 +125,8 @@ pass_down_envvars=( "TRAMPOLINE_CI" # Indicates the version of the script. "TRAMPOLINE_VERSION" + # Contains path to build artifacts being executed. + "KOKORO_BUILD_ARTIFACTS_SUBDIR" ) log_yellow "Building with Trampoline ${TRAMPOLINE_VERSION}" diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 45792cd1ffc..faaa31162da 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "b5c56b5399df1310d8f95fcbebd7abe47eb4b203" + "sha": "f813af4685276bfe663763a7982071af5c190580" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "89c849ba5013e45e8fb688b138f33c2ec6083dc5" + "sha": "ba9918cd22874245b55734f57470c719b577e591" } } ], From fdf25456eed572164e8f29585b6ee41b9c76a387 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Nov 2020 08:34:32 -0800 Subject: [PATCH 197/279] docs: spelling correction for "targetting" (#255) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/0d9476f5-156e-4a9b-9f97-94473eb544b9/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/15013eff642a7e7e855aed5a29e6e83c39beba2a --- core/paginator/README.md | 2 +- core/paginator/synth.metadata | 57 ++--------------------------------- 2 files changed, 3 insertions(+), 56 deletions(-) diff --git a/core/paginator/README.md b/core/paginator/README.md index 4dc9e953243..142782f0eaf 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -77,7 +77,7 @@ Our client libraries follow the [Node.js release schedule](https://nodejs.org/en Libraries are compatible with all current _active_ and _maintenance_ versions of Node.js. -Client libraries targetting some end-of-life versions of Node.js are available, and +Client libraries targeting some end-of-life versions of Node.js are available, and can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). The dist-tags follow the naming convention `legacy-(version)`. diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index faaa31162da..19b5f8ac695 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,68 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "f813af4685276bfe663763a7982071af5c190580" + "sha": "40ae2516dd8bc6d0ee680ac85e44aa1c8ade6552" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ba9918cd22874245b55734f57470c719b577e591" + "sha": "15013eff642a7e7e855aed5a29e6e83c39beba2a" } } - ], - "generatedFiles": [ - ".eslintignore", - ".eslintrc.json", - ".gitattributes", - ".github/ISSUE_TEMPLATE/bug_report.md", - ".github/ISSUE_TEMPLATE/feature_request.md", - ".github/ISSUE_TEMPLATE/support_request.md", - ".github/PULL_REQUEST_TEMPLATE.md", - ".github/release-please.yml", - ".github/workflows/ci.yaml", - ".kokoro/.gitattributes", - ".kokoro/common.cfg", - ".kokoro/continuous/node10/common.cfg", - ".kokoro/continuous/node10/docs.cfg", - ".kokoro/continuous/node10/test.cfg", - ".kokoro/continuous/node12/common.cfg", - ".kokoro/continuous/node12/lint.cfg", - ".kokoro/continuous/node12/samples-test.cfg", - ".kokoro/continuous/node12/system-test.cfg", - ".kokoro/continuous/node12/test.cfg", - ".kokoro/docs.sh", - ".kokoro/lint.sh", - ".kokoro/populate-secrets.sh", - ".kokoro/presubmit/node10/common.cfg", - ".kokoro/presubmit/node12/common.cfg", - ".kokoro/presubmit/node12/samples-test.cfg", - ".kokoro/presubmit/node12/system-test.cfg", - ".kokoro/presubmit/node12/test.cfg", - ".kokoro/publish.sh", - ".kokoro/release/docs-devsite.cfg", - ".kokoro/release/docs-devsite.sh", - ".kokoro/release/docs.cfg", - ".kokoro/release/docs.sh", - ".kokoro/release/publish.cfg", - ".kokoro/samples-test.sh", - ".kokoro/system-test.sh", - ".kokoro/test.bat", - ".kokoro/test.sh", - ".kokoro/trampoline.sh", - ".kokoro/trampoline_v2.sh", - ".mocharc.js", - ".nycrc", - ".prettierignore", - ".prettierrc.js", - ".trampolinerc", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "LICENSE", - "README.md", - "api-extractor.json", - "renovate.json", - "samples/README.md" ] } \ No newline at end of file From 7560aa2fc3dae532f8ae7605e704532b49335ab8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 22 Dec 2020 11:46:19 -0800 Subject: [PATCH 198/279] docs: add instructions for authenticating for system tests (#256) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/28ef5920-505e-44eb-bad6-0e53fa99adef/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/363fe305e9ce34a6cd53951c6ee5f997094b54ee --- core/paginator/CONTRIBUTING.md | 13 +++++++++++-- core/paginator/README.md | 3 +-- core/paginator/synth.metadata | 4 ++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/core/paginator/CONTRIBUTING.md b/core/paginator/CONTRIBUTING.md index f6c4cf010e3..72c44cada5e 100644 --- a/core/paginator/CONTRIBUTING.md +++ b/core/paginator/CONTRIBUTING.md @@ -37,6 +37,13 @@ accept your pull requests. 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. [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]. @@ -51,11 +58,9 @@ accept your pull requests. npm test # Run sample integration tests. - gcloud auth application-default login npm run samples-test # Run all system tests. - gcloud auth application-default login npm run system-test 1. Lint (and maybe fix) any changes: @@ -63,3 +68,7 @@ accept your pull requests. 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 + +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/core/paginator/README.md b/core/paginator/README.md index 142782f0eaf..25f50c637da 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -59,8 +59,7 @@ console.log(paginator); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-paginator/tree/master/samples) directory. The samples' `README.md` -has instructions for running the samples. +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-paginator/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 19b5f8ac695..2b2c4a2f0d2 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "40ae2516dd8bc6d0ee680ac85e44aa1c8ade6552" + "sha": "ab7da29ab263096d6ad45d3026b75f0a4ef1e980" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "15013eff642a7e7e855aed5a29e6e83c39beba2a" + "sha": "363fe305e9ce34a6cd53951c6ee5f997094b54ee" } } ] From 93a018bc400fbadba44534ead3a66eaf9a5a1336 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 27 Jan 2021 08:42:09 -0800 Subject: [PATCH 199/279] refactor(nodejs): move build cop to flakybot (#258) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/79ba0372-ded2-4df4-829f-0c53e04a7c6d/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/57c23fa5705499a4181095ced81f0ee0933b64f6 --- core/paginator/.kokoro/samples-test.sh | 6 +++--- core/paginator/.kokoro/system-test.sh | 6 +++--- core/paginator/.kokoro/test.sh | 6 +++--- core/paginator/.kokoro/trampoline_v2.sh | 2 +- core/paginator/synth.metadata | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index bab7ba4e967..950f8483428 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -39,14 +39,14 @@ if [ -f samples/package.json ]; then npm link ../ npm install cd .. - # If tests are running against master, configure Build Cop + # If tests are running against master, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { - chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop - $KOKORO_GFILE_DIR/linux_amd64/buildcop + chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot + $KOKORO_GFILE_DIR/linux_amd64/flakybot } trap cleanup EXIT HUP fi diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 8a08400484a..319d1e0eda8 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -33,14 +33,14 @@ fi npm install -# If tests are running against master, configure Build Cop +# If tests are running against master, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { - chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop - $KOKORO_GFILE_DIR/linux_amd64/buildcop + chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot + $KOKORO_GFILE_DIR/linux_amd64/flakybot } trap cleanup EXIT HUP fi diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 5be385fef64..5d6383fcb78 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -21,14 +21,14 @@ export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. npm install -# If tests are running against master, configure Build Cop +# If tests are running against master, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { - chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop - $KOKORO_GFILE_DIR/linux_amd64/buildcop + chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot + $KOKORO_GFILE_DIR/linux_amd64/flakybot } trap cleanup EXIT HUP fi diff --git a/core/paginator/.kokoro/trampoline_v2.sh b/core/paginator/.kokoro/trampoline_v2.sh index 606d4321458..4d03112128a 100755 --- a/core/paginator/.kokoro/trampoline_v2.sh +++ b/core/paginator/.kokoro/trampoline_v2.sh @@ -162,7 +162,7 @@ if [[ -n "${KOKORO_BUILD_ID:-}" ]]; then "KOKORO_GITHUB_COMMIT" "KOKORO_GITHUB_PULL_REQUEST_NUMBER" "KOKORO_GITHUB_PULL_REQUEST_COMMIT" - # For Build Cop Bot + # For flakybot "KOKORO_GITHUB_COMMIT_URL" "KOKORO_GITHUB_PULL_REQUEST_URL" ) diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 2b2c4a2f0d2..fa9b8038f09 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "ab7da29ab263096d6ad45d3026b75f0a4ef1e980" + "sha": "a53561c6969507037663797b47aa3846037fcb66" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "363fe305e9ce34a6cd53951c6ee5f997094b54ee" + "sha": "57c23fa5705499a4181095ced81f0ee0933b64f6" } } ] From 946704eb4e4e2345ec6bb7652c864404f0960eac Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 20 Apr 2021 10:42:09 -0700 Subject: [PATCH 200/279] chore: regenerate common templates (#260) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/a2b9b6b0-6911-4d73-92bd-3c9c35909e3f/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/c6706ee5d693e9ae5967614170732646590d8374 Source-Link: https://github.com/googleapis/synthtool/commit/b33b0e2056a85fc2264b294f2cf47dcd45e95186 Source-Link: https://github.com/googleapis/synthtool/commit/898b38a6f4fab89a76dfb152480bb034a781331b --- core/paginator/.kokoro/release/publish.cfg | 40 ---------------------- core/paginator/synth.metadata | 4 +-- 2 files changed, 2 insertions(+), 42 deletions(-) diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 26515570b18..16541dbbb67 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -1,23 +1,3 @@ -# Get npm token from Keystore -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "google_cloud_npm_token" - backend_type: FASTCONFIGPUSH - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - } - } -} - before_action { fetch_keystore { keystore_resource { @@ -27,26 +7,6 @@ before_action { } } -# Fetch magictoken to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "releasetool-magictoken" - } - } -} - -# Fetch api key to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "magic-github-proxy-api-key" - } - } -} - env_vars: { key: "SECRET_MANAGER_KEYS" value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index fa9b8038f09..7333c73b67e 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "a53561c6969507037663797b47aa3846037fcb66" + "sha": "4564e4440cf986cb0ed7f32cfd631cd83b8a7ec2" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "57c23fa5705499a4181095ced81f0ee0933b64f6" + "sha": "c6706ee5d693e9ae5967614170732646590d8374" } } ] From 81155304b4440ec6ea2000dbb93dd1ad5548477f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 28 Apr 2021 17:24:42 -0700 Subject: [PATCH 201/279] build: add generated-files bot config (#262) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/fabd7fa1-c70f-4507-9b25-fa3295c7ffbf/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/e6f3d54be015a394b6ab5a25903ec09062a2b424 Source-Link: https://github.com/googleapis/synthtool/commit/04573fd73f56791c659832aa84d35a4ec860d6f7 --- core/paginator/.github/generated-files-bot.yml | 13 +++++++++++++ core/paginator/synth.metadata | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 core/paginator/.github/generated-files-bot.yml diff --git a/core/paginator/.github/generated-files-bot.yml b/core/paginator/.github/generated-files-bot.yml new file mode 100644 index 00000000000..1b3ef1c7837 --- /dev/null +++ b/core/paginator/.github/generated-files-bot.yml @@ -0,0 +1,13 @@ +generatedFiles: +- path: '.kokoro/**' + message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: '.github/CODEOWNERS' + message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' +- path: '.github/workflows/**' + message: '`.github/workflows` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: '.github/generated-files-bot.+(yml|yaml)' + message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: 'README.md' + message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' +- path: 'samples/README.md' + message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata index 7333c73b67e..0ebcc8ab2ea 100644 --- a/core/paginator/synth.metadata +++ b/core/paginator/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "4564e4440cf986cb0ed7f32cfd631cd83b8a7ec2" + "sha": "853698bef50f64cfbd5dbb247bfc94b63ef79f03" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c6706ee5d693e9ae5967614170732646590d8374" + "sha": "e6f3d54be015a394b6ab5a25903ec09062a2b424" } } ] From 5965b2a35402517d4cb28cbc369a41a307b92774 Mon Sep 17 00:00:00 2001 From: Jeffrey Rennie Date: Thu, 20 May 2021 15:03:41 -0700 Subject: [PATCH 202/279] chore: migrate to owl bot (#267) * chore: migrate to owl bot * chore: copy files from googleapis-gen 397c0bfd367a2427104f988d5329bc117caafd95 * chore: run the post processor * fix: lint --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++++ core/paginator/.github/.OwlBot.yaml | 19 +++++++++++++++++++ .../paginator/.github/generated-files-bot.yml | 3 +++ core/paginator/synth.metadata | 18 ------------------ core/paginator/synth.py | 13 ------------- core/paginator/test/index.ts | 4 ++-- 6 files changed, 28 insertions(+), 33 deletions(-) create mode 100644 core/paginator/.github/.OwlBot.lock.yaml create mode 100644 core/paginator/.github/.OwlBot.yaml delete mode 100644 core/paginator/synth.metadata delete mode 100644 core/paginator/synth.py diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml new file mode 100644 index 00000000000..6e5f21ef17f --- /dev/null +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -0,0 +1,4 @@ +docker: + digest: sha256:f556e6e7be625deb1b2429fe608df27be57185c3e6b7d39ee0059f1609f17530 + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + diff --git a/core/paginator/.github/.OwlBot.yaml b/core/paginator/.github/.OwlBot.yaml new file mode 100644 index 00000000000..3a281cc95b7 --- /dev/null +++ b/core/paginator/.github/.OwlBot.yaml @@ -0,0 +1,19 @@ +# 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. +docker: + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + + +begin-after-commit-hash: 397c0bfd367a2427104f988d5329bc117caafd95 + diff --git a/core/paginator/.github/generated-files-bot.yml b/core/paginator/.github/generated-files-bot.yml index 1b3ef1c7837..6b04910c0fb 100644 --- a/core/paginator/.github/generated-files-bot.yml +++ b/core/paginator/.github/generated-files-bot.yml @@ -11,3 +11,6 @@ generatedFiles: message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' - path: 'samples/README.md' message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' +ignoreAuthors: +- 'gcf-owl-bot[bot]' +- 'yoshi-automation' diff --git a/core/paginator/synth.metadata b/core/paginator/synth.metadata deleted file mode 100644 index 0ebcc8ab2ea..00000000000 --- a/core/paginator/synth.metadata +++ /dev/null @@ -1,18 +0,0 @@ -{ - "sources": [ - { - "git": { - "name": ".", - "remote": "https://github.com/googleapis/nodejs-paginator.git", - "sha": "853698bef50f64cfbd5dbb247bfc94b63ef79f03" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e6f3d54be015a394b6ab5a25903ec09062a2b424" - } - } - ] -} \ No newline at end of file diff --git a/core/paginator/synth.py b/core/paginator/synth.py deleted file mode 100644 index d7e1a674b42..00000000000 --- a/core/paginator/synth.py +++ /dev/null @@ -1,13 +0,0 @@ -import synthtool as s -import synthtool.gcp as gcp -import synthtool.languages.node as node -import logging -logging.basicConfig(level=logging.DEBUG) - -AUTOSYNTH_MULTIPLE_COMMITS = True - -common_templates = gcp.CommonTemplates() -templates = common_templates.node_library() -s.copy(templates) -node.install() -node.fix() diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 3e539fe04f5..8b4ac3ff7b5 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -477,10 +477,10 @@ describe('paginator', () => { it('should create a resource stream', () => { const fakeArgs = {}; const fakeFn = sandbox.spy(); - const stream = (p.paginator.runAsStream_( + const stream = p.paginator.runAsStream_( fakeArgs, fakeFn - ) as unknown) as FakeResourceStream; + ) as unknown as FakeResourceStream; assert(stream instanceof FakeResourceStream); const [args, requestFn] = stream.calledWith; From 5a20f593c527f8380a2a50cb33b0c7f70261eb5b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 21 May 2021 19:06:22 +0200 Subject: [PATCH 203/279] chore(deps): update dependency @types/node to v14 (#269) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^10.5.2` -> `^14.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/10.17.60/14.17.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/compatibility-slim/10.17.60)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/confidence-slim/10.17.60)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index ff621b212db..fd23cdc3cef 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -35,7 +35,7 @@ "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", "@types/mocha": "^8.0.0", - "@types/node": "^10.5.2", + "@types/node": "^14.0.0", "@types/proxyquire": "^1.3.28", "@types/sinon": "^9.0.0", "@types/uuid": "^8.0.0", From ec6595141e148392ad028eee94ba4fd1b8d74c62 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 May 2021 00:04:50 +0200 Subject: [PATCH 204/279] chore(deps): update dependency sinon to v10 (#261) Co-authored-by: Benjamin E. Coe Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index fd23cdc3cef..8edca504e26 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -37,7 +37,7 @@ "@types/mocha": "^8.0.0", "@types/node": "^14.0.0", "@types/proxyquire": "^1.3.28", - "@types/sinon": "^9.0.0", + "@types/sinon": "^10.0.0", "@types/uuid": "^8.0.0", "c8": "^7.0.0", "codecov": "^3.0.4", @@ -45,7 +45,7 @@ "linkinator": "^2.0.0", "mocha": "^8.0.0", "proxyquire": "^2.0.1", - "sinon": "^9.0.0", + "sinon": "^10.0.0", "typescript": "^3.8.3", "uuid": "^8.0.0", "@microsoft/api-documenter": "^7.8.10", From 1c6419fee301d5581e14b086a56d3aefe4ed478a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 May 2021 17:56:30 +0200 Subject: [PATCH 205/279] chore(deps): update dependency sinon to v11 (#270) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^10.0.0` -> `^11.0.0`](https://renovatebot.com/diffs/npm/sinon/10.0.0/11.1.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v11.1.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1110--2021-05-25) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v11.0.0...31be9a5d5a4762ef01cb195f29024616dfee9ce8) \================== - Add sinon.promise() implementation ([#​2369](https://togithub.com/sinonjs/sinon/issues/2369)) - Set wrappedMethod on getters/setters ([#​2378](https://togithub.com/sinonjs/sinon/issues/2378)) - \[Docs] Update fake-server usage & descriptions ([#​2365](https://togithub.com/sinonjs/sinon/issues/2365)) - Fake docs improvement ([#​2360](https://togithub.com/sinonjs/sinon/issues/2360)) - Update nise to 5.1.0 (fixed [#​2318](https://togithub.com/sinonjs/sinon/issues/2318)) ### [`v11.0.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1100--2021-05-24) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v10.0.1...v11.0.0) \================== - Explicitly use samsam 6.0.2 with fix for [#​2345](https://togithub.com/sinonjs/sinon/issues/2345) - Update most packages ([#​2371](https://togithub.com/sinonjs/sinon/issues/2371)) - Update compatibility docs ([#​2366](https://togithub.com/sinonjs/sinon/issues/2366)) - Update packages (includes breaking fake-timers change, see [#​2352](https://togithub.com/sinonjs/sinon/issues/2352)) - Warn of potential memory leaks ([#​2357](https://togithub.com/sinonjs/sinon/issues/2357)) - Fix clock test errors ### [`v10.0.1`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1001--2021-04-08) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v10.0.0...v10.0.1) \================== - Upgrade sinon components (bumps y18n to 4.0.1) - Bump y18n from 4.0.0 to 4.0.1
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 8edca504e26..732b6920bcf 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -45,7 +45,7 @@ "linkinator": "^2.0.0", "mocha": "^8.0.0", "proxyquire": "^2.0.1", - "sinon": "^10.0.0", + "sinon": "^11.0.0", "typescript": "^3.8.3", "uuid": "^8.0.0", "@microsoft/api-documenter": "^7.8.10", From eb838b961f3daf432432a27856dcd4217ed78d64 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Tue, 25 May 2021 10:53:23 -0700 Subject: [PATCH 206/279] sample: sample for streamify (#271) --- core/paginator/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/core/paginator/README.md b/core/paginator/README.md index 25f50c637da..215be6d7734 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -64,6 +64,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/nodejs-paginator/t | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | | Quickstart | [source code](https://github.com/googleapis/nodejs-paginator/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | +| Streamify | [source code](https://github.com/googleapis/nodejs-paginator/blob/master/samples/streamify.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/streamify.js,samples/README.md) | From 935d653ca2f452c28571dedaf98829c22af8e043 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 7 Jun 2021 19:04:16 +0000 Subject: [PATCH 207/279] chore: Report warning on `.github/workflows/ci.yaml` (#272) * fix: Report warning on `.github/workflows/ci.yaml` Not all files in `.github/workflows` are managed, only `ci.yaml`. Related false-positive: https://github.com/googleapis/repo-automation-bots/pull/1952#issuecomment-856142886 * fix: Report warning on `.github/workflows/ci.yaml` Not all files in `.github/workflows` are managed, only `ci.yaml`. Source-Link: https://github.com/googleapis/synthtool/commit/2430f8d90ed8a508e8422a3a7191e656d5a6bf53 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:14aaee566d6fc07716bb92da416195156e47a4777e7d1cd2bb3e28c46fe30fe2 --- core/paginator/.github/.OwlBot.lock.yaml | 5 ++--- core/paginator/.github/generated-files-bot.yml | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 6e5f21ef17f..3a93af921f1 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,4 +1,3 @@ docker: - digest: sha256:f556e6e7be625deb1b2429fe608df27be57185c3e6b7d39ee0059f1609f17530 - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + digest: sha256:14aaee566d6fc07716bb92da416195156e47a4777e7d1cd2bb3e28c46fe30fe2 diff --git a/core/paginator/.github/generated-files-bot.yml b/core/paginator/.github/generated-files-bot.yml index 6b04910c0fb..7bb7ce54c58 100644 --- a/core/paginator/.github/generated-files-bot.yml +++ b/core/paginator/.github/generated-files-bot.yml @@ -3,8 +3,8 @@ generatedFiles: message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: '.github/CODEOWNERS' message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' -- path: '.github/workflows/**' - message: '`.github/workflows` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: '.github/workflows/ci.yaml' + message: '`.github/workflows/ci.yaml` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: '.github/generated-files-bot.+(yml|yaml)' message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: 'README.md' From a02d232d68fc34a183564cb3809e21a2b97c3739 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 19:24:42 +0000 Subject: [PATCH 208/279] chore(nodejs): use cloud-rad publication process (#1112) (#274) VERSION is used in @google-cloud/cloud-rad to publish ref docs for a particular version. Pass VERSION in via Stubby or Fusion. Source-Link: https://github.com/googleapis/synthtool/commit/740366bbb9a7e0f4b77fc75dc26be1d3a376c3e0 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:bbdd52de226c00df3356cdf25460397b429ab49552becca645adbc412f6a4ed5 --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- .../.kokoro/release/docs-devsite.cfg | 2 +- .../paginator/.kokoro/release/docs-devsite.sh | 48 ++----------------- core/paginator/.trampolinerc | 3 +- 4 files changed, 7 insertions(+), 48 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 3a93af921f1..f6467c3a493 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:14aaee566d6fc07716bb92da416195156e47a4777e7d1cd2bb3e28c46fe30fe2 + digest: sha256:bbdd52de226c00df3356cdf25460397b429ab49552becca645adbc412f6a4ed5 diff --git a/core/paginator/.kokoro/release/docs-devsite.cfg b/core/paginator/.kokoro/release/docs-devsite.cfg index c28f6da0021..551691d35c3 100644 --- a/core/paginator/.kokoro/release/docs-devsite.cfg +++ b/core/paginator/.kokoro/release/docs-devsite.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } # Download trampoline resources. diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index 7657be3377a..2198e67fe92 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2019 Google LLC +# 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. @@ -16,7 +16,6 @@ set -eo pipefail -# build jsdocs (Python is installed on the Node 10 docker image). if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. @@ -25,47 +24,6 @@ if [[ -z "$CREDENTIALS" ]]; then cd $(dirname $0)/../.. fi -mkdir ./etc - npm install -npm run api-extractor -npm run api-documenter - -npm i json@9.0.6 -g -NAME=$(cat .repo-metadata.json | json name) - -mkdir ./_devsite -cp ./yaml/$NAME/* ./_devsite - -# Clean up TOC -# Delete SharePoint item, see https://github.com/microsoft/rushstack/issues/1229 -sed -i -e '1,3d' ./yaml/toc.yml -sed -i -e 's/^ //' ./yaml/toc.yml -# Delete interfaces from TOC (name and uid) -sed -i -e '/name: I[A-Z]/{N;d;}' ./yaml/toc.yml -sed -i -e '/^ *\@google-cloud.*:interface/d' ./yaml/toc.yml - -cp ./yaml/toc.yml ./_devsite/toc.yml - -# create docs.metadata, based on package.json and .repo-metadata.json. -pip install -U pip -python3 -m pip install --user gcp-docuploader -python3 -m docuploader create-metadata \ - --name=$NAME \ - --version=$(cat package.json | json version) \ - --language=$(cat .repo-metadata.json | json language) \ - --distribution-name=$(cat .repo-metadata.json | json distribution_name) \ - --product-page=$(cat .repo-metadata.json | json product_documentation) \ - --github-repository=$(cat .repo-metadata.json | json repo) \ - --issue-tracker=$(cat .repo-metadata.json | json issue_tracker) -cp docs.metadata ./_devsite/docs.metadata - -# deploy the docs. -if [[ -z "$CREDENTIALS" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi -if [[ -z "$BUCKET" ]]; then - BUCKET=docs-staging-v2 -fi - -python3 -m docuploader upload ./_devsite --destination-prefix docfx --credentials $CREDENTIALS --staging-bucket $BUCKET +npm install --no-save @google-cloud/cloud-rad@^0.2.5 +npx @google-cloud/cloud-rad \ No newline at end of file diff --git a/core/paginator/.trampolinerc b/core/paginator/.trampolinerc index 164613b9e6a..d4fcb894483 100644 --- a/core/paginator/.trampolinerc +++ b/core/paginator/.trampolinerc @@ -20,7 +20,8 @@ required_envvars+=( # Add env vars which are passed down into the container here. pass_down_envvars+=( - "AUTORELEASE_PR" + "AUTORELEASE_PR", + "VERSION" ) # Prevent unintentional override on the default image. From 3e75c1da4e59d4c914ad975ef987030ccc888aa0 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 10 Jun 2021 06:02:48 +0000 Subject: [PATCH 209/279] build: add auto-approve to Node libraries (#1100) (#275) * build: add auto-approve to Node libraries Co-authored-by: Benjamin E. Coe Source-Link: https://github.com/googleapis/synthtool/commit/5cae043787729a908ed0cab28ca27baf9acee3c4 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:65aa68f2242c172345d7c1e780bced839bfdc344955d6aa460aa63b4481d93e5 --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.github/CODEOWNERS | 3 +++ core/paginator/.github/auto-approve.yml | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 core/paginator/.github/auto-approve.yml diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index f6467c3a493..1b520297430 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:bbdd52de226c00df3356cdf25460397b429ab49552becca645adbc412f6a4ed5 + digest: sha256:65aa68f2242c172345d7c1e780bced839bfdc344955d6aa460aa63b4481d93e5 diff --git a/core/paginator/.github/CODEOWNERS b/core/paginator/.github/CODEOWNERS index d904d1e2bde..80520bbaac3 100644 --- a/core/paginator/.github/CODEOWNERS +++ b/core/paginator/.github/CODEOWNERS @@ -7,3 +7,6 @@ # The yoshi-nodejs team is the default owner for nodejs repositories. * @googleapis/yoshi-nodejs + +# The github automation team is the default owner for the auto-approve file. +.github/auto-approve.yml @googleapis/github-automation diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml new file mode 100644 index 00000000000..903697974b0 --- /dev/null +++ b/core/paginator/.github/auto-approve.yml @@ -0,0 +1,7 @@ +rules: +- author: "release-please[bot]" + title: "^chore: release" + changedFiles: + - "package\\.json$" + - "CHANGELOG\\.md$" + maxFiles: 3 \ No newline at end of file From 60ca768f040b06f6e69e73b65a2e2b9513a121df Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Thu, 10 Jun 2021 23:00:44 +0200 Subject: [PATCH 210/279] chore(nodejs): remove api-extractor dependencies (#276) --- core/paginator/package.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 732b6920bcf..4f4df7dad48 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -20,9 +20,7 @@ "docs-test": "linkinator docs", "predocs-test": "npm run docs", "clean": "gts clean", - "precompile": "gts clean", - "api-extractor": "api-extractor run --local", - "api-documenter": "api-documenter yaml --input-folder=temp" + "precompile": "gts clean" }, "keywords": [], "files": [ @@ -47,9 +45,7 @@ "proxyquire": "^2.0.1", "sinon": "^11.0.0", "typescript": "^3.8.3", - "uuid": "^8.0.0", - "@microsoft/api-documenter": "^7.8.10", - "@microsoft/api-extractor": "^7.8.10" + "uuid": "^8.0.0" }, "dependencies": { "arrify": "^2.0.0", From 98332e3597b6520b2606b30984729565854b4c59 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 19:10:29 +0000 Subject: [PATCH 211/279] build: remove errant comma (#1113) (#277) Source-Link: https://github.com/googleapis/synthtool/commit/41ccd8cd13ec31f4fb839cf8182aea3c7156e19d Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:c9c7828c165b1985579098978877935ee52dda2b1b538087514fd24fa2443e7a --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.trampolinerc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 1b520297430..e7c45fd36bc 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:65aa68f2242c172345d7c1e780bced839bfdc344955d6aa460aa63b4481d93e5 + digest: sha256:c9c7828c165b1985579098978877935ee52dda2b1b538087514fd24fa2443e7a diff --git a/core/paginator/.trampolinerc b/core/paginator/.trampolinerc index d4fcb894483..5fc2253137d 100644 --- a/core/paginator/.trampolinerc +++ b/core/paginator/.trampolinerc @@ -20,7 +20,7 @@ required_envvars+=( # Add env vars which are passed down into the container here. pass_down_envvars+=( - "AUTORELEASE_PR", + "AUTORELEASE_PR" "VERSION" ) From e20c6b53c7e3b0d1ba7b4be22ac8ea6c55687c09 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 25 Jun 2021 17:32:50 +0000 Subject: [PATCH 212/279] build(node): do not throw on deprecation (#1140) (#279) Refs https://github.com/googleapis/nodejs-service-usage/issues/22 Source-Link: https://github.com/googleapis/synthtool/commit/6d26b13debbfe3c6a6a9f9f1914c5bccf1e6fadc Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:e59b73e911585903ee6b8a1c5246e93d9e9463420f597b6eb2e4b616ee8a0fee --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.kokoro/test.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index e7c45fd36bc..26e91bb2900 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:c9c7828c165b1985579098978877935ee52dda2b1b538087514fd24fa2443e7a + digest: sha256:e59b73e911585903ee6b8a1c5246e93d9e9463420f597b6eb2e4b616ee8a0fee diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index 5d6383fcb78..b5646aeb628 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -32,6 +32,9 @@ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ART } trap cleanup EXIT HUP fi +# Unit tests exercise the entire API surface, which may include +# deprecation warnings: +export MOCHA_THROW_DEPRECATION=false npm test # codecov combines coverage across integration and unit tests. Include From eef4bac0836fbcc8c7baf140c0f00051f047b02d Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 15:41:15 +0000 Subject: [PATCH 213/279] build: auto-approve renovate-bot PRs for minor updates (#1145) (#280) Source-Link: https://github.com/googleapis/synthtool/commit/39652e3948f455fd0b77535a0145eeec561a3706 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:41d5457ff79c3945782ab7e23bf4d617fd7bf3f2b03b6d84808010f7d2e10ca2 --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.github/auto-approve.yml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 26e91bb2900..9d507eeeb02 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:e59b73e911585903ee6b8a1c5246e93d9e9463420f597b6eb2e4b616ee8a0fee + digest: sha256:41d5457ff79c3945782ab7e23bf4d617fd7bf3f2b03b6d84808010f7d2e10ca2 diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml index 903697974b0..a79ba66c2c0 100644 --- a/core/paginator/.github/auto-approve.yml +++ b/core/paginator/.github/auto-approve.yml @@ -4,4 +4,9 @@ rules: changedFiles: - "package\\.json$" - "CHANGELOG\\.md$" - maxFiles: 3 \ No newline at end of file + maxFiles: 3 +- author: "renovate-bot" + title: "^(fix\\(deps\\)|chore\\(deps\\)):" + changedFiles: + - "/package\\.json$" + maxFiles: 2 From 2b2de0e1393b1185309a58cf589f497128b18de3 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 21 Jul 2021 00:04:55 +0000 Subject: [PATCH 214/279] build: switch to release-please release tagging (#1129) (#281) Requires https://github.com/googleapis/releasetool/pull/338 Source-Link: https://github.com/googleapis/synthtool/commit/1563597d28eca099d6411bbc29ecd09314a80746 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:06c970a44680229c1e8cefa701dbc93b80468ec4a34e6968475084e4ec1e2d7d --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.github/release-please.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 9d507eeeb02..b1434427024 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:41d5457ff79c3945782ab7e23bf4d617fd7bf3f2b03b6d84808010f7d2e10ca2 + digest: sha256:06c970a44680229c1e8cefa701dbc93b80468ec4a34e6968475084e4ec1e2d7d diff --git a/core/paginator/.github/release-please.yml b/core/paginator/.github/release-please.yml index 85344b92c7f..a1b41da3cb3 100644 --- a/core/paginator/.github/release-please.yml +++ b/core/paginator/.github/release-please.yml @@ -1 +1,2 @@ +handleGHRelease: true releaseType: node From 450904ad47c2a7cecde19df7de9c7e895f98dd1e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 30 Jul 2021 17:12:26 +0000 Subject: [PATCH 215/279] build: update auto-approve config for new validation (#1169) (#282) Co-authored-by: Anthonios Partheniou Source-Link: https://github.com/googleapis/synthtool/commit/df7fc1e3a6df4316920ab221431945cdf9aa7217 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:6245a5be4c0406d9b2f04f380d8b88ffe4655df3cdbb57626f8913e8d620f4dd --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.github/auto-approve.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index b1434427024..9b2b9550d5e 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:06c970a44680229c1e8cefa701dbc93b80468ec4a34e6968475084e4ec1e2d7d + digest: sha256:6245a5be4c0406d9b2f04f380d8b88ffe4655df3cdbb57626f8913e8d620f4dd diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml index a79ba66c2c0..49cf942280a 100644 --- a/core/paginator/.github/auto-approve.yml +++ b/core/paginator/.github/auto-approve.yml @@ -6,7 +6,7 @@ rules: - "CHANGELOG\\.md$" maxFiles: 3 - author: "renovate-bot" - title: "^(fix\\(deps\\)|chore\\(deps\\)):" + title: "^(fix|chore)\\(deps\\):" changedFiles: - - "/package\\.json$" + - "package\\.json$" maxFiles: 2 From ff25a8bcb23e4bd16821a0a1cdc9864c620cafe7 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Wed, 4 Aug 2021 16:04:38 -0400 Subject: [PATCH 216/279] chore(nodejs): update client ref docs link in metadata (#283) --- core/paginator/.repo-metadata.json | 4 ++-- core/paginator/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.repo-metadata.json b/core/paginator/.repo-metadata.json index 18eb0dd46ff..9f4df4ede7b 100644 --- a/core/paginator/.repo-metadata.json +++ b/core/paginator/.repo-metadata.json @@ -5,5 +5,5 @@ "language": "nodejs", "repo": "googleapis/nodejs-paginator", "distribution_name": "@google-cloud/paginator", - "client_documentation": "https://googleapis.dev/nodejs/paginator/latest" -} \ No newline at end of file + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/paginator/latest" +} diff --git a/core/paginator/README.md b/core/paginator/README.md index 215be6d7734..0bbc26cf209 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -127,7 +127,7 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/paginator/latest +[client-docs]: https://cloud.google.com/nodejs/docs/reference/paginator/latest [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project From 87607b443d7edc1bd9c8740c6216e7e403f35a75 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 25 Aug 2021 23:36:58 +0000 Subject: [PATCH 217/279] chore: disable renovate dependency dashboard (#1194) (#286) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.kokoro/continuous/node10/common.cfg | 2 +- core/paginator/.kokoro/continuous/node10/test.cfg | 2 +- core/paginator/.kokoro/presubmit/node10/common.cfg | 2 +- core/paginator/.kokoro/samples-test.sh | 2 +- core/paginator/.kokoro/system-test.sh | 2 +- core/paginator/.kokoro/test.sh | 2 +- core/paginator/README.md | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 9b2b9550d5e..c45b239314f 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:6245a5be4c0406d9b2f04f380d8b88ffe4655df3cdbb57626f8913e8d620f4dd + digest: sha256:667a9e46a9aa5b80240ad164d55ac33bc9d6780b5ef42f125a41f0ad95bc1950 diff --git a/core/paginator/.kokoro/continuous/node10/common.cfg b/core/paginator/.kokoro/continuous/node10/common.cfg index bcc20f2c321..2c3446bc276 100644 --- a/core/paginator/.kokoro/continuous/node10/common.cfg +++ b/core/paginator/.kokoro/continuous/node10/common.cfg @@ -7,7 +7,7 @@ action { } } -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token before_action { fetch_keystore { keystore_resource { diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg index 468b8c7197a..609c0cf0a27 100644 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ b/core/paginator/.kokoro/continuous/node10/test.cfg @@ -1,4 +1,4 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token before_action { fetch_keystore { keystore_resource { diff --git a/core/paginator/.kokoro/presubmit/node10/common.cfg b/core/paginator/.kokoro/presubmit/node10/common.cfg index bcc20f2c321..2c3446bc276 100644 --- a/core/paginator/.kokoro/presubmit/node10/common.cfg +++ b/core/paginator/.kokoro/presubmit/node10/common.cfg @@ -7,7 +7,7 @@ action { } } -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token before_action { fetch_keystore { keystore_resource { diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 950f8483428..f249d3e4a2e 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -39,7 +39,7 @@ if [ -f samples/package.json ]; then npm link ../ npm install cd .. - # If tests are running against master, configure flakybot + # If tests are running against main branch, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 319d1e0eda8..0a840452084 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -33,7 +33,7 @@ fi npm install -# If tests are running against master, configure flakybot +# If tests are running against main branch, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index b5646aeb628..af1ce7e33ca 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -21,7 +21,7 @@ export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. npm install -# If tests are running against master, configure flakybot +# If tests are running against main branch, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml diff --git a/core/paginator/README.md b/core/paginator/README.md index 0bbc26cf209..5481ad59703 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -118,8 +118,8 @@ Contributions welcome! See the [Contributing Guide](https://github.com/googleapi 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 template in this -[directory](https://github.com/googleapis/synthtool/tree/master/synthtool/gcp/templates/node_library). +to its templates in +[directory](https://github.com/googleapis/synthtool). ## License From 9185f4e7e42e7a24ebc12d1e42e40d50f82b904f Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 8 Sep 2021 20:39:44 -0400 Subject: [PATCH 218/279] fix(build): switch primary branch to main (#287) --- core/paginator/.github/generated-files-bot.yml | 4 ++-- core/paginator/README.md | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/paginator/.github/generated-files-bot.yml b/core/paginator/.github/generated-files-bot.yml index 7bb7ce54c58..992ccef4a13 100644 --- a/core/paginator/.github/generated-files-bot.yml +++ b/core/paginator/.github/generated-files-bot.yml @@ -8,9 +8,9 @@ generatedFiles: - path: '.github/generated-files-bot.+(yml|yaml)' message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: 'README.md' - message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' + message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' - path: 'samples/README.md' - message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' + message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' ignoreAuthors: - 'gcf-owl-bot[bot]' - 'yoshi-automation' diff --git a/core/paginator/README.md b/core/paginator/README.md index 5481ad59703..9cde8cb14f3 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -6,7 +6,7 @@ [![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/paginator.svg)](https://www.npmjs.org/package/@google-cloud/paginator) -[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-paginator/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-paginator) +[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-paginator/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-paginator) @@ -15,7 +15,7 @@ A result paging utility used by Google node.js modules A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/nodejs-paginator/blob/master/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/nodejs-paginator/blob/main/CHANGELOG.md). * [Google Cloud Common Paginator Node.js Client API Reference][client-docs] @@ -59,12 +59,12 @@ console.log(paginator); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-paginator/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample. +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-paginator/tree/main/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/nodejs-paginator/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | -| Streamify | [source code](https://github.com/googleapis/nodejs-paginator/blob/master/samples/streamify.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/streamify.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/nodejs-paginator/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | +| Streamify | [source code](https://github.com/googleapis/nodejs-paginator/blob/main/samples/streamify.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-paginator&page=editor&open_in_editor=samples/streamify.js,samples/README.md) | @@ -113,7 +113,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-paginator/blob/master/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-paginator/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`) @@ -125,7 +125,7 @@ to its templates in Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/master/LICENSE) +See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/paginator/latest From d1225b523b80c30dc5ad5be05eb863de06899472 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Sep 2021 19:05:00 -0700 Subject: [PATCH 219/279] chore: release 3.0.6 (#288) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index eff5ef59c59..54db47a9cbe 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.6](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.5...v3.0.6) (2021-09-09) + + +### Bug Fixes + +* **build:** switch primary branch to main ([#287](https://www.github.com/googleapis/nodejs-paginator/issues/287)) ([1b796f3](https://www.github.com/googleapis/nodejs-paginator/commit/1b796f3377174354a62b7475d16f52213197f650)) + ### [3.0.5](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.4...v3.0.5) (2020-09-02) diff --git a/core/paginator/package.json b/core/paginator/package.json index 4f4df7dad48..6a3bc4ec68e 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.5", + "version": "3.0.6", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From c27e825a2d7006f4b08f05d32aee984139fa033d Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 13 Sep 2021 21:45:01 +0000 Subject: [PATCH 220/279] build: enable release-trigger bot (#1212) (#289) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.github/release-trigger.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 core/paginator/.github/release-trigger.yml diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index c45b239314f..73bbf7d3210 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:667a9e46a9aa5b80240ad164d55ac33bc9d6780b5ef42f125a41f0ad95bc1950 + digest: sha256:111973c0da7608bf1e60d070e5449d48826c385a6b92a56cb9203f1725d33c3d diff --git a/core/paginator/.github/release-trigger.yml b/core/paginator/.github/release-trigger.yml new file mode 100644 index 00000000000..d4ca94189e1 --- /dev/null +++ b/core/paginator/.github/release-trigger.yml @@ -0,0 +1 @@ +enabled: true From 3707c1fb5d5bb8b8f7cff06c0aeeda8f2b4847c7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Sep 2021 20:00:25 +0000 Subject: [PATCH 221/279] build(node): run linkinator against index.html (#1227) (#292) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 73bbf7d3210..d0ca942b269 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:111973c0da7608bf1e60d070e5449d48826c385a6b92a56cb9203f1725d33c3d + digest: sha256:c0ad7c54b9210f1d10678955bc37b377e538e15cb07ecc3bac93cc7219ec2bc5 From 6466c8c791e5be056f29e6ad8ea1b73d366fd41e Mon Sep 17 00:00:00 2001 From: Takashi Matsuo Date: Wed, 27 Oct 2021 11:24:35 -0700 Subject: [PATCH 222/279] chore: fix the wrong post processor image (#294) --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/.OwlBot.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index d0ca942b269..6dab0bf3afd 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:c0ad7c54b9210f1d10678955bc37b377e538e15cb07ecc3bac93cc7219ec2bc5 + image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest + digest: sha256:c5576a2a649af7ea4f1100e691a44584980e298277467460852c53642354cb80 diff --git a/core/paginator/.github/.OwlBot.yaml b/core/paginator/.github/.OwlBot.yaml index 3a281cc95b7..8ddb67c5ab8 100644 --- a/core/paginator/.github/.OwlBot.yaml +++ b/core/paginator/.github/.OwlBot.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. docker: - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest begin-after-commit-hash: 397c0bfd367a2427104f988d5329bc117caafd95 From 3982740d65bd123560aa288a3f8edb49453cf13c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 27 Oct 2021 21:40:22 +0200 Subject: [PATCH 223/279] chore(deps): update dependency @types/node to v16 (#293) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^14.0.0` -> `^16.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/14.17.32/16.11.6) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/compatibility-slim/14.17.32)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/confidence-slim/14.17.32)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 6a3bc4ec68e..c5dbb32f207 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -33,7 +33,7 @@ "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", "@types/mocha": "^8.0.0", - "@types/node": "^14.0.0", + "@types/node": "^16.0.0", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", "@types/uuid": "^8.0.0", From 2e687a7ffa1f205644338d79de298b4150e43020 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Thu, 4 Nov 2021 11:52:24 -0400 Subject: [PATCH 224/279] chore(cloud-rad): delete api-extractor config (#296) --- core/paginator/api-extractor.json | 369 ------------------------------ 1 file changed, 369 deletions(-) delete mode 100644 core/paginator/api-extractor.json diff --git a/core/paginator/api-extractor.json b/core/paginator/api-extractor.json deleted file mode 100644 index de228294b23..00000000000 --- a/core/paginator/api-extractor.json +++ /dev/null @@ -1,369 +0,0 @@ -/** - * Config file for API Extractor. For more info, please visit: https://api-extractor.com - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - /** - * Optionally specifies another JSON config file that this file extends from. This provides a way for - * standard settings to be shared across multiple projects. - * - * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains - * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be - * resolved using NodeJS require(). - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "extends": "./shared/api-extractor-base.json" - // "extends": "my-package/include/api-extractor-base.json" - - /** - * Determines the "" token that can be used with other config file settings. The project folder - * typically contains the tsconfig.json and package.json config files, but the path is user-defined. - * - * The path is resolved relative to the folder of the config file that contains the setting. - * - * The default value for "projectFolder" is the token "", which means the folder is determined by traversing - * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder - * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error - * will be reported. - * - * SUPPORTED TOKENS: - * DEFAULT VALUE: "" - */ - // "projectFolder": "..", - - /** - * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor - * analyzes the symbols exported by this module. - * - * The file extension must be ".d.ts" and not ".ts". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - */ - "mainEntryPointFilePath": "/protos/protos.d.ts", - - /** - * A list of NPM package names whose exports should be treated as part of this package. - * - * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", - * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part - * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly - * imports library2. To avoid this, we can specify: - * - * "bundledPackages": [ "library2" ], - * - * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been - * local files for library1. - */ - "bundledPackages": [ ], - - /** - * Determines how the TypeScript compiler engine will be invoked by API Extractor. - */ - "compiler": { - /** - * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * Note: This setting will be ignored if "overrideTsconfig" is used. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/tsconfig.json" - */ - // "tsconfigFilePath": "/tsconfig.json", - - /** - * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. - * The object must conform to the TypeScript tsconfig schema: - * - * http://json.schemastore.org/tsconfig - * - * If omitted, then the tsconfig.json file will be read from the "projectFolder". - * - * DEFAULT VALUE: no overrideTsconfig section - */ - // "overrideTsconfig": { - // . . . - // } - - /** - * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended - * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when - * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses - * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. - * - * DEFAULT VALUE: false - */ - // "skipLibCheck": true, - }, - - /** - * Configures how the API report file (*.api.md) will be generated. - */ - "apiReport": { - /** - * (REQUIRED) Whether to generate an API report. - */ - "enabled": true, - - /** - * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce - * a full file path. - * - * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". - * - * SUPPORTED TOKENS: , - * DEFAULT VALUE: ".api.md" - */ - // "reportFileName": ".api.md", - - /** - * Specifies the folder where the API report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, - * e.g. for an API review. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/etc/" - */ - // "reportFolder": "/etc/", - - /** - * Specifies the folder where the temporary report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * After the temporary file is written to disk, it is compared with the file in the "reportFolder". - * If they are different, a production build will fail. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - // "reportTempFolder": "/temp/" - }, - - /** - * Configures how the doc model file (*.api.json) will be generated. - */ - "docModel": { - /** - * (REQUIRED) Whether to generate a doc model file. - */ - "enabled": true, - - /** - * The output path for the doc model file. The file extension should be ".api.json". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/.api.json" - */ - // "apiJsonFilePath": "/temp/.api.json" - }, - - /** - * Configures how the .d.ts rollup file will be generated. - */ - "dtsRollup": { - /** - * (REQUIRED) Whether to generate the .d.ts rollup file. - */ - "enabled": true, - - /** - * Specifies the output path for a .d.ts rollup file to be generated without any trimming. - * This file will include all declarations that are exported by the main entry point. - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/dist/.d.ts" - */ - // "untrimmedFilePath": "/dist/.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. - * This file will include only declarations that are marked as "@public" or "@beta". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "betaTrimmedFilePath": "/dist/-beta.d.ts", - - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. - * This file will include only declarations that are marked as "@public". - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "publicTrimmedFilePath": "/dist/-public.d.ts", - - /** - * When a declaration is trimmed, by default it will be replaced by a code comment such as - * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the - * declaration completely. - * - * DEFAULT VALUE: false - */ - // "omitTrimmingComments": true - }, - - /** - * Configures how the tsdoc-metadata.json file will be generated. - */ - "tsdocMetadata": { - /** - * Whether to generate the tsdoc-metadata.json file. - * - * DEFAULT VALUE: true - */ - // "enabled": true, - - /** - * Specifies where the TSDoc metadata file should be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", - * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup - * falls back to "tsdoc-metadata.json" in the package folder. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" - }, - - /** - * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files - * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. - * To use the OS's default newline kind, specify "os". - * - * DEFAULT VALUE: "crlf" - */ - // "newlineKind": "crlf", - - /** - * Configures how API Extractor reports error and warning messages produced during analysis. - * - * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. - */ - "messages": { - /** - * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing - * the input .d.ts files. - * - * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "compilerMessageReporting": { - /** - * Configures the default routing for messages that don't match an explicit rule in this table. - */ - "default": { - /** - * Specifies whether the message should be written to the the tool's output log. Note that - * the "addToApiReportFile" property may supersede this option. - * - * Possible values: "error", "warning", "none" - * - * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail - * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes - * the "--local" option), the warning is displayed but the build will not fail. - * - * DEFAULT VALUE: "warning" - */ - "logLevel": "warning", - - /** - * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), - * then the message will be written inside that file; otherwise, the message is instead logged according to - * the "logLevel" option. - * - * DEFAULT VALUE: false - */ - // "addToApiReportFile": false - }, - - // "TS2551": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by API Extractor during its analysis. - * - * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" - * - * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings - */ - "extractorMessageReporting": { - "default": { - "logLevel": "warning", - // "addToApiReportFile": false - }, - - // "ae-extra-release-tag": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by the TSDoc parser when analyzing code comments. - * - * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "tsdocMessageReporting": { - "default": { - "logLevel": "warning", - // "addToApiReportFile": false - } - - // "tsdoc-link-tag-unescaped-text": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - } - } - -} From dd7790442f0eeece517b6d874de99a4303355e77 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 4 Nov 2021 20:40:22 +0100 Subject: [PATCH 225/279] chore(deps): update dependency sinon to v12 (#295) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^11.0.0` -> `^12.0.0`](https://renovatebot.com/diffs/npm/sinon/11.1.2/12.0.1) | [![age](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/compatibility-slim/11.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/confidence-slim/11.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v12.0.1`](https://togithub.com/sinonjs/sinon/blob/master/CHANGES.md#​1201) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v12.0.0...v12.0.1) - [`3f598221`](https://togithub.com/sinonjs/sinon/commit/3f598221045904681f2b3b3ba1df617ed5e230e3) Fix issue with npm unlink for npm version > 6 (Carl-Erik Kopseng) > 'npm unlink' would implicitly unlink the current dir > until version 7, which requires an argument - [`51417a38`](https://togithub.com/sinonjs/sinon/commit/51417a38111eeeb7cd14338bfb762cc2df487e1b) Fix bundling of cjs module ([#​2412](https://togithub.com/sinonjs/sinon/issues/2412)) (Julian Grinblat) > - Fix bundling of cjs module > > - Run prettier *Released by [Carl-Erik Kopseng](https://togithub.com/fatso83) on 2021-11-04.* #### 12.0.0 ### [`v12.0.0`](https://togithub.com/sinonjs/sinon/compare/v11.1.2...v12.0.0) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v11.1.2...v12.0.0)
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index c5dbb32f207..660c7e935e1 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "linkinator": "^2.0.0", "mocha": "^8.0.0", "proxyquire": "^2.0.1", - "sinon": "^11.0.0", + "sinon": "^12.0.0", "typescript": "^3.8.3", "uuid": "^8.0.0" }, From 71b77d3d84eac76adcbb28f8369b89d3b26e1486 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 9 Dec 2021 22:52:22 +0000 Subject: [PATCH 226/279] build: add generated samples to .eslintignore (#297) --- core/paginator/.eslintignore | 1 + core/paginator/.github/.OwlBot.lock.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index 9340ad9b86d..ea5b04aebe6 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -4,3 +4,4 @@ test/fixtures build/ docs/ protos/ +samples/generated/ diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 6dab0bf3afd..8a63b10a9dd 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:c5576a2a649af7ea4f1100e691a44584980e298277467460852c53642354cb80 + digest: sha256:ba3f2990fefe465f89834e4c46f847ddb141afa54daa6a1d462928fa679ed143 From 746b8bf0afda69a8029572de48d4c838ae9875d9 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 29 Dec 2021 19:54:19 +0000 Subject: [PATCH 227/279] docs(node): support "stable"/"preview" release level (#1312) (#300) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/README.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 8a63b10a9dd..1b6a76cc483 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:ba3f2990fefe465f89834e4c46f847ddb141afa54daa6a1d462928fa679ed143 + digest: sha256:5ed10ba99cd1ea8c3a0f29b4c53e8a2723a101952705baed6b61783111c64c1c diff --git a/core/paginator/README.md b/core/paginator/README.md index 9cde8cb14f3..50a400c9bde 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -107,6 +107,8 @@ are addressed with the highest priority. + + More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages From 42effdc81563d106f60558d83479a5f488a9e079 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Thu, 30 Dec 2021 11:35:27 -0500 Subject: [PATCH 228/279] chore: add api_shortname and library_type to repo metadata (#299) --- core/paginator/.repo-metadata.json | 5 +++-- core/paginator/README.md | 9 ++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/paginator/.repo-metadata.json b/core/paginator/.repo-metadata.json index 9f4df4ede7b..58e21567319 100644 --- a/core/paginator/.repo-metadata.json +++ b/core/paginator/.repo-metadata.json @@ -1,9 +1,10 @@ { "name": "paginator", "name_pretty": "Google Cloud Common Paginator", - "release_level": "ga", + "release_level": "stable", "language": "nodejs", "repo": "googleapis/nodejs-paginator", "distribution_name": "@google-cloud/paginator", - "client_documentation": "https://cloud.google.com/nodejs/docs/reference/paginator/latest" + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/paginator/latest", + "library_type": "OTHER" } diff --git a/core/paginator/README.md b/core/paginator/README.md index 50a400c9bde..35781e9896f 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -4,7 +4,7 @@ # [Google Cloud Common Paginator: Node.js Client](https://github.com/googleapis/nodejs-paginator) -[![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) + [![npm version](https://img.shields.io/npm/v/@google-cloud/paginator.svg)](https://www.npmjs.org/package/@google-cloud/paginator) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-paginator/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-paginator) @@ -97,10 +97,10 @@ _Legacy Node.js versions are supported as a best effort:_ This library follows [Semantic Versioning](http://semver.org/). -This library is considered to be **General Availability (GA)**. This means it -is stable; the code surface will not change in backwards-incompatible ways + +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 **GA** libraries +an extensive deprecation period. Issues and requests against **stable** libraries are addressed with the highest priority. @@ -108,7 +108,6 @@ are addressed with the highest priority. - More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages From effd70fc75414480c3a1c745b9b1a1ac6e25aa5f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Dec 2021 23:12:17 +0000 Subject: [PATCH 229/279] docs(badges): tweak badge to use new preview/stable language (#1314) (#302) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/README.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 1b6a76cc483..497345b83de 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:5ed10ba99cd1ea8c3a0f29b4c53e8a2723a101952705baed6b61783111c64c1c + digest: sha256:f092066de33d4a2a13ab13c8fa9dcb4f6b96fa1fb7d391bf19cd0c4921d997c0 diff --git a/core/paginator/README.md b/core/paginator/README.md index 35781e9896f..ba8138fd023 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -4,9 +4,8 @@ # [Google Cloud Common Paginator: Node.js Client](https://github.com/googleapis/nodejs-paginator) - +[![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/paginator.svg)](https://www.npmjs.org/package/@google-cloud/paginator) -[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-paginator/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-paginator) From a0717f93adf67787ace45535f703922aeaeccbbc Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 17:06:47 +0000 Subject: [PATCH 230/279] test(nodejs): remove 15 add 16 (#1322) (#303) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 497345b83de..6831fd8e18c 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:f092066de33d4a2a13ab13c8fa9dcb4f6b96fa1fb7d391bf19cd0c4921d997c0 + digest: sha256:3563b6b264989c4f5aa31a3682e4df36c95756cfef275d3201508947cbfc511e From ea32164407719b838e6f8737e91a4be2a28a0e0c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 13 Jan 2022 19:16:15 +0000 Subject: [PATCH 231/279] chore: update github issue templates (#1085) (#304) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.github/ISSUE_TEMPLATE/bug_report.md | 2 +- core/paginator/.github/ISSUE_TEMPLATE/config.yml | 4 ++++ .../.github/ISSUE_TEMPLATE/feature_request.md | 2 +- core/paginator/.github/ISSUE_TEMPLATE/question.md | 12 ++++++++++++ 5 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/config.yml create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/question.md diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 6831fd8e18c..cbbb175848c 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:3563b6b264989c4f5aa31a3682e4df36c95756cfef275d3201508947cbfc511e + digest: sha256:2d850512335d7adca3a4b08e02f8e63192978aea88c042dacb3e382aa996ae7c diff --git a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md index bf591dd077a..4fe86c2fc64 100644 --- a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md +++ b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,7 @@ --- name: Bug report about: Create a report to help us improve - +labels: 'type: bug, priority: p2' --- Thanks for stopping by to let us know something could be better! diff --git a/core/paginator/.github/ISSUE_TEMPLATE/config.yml b/core/paginator/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..603b90133b6 --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,4 @@ +contact_links: + - name: Google Cloud Support + url: https://cloud.google.com/support/ + about: If you have a support contract with Google, please use the Google Cloud Support portal. diff --git a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md index 6365857f33c..b0327dfa02e 100644 --- a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md +++ b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,7 @@ --- name: Feature request about: Suggest an idea for this library - +labels: 'type: feature request, priority: p3' --- Thanks for stopping by to let us know something could be better! diff --git a/core/paginator/.github/ISSUE_TEMPLATE/question.md b/core/paginator/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 00000000000..97323113911 --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,12 @@ +--- +name: Question +about: Ask a question +labels: 'type: question, priority: p3' +--- + +Thanks for stopping by to ask us a question! Please make sure to include: +- What you're trying to do +- What code you've already tried +- Any error messages you're getting + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. From 4c84cf5a4cd85cf4e46bf785272dce3f004d8112 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 19 Jan 2022 17:46:32 +0000 Subject: [PATCH 232/279] build(node): switch back to keystore for publication (#1328) (#305) --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.kokoro/publish.sh | 2 +- core/paginator/.kokoro/release/publish.cfg | 11 ++++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index cbbb175848c..2c37ca7a7b2 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:2d850512335d7adca3a4b08e02f8e63192978aea88c042dacb3e382aa996ae7c + digest: sha256:89c5b2f3decec8ad64febbebea671076c119d1ab43700da380846a315600de8a diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index 4db6bf1c7f5..77a5defb2b5 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -24,7 +24,7 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token) +NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-npm-token-1) echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index 16541dbbb67..e9af8c4fdd5 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -7,9 +7,18 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google-cloud-npm-token-1" + } + } +} + env_vars: { key: "SECRET_MANAGER_KEYS" - value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" + value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" } # Download trampoline resources. From c1be6b3e728e1e75b3ac6b9c914b67aa7f5954ec Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 3 Feb 2022 22:08:39 +0000 Subject: [PATCH 233/279] docs(nodejs): version support policy edits (#1346) (#310) --- core/paginator/.github/.OwlBot.lock.yaml | 15 ++++++++++++++- core/paginator/README.md | 24 ++++++++++++------------ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 2c37ca7a7b2..84059c19485 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,3 +1,16 @@ +# Copyright 2022 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. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:89c5b2f3decec8ad64febbebea671076c119d1ab43700da380846a315600de8a + digest: sha256:a9d166a74752226923d159cb723df53429e226c9c076dad3ca52ffd073ff3bb4 diff --git a/core/paginator/README.md b/core/paginator/README.md index ba8138fd023..c7c58082a5e 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -75,21 +75,21 @@ also contains samples. Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). 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. -Client libraries targeting some end-of-life versions of Node.js are available, and -can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). -The dist-tags follow the naming convention `legacy-(version)`. - -_Legacy Node.js versions are supported as a best effort:_ +Google's client libraries support legacy versions of Node.js runtimes on a +best-efforts basis with the following warnings: -* Legacy versions will not be tested in continuous integration. -* Some security patches may not be able to be backported. -* Dependencies will not be kept up-to-date, and features will not be backported. +* Legacy versions are not tested in continuous integration. +* Some security patches and features cannot be backported. +* Dependencies cannot be kept up-to-date. -#### Legacy tags available - -* `legacy-8`: install client libraries from this dist-tag for versions - compatible with Node.js 8. +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/paginator@legacy-8` installs client libraries +for versions compatible with Node.js 8. ## Versioning From 0cee3d777ade46c5100492a730fdfb587523bcb6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Feb 2022 18:39:01 +0100 Subject: [PATCH 234/279] chore(deps): update dependency sinon to v13 (#307) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^12.0.0` -> `^13.0.0`](https://renovatebot.com/diffs/npm/sinon/12.0.1/13.0.1) | [![age](https://badges.renovateapi.com/packages/npm/sinon/13.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/13.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/13.0.1/compatibility-slim/12.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/13.0.1/confidence-slim/12.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v13.0.1`](https://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#​1301) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v13.0.0...v13.0.1) - [`ec4223f9`](https://togithub.com/sinonjs/sinon/commit/ec4223f94076d809483e3c6a7536cfc1278dd3c9) Bump nise to fix [sinonjs/nise#​193](https://togithub.com/sinonjs/nise/issues/193) (Carl-Erik Kopseng) - [`f329a010`](https://togithub.com/sinonjs/sinon/commit/f329a01040bfa5a79e039419220b21eda56935d6) Add unimported to workflow ([#​2441](https://togithub.com/sinonjs/sinon/issues/2441)) (Morgan Roderick) - [`7f16cec9`](https://togithub.com/sinonjs/sinon/commit/7f16cec968c3c8d4e580267fb00195916d6f827d) Enable updates to same major version (Carl-Erik Kopseng) - [`f784d7ad`](https://togithub.com/sinonjs/sinon/commit/f784d7ad2c86be0fc65477d69f8bdafca846ef2c) Re-introduce new version.sh script to version hook (Joel Bradshaw) > This was inadvertently removed during merge conflicts, and is required > for any of the new release process stuff to work - [`51c508ab`](https://togithub.com/sinonjs/sinon/commit/51c508ab77cf0f9fb8c5305ff626f6a2eada178f) Add dry run mode to `npm version` ([#​2436](https://togithub.com/sinonjs/sinon/issues/2436)) (Joel Bradshaw) > - Add DRY_RUN flag to skip publish/push > > - Allow overriding branch names for testing - [`05341dcf`](https://togithub.com/sinonjs/sinon/commit/05341dcf92ddca4a1d4c90966b1fcdc7039cff18) Update npm version scripts to manage new releases branch (Joel Bradshaw) - [`fe658261`](https://togithub.com/sinonjs/sinon/commit/fe65826171db69ed2986a1060db77944dbc98a6d) Remove release archives from master (Joel Bradshaw) > These archives made it difficult to find things in the GitHub interface, > and take up a lot of space in a checked-out repo for something that is > not useful to most people checking out the repository. > > The main purpose of these archives is to make old versions and > documentation available on the Sinon website that is run out of this > repo. This can be supported by using a separate branch for website > releases, and to maintain the archives. > > Following this commit, the `npm version` scripts will be updated to > automatically handle archiving the releases in the new releases branch > and keeping it up to date with master. > > Also remove the directories we removed from .prettierignore, since they > don't exist any more. *Released by [Carl-Erik Kopseng](https://togithub.com/fatso83) on 2022-02-01.* ### [`v13.0.0`](https://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#​1300) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v12.0.1...v13.0.0) - [`cf3d6c0c`](https://togithub.com/sinonjs/sinon/commit/cf3d6c0cd9689c0ee673b3daa8bf9abd70304392) Upgrade packages ([#​2431](https://togithub.com/sinonjs/sinon/issues/2431)) (Carl-Erik Kopseng) > - Update all @​sinonjs/ packages > > - Upgrade to fake-timers 9 > > - chore: ensure always using latest LTS release - [`41710467`](https://togithub.com/sinonjs/sinon/commit/417104670d575e96a1b645ea40ce763afa76fb1b) Adjust deploy scripts to archive old releases in a separate branch, move existing releases out of master ([#​2426](https://togithub.com/sinonjs/sinon/issues/2426)) (Joel Bradshaw) > Co-authored-by: Carl-Erik Kopseng - [`c80a7266`](https://togithub.com/sinonjs/sinon/commit/c80a72660e89d88b08275eff1028ecb9e26fd8e9) Bump node-fetch from 2.6.1 to 2.6.7 ([#​2430](https://togithub.com/sinonjs/sinon/issues/2430)) (dependabot\[bot]) > Co-authored-by: dependabot\[bot] <49699333+dependabot\[bot][@​users](https://togithub.com/users).noreply.github.com> - [`a00f14a9`](https://togithub.com/sinonjs/sinon/commit/a00f14a97dbe8c65afa89674e16ad73fc7d2fdc0) Add explicit export for `./*` ([#​2413](https://togithub.com/sinonjs/sinon/issues/2413)) (なつき) - [`b82ca7ad`](https://togithub.com/sinonjs/sinon/commit/b82ca7ad9b1add59007771f65a18ee34415de8ca) Bump cached-path-relative from 1.0.2 to 1.1.0 ([#​2428](https://togithub.com/sinonjs/sinon/issues/2428)) (dependabot\[bot]) - [`a9ea1427`](https://togithub.com/sinonjs/sinon/commit/a9ea142716c094ef3c432ecc4089f8207b8dd8b6) Add documentation for assert.calledOnceWithMatch ([#​2424](https://togithub.com/sinonjs/sinon/issues/2424)) (Mathias Schreck) - [`1d5ab86b`](https://togithub.com/sinonjs/sinon/commit/1d5ab86ba60e50dd69593ffed2bffd4b8faa0d38) Be more general in stripping off stack frames to fix Firefox tests ([#​2425](https://togithub.com/sinonjs/sinon/issues/2425)) (Joel Bradshaw) - [`56b06129`](https://togithub.com/sinonjs/sinon/commit/56b06129e223eae690265c37b1113067e2b31bdc) Check call count type ([#​2410](https://togithub.com/sinonjs/sinon/issues/2410)) (Joel Bradshaw) - [`7863e2df`](https://togithub.com/sinonjs/sinon/commit/7863e2dfdbda79e0a32e42af09e6539fc2f2b80f) Fix [#​2414](https://togithub.com/sinonjs/sinon/issues/2414): make Sinon available on homepage (Carl-Erik Kopseng) - [`fabaabdd`](https://togithub.com/sinonjs/sinon/commit/fabaabdda82f39a7f5b75b55bd56cf77b1cd4a8f) Bump nokogiri from 1.11.4 to 1.13.1 ([#​2423](https://togithub.com/sinonjs/sinon/issues/2423)) (dependabot\[bot]) - [`dbc0fbd2`](https://togithub.com/sinonjs/sinon/commit/dbc0fbd263c8419fa47f9c3b20cf47890a242d21) Bump shelljs from 0.8.4 to 0.8.5 ([#​2422](https://togithub.com/sinonjs/sinon/issues/2422)) (dependabot\[bot]) - [`fb8b3d72`](https://togithub.com/sinonjs/sinon/commit/fb8b3d72a85dc8fb0547f859baf3f03a22a039f7) Run Prettier (Carl-Erik Kopseng) - [`12a45939`](https://togithub.com/sinonjs/sinon/commit/12a45939e9b047b6d3663fe55f2eb383ec63c4e1) Fix 2377: Throw error when trying to stub non-configurable or non-writable properties ([#​2417](https://togithub.com/sinonjs/sinon/issues/2417)) (Stuart Dotson) > Fixes issue [#​2377](https://togithub.com/sinonjs/sinon/issues/2377) by throwing an error when trying to stub non-configurable or non-writable properties *Released by [Carl-Erik Kopseng](https://togithub.com/fatso83) on 2022-01-28.*
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 660c7e935e1..058d25bf193 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "linkinator": "^2.0.0", "mocha": "^8.0.0", "proxyquire": "^2.0.1", - "sinon": "^12.0.0", + "sinon": "^13.0.0", "typescript": "^3.8.3", "uuid": "^8.0.0" }, From f407ff536380d1673090b72ce1343afaf77452c8 Mon Sep 17 00:00:00 2001 From: Denis DelGrosso <85250797+ddelgrosso1@users.noreply.github.com> Date: Mon, 14 Feb 2022 11:30:31 -0500 Subject: [PATCH 235/279] fix: update signature of end to comply with update node types definition (#311) * fix: update signature of end to comply with update node types definition * linter fix * remove old definition --- core/paginator/src/resource-stream.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts index 330948bfe8a..6f5c433c0fb 100644 --- a/core/paginator/src/resource-stream.ts +++ b/core/paginator/src/resource-stream.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {Transform} from 'stream'; +import {Transform, Writable} from 'stream'; import {ParsedArguments} from './'; interface ResourceEvents { @@ -48,7 +48,9 @@ export class ResourceStream extends Transform implements ResourceEvents { this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults!; } /* eslint-disable @typescript-eslint/no-explicit-any */ - end(...args: any[]) { + end( + ...args: any[] + ): ReturnType extends Writable ? this : void { this._ended = true; return super.end(...args); } From f659505529fdbf38da0a189aad98e4343a232f2b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 11:40:49 -0500 Subject: [PATCH 236/279] chore(main): release 3.0.7 (#312) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 54db47a9cbe..350a56c503c 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +### [3.0.7](https://github.com/googleapis/nodejs-paginator/compare/v3.0.6...v3.0.7) (2022-02-14) + + +### Bug Fixes + +* update signature of end to comply with update node types definition ([#311](https://github.com/googleapis/nodejs-paginator/issues/311)) ([79e6fbd](https://github.com/googleapis/nodejs-paginator/commit/79e6fbdae5008d874613d2919a6cf723708fc919)) + ### [3.0.6](https://www.github.com/googleapis/nodejs-paginator/compare/v3.0.5...v3.0.6) (2021-09-09) diff --git a/core/paginator/package.json b/core/paginator/package.json index 058d25bf193..56571131d44 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.6", + "version": "3.0.7", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From b6eb85996cb4ced96ae93adaabba8b8355e03701 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 18:22:19 +0000 Subject: [PATCH 237/279] chore: Enable Size-Label bot in all googleapis NodeJs repositories (#1382) (#315) * chore: Enable Size-Label bot in all googleapis NodeJs repositories Auto-label T-shirt size indicator should be assigned on every new pull request in all googleapis NodeJs repositories * Remove product Remove product since it is by default true Source-Link: https://github.com/googleapis/synthtool/commit/f1562fa1c219d7176f79e3eea611b268c361e93d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:bb4d47d0e770abad62699a4664ce6b9ff1629d50c276a6c75860a6a1853dd19b --- core/paginator/.github/.OwlBot.lock.yaml | 3 ++- core/paginator/.github/auto-label.yaml | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 core/paginator/.github/auto-label.yaml diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 84059c19485..c6ddf44fb1c 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:a9d166a74752226923d159cb723df53429e226c9c076dad3ca52ffd073ff3bb4 + digest: sha256:bb4d47d0e770abad62699a4664ce6b9ff1629d50c276a6c75860a6a1853dd19b +# created: 2022-04-01T19:19:56.587347289Z diff --git a/core/paginator/.github/auto-label.yaml b/core/paginator/.github/auto-label.yaml new file mode 100644 index 00000000000..09c8d735b45 --- /dev/null +++ b/core/paginator/.github/auto-label.yaml @@ -0,0 +1,2 @@ +requestsize: + enabled: true From cc20a89657b137581195eb5be4fc89f7181e06e2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 6 Apr 2022 15:48:25 +0000 Subject: [PATCH 238/279] chore(deps): update actions/setup-node action to v3 (#1393) (#316) Co-authored-by: Jeffrey Rennie Source-Link: https://github.com/googleapis/synthtool/commit/6593fb2234deff0444032cb2a91100bde4985caf Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:1d25dfefd805b689a2a2356d35a25b13f2f67bcce55400246432c43a42e96214 --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index c6ddf44fb1c..ba38c131eba 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:bb4d47d0e770abad62699a4664ce6b9ff1629d50c276a6c75860a6a1853dd19b -# created: 2022-04-01T19:19:56.587347289Z + digest: sha256:1d25dfefd805b689a2a2356d35a25b13f2f67bcce55400246432c43a42e96214 +# created: 2022-04-05T22:42:50.409517925Z From 3cb9af84835eb582db71c90ed8065471fdc2bd62 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 6 Apr 2022 20:16:27 +0000 Subject: [PATCH 239/279] chore(deps): update actions/checkout action to v3 (#1392) (#317) Co-authored-by: Jeffrey Rennie Source-Link: https://github.com/googleapis/synthtool/commit/9368bc795a376954920c374406e92efb0e3d0ac4 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:f74e740638e66be7ced1540626217dbb72980eb73885b2339a70592f38c9ff2c --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index ba38c131eba..b4c08f9a4a2 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:1d25dfefd805b689a2a2356d35a25b13f2f67bcce55400246432c43a42e96214 -# created: 2022-04-05T22:42:50.409517925Z + digest: sha256:f74e740638e66be7ced1540626217dbb72980eb73885b2339a70592f38c9ff2c +# created: 2022-04-06T18:36:33.987617127Z From 5e82370ceab193e7ec33622de14ed95d711d2eb3 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 14 Apr 2022 21:48:16 +0000 Subject: [PATCH 240/279] build: add srs yaml file (#320) * build: add sync-repo-settings and change branch protection Source-Link: https://github.com/googleapis/synthtool/commit/ed8079c3d155b3ec820361f3d4d847715c7c1623 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:80bfa0c67226453b37b501be7748b2fa2a2676cfeec0012e79e3a1a8f1cbe6a3 --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/sync-repo-settings.yaml | 17 +++++++++++++++++ core/paginator/.kokoro/common.cfg | 2 +- core/paginator/.kokoro/release/docs.cfg | 2 +- core/paginator/.kokoro/samples-test.sh | 2 +- core/paginator/.kokoro/system-test.sh | 2 +- core/paginator/.kokoro/test.sh | 2 +- 7 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 core/paginator/.github/sync-repo-settings.yaml diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index b4c08f9a4a2..4ed84dc1e56 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:f74e740638e66be7ced1540626217dbb72980eb73885b2339a70592f38c9ff2c -# created: 2022-04-06T18:36:33.987617127Z + digest: sha256:80bfa0c67226453b37b501be7748b2fa2a2676cfeec0012e79e3a1a8f1cbe6a3 +# created: 2022-04-14T19:57:08.518420247Z diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml new file mode 100644 index 00000000000..1b36268333a --- /dev/null +++ b/core/paginator/.github/sync-repo-settings.yaml @@ -0,0 +1,17 @@ +branchProtectionRules: + - pattern: main + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - "ci/kokoro: Samples test" + - "ci/kokoro: System test" + - docs + - lint + - test (10) + - test (12) + - test (14) + - cla/google + - windows + - OwlBot Post Processor diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 593f5cf185e..5ea81b9a558 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/release/docs.cfg b/core/paginator/.kokoro/release/docs.cfg index 66279e409db..936cf5ceb2f 100644 --- a/core/paginator/.kokoro/release/docs.cfg +++ b/core/paginator/.kokoro/release/docs.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } # Download trampoline resources. diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index f249d3e4a2e..fbc058a4ec4 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -56,7 +56,7 @@ fi # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=10 +COVERAGE_NODE=12 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 0a840452084..87fa0653d76 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -49,7 +49,7 @@ npm run system-test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=10 +COVERAGE_NODE=12 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index af1ce7e33ca..a5c7ac04cd3 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -39,7 +39,7 @@ npm test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=10 +COVERAGE_NODE=12 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then From 274fab8e3e7a3cdda5137996d985255362b26385 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 3 May 2022 02:26:21 +0200 Subject: [PATCH 241/279] chore(deps): update dependency @types/mocha to v9 (#321) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^8.0.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/8.2.3/9.1.1) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/compatibility-slim/8.2.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/confidence-slim/8.2.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 56571131d44..09c0f1e79f6 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", - "@types/mocha": "^8.0.0", + "@types/mocha": "^9.0.0", "@types/node": "^16.0.0", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", From 48b0ec3f341373b7b71301190649ae8f0f50b2a8 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 6 May 2022 18:52:22 +0000 Subject: [PATCH 242/279] build: update auto approve to v2, remove release autoapproving (#1432) (#323) * build: update auto-approve file to v2 Source-Link: https://github.com/googleapis/synthtool/commit/19eb6fc07dc178a682da6d186dc874017a166438 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:b9e4584a1fe3c749e3c37c92497b13dce653b2e694f0261f0610eb0e15941357 --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/auto-approve.yml | 15 +++------------ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 4ed84dc1e56..9acbabb1b4c 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:80bfa0c67226453b37b501be7748b2fa2a2676cfeec0012e79e3a1a8f1cbe6a3 -# created: 2022-04-14T19:57:08.518420247Z + digest: sha256:b9e4584a1fe3c749e3c37c92497b13dce653b2e694f0261f0610eb0e15941357 +# created: 2022-05-05T21:08:42.530332893Z diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml index 49cf942280a..4cd91cc16ae 100644 --- a/core/paginator/.github/auto-approve.yml +++ b/core/paginator/.github/auto-approve.yml @@ -1,12 +1,3 @@ -rules: -- author: "release-please[bot]" - title: "^chore: release" - changedFiles: - - "package\\.json$" - - "CHANGELOG\\.md$" - maxFiles: 3 -- author: "renovate-bot" - title: "^(fix|chore)\\(deps\\):" - changedFiles: - - "package\\.json$" - maxFiles: 2 +processes: + - "NodeDependency" + - "OwlBotTemplateChanges" From 500e11401d7b5280dc7bef3d86a8e05399241d13 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 9 May 2022 17:40:27 +0200 Subject: [PATCH 243/279] chore(deps): update dependency sinon to v14 (#324) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^13.0.0` -> `^14.0.0`](https://renovatebot.com/diffs/npm/sinon/13.0.2/14.0.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/compatibility-slim/13.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/confidence-slim/13.0.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v14.0.0`](https://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#​1400) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v13.0.2...v14.0.0) - [`c2bbd826`](https://togithub.com/sinonjs/sinon/commit/c2bbd82641444eb5b32822489ae40f185afbbf00) Drop node 12 (Morgan Roderick) > And embrace Node 18 > > See https://nodejs.org/en/about/releases/ *Released by Morgan Roderick on 2022-05-07.*
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 09c0f1e79f6..d9ac1977cf8 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "linkinator": "^2.0.0", "mocha": "^8.0.0", "proxyquire": "^2.0.1", - "sinon": "^13.0.0", + "sinon": "^14.0.0", "typescript": "^3.8.3", "uuid": "^8.0.0" }, From dad6c04a896a7826c62e30ebd5c63672e72727c0 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Mon, 16 May 2022 17:37:25 -0700 Subject: [PATCH 244/279] build!: update library to use Node 12 (#325) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat!: Update library to use Node 12 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../paginator/.github/sync-repo-settings.yaml | 2 +- .../.kokoro/continuous/node10/common.cfg | 34 ------------------- .../.kokoro/continuous/node10/docs.cfg | 4 --- .../.kokoro/continuous/node10/lint.cfg | 4 --- .../continuous/node10/samples-test.cfg | 7 ---- .../.kokoro/continuous/node10/system-test.cfg | 7 ---- .../.kokoro/continuous/node10/test.cfg | 9 ----- .../.kokoro/continuous/node8/common.cfg | 24 ------------- .../.kokoro/continuous/node8/test.cfg | 0 .../.kokoro/presubmit/node10/common.cfg | 34 ------------------- .../.kokoro/presubmit/node10/docs.cfg | 4 --- .../.kokoro/presubmit/node10/lint.cfg | 4 --- .../.kokoro/presubmit/node10/samples-test.cfg | 7 ---- .../.kokoro/presubmit/node10/system-test.cfg | 7 ---- .../.kokoro/presubmit/node10/test.cfg | 0 .../.kokoro/presubmit/node8/common.cfg | 24 ------------- .../.kokoro/presubmit/node8/test.cfg | 0 core/paginator/package.json | 6 ++-- core/paginator/src/resource-stream.ts | 2 +- 19 files changed, 5 insertions(+), 174 deletions(-) delete mode 100644 core/paginator/.kokoro/continuous/node10/common.cfg delete mode 100644 core/paginator/.kokoro/continuous/node10/docs.cfg delete mode 100644 core/paginator/.kokoro/continuous/node10/lint.cfg delete mode 100644 core/paginator/.kokoro/continuous/node10/samples-test.cfg delete mode 100644 core/paginator/.kokoro/continuous/node10/system-test.cfg delete mode 100644 core/paginator/.kokoro/continuous/node10/test.cfg delete mode 100644 core/paginator/.kokoro/continuous/node8/common.cfg delete mode 100644 core/paginator/.kokoro/continuous/node8/test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/common.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/docs.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/lint.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/samples-test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/system-test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node10/test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node8/common.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node8/test.cfg diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml index 1b36268333a..d1e8b5e6e1a 100644 --- a/core/paginator/.github/sync-repo-settings.yaml +++ b/core/paginator/.github/sync-repo-settings.yaml @@ -9,9 +9,9 @@ branchProtectionRules: - "ci/kokoro: System test" - docs - lint - - test (10) - test (12) - test (14) + - test (16) - cla/google - windows - OwlBot Post Processor diff --git a/core/paginator/.kokoro/continuous/node10/common.cfg b/core/paginator/.kokoro/continuous/node10/common.cfg deleted file mode 100644 index 2c3446bc276..00000000000 --- a/core/paginator/.kokoro/continuous/node10/common.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/continuous/node10/docs.cfg b/core/paginator/.kokoro/continuous/node10/docs.cfg deleted file mode 100644 index d01653e4cf7..00000000000 --- a/core/paginator/.kokoro/continuous/node10/docs.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/docs.sh" -} diff --git a/core/paginator/.kokoro/continuous/node10/lint.cfg b/core/paginator/.kokoro/continuous/node10/lint.cfg deleted file mode 100644 index 939fa12b6d0..00000000000 --- a/core/paginator/.kokoro/continuous/node10/lint.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/lint.sh" -} diff --git a/core/paginator/.kokoro/continuous/node10/samples-test.cfg b/core/paginator/.kokoro/continuous/node10/samples-test.cfg deleted file mode 100644 index 3a84472f882..00000000000 --- a/core/paginator/.kokoro/continuous/node10/samples-test.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/samples-test.sh" -} diff --git a/core/paginator/.kokoro/continuous/node10/system-test.cfg b/core/paginator/.kokoro/continuous/node10/system-test.cfg deleted file mode 100644 index f94bfc2ff77..00000000000 --- a/core/paginator/.kokoro/continuous/node10/system-test.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" -} diff --git a/core/paginator/.kokoro/continuous/node10/test.cfg b/core/paginator/.kokoro/continuous/node10/test.cfg deleted file mode 100644 index 609c0cf0a27..00000000000 --- a/core/paginator/.kokoro/continuous/node10/test.cfg +++ /dev/null @@ -1,9 +0,0 @@ -# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/core/paginator/.kokoro/continuous/node8/common.cfg b/core/paginator/.kokoro/continuous/node8/common.cfg deleted file mode 100644 index ffb8804ee15..00000000000 --- a/core/paginator/.kokoro/continuous/node8/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/continuous/node8/test.cfg b/core/paginator/.kokoro/continuous/node8/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/.kokoro/presubmit/node10/common.cfg b/core/paginator/.kokoro/presubmit/node10/common.cfg deleted file mode 100644 index 2c3446bc276..00000000000 --- a/core/paginator/.kokoro/presubmit/node10/common.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node10/docs.cfg b/core/paginator/.kokoro/presubmit/node10/docs.cfg deleted file mode 100644 index d01653e4cf7..00000000000 --- a/core/paginator/.kokoro/presubmit/node10/docs.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/docs.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node10/lint.cfg b/core/paginator/.kokoro/presubmit/node10/lint.cfg deleted file mode 100644 index 939fa12b6d0..00000000000 --- a/core/paginator/.kokoro/presubmit/node10/lint.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/lint.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node10/samples-test.cfg b/core/paginator/.kokoro/presubmit/node10/samples-test.cfg deleted file mode 100644 index 3a84472f882..00000000000 --- a/core/paginator/.kokoro/presubmit/node10/samples-test.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/samples-test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node10/system-test.cfg b/core/paginator/.kokoro/presubmit/node10/system-test.cfg deleted file mode 100644 index f94bfc2ff77..00000000000 --- a/core/paginator/.kokoro/presubmit/node10/system-test.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node10/test.cfg b/core/paginator/.kokoro/presubmit/node10/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/.kokoro/presubmit/node8/common.cfg b/core/paginator/.kokoro/presubmit/node8/common.cfg deleted file mode 100644 index ffb8804ee15..00000000000 --- a/core/paginator/.kokoro/presubmit/node8/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node8/test.cfg b/core/paginator/.kokoro/presubmit/node8/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/package.json b/core/paginator/package.json index d9ac1977cf8..91d9a688c35 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -41,10 +41,10 @@ "codecov": "^3.0.4", "gts": "^3.0.0", "linkinator": "^2.0.0", - "mocha": "^8.0.0", + "mocha": "^9.2.2", "proxyquire": "^2.0.1", "sinon": "^14.0.0", - "typescript": "^3.8.3", + "typescript": "^4.6.4", "uuid": "^8.0.0" }, "dependencies": { @@ -52,6 +52,6 @@ "extend": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=12.0.0" } } diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts index 6f5c433c0fb..9fd269f1862 100644 --- a/core/paginator/src/resource-stream.ts +++ b/core/paginator/src/resource-stream.ts @@ -104,7 +104,7 @@ export class ResourceStream extends Transform implements ResourceEvents { } ); } catch (e) { - this.destroy(e); + this.destroy(e as Error); } } } From e12e6b712ec7c53454252e2cf513319d46b47a71 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 17 May 2022 16:40:05 -0700 Subject: [PATCH 245/279] chore(main): release 4.0.0 (#326) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 11 +++++++++++ core/paginator/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 350a56c503c..9ba8b4716fb 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,17 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [4.0.0](https://github.com/googleapis/nodejs-paginator/compare/v3.0.7...v4.0.0) (2022-05-17) + + +### ⚠ BREAKING CHANGES + +* update library to use Node 12 (#325) + +### Build System + +* update library to use Node 12 ([#325](https://github.com/googleapis/nodejs-paginator/issues/325)) ([02887ae](https://github.com/googleapis/nodejs-paginator/commit/02887ae2b370bff18cae7fe1d434ecdf663b5748)) + ### [3.0.7](https://github.com/googleapis/nodejs-paginator/compare/v3.0.6...v3.0.7) (2022-02-14) diff --git a/core/paginator/package.json b/core/paginator/package.json index 91d9a688c35..c8a51fb36b1 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "3.0.7", + "version": "4.0.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From ec1fd40f663af1c66da51f9ce686b4800ca3e812 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 22:04:30 +0000 Subject: [PATCH 246/279] build(node): add new jsteam + enforce branches up-to-date (#1451) (#327) Source-Link: https://github.com/googleapis/synthtool/commit/cd785291d51d97003d1263056cd2b9de1849a0ab Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:ddb19a6df6c1fa081bc99fb29658f306dd64668bc26f75d1353b28296f3a78e6 --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/sync-repo-settings.yaml | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 9acbabb1b4c..f3ca5561cb5 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:b9e4584a1fe3c749e3c37c92497b13dce653b2e694f0261f0610eb0e15941357 -# created: 2022-05-05T21:08:42.530332893Z + digest: sha256:ddb19a6df6c1fa081bc99fb29658f306dd64668bc26f75d1353b28296f3a78e6 +# created: 2022-06-07T21:18:30.024751809Z diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml index d1e8b5e6e1a..4a30a08e54c 100644 --- a/core/paginator/.github/sync-repo-settings.yaml +++ b/core/paginator/.github/sync-repo-settings.yaml @@ -3,7 +3,7 @@ branchProtectionRules: isAdminEnforced: true requiredApprovingReviewCount: 1 requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false + requiresStrictStatusChecks: true requiredStatusCheckContexts: - "ci/kokoro: Samples test" - "ci/kokoro: System test" @@ -15,3 +15,10 @@ branchProtectionRules: - cla/google - windows - OwlBot Post Processor +permissionRules: + - team: yoshi-admins + permission: admin + - team: jsteam-admins + permission: admin + - team: jsteam + permission: push From 4dc0b76db1a8ebc98e1d74368b80c61f1cdcf5df Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Jul 2022 22:50:24 +0200 Subject: [PATCH 247/279] chore(deps): update dependency linkinator to v4 (#328) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [linkinator](https://togithub.com/JustinBeckwith/linkinator) | [`^2.0.0` -> `^4.0.0`](https://renovatebot.com/diffs/npm/linkinator/2.16.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/compatibility-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/confidence-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
JustinBeckwith/linkinator ### [`v4.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v4.0.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.1.0...v4.0.0) ##### Features - create new release with notes ([#​508](https://togithub.com/JustinBeckwith/linkinator/issues/508)) ([2cab633](https://togithub.com/JustinBeckwith/linkinator/commit/2cab633c9659eb10794a4bac06f8b0acdc3e2c0c)) ##### BREAKING CHANGES - The commits in [#​507](https://togithub.com/JustinBeckwith/linkinator/issues/507) and [#​506](https://togithub.com/JustinBeckwith/linkinator/issues/506) both had breaking changes. They included dropping support for Node.js 12.x and updating the CSV export to be streaming, and to use a new way of writing the CSV file. This is an empty to commit using the `BREAKING CHANGE` format in the commit message to ensure a release is triggered. ### [`v3.1.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.1.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.6...v3.1.0) ##### Features - allow --skip to be defined multiple times ([#​399](https://togithub.com/JustinBeckwith/linkinator/issues/399)) ([5ca5a46](https://togithub.com/JustinBeckwith/linkinator/commit/5ca5a461508e688de12e5ae6b4cfb6565f832ebf)) ### [`v3.0.6`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.6) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.5...v3.0.6) ##### Bug Fixes - **deps:** upgrade node-glob to v8 ([#​397](https://togithub.com/JustinBeckwith/linkinator/issues/397)) ([d334dc6](https://togithub.com/JustinBeckwith/linkinator/commit/d334dc6734cd7c2b73d7ed3dea0550a6c3072ad5)) ### [`v3.0.5`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.5) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.4...v3.0.5) ##### Bug Fixes - **deps:** upgrade to htmlparser2 v8.0.1 ([#​396](https://togithub.com/JustinBeckwith/linkinator/issues/396)) ([ba3b9a8](https://togithub.com/JustinBeckwith/linkinator/commit/ba3b9a8a9b19d39af6ed91790135e833b80c1eb6)) ### [`v3.0.4`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.4) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.3...v3.0.4) ##### Bug Fixes - **deps:** update dependency gaxios to v5 ([#​391](https://togithub.com/JustinBeckwith/linkinator/issues/391)) ([48af50e](https://togithub.com/JustinBeckwith/linkinator/commit/48af50e787731204aeb7eff41325c62291311e45)) ### [`v3.0.3`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.3) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.2...v3.0.3) ##### Bug Fixes - export getConfig from index ([#​371](https://togithub.com/JustinBeckwith/linkinator/issues/371)) ([0bc0355](https://togithub.com/JustinBeckwith/linkinator/commit/0bc0355c7e2ea457f247e6b52d1577b8c4ecb3a1)) ### [`v3.0.2`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.2) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.1...v3.0.2) ##### Bug Fixes - allow server root with trailing slash ([#​370](https://togithub.com/JustinBeckwith/linkinator/issues/370)) ([8adf6b0](https://togithub.com/JustinBeckwith/linkinator/commit/8adf6b025fda250e38461f1cdad40fe08c3b3b7c)) ### [`v3.0.1`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.1) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.0...v3.0.1) ##### Bug Fixes - decode path parts in local web server ([#​369](https://togithub.com/JustinBeckwith/linkinator/issues/369)) ([4696a0c](https://togithub.com/JustinBeckwith/linkinator/commit/4696a0c38c341b178ed815f47371fca955979feb)) ### [`v3.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v2.16.2...v3.0.0) ##### Bug Fixes - **deps:** update dependency chalk to v5 ([#​362](https://togithub.com/JustinBeckwith/linkinator/issues/362)) ([4b17a8d](https://togithub.com/JustinBeckwith/linkinator/commit/4b17a8d87b649eaf813428f8ee6955e1d21dae4f)) - feat!: convert to es modules, drop node 10 ([#​359](https://togithub.com/JustinBeckwith/linkinator/issues/359)) ([efee299](https://togithub.com/JustinBeckwith/linkinator/commit/efee299ab8a805accef751eecf8538915a4e7783)), closes [#​359](https://togithub.com/JustinBeckwith/linkinator/issues/359) ##### BREAKING CHANGES - this module now requires node.js 12 and above, and has moved to es modules by default.
--- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index c8a51fb36b1..8a91318e085 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -40,7 +40,7 @@ "c8": "^7.0.0", "codecov": "^3.0.4", "gts": "^3.0.0", - "linkinator": "^2.0.0", + "linkinator": "^4.0.0", "mocha": "^9.2.2", "proxyquire": "^2.0.1", "sinon": "^14.0.0", From c0ebddf543ce010bcbc948315848b5ce4753b287 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 23 Aug 2022 22:44:24 +0000 Subject: [PATCH 248/279] fix: remove pip install statements (#1546) (#329) because the tools are already installed in the docker image as of https://github.com/googleapis/testing-infra-docker/pull/227 Source-Link: https://github.com/googleapis/synthtool/commit/ab7384ea1c30df8ec2e175566ef2508e6c3a2acb Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:bb493bf01d28519e82ab61c490c20122c85a7119c03a978ad0c34b4239fbad15 --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.kokoro/publish.sh | 1 - core/paginator/.kokoro/release/docs.sh | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index f3ca5561cb5..748836981e2 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:ddb19a6df6c1fa081bc99fb29658f306dd64668bc26f75d1353b28296f3a78e6 -# created: 2022-06-07T21:18:30.024751809Z + digest: sha256:bb493bf01d28519e82ab61c490c20122c85a7119c03a978ad0c34b4239fbad15 +# created: 2022-08-23T18:40:55.597313991Z diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index 77a5defb2b5..949e3e1d0c2 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -19,7 +19,6 @@ set -eo pipefail export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Start the releasetool reporter -python3 -m pip install gcp-releasetool python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script cd $(dirname $0)/.. diff --git a/core/paginator/.kokoro/release/docs.sh b/core/paginator/.kokoro/release/docs.sh index 4c866c86000..1d8f3f490a5 100755 --- a/core/paginator/.kokoro/release/docs.sh +++ b/core/paginator/.kokoro/release/docs.sh @@ -29,7 +29,6 @@ npm run docs # create docs.metadata, based on package.json and .repo-metadata.json. npm i json@9.0.6 -g -python3 -m pip install --user gcp-docuploader python3 -m docuploader create-metadata \ --name=$(cat .repo-metadata.json | json name) \ --version=$(cat package.json | json version) \ From 41bfdb1e411a640701db6e1fd1488da6f857e339 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Sep 2022 03:58:30 +0200 Subject: [PATCH 249/279] chore(deps): update dependency uuid to v9 (#331) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [uuid](https://togithub.com/uuidjs/uuid) | [`^8.0.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/uuid/8.3.2/9.0.0) | [![age](https://badges.renovateapi.com/packages/npm/uuid/9.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/uuid/9.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/uuid/9.0.0/compatibility-slim/8.3.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/uuid/9.0.0/confidence-slim/8.3.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
uuidjs/uuid ### [`v9.0.0`](https://togithub.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#​900-httpsgithubcomuuidjsuuidcomparev832v900-2022-09-05) [Compare Source](https://togithub.com/uuidjs/uuid/compare/v8.3.2...v9.0.0) ##### ⚠ BREAKING CHANGES - Drop Node.js 10.x support. This library always aims at supporting one EOLed LTS release which by this time now is 12.x which has reached EOL 30 Apr 2022. - Remove the minified UMD build from the package. Minified code is hard to audit and since this is a widely used library it seems more appropriate nowadays to optimize for auditability than to ship a legacy module format that, at best, serves educational purposes nowadays. For production browser use cases, users should be using a bundler. For educational purposes, today's online sandboxes like replit.com offer convenient ways to load npm modules, so the use case for UMD through repos like UNPKG or jsDelivr has largely vanished. - Drop IE 11 and Safari 10 support. Drop support for browsers that don't correctly implement const/let and default arguments, and no longer transpile the browser build to ES2015. This also removes the fallback on msCrypto instead of the crypto API. Browser tests are run in the first supported version of each supported browser and in the latest (as of this commit) version available on Browserstack. ##### Features - optimize uuid.v1 by 1.3x uuid.v4 by 4.3x (430%) ([#​597](https://togithub.com/uuidjs/uuid/issues/597)) ([3a033f6](https://togithub.com/uuidjs/uuid/commit/3a033f6bab6bb3780ece6d645b902548043280bc)) - remove UMD build ([#​645](https://togithub.com/uuidjs/uuid/issues/645)) ([e948a0f](https://togithub.com/uuidjs/uuid/commit/e948a0f22bf22f4619b27bd913885e478e20fe6f)), closes [#​620](https://togithub.com/uuidjs/uuid/issues/620) - use native crypto.randomUUID when available ([#​600](https://togithub.com/uuidjs/uuid/issues/600)) ([c9e076c](https://togithub.com/uuidjs/uuid/commit/c9e076c852edad7e9a06baaa1d148cf4eda6c6c4)) ##### Bug Fixes - add Jest/jsdom compatibility ([#​642](https://togithub.com/uuidjs/uuid/issues/642)) ([16f9c46](https://togithub.com/uuidjs/uuid/commit/16f9c469edf46f0786164cdf4dc980743984a6fd)) - change default export to named function ([#​545](https://togithub.com/uuidjs/uuid/issues/545)) ([c57bc5a](https://togithub.com/uuidjs/uuid/commit/c57bc5a9a0653273aa639cda9177ce52efabe42a)) - handle error when parameter is not set in v3 and v5 ([#​622](https://togithub.com/uuidjs/uuid/issues/622)) ([fcd7388](https://togithub.com/uuidjs/uuid/commit/fcd73881692d9fabb63872576ba28e30ff852091)) - run npm audit fix ([#​644](https://togithub.com/uuidjs/uuid/issues/644)) ([04686f5](https://togithub.com/uuidjs/uuid/commit/04686f54c5fed2cfffc1b619f4970c4bb8532353)) - upgrading from uuid3 broken link ([#​568](https://togithub.com/uuidjs/uuid/issues/568)) ([1c849da](https://togithub.com/uuidjs/uuid/commit/1c849da6e164259e72e18636726345b13a7eddd6)) ##### build - drop Node.js 8.x from babel transpile target ([#​603](https://togithub.com/uuidjs/uuid/issues/603)) ([aa11485](https://togithub.com/uuidjs/uuid/commit/aa114858260402107ec8a1e1a825dea0a259bcb5)) - drop support for legacy browsers (IE11, Safari 10) ([#​604](https://togithub.com/uuidjs/uuid/issues/604)) ([0f433e5](https://togithub.com/uuidjs/uuid/commit/0f433e5ec444edacd53016de67db021102f36148)) - drop node 10.x to upgrade dev dependencies ([#​653](https://togithub.com/uuidjs/uuid/issues/653)) ([28a5712](https://togithub.com/uuidjs/uuid/commit/28a571283f8abda6b9d85e689f95b7d3ee9e282e)), closes [#​643](https://togithub.com/uuidjs/uuid/issues/643) ##### [8.3.2](https://togithub.com/uuidjs/uuid/compare/v8.3.1...v8.3.2) (2020-12-08) ##### Bug Fixes - lazy load getRandomValues ([#​537](https://togithub.com/uuidjs/uuid/issues/537)) ([16c8f6d](https://togithub.com/uuidjs/uuid/commit/16c8f6df2f6b09b4d6235602d6a591188320a82e)), closes [#​536](https://togithub.com/uuidjs/uuid/issues/536) ##### [8.3.1](https://togithub.com/uuidjs/uuid/compare/v8.3.0...v8.3.1) (2020-10-04) ##### Bug Fixes - support expo>=39.0.0 ([#​515](https://togithub.com/uuidjs/uuid/issues/515)) ([c65a0f3](https://togithub.com/uuidjs/uuid/commit/c65a0f3fa73b901959d638d1e3591dfacdbed867)), closes [#​375](https://togithub.com/uuidjs/uuid/issues/375)
--- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 8a91318e085..ce627efa89a 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -45,7 +45,7 @@ "proxyquire": "^2.0.1", "sinon": "^14.0.0", "typescript": "^4.6.4", - "uuid": "^8.0.0" + "uuid": "^9.0.0" }, "dependencies": { "arrify": "^2.0.0", From 78b7a8547e695ba9ef9d766df6b14280d3e9a279 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 26 Sep 2022 15:42:16 +0000 Subject: [PATCH 250/279] chore(main): release 4.0.1 (#330) :robot: I have created a release *beep* *boop* --- ## [4.0.1](https://github.com/googleapis/nodejs-paginator/compare/v4.0.0...v4.0.1) (2022-09-09) ### Bug Fixes * Remove pip install statements ([#1546](https://github.com/googleapis/nodejs-paginator/issues/1546)) ([#329](https://github.com/googleapis/nodejs-paginator/issues/329)) ([697567b](https://github.com/googleapis/nodejs-paginator/commit/697567bdd86226b740304734b9562a2f2241a96f)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 9ba8b4716fb..46c72b9dfb6 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [4.0.1](https://github.com/googleapis/nodejs-paginator/compare/v4.0.0...v4.0.1) (2022-09-09) + + +### Bug Fixes + +* Remove pip install statements ([#1546](https://github.com/googleapis/nodejs-paginator/issues/1546)) ([#329](https://github.com/googleapis/nodejs-paginator/issues/329)) ([697567b](https://github.com/googleapis/nodejs-paginator/commit/697567bdd86226b740304734b9562a2f2241a96f)) + ## [4.0.0](https://github.com/googleapis/nodejs-paginator/compare/v3.0.7...v4.0.0) (2022-05-17) diff --git a/core/paginator/package.json b/core/paginator/package.json index ce627efa89a..9ce9fc13000 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "4.0.0", + "version": "4.0.1", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 0c57c7ef990356455c0fc749f76745dcdb02fc8c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 10 Nov 2022 10:24:19 +0100 Subject: [PATCH 251/279] chore(deps): update dependency @types/node to v18 (#332) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`^16.0.0` -> `^18.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/16.18.3/18.11.9) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/compatibility-slim/16.18.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.9/confidence-slim/16.18.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-paginator). --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 9ce9fc13000..f2092be388c 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -33,7 +33,7 @@ "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", "@types/mocha": "^9.0.0", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", "@types/uuid": "^8.0.0", From c1148ab5681a20a8ba3e21497b2ac01314589292 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 23:34:13 +0000 Subject: [PATCH 252/279] build: have Kokoro grab service account credentials from secret that will be rotated (#335) * build: have Kokoro grab service account credentials from secret that will be rotated Source-Link: https://togithub.com/googleapis/synthtool/commit/4a0230eb8dc497f36fd3839e6144982131f30a9d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:f59941869d508c6825deeffce180579545fd528f359f549a80a18ec0458d7094 --- core/paginator/.github/.OwlBot.lock.yaml | 3 +-- core/paginator/.kokoro/continuous/node12/samples-test.cfg | 5 +++++ core/paginator/.kokoro/presubmit/node12/samples-test.cfg | 5 +++++ core/paginator/.kokoro/samples-test.sh | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 748836981e2..6c41b3088f5 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:bb493bf01d28519e82ab61c490c20122c85a7119c03a978ad0c34b4239fbad15 -# created: 2022-08-23T18:40:55.597313991Z + digest: sha256:f59941869d508c6825deeffce180579545fd528f359f549a80a18ec0458d7094 diff --git a/core/paginator/.kokoro/continuous/node12/samples-test.cfg b/core/paginator/.kokoro/continuous/node12/samples-test.cfg index 3a84472f882..1fc8ef25dba 100644 --- a/core/paginator/.kokoro/continuous/node12/samples-test.cfg +++ b/core/paginator/.kokoro/continuous/node12/samples-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-paginator/.kokoro/samples-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/presubmit/node12/samples-test.cfg b/core/paginator/.kokoro/presubmit/node12/samples-test.cfg index 3a84472f882..1fc8ef25dba 100644 --- a/core/paginator/.kokoro/presubmit/node12/samples-test.cfg +++ b/core/paginator/.kokoro/presubmit/node12/samples-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-paginator/.kokoro/samples-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index fbc058a4ec4..806c0082236 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -19,7 +19,7 @@ set -eo pipefail export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. -export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/long-door-651-kokoro-system-test-service-account export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. From 88648b9b6a3edc66123a982de6c2d870eb509b12 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 22:48:28 +0000 Subject: [PATCH 253/279] build: have Kokoro grab service account credentials from secret that will be rotated for system tests (#336) Source-Link: https://togithub.com/googleapis/synthtool/commit/abbc97db69a57dcb991ba97ef503305b701ffb3a Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:fe04ae044dadf5ad88d979dbcc85e0e99372fb5d6316790341e6aca5e4e3fbc8 --- core/paginator/.github/.OwlBot.lock.yaml | 2 +- core/paginator/.kokoro/continuous/node12/system-test.cfg | 5 +++++ core/paginator/.kokoro/presubmit/node12/system-test.cfg | 5 +++++ core/paginator/.kokoro/system-test.sh | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 6c41b3088f5..788f7a9fdff 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:f59941869d508c6825deeffce180579545fd528f359f549a80a18ec0458d7094 + digest: sha256:fe04ae044dadf5ad88d979dbcc85e0e99372fb5d6316790341e6aca5e4e3fbc8 diff --git a/core/paginator/.kokoro/continuous/node12/system-test.cfg b/core/paginator/.kokoro/continuous/node12/system-test.cfg index f94bfc2ff77..6154e1a9a6e 100644 --- a/core/paginator/.kokoro/continuous/node12/system-test.cfg +++ b/core/paginator/.kokoro/continuous/node12/system-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-paginator/.kokoro/system-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/presubmit/node12/system-test.cfg b/core/paginator/.kokoro/presubmit/node12/system-test.cfg index f94bfc2ff77..6154e1a9a6e 100644 --- a/core/paginator/.kokoro/presubmit/node12/system-test.cfg +++ b/core/paginator/.kokoro/presubmit/node12/system-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-paginator/.kokoro/system-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 87fa0653d76..0201e9dfd71 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -19,7 +19,7 @@ set -eo pipefail export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. -export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/long-door-651-kokoro-system-test-service-account export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. From 65e18d30542134a8e1e2ef3ddf2026d600e2bb83 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 Feb 2023 23:00:18 +0000 Subject: [PATCH 254/279] chore(deps): update dependency sinon to v15 (#333) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index f2092be388c..a6ef4f90688 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "linkinator": "^4.0.0", "mocha": "^9.2.2", "proxyquire": "^2.0.1", - "sinon": "^14.0.0", + "sinon": "^15.0.0", "typescript": "^4.6.4", "uuid": "^9.0.0" }, From d085cfa73b5a709a03fd406f0aa8bf99a8322651 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 Feb 2023 23:05:27 +0000 Subject: [PATCH 255/279] chore(deps): update dependency @types/uuid to v9 (#334) Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index a6ef4f90688..b8be4df0160 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -36,7 +36,7 @@ "@types/node": "^18.0.0", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", - "@types/uuid": "^8.0.0", + "@types/uuid": "^9.0.0", "c8": "^7.0.0", "codecov": "^3.0.4", "gts": "^3.0.0", From be8f70c596ba81dae8071f2f0e34680f20c6fe7f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 12:10:18 -0700 Subject: [PATCH 256/279] chore: store nodejs build artifacts in placer (#337) Source-Link: https://github.com/googleapis/synthtool/commit/3602660ae703daadcb7bc2f87bf601241665f3f8 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e6d785d6de3cab027f6213d95ccedab4cab3811b0d3172b78db2216faa182e32 Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.kokoro/publish.sh | 14 +++++++++++++- core/paginator/.kokoro/release/publish.cfg | 12 ++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 788f7a9fdff..0b836e11907 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:fe04ae044dadf5ad88d979dbcc85e0e99372fb5d6316790341e6aca5e4e3fbc8 + digest: sha256:e6d785d6de3cab027f6213d95ccedab4cab3811b0d3172b78db2216faa182e32 diff --git a/core/paginator/.kokoro/publish.sh b/core/paginator/.kokoro/publish.sh index 949e3e1d0c2..ca1d47af347 100755 --- a/core/paginator/.kokoro/publish.sh +++ b/core/paginator/.kokoro/publish.sh @@ -27,4 +27,16 @@ NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-npm-token-1) echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install -npm publish --access=public --registry=https://wombat-dressing-room.appspot.com +npm pack . +# npm provides no way to specify, observe, or predict the name of the tarball +# file it generates. We have to look in the current directory for the freshest +# .tgz file. +TARBALL=$(ls -1 -t *.tgz | head -1) + +npm publish --access=public --registry=https://wombat-dressing-room.appspot.com "$TARBALL" + +# Kokoro collects *.tgz and package-lock.json files and stores them in Placer +# so we can generate SBOMs and attestations. +# However, we *don't* want Kokoro to collect package-lock.json and *.tgz files +# that happened to be installed with dependencies. +find node_modules -name package-lock.json -o -name "*.tgz" | xargs rm -f \ No newline at end of file diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index e9af8c4fdd5..b617b9aec8c 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -37,3 +37,15 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-paginator/.kokoro/publish.sh" } + +# Store the packages we uploaded to npmjs.org and their corresponding +# package-lock.jsons in Placer. That way, we have a record of exactly +# what we published, and which version of which tools we used to publish +# it, which we can use to generate SBOMs and attestations. +action { + define_artifacts { + regex: "github/**/*.tgz" + regex: "github/**/package-lock.json" + strip_prefix: "github" + } +} From eed1d633de83b114e226add3f76f216caa3e23d2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 09:53:42 -0400 Subject: [PATCH 257/279] docs: update docs-devsite.sh to use latest node-js-rad version (#338) Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> Source-Link: https://github.com/googleapis/synthtool/commit/b1ced7db5adee08cfa91d6b138679fceff32c004 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9 Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 3 ++- core/paginator/.kokoro/release/docs-devsite.sh | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 0b836e11907..21ad18bd722 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:e6d785d6de3cab027f6213d95ccedab4cab3811b0d3172b78db2216faa182e32 + digest: sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9 +# created: 2023-05-24T20:32:43.844586914Z diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index 2198e67fe92..3596c1e4cb1 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -25,5 +25,6 @@ if [[ -z "$CREDENTIALS" ]]; then fi npm install -npm install --no-save @google-cloud/cloud-rad@^0.2.5 -npx @google-cloud/cloud-rad \ No newline at end of file +npm install --no-save @google-cloud/cloud-rad@^0.3.7 +# publish docs to devsite +npx @google-cloud/cloud-rad . cloud-rad From d9e3b5483906a87717561b25307bb08396a9a690 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:34:03 -0700 Subject: [PATCH 258/279] chore!: update to Node 14 (#346) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: fix node release schedule link Co-authored-by: Jeffrey Rennie Source-Link: https://github.com/googleapis/synthtool/commit/1a2431537d603e95b4b32317fb494542f75a2165 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e08f9a3757808cdaf7a377e962308c65c4d7eff12db206d4fae702dd50d43430 * chore!: update to Node 14 * update c8 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update sync-repo-settings.yaml * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Sofia Leon Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/sync-repo-settings.yaml | 2 +- core/paginator/.gitignore | 1 + core/paginator/.kokoro/common.cfg | 2 +- .../.kokoro/continuous/{node12 => node14}/common.cfg | 2 +- .../.kokoro/continuous/{node12 => node14}/lint.cfg | 0 .../continuous/{node12 => node14}/samples-test.cfg | 0 .../continuous/{node12 => node14}/system-test.cfg | 0 .../.kokoro/continuous/{node12 => node14}/test.cfg | 0 .../.kokoro/presubmit/{node12 => node14}/common.cfg | 2 +- .../presubmit/{node12 => node14}/samples-test.cfg | 0 .../presubmit/{node12 => node14}/system-test.cfg | 0 .../.kokoro/presubmit/{node12 => node14}/test.cfg | 0 core/paginator/.kokoro/release/docs.cfg | 2 +- core/paginator/.kokoro/release/publish.cfg | 2 +- core/paginator/.kokoro/samples-test.sh | 2 +- core/paginator/.kokoro/system-test.sh | 2 +- core/paginator/.kokoro/test.bat | 2 +- core/paginator/.kokoro/test.sh | 2 +- core/paginator/README.md | 2 +- core/paginator/package.json | 10 +++++----- 21 files changed, 19 insertions(+), 18 deletions(-) rename core/paginator/.kokoro/continuous/{node12 => node14}/common.cfg (89%) rename core/paginator/.kokoro/continuous/{node12 => node14}/lint.cfg (100%) rename core/paginator/.kokoro/continuous/{node12 => node14}/samples-test.cfg (100%) rename core/paginator/.kokoro/continuous/{node12 => node14}/system-test.cfg (100%) rename core/paginator/.kokoro/continuous/{node12 => node14}/test.cfg (100%) rename core/paginator/.kokoro/presubmit/{node12 => node14}/common.cfg (89%) rename core/paginator/.kokoro/presubmit/{node12 => node14}/samples-test.cfg (100%) rename core/paginator/.kokoro/presubmit/{node12 => node14}/system-test.cfg (100%) rename core/paginator/.kokoro/presubmit/{node12 => node14}/test.cfg (100%) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 21ad18bd722..a3d003c65a1 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9 -# created: 2023-05-24T20:32:43.844586914Z + digest: sha256:e08f9a3757808cdaf7a377e962308c65c4d7eff12db206d4fae702dd50d43430 +# created: 2023-08-03T18:46:14.719706948Z diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml index 4a30a08e54c..1350faeff2a 100644 --- a/core/paginator/.github/sync-repo-settings.yaml +++ b/core/paginator/.github/sync-repo-settings.yaml @@ -9,9 +9,9 @@ branchProtectionRules: - "ci/kokoro: System test" - docs - lint - - test (12) - test (14) - test (16) + - test (18) - cla/google - windows - OwlBot Post Processor diff --git a/core/paginator/.gitignore b/core/paginator/.gitignore index e993f945563..94d7296289d 100644 --- a/core/paginator/.gitignore +++ b/core/paginator/.gitignore @@ -5,3 +5,4 @@ package-lock.json docs/ .coverage __pycache__ +.DS_Store \ No newline at end of file diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 5ea81b9a558..032ff5371e6 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/continuous/node12/common.cfg b/core/paginator/.kokoro/continuous/node14/common.cfg similarity index 89% rename from core/paginator/.kokoro/continuous/node12/common.cfg rename to core/paginator/.kokoro/continuous/node14/common.cfg index 5ea81b9a558..032ff5371e6 100644 --- a/core/paginator/.kokoro/continuous/node12/common.cfg +++ b/core/paginator/.kokoro/continuous/node14/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/continuous/node12/lint.cfg b/core/paginator/.kokoro/continuous/node14/lint.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node12/lint.cfg rename to core/paginator/.kokoro/continuous/node14/lint.cfg diff --git a/core/paginator/.kokoro/continuous/node12/samples-test.cfg b/core/paginator/.kokoro/continuous/node14/samples-test.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node12/samples-test.cfg rename to core/paginator/.kokoro/continuous/node14/samples-test.cfg diff --git a/core/paginator/.kokoro/continuous/node12/system-test.cfg b/core/paginator/.kokoro/continuous/node14/system-test.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node12/system-test.cfg rename to core/paginator/.kokoro/continuous/node14/system-test.cfg diff --git a/core/paginator/.kokoro/continuous/node12/test.cfg b/core/paginator/.kokoro/continuous/node14/test.cfg similarity index 100% rename from core/paginator/.kokoro/continuous/node12/test.cfg rename to core/paginator/.kokoro/continuous/node14/test.cfg diff --git a/core/paginator/.kokoro/presubmit/node12/common.cfg b/core/paginator/.kokoro/presubmit/node14/common.cfg similarity index 89% rename from core/paginator/.kokoro/presubmit/node12/common.cfg rename to core/paginator/.kokoro/presubmit/node14/common.cfg index 5ea81b9a558..032ff5371e6 100644 --- a/core/paginator/.kokoro/presubmit/node12/common.cfg +++ b/core/paginator/.kokoro/presubmit/node14/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/core/paginator/.kokoro/presubmit/node12/samples-test.cfg b/core/paginator/.kokoro/presubmit/node14/samples-test.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node12/samples-test.cfg rename to core/paginator/.kokoro/presubmit/node14/samples-test.cfg diff --git a/core/paginator/.kokoro/presubmit/node12/system-test.cfg b/core/paginator/.kokoro/presubmit/node14/system-test.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node12/system-test.cfg rename to core/paginator/.kokoro/presubmit/node14/system-test.cfg diff --git a/core/paginator/.kokoro/presubmit/node12/test.cfg b/core/paginator/.kokoro/presubmit/node14/test.cfg similarity index 100% rename from core/paginator/.kokoro/presubmit/node12/test.cfg rename to core/paginator/.kokoro/presubmit/node14/test.cfg diff --git a/core/paginator/.kokoro/release/docs.cfg b/core/paginator/.kokoro/release/docs.cfg index 936cf5ceb2f..91d905e40c9 100644 --- a/core/paginator/.kokoro/release/docs.cfg +++ b/core/paginator/.kokoro/release/docs.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } # Download trampoline resources. diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index b617b9aec8c..eca41976468 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -30,7 +30,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 806c0082236..8c5d108cb58 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -56,7 +56,7 @@ fi # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=12 +COVERAGE_NODE=14 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/core/paginator/.kokoro/system-test.sh b/core/paginator/.kokoro/system-test.sh index 0201e9dfd71..0b3043d268c 100755 --- a/core/paginator/.kokoro/system-test.sh +++ b/core/paginator/.kokoro/system-test.sh @@ -49,7 +49,7 @@ npm run system-test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=12 +COVERAGE_NODE=14 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/core/paginator/.kokoro/test.bat b/core/paginator/.kokoro/test.bat index ae59e59be3e..0bb12405231 100644 --- a/core/paginator/.kokoro/test.bat +++ b/core/paginator/.kokoro/test.bat @@ -21,7 +21,7 @@ cd .. @rem we upgrade Node.js in the image: SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm -call nvm use v12.14.1 +call nvm use v14.17.3 call which node call npm install || goto :error diff --git a/core/paginator/.kokoro/test.sh b/core/paginator/.kokoro/test.sh index a5c7ac04cd3..862d478d324 100755 --- a/core/paginator/.kokoro/test.sh +++ b/core/paginator/.kokoro/test.sh @@ -39,7 +39,7 @@ npm test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=12 +COVERAGE_NODE=14 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/core/paginator/README.md b/core/paginator/README.md index c7c58082a5e..e85b650d493 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -72,7 +72,7 @@ also contains samples. ## Supported Node.js Versions -Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). +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 diff --git a/core/paginator/package.json b/core/paginator/package.json index b8be4df0160..c6424a247bb 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -33,18 +33,18 @@ "@compodoc/compodoc": "^1.1.7", "@types/extend": "^3.0.0", "@types/mocha": "^9.0.0", - "@types/node": "^18.0.0", + "@types/node": "^20.4.9", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", "@types/uuid": "^9.0.0", - "c8": "^7.0.0", + "c8": "^8.0.0", "codecov": "^3.0.4", - "gts": "^3.0.0", + "gts": "^5.0.0", "linkinator": "^4.0.0", "mocha": "^9.2.2", "proxyquire": "^2.0.1", "sinon": "^15.0.0", - "typescript": "^4.6.4", + "typescript": "^5.1.6", "uuid": "^9.0.0" }, "dependencies": { @@ -52,6 +52,6 @@ "extend": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } } From 9bb4ba1b8c21d1167b62f3ebf08c5b0585e3ebdd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:37:59 -0700 Subject: [PATCH 259/279] chore(main): release 5.0.0 (#347) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 11 +++++++++++ core/paginator/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 46c72b9dfb6..1ad97fe9466 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,17 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [5.0.0](https://github.com/googleapis/nodejs-paginator/compare/v4.0.1...v5.0.0) (2023-08-09) + + +### ⚠ BREAKING CHANGES + +* update to Node 14 ([#346](https://github.com/googleapis/nodejs-paginator/issues/346)) + +### Miscellaneous Chores + +* Update to Node 14 ([#346](https://github.com/googleapis/nodejs-paginator/issues/346)) ([262ad70](https://github.com/googleapis/nodejs-paginator/commit/262ad70d3cc5e1aa8a67ece54c04920b24ceea09)) + ## [4.0.1](https://github.com/googleapis/nodejs-paginator/compare/v4.0.0...v4.0.1) (2022-09-09) diff --git a/core/paginator/package.json b/core/paginator/package.json index c6424a247bb..8454e97d678 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "4.0.1", + "version": "5.0.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From a6ed3ea105009f9eded4e4824968aa99b75b17a0 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 14:29:14 -0700 Subject: [PATCH 260/279] chore: correct path to node_modules (#352) Source-Link: https://github.com/googleapis/synthtool/commit/8bc6db86e5064c36421923e310e25908b741b6eb Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e7a37871068ab50b3841cb08619c288dc0665b62a7f39f2bdb7dea0ce6e89a3d Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/sync-repo-settings.yaml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index a3d003c65a1..5ddcbae8ff1 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:e08f9a3757808cdaf7a377e962308c65c4d7eff12db206d4fae702dd50d43430 -# created: 2023-08-03T18:46:14.719706948Z + digest: sha256:e7a37871068ab50b3841cb08619c288dc0665b62a7f39f2bdb7dea0ce6e89a3d +# created: 2023-09-22T19:12:26.585611364Z diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml index 1350faeff2a..b46e4c4d61d 100644 --- a/core/paginator/.github/sync-repo-settings.yaml +++ b/core/paginator/.github/sync-repo-settings.yaml @@ -7,7 +7,6 @@ branchProtectionRules: requiredStatusCheckContexts: - "ci/kokoro: Samples test" - "ci/kokoro: System test" - - docs - lint - test (14) - test (16) From 1fecd26283801aec3ac6e2aa35ad5c49539e1e39 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 14:51:25 -0400 Subject: [PATCH 261/279] chore(nodejs): Add `system-test/fixtures` to `.eslintignore` (#353) * fix: Add `system-test/fixtures` to `.eslintignore` * refactor: Use `**` Source-Link: https://github.com/googleapis/synthtool/commit/b7858ba70e8acabc89d13558a71dd9318a57034a Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:abc68a9bbf4fa808b25fa16d3b11141059dc757dbc34f024744bba36c200b40f Co-authored-by: Owl Bot --- core/paginator/.eslintignore | 1 + core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/paginator/.eslintignore b/core/paginator/.eslintignore index ea5b04aebe6..c4a0963e9bd 100644 --- a/core/paginator/.eslintignore +++ b/core/paginator/.eslintignore @@ -5,3 +5,4 @@ build/ docs/ protos/ samples/generated/ +system-test/**/fixtures diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 5ddcbae8ff1..40b49d2bf81 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:e7a37871068ab50b3841cb08619c288dc0665b62a7f39f2bdb7dea0ce6e89a3d -# created: 2023-09-22T19:12:26.585611364Z + digest: sha256:abc68a9bbf4fa808b25fa16d3b11141059dc757dbc34f024744bba36c200b40f +# created: 2023-10-04T20:56:40.710775365Z From 8d6bd1b679356820119f3cd6d74bd8966f845595 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 16:48:46 -0500 Subject: [PATCH 262/279] chore: remove compile protos from post processor (#358) * chore: remove compile protos from post processor Source-Link: https://github.com/googleapis/synthtool/commit/73248044166b6ba2dd102862f8cd2c4829e868db Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.kokoro/release/docs-devsite.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 40b49d2bf81..fbf0659c3f7 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:abc68a9bbf4fa808b25fa16d3b11141059dc757dbc34f024744bba36c200b40f -# created: 2023-10-04T20:56:40.710775365Z + digest: sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a +# created: 2023-11-15T20:00:24.246072277Z diff --git a/core/paginator/.kokoro/release/docs-devsite.sh b/core/paginator/.kokoro/release/docs-devsite.sh index 3596c1e4cb1..81a89f6c172 100755 --- a/core/paginator/.kokoro/release/docs-devsite.sh +++ b/core/paginator/.kokoro/release/docs-devsite.sh @@ -25,6 +25,6 @@ if [[ -z "$CREDENTIALS" ]]; then fi npm install -npm install --no-save @google-cloud/cloud-rad@^0.3.7 +npm install --no-save @google-cloud/cloud-rad@^0.4.0 # publish docs to devsite npx @google-cloud/cloud-rad . cloud-rad From 35a4240a476d68b5d227c4791ca25723477d0c71 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 16:17:32 +0100 Subject: [PATCH 263/279] chore(deps): update dependency c8 to v9 (#359) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 8454e97d678..2ef418bddae 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -37,7 +37,7 @@ "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", "@types/uuid": "^9.0.0", - "c8": "^8.0.0", + "c8": "^9.0.0", "codecov": "^3.0.4", "gts": "^5.0.0", "linkinator": "^4.0.0", From 3f4e740cf72ebb14659940a502db3512babeecd4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 Feb 2024 08:09:22 +0100 Subject: [PATCH 264/279] chore(deps): update dependency sinon to v17 (#354) --- core/paginator/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 2ef418bddae..5ba2508e043 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -35,7 +35,7 @@ "@types/mocha": "^9.0.0", "@types/node": "^20.4.9", "@types/proxyquire": "^1.3.28", - "@types/sinon": "^10.0.0", + "@types/sinon": "^17.0.0", "@types/uuid": "^9.0.0", "c8": "^9.0.0", "codecov": "^3.0.4", @@ -43,7 +43,7 @@ "linkinator": "^4.0.0", "mocha": "^9.2.2", "proxyquire": "^2.0.1", - "sinon": "^15.0.0", + "sinon": "^17.0.0", "typescript": "^5.1.6", "uuid": "^9.0.0" }, From 22ddbc00d3d801c203ec430e5ef0c432bbfdb7f4 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 09:59:46 -0500 Subject: [PATCH 265/279] chore: update cloud-rad version to ^0.4.0 (#357) Source-Link: https://github.com/googleapis/synthtool/commit/1063ef32bfe41b112bade7a2dfad4e84d0058ebd Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e92044720ab3cb6984a70b0c6001081204375959ba3599ef6c42dd99a7783a67 Co-authored-by: Owl Bot Co-authored-by: danieljbruce Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/.github/.OwlBot.lock.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index fbf0659c3f7..248e4f9e98c 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -14,4 +14,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest digest: sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a -# created: 2023-11-15T20:00:24.246072277Z From ff3920fe787451c497d87293c8358ac33f7360c3 Mon Sep 17 00:00:00 2001 From: Alvaro Viebrantz Date: Tue, 21 May 2024 15:03:00 -0400 Subject: [PATCH 266/279] build: pin compodoc (#362) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 5ba2508e043..a10af089b49 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -30,7 +30,7 @@ "author": "Google Inc.", "license": "Apache-2.0", "devDependencies": { - "@compodoc/compodoc": "^1.1.7", + "@compodoc/compodoc": "1.1.23", "@types/extend": "^3.0.0", "@types/mocha": "^9.0.0", "@types/node": "^20.4.9", From 20fef27da7ca0eb9e861aab66aa4388e2ebef39a Mon Sep 17 00:00:00 2001 From: Alvaro Viebrantz Date: Wed, 22 May 2024 12:59:58 -0400 Subject: [PATCH 267/279] fix: should pass extra callback arguments back to consumer (#361) --- core/paginator/src/index.ts | 14 ++++--- core/paginator/src/resource-stream.ts | 10 ++++- core/paginator/test/index.ts | 55 ++++++++++++++++++++++++++ core/paginator/test/resource-stream.ts | 11 ++++++ 4 files changed, 84 insertions(+), 6 deletions(-) diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 3bf04969edb..04e14970512 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -221,18 +221,22 @@ export class Paginator { return originalMethod(query, callback); } const results = new Array<{}>(); + let otherArgs: unknown[] = []; const promise = new Promise((resolve, reject) => { - paginator - .runAsStream_(parsedArguments, originalMethod) + const stream = paginator.runAsStream_(parsedArguments, originalMethod); + stream .on('error', reject) .on('data', (data: {}) => results.push(data)) - .on('end', () => resolve(results)); + .on('end', () => { + otherArgs = stream._otherArgs || []; + resolve(results); + }); }); if (!callback) { - return promise.then(results => [results]); + return promise.then(results => [results, ...otherArgs]); } promise.then( - results => callback(null, results), + results => callback(null, results, ...otherArgs), (err: Error) => callback(err) ); } diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts index 9fd269f1862..79b23ad6c91 100644 --- a/core/paginator/src/resource-stream.ts +++ b/core/paginator/src/resource-stream.ts @@ -31,6 +31,7 @@ export class ResourceStream extends Transform implements ResourceEvents { _ended: boolean; _maxApiCalls: number; _nextQuery: {} | null; + _otherArgs: unknown[]; _reading: boolean; _requestFn: Function; _requestsMade: number; @@ -46,6 +47,7 @@ export class ResourceStream extends Transform implements ResourceEvents { this._requestFn = requestFn; this._requestsMade = 0; this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults!; + this._otherArgs = []; } /* eslint-disable @typescript-eslint/no-explicit-any */ end( @@ -67,12 +69,18 @@ export class ResourceStream extends Transform implements ResourceEvents { try { this._requestFn( this._nextQuery, - (err: Error | null, results: T[], nextQuery: {} | null) => { + ( + err: Error | null, + results: T[], + nextQuery: {} | null, + ...otherArgs: [] + ) => { if (err) { this.destroy(err); return; } + this._otherArgs = otherArgs; this._nextQuery = nextQuery; if (this._resultsToSend !== Infinity) { diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 8b4ac3ff7b5..ee94704e0dd 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -382,6 +382,38 @@ describe('paginator', () => { paginator.run_(parsedArguments, util.noop); }); + + it('should return all results and extra args', done => { + const results = [{a: 1}, {b: 2}, {c: 3}]; + const args: any[] = [{msg: 'OK'}, 10]; + + const parsedArguments = { + autoPaginate: true, + callback( + err: Error, + results_: {}, + fakeRes: {}, + anotherArg: number + ) { + assert.deepStrictEqual(results_, results); + assert.deepStrictEqual(fakeRes, {msg: 'OK'}); + assert.deepStrictEqual(anotherArg, 10); + done(); + }, + }; + + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { + const stream = createFakeStream(); + setImmediate(() => { + results.forEach(result => stream.push(result)); + stream.push(null); + stream._otherArgs = args; + }); + return stream; + }); + + paginator.run_(parsedArguments, util.noop); + }); }); describe('original method is promise based', () => { @@ -434,6 +466,29 @@ describe('paginator', () => { assert.deepStrictEqual(results_, results) ); }); + + it('should resolve with all results and extra args', () => { + const results = [{a: 1}, {b: 2}, {c: 3}]; + const args: any[] = [{msg: 'OK'}, 10]; + + sandbox.stub(paginator, 'runAsStream_').callsFake(() => { + const stream = createFakeStream(); + setImmediate(() => { + results.forEach(result => stream.push(result)); + stream.push(null); + stream._otherArgs = args; + }); + return stream; + }); + + paginator + .run_(parsedArguments, util.noop) + .then(([results_, fakeRes, anotherArg]: unknown[]) => { + assert.deepStrictEqual(results_, results); + assert.deepEqual(fakeRes, {msg: 'OK'}); + assert.deepEqual(anotherArg, 10); + }); + }); }); }); diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts index 27a47f96da7..671c3006dd6 100644 --- a/core/paginator/test/resource-stream.ts +++ b/core/paginator/test/resource-stream.ts @@ -150,6 +150,17 @@ describe('ResourceStream', () => { assert.strictEqual(stream._nextQuery, fakeQuery); }); + it('should cache the rest of the callback arguments', () => { + const fakeRes = {status: 'OK'}; + const anotherArg = 10; + + stream._read(); + const callback = requestSpy.lastCall.args[1]; + callback(null, [], {}, fakeRes, anotherArg); + + assert.deepStrictEqual(stream._otherArgs, [fakeRes, anotherArg]); + }); + it('should adjust the results to send counter', () => { const maxResults = 100; const results = [{}, {}]; From 6cfd1a98490eaedf639bde9bf2b249cb606411d0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 May 2024 15:19:27 -0400 Subject: [PATCH 268/279] chore(main): release 5.0.1 (#364) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 1ad97fe9466..b70ab636781 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [5.0.1](https://github.com/googleapis/nodejs-paginator/compare/v5.0.0...v5.0.1) (2024-05-22) + + +### Bug Fixes + +* Should pass extra callback arguments back to consumer ([#361](https://github.com/googleapis/nodejs-paginator/issues/361)) ([cc5c48b](https://github.com/googleapis/nodejs-paginator/commit/cc5c48b95b21e9c6a4e555ff98de267258657b6e)) + ## [5.0.0](https://github.com/googleapis/nodejs-paginator/compare/v4.0.1...v5.0.0) (2023-08-09) diff --git a/core/paginator/package.json b/core/paginator/package.json index a10af089b49..8665aeb0694 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "5.0.0", + "version": "5.0.1", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From ebcf85127d3d9fc40a4c6d1a487fa6f39c916d3f Mon Sep 17 00:00:00 2001 From: Alvaro Viebrantz Date: Thu, 23 May 2024 11:20:02 -0400 Subject: [PATCH 269/279] fix: query should be on the list of extra args (#365) --- core/paginator/src/index.ts | 4 ++-- core/paginator/test/index.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index 04e14970512..bf1620114e4 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -233,10 +233,10 @@ export class Paginator { }); }); if (!callback) { - return promise.then(results => [results, ...otherArgs]); + return promise.then(results => [results, query, ...otherArgs]); } promise.then( - results => callback(null, results, ...otherArgs), + results => callback(null, results, query, ...otherArgs), (err: Error) => callback(err) ); } diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index ee94704e0dd..17de871958b 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -392,10 +392,12 @@ describe('paginator', () => { callback( err: Error, results_: {}, + query: {}, fakeRes: {}, anotherArg: number ) { assert.deepStrictEqual(results_, results); + assert.deepStrictEqual(query, undefined); assert.deepStrictEqual(fakeRes, {msg: 'OK'}); assert.deepStrictEqual(anotherArg, 10); done(); @@ -467,7 +469,7 @@ describe('paginator', () => { ); }); - it('should resolve with all results and extra args', () => { + it('should resolve with all results and extra args', done => { const results = [{a: 1}, {b: 2}, {c: 3}]; const args: any[] = [{msg: 'OK'}, 10]; @@ -483,10 +485,12 @@ describe('paginator', () => { paginator .run_(parsedArguments, util.noop) - .then(([results_, fakeRes, anotherArg]: unknown[]) => { + .then(([results_, query_, fakeRes, anotherArg]: unknown[]) => { assert.deepStrictEqual(results_, results); + assert.deepStrictEqual(query_, undefined); assert.deepEqual(fakeRes, {msg: 'OK'}); assert.deepEqual(anotherArg, 10); + done(); }); }); }); From bf32391457589c6e6390fead88abc541a01bea21 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 11:39:47 -0400 Subject: [PATCH 270/279] chore(main): release 5.0.2 (#366) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 7 +++++++ core/paginator/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index b70ab636781..3b16722df8c 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [5.0.2](https://github.com/googleapis/nodejs-paginator/compare/v5.0.1...v5.0.2) (2024-05-23) + + +### Bug Fixes + +* Query should be on the list of extra args ([#365](https://github.com/googleapis/nodejs-paginator/issues/365)) ([50e40d0](https://github.com/googleapis/nodejs-paginator/commit/50e40d064aed1bd0d5f93a51ad54112343086644)) + ## [5.0.1](https://github.com/googleapis/nodejs-paginator/compare/v5.0.0...v5.0.1) (2024-05-22) diff --git a/core/paginator/package.json b/core/paginator/package.json index 8665aeb0694..1242a778074 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "5.0.1", + "version": "5.0.2", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 246e225bcc39a366078332c25ded67dcc261d9d1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 27 May 2024 16:19:44 +0200 Subject: [PATCH 271/279] chore(deps): update dependency sinon to v18 (#360) --- core/paginator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/paginator/package.json b/core/paginator/package.json index 1242a778074..8fe39e35ac1 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -43,7 +43,7 @@ "linkinator": "^4.0.0", "mocha": "^9.2.2", "proxyquire": "^2.0.1", - "sinon": "^17.0.0", + "sinon": "^18.0.0", "typescript": "^5.1.6", "uuid": "^9.0.0" }, From 432a0f54519149a1ba585c3b0784e649ab55e56b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 11:31:42 -0700 Subject: [PATCH 272/279] chore: [node] add auto-approve templates, and install dependencies with engines-strict (#368) * chore: [node] add auto-approve templates, and install dependencies with engines-strict chore: add auto-approve templates, and install dependencies with engines-strict Source-Link: https://github.com/googleapis/synthtool/commit/4a02d97333d1c1642d1b19b00645afdcf4ab36a4 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:68e1cece0d6d3336c4f1cb9d2857b020af5574dff6da6349293d1c6d4eea82d8 * Update package.json * Update package.json --------- Co-authored-by: Owl Bot Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/.github/.OwlBot.lock.yaml | 5 +++-- core/paginator/.github/auto-approve.yml | 3 ++- core/paginator/package.json | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 248e4f9e98c..34bb2086de0 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2023 Google LLC +# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a + digest: sha256:68e1cece0d6d3336c4f1cb9d2857b020af5574dff6da6349293d1c6d4eea82d8 +# created: 2024-05-31T15:46:42.989947733Z diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml index 4cd91cc16ae..ec51b072dca 100644 --- a/core/paginator/.github/auto-approve.yml +++ b/core/paginator/.github/auto-approve.yml @@ -1,3 +1,4 @@ processes: - "NodeDependency" - - "OwlBotTemplateChanges" + - "OwlBotTemplateChangesNode" + - "OwlBotPRsNode" \ No newline at end of file diff --git a/core/paginator/package.json b/core/paginator/package.json index 8fe39e35ac1..5efef2c2ecd 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -30,7 +30,7 @@ "author": "Google Inc.", "license": "Apache-2.0", "devDependencies": { - "@compodoc/compodoc": "1.1.23", + "@compodoc/compodoc": "1.1.19", "@types/extend": "^3.0.0", "@types/mocha": "^9.0.0", "@types/node": "^20.4.9", @@ -40,7 +40,7 @@ "c8": "^9.0.0", "codecov": "^3.0.4", "gts": "^5.0.0", - "linkinator": "^4.0.0", + "linkinator": "^3.0.0", "mocha": "^9.2.2", "proxyquire": "^2.0.1", "sinon": "^18.0.0", From 6492bd60e51607462787be1e2f3ce09a60935a56 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 00:06:24 -0700 Subject: [PATCH 273/279] ci: Enable `constraintsFiltering` for Node.js Libraries (#374) chore: Enable `constraintsFiltering` for Node.js Libraries Source-Link: https://github.com/googleapis/synthtool/commit/dae1282201b64e4da3ad512632cb4dda70a832a1 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:d920257482ca1cd72978f29f7d28765a9f8c758c21ee0708234db5cf4c5016c2 Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 34bb2086de0..9e90d54bfb2 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:68e1cece0d6d3336c4f1cb9d2857b020af5574dff6da6349293d1c6d4eea82d8 -# created: 2024-05-31T15:46:42.989947733Z + digest: sha256:d920257482ca1cd72978f29f7d28765a9f8c758c21ee0708234db5cf4c5016c2 +# created: 2024-06-12T16:18:41.688792375Z From adce3975c72891772da6417cc8c91b20ea6ff856 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:01:26 -0400 Subject: [PATCH 274/279] chore: update links in github issue templates (#377) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: update links in github issue templates * chore: update links in github issue templates Source-Link: https://github.com/googleapis/synthtool/commit/38fa49fb668c2beb27f598ad3dda2aa46b8a10ed Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:609822e3c09b7a1bd90b99655904609f162cc15acb4704f1edf778284c36f429 * Create owlbot.py * Update .repo-metadata.json * Delete .github/ISSUE_TEMPLATE/bug_report.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update bug_report.yml * Delete .github/ISSUE_TEMPLATE/feature_request.md * Update feature_request.yml * Delete .github/ISSUE_TEMPLATE/question.md * Delete .github/ISSUE_TEMPLATE/support_request.md * Update package.json * Update package.json * Update .jsdoc.js --------- Co-authored-by: Owl Bot Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- core/paginator/.github/.OwlBot.lock.yaml | 4 +- core/paginator/.github/CODEOWNERS | 7 +- .../.github/ISSUE_TEMPLATE/bug_report.md | 38 ---------- .../.github/ISSUE_TEMPLATE/bug_report.yml | 70 +++++++++++++++++++ .../ISSUE_TEMPLATE/documentation_request.yml | 53 ++++++++++++++ .../.github/ISSUE_TEMPLATE/feature_request.md | 18 ----- .../ISSUE_TEMPLATE/feature_request.yml | 29 ++++++++ .../ISSUE_TEMPLATE/processs_request.md | 4 ++ .../.github/ISSUE_TEMPLATE/question.md | 12 ---- .../.github/ISSUE_TEMPLATE/questions.md | 8 +++ .../.github/ISSUE_TEMPLATE/support_request.md | 7 -- core/paginator/.github/auto-approve.yml | 4 +- .../.github/scripts/close-invalid-link.cjs | 56 +++++++++++++++ .../.github/scripts/close-unresponsive.cjs | 69 ++++++++++++++++++ .../.github/scripts/remove-response-label.cjs | 33 +++++++++ core/paginator/.jsdoc.js | 2 +- core/paginator/.repo-metadata.json | 3 +- core/paginator/README.md | 2 +- core/paginator/owlbot.py | 19 +++++ core/paginator/package.json | 9 ++- 20 files changed, 356 insertions(+), 91 deletions(-) delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/processs_request.md delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/question.md create mode 100644 core/paginator/.github/ISSUE_TEMPLATE/questions.md delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/support_request.md create mode 100644 core/paginator/.github/scripts/close-invalid-link.cjs create mode 100644 core/paginator/.github/scripts/close-unresponsive.cjs create mode 100644 core/paginator/.github/scripts/remove-response-label.cjs create mode 100644 core/paginator/owlbot.py diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 9e90d54bfb2..24943e1161e 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:d920257482ca1cd72978f29f7d28765a9f8c758c21ee0708234db5cf4c5016c2 -# created: 2024-06-12T16:18:41.688792375Z + digest: sha256:609822e3c09b7a1bd90b99655904609f162cc15acb4704f1edf778284c36f429 +# created: 2024-10-01T19:34:30.797530443Z diff --git a/core/paginator/.github/CODEOWNERS b/core/paginator/.github/CODEOWNERS index 80520bbaac3..201254f0b97 100644 --- a/core/paginator/.github/CODEOWNERS +++ b/core/paginator/.github/CODEOWNERS @@ -5,8 +5,5 @@ # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax -# The yoshi-nodejs team is the default owner for nodejs repositories. -* @googleapis/yoshi-nodejs - -# The github automation team is the default owner for the auto-approve file. -.github/auto-approve.yml @googleapis/github-automation +# Unless specified, the jsteam is the default owner for nodejs repositories. +* jsteam-handwritten-libraries @googleapis/jsteam \ No newline at end of file diff --git a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 4fe86c2fc64..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -labels: 'type: bug, priority: p2' ---- - -Thanks for stopping by to let us know something could be better! - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. - -1) Is this a client library issue or a product issue? -This is the client library for . We will only be able to assist with issues that pertain to the behaviors of this library. If the issue you're experiencing is due to the behavior of the product itself, please visit the [ Support page]() to reach the most relevant engineers. - -2) Did someone already solve this? - - Search the issues already opened: https://github.com/googleapis/nodejs-paginator/issues - - Search the issues on our "catch-all" repository: https://github.com/googleapis/google-cloud-node - - Search or ask on StackOverflow (engineers monitor these tags): http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js - -3) Do you have a support contract? -Please create an issue in the [support console](https://cloud.google.com/support/) to ensure a timely response. - -If the support paths suggested above still do not result in a resolution, please provide the following details. - -#### Environment details - - - OS: - - Node.js version: - - npm version: - - `@google-cloud/paginator` version: - -#### Steps to reproduce - - 1. ? - 2. ? - -Making sure to follow these steps will guarantee the quickest resolution possible. - -Thanks! diff --git a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..3b8ec07eba0 --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,70 @@ +name: Bug Report +description: Create a report to help us improve +labels: + - bug +body: + - type: markdown + attributes: + value: > + **PLEASE READ**: If you have a support contract with Google, please + create an issue in the [support + console](https://cloud.google.com/support/) instead of filing on GitHub. + This will ensure a timely response. Otherwise, please make sure to + follow the steps below. + - type: checkboxes + attributes: + label: Please make sure you have searched for information in the following + guides. + options: + - label: "Search the issues already opened: + https://github.com/GoogleCloudPlatform/google-cloud-node/issues" + required: true + - label: "Search StackOverflow: + http://stackoverflow.com/questions/tagged/google-cloud-platform+nod\ + e.js" + required: true + - label: "Check our Troubleshooting guide: + https://github.com/googleapis/google-cloud-node/blob/main/docs/trou\ + bleshooting.md" + required: true + - label: "Check our FAQ: + https://github.com/googleapis/google-cloud-node/blob/main/docs/faq.\ + md" + required: true + - label: "Check our libraries HOW-TO: + https://github.com/googleapis/gax-nodejs/blob/main/client-libraries\ + .md" + required: true + - label: "Check out our authentication guide: + https://github.com/googleapis/google-auth-library-nodejs" + required: true + - label: "Check out handwritten samples for many of our APIs: + https://github.com/GoogleCloudPlatform/nodejs-docs-samples" + required: true + - type: input + attributes: + label: > + Link to the code that reproduces this issue. A link to a **public** Github Repository or gist with a minimal + reproduction. + - type: textarea + attributes: + label: > + A step-by-step description of how to reproduce the issue, based on + the linked reproduction. + description: > + Screenshots can be provided in the issue body below. + placeholder: | + 1. Start the application in development (next dev) + 2. Click X + 3. Y will happen + - type: textarea + attributes: + label: A clear and concise description of what the bug is, and what you + expected to happen. + placeholder: Following the steps from the previous section, I expected A to + happen, but I observed B instead + + - type: textarea + attributes: + label: A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** + placeholder: 'Documentation here(link) states that B should happen instead of A' diff --git a/core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml b/core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml new file mode 100644 index 00000000000..2e571c2e1d5 --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml @@ -0,0 +1,53 @@ +name: Documentation Requests +description: Requests for more information +body: + - type: markdown + attributes: + value: > + Please use this issue type to log documentation requests against the library itself. + These requests should involve documentation on Github (`.md` files), and should relate to the library + itself. If you have questions or documentation requests for an API, please + reach out to the API tracker itself. + + Please submit an issue to the API team, either by submitting an + issue in its issue tracker https://cloud.google.com/support/docs/issue-trackers), or by + submitting an issue in its linked tracker in the .repo-metadata.json + file in the API under packages/* ([example]()). + You can also submit a request to documentation on cloud.google.com itself with the "Send Feedback" + on the bottom of the page. + + + Please note that documentation requests and questions for specific APIs + will be closed. + - type: checkboxes + attributes: + label: Please make sure you have searched for information in the following + guides. + options: + - label: "Search the issues already opened: + https://github.com/GoogleCloudPlatform/google-cloud-node/issues" + required: true + - label: "Check our Troubleshooting guide: + https://googlecloudplatform.github.io/google-cloud-node/#/docs/guid\ + es/troubleshooting" + required: true + - label: "Check our FAQ: + https://googlecloudplatform.github.io/google-cloud-node/#/docs/guid\ + es/faq" + required: true + - label: "Check our libraries HOW-TO: + https://github.com/googleapis/gax-nodejs/blob/main/client-libraries\ + .md" + required: true + - label: "Check out our authentication guide: + https://github.com/googleapis/google-auth-library-nodejs" + required: true + - label: "Check out handwritten samples for many of our APIs: + https://github.com/GoogleCloudPlatform/nodejs-docs-samples" + required: true + - type: textarea + attributes: + label: > + Documentation Request + validations: + required: true diff --git a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index b0327dfa02e..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this library -labels: 'type: feature request, priority: p3' ---- - -Thanks for stopping by to let us know something could be better! - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. - - **Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - **Describe the solution you'd like** -A clear and concise description of what you want to happen. - **Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - **Additional context** -Add any other context or screenshots about the feature request here. diff --git a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..e7f33b00697 --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,29 @@ +name: Feature Request +description: Suggest an idea for this library +labels: + - feature request +body: + - type: markdown + attributes: + value: > + **PLEASE READ**: If you have a support contract with Google, please + create an issue in the [support + console](https://cloud.google.com/support/) instead of filing on GitHub. + This will ensure a timely response. Otherwise, please make sure to + follow the steps below. + - type: textarea + attributes: + label: > + What would you like to see in the library? + description: > + Screenshots can be provided in the issue body below. + placeholder: | + 1. Set up authentication like so + 2. Run the program like so + 3. X would be nice to happen + - type: textarea + attributes: + label: Describe alternatives you've considered + - type: textarea + attributes: + label: Additional context/notes diff --git a/core/paginator/.github/ISSUE_TEMPLATE/processs_request.md b/core/paginator/.github/ISSUE_TEMPLATE/processs_request.md new file mode 100644 index 00000000000..45682e8f117 --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/processs_request.md @@ -0,0 +1,4 @@ +--- +name: Process Request +about: Submit a process request to the library. Process requests are any requests related to library infrastructure, for example CI/CD, publishing, releasing, broken links. +--- diff --git a/core/paginator/.github/ISSUE_TEMPLATE/question.md b/core/paginator/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 97323113911..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Question -about: Ask a question -labels: 'type: question, priority: p3' ---- - -Thanks for stopping by to ask us a question! Please make sure to include: -- What you're trying to do -- What code you've already tried -- Any error messages you're getting - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/core/paginator/.github/ISSUE_TEMPLATE/questions.md b/core/paginator/.github/ISSUE_TEMPLATE/questions.md new file mode 100644 index 00000000000..62c1dd1b93a --- /dev/null +++ b/core/paginator/.github/ISSUE_TEMPLATE/questions.md @@ -0,0 +1,8 @@ +--- +name: Question +about: If you have a question, please use Discussions + +--- + +If you have a general question that goes beyond the library itself, we encourage you to use [Discussions](https://github.com//discussions) +to engage with fellow community members! diff --git a/core/paginator/.github/ISSUE_TEMPLATE/support_request.md b/core/paginator/.github/ISSUE_TEMPLATE/support_request.md deleted file mode 100644 index 99586903212..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/support_request.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: Support request -about: If you have a support contract with Google, please create an issue in the Google Cloud Support console. - ---- - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml index ec51b072dca..7cba0af636c 100644 --- a/core/paginator/.github/auto-approve.yml +++ b/core/paginator/.github/auto-approve.yml @@ -1,4 +1,2 @@ processes: - - "NodeDependency" - - "OwlBotTemplateChangesNode" - - "OwlBotPRsNode" \ No newline at end of file + - "NodeDependency" \ No newline at end of file diff --git a/core/paginator/.github/scripts/close-invalid-link.cjs b/core/paginator/.github/scripts/close-invalid-link.cjs new file mode 100644 index 00000000000..d7a3688e755 --- /dev/null +++ b/core/paginator/.github/scripts/close-invalid-link.cjs @@ -0,0 +1,56 @@ +// Copyright 2024 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. + +async function closeIssue(github, owner, repo, number) { + await github.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: number, + body: 'Issue was opened with an invalid reproduction link. Please make sure the repository is a valid, publicly-accessible github repository, and make sure the url is complete (example: https://github.com/googleapis/google-cloud-node)' + }); + await github.rest.issues.update({ + owner: owner, + repo: repo, + issue_number: number, + state: 'closed' + }); +} +module.exports = async ({github, context}) => { + const owner = context.repo.owner; + const repo = context.repo.repo; + const number = context.issue.number; + + const issue = await github.rest.issues.get({ + owner: owner, + repo: repo, + issue_number: number, + }); + + const isBugTemplate = issue.data.body.includes('Link to the code that reproduces this issue'); + + if (isBugTemplate) { + console.log(`Issue ${number} is a bug template`) + try { + const link = issue.data.body.split('\n')[18].match(/(https?:\/\/(gist\.)?github.com\/.*)/)[0]; + console.log(`Issue ${number} contains this link: ${link}`) + const isValidLink = (await fetch(link)).ok; + console.log(`Issue ${number} has a ${isValidLink ? 'valid' : 'invalid'} link`) + if (!isValidLink) { + await closeIssue(github, owner, repo, number); + } + } catch (err) { + await closeIssue(github, owner, repo, number); + } + } +}; diff --git a/core/paginator/.github/scripts/close-unresponsive.cjs b/core/paginator/.github/scripts/close-unresponsive.cjs new file mode 100644 index 00000000000..142dc1265a4 --- /dev/null +++ b/core/paginator/.github/scripts/close-unresponsive.cjs @@ -0,0 +1,69 @@ +// Copyright 2024 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. + +function labeledEvent(data) { + return data.event === 'labeled' && data.label.name === 'needs more info'; + } + + const numberOfDaysLimit = 15; + const close_message = `This has been closed since a request for information has \ + not been answered for ${numberOfDaysLimit} days. It can be reopened when the \ + requested information is provided.`; + + module.exports = async ({github, context}) => { + const owner = context.repo.owner; + const repo = context.repo.repo; + + const issues = await github.rest.issues.listForRepo({ + owner: owner, + repo: repo, + labels: 'needs more info', + }); + const numbers = issues.data.map((e) => e.number); + + for (const number of numbers) { + const events = await github.paginate( + github.rest.issues.listEventsForTimeline, + { + owner: owner, + repo: repo, + issue_number: number, + }, + (response) => response.data.filter(labeledEvent) + ); + + const latest_response_label = events[events.length - 1]; + + const created_at = new Date(latest_response_label.created_at); + const now = new Date(); + const diff = now - created_at; + const diffDays = diff / (1000 * 60 * 60 * 24); + + if (diffDays > numberOfDaysLimit) { + await github.rest.issues.update({ + owner: owner, + repo: repo, + issue_number: number, + state: 'closed', + }); + + await github.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: number, + body: close_message, + }); + } + } + }; diff --git a/core/paginator/.github/scripts/remove-response-label.cjs b/core/paginator/.github/scripts/remove-response-label.cjs new file mode 100644 index 00000000000..887cf349e9d --- /dev/null +++ b/core/paginator/.github/scripts/remove-response-label.cjs @@ -0,0 +1,33 @@ +// Copyright 2024 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. + +module.exports = async ({ github, context }) => { + const commenter = context.actor; + const issue = await github.rest.issues.get({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + }); + const author = issue.data.user.login; + const labels = issue.data.labels.map((e) => e.name); + + if (author === commenter && labels.includes('needs more info')) { + await github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + name: 'needs more info', + }); + } + }; diff --git a/core/paginator/.jsdoc.js b/core/paginator/.jsdoc.js index 9884f8c3ee0..595bd3a14c4 100644 --- a/core/paginator/.jsdoc.js +++ b/core/paginator/.jsdoc.js @@ -31,7 +31,7 @@ module.exports = { source: { excludePattern: '(^|\\/|\\\\)[._]', include: [ - 'src', + 'build/src', ], includePattern: '\\.js$' }, diff --git a/core/paginator/.repo-metadata.json b/core/paginator/.repo-metadata.json index 58e21567319..77e364b6d41 100644 --- a/core/paginator/.repo-metadata.json +++ b/core/paginator/.repo-metadata.json @@ -6,5 +6,6 @@ "repo": "googleapis/nodejs-paginator", "distribution_name": "@google-cloud/paginator", "client_documentation": "https://cloud.google.com/nodejs/docs/reference/paginator/latest", - "library_type": "OTHER" + "library_type": "OTHER", + "codeowner_team": "jsteam-handwritten-libraries" } diff --git a/core/paginator/README.md b/core/paginator/README.md index e85b650d493..d3ddff1fb7e 100644 --- a/core/paginator/README.md +++ b/core/paginator/README.md @@ -133,4 +133,4 @@ See [LICENSE](https://github.com/googleapis/nodejs-paginator/blob/main/LICENSE) [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing -[auth]: https://cloud.google.com/docs/authentication/getting-started +[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local diff --git a/core/paginator/owlbot.py b/core/paginator/owlbot.py new file mode 100644 index 00000000000..f074a33e342 --- /dev/null +++ b/core/paginator/owlbot.py @@ -0,0 +1,19 @@ +# Copyright 2018 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 synthtool as s +import synthtool.gcp as gcp + +common_templates = gcp.CommonTemplates() +templates = common_templates.node_library() +s.copy(sources=templates, excludes=["LICENSE", "README.md", ".github/ISSUE_TEMPLATE", ".github/scripts", ".kokoro", ".github/workflows/issues-no-repro.yaml", ".jsdoc.js"]) diff --git a/core/paginator/package.json b/core/paginator/package.json index 5efef2c2ecd..7d037b209e9 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -13,7 +13,7 @@ "lint": "gts check", "prepare": "npm run compile", "pretest": "npm run compile", - "docs": "compodoc src/", + "docs": "jsdoc -c .jsdoc.js", "presystem-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "system-test": "mocha build/system-test", @@ -30,7 +30,6 @@ "author": "Google Inc.", "license": "Apache-2.0", "devDependencies": { - "@compodoc/compodoc": "1.1.19", "@types/extend": "^3.0.0", "@types/mocha": "^9.0.0", "@types/node": "^20.4.9", @@ -40,10 +39,14 @@ "c8": "^9.0.0", "codecov": "^3.0.4", "gts": "^5.0.0", + "jsdoc": "^4.0.0", + "jsdoc-fresh": "^3.0.0", + "jsdoc-region-tag": "^3.0.0", "linkinator": "^3.0.0", "mocha": "^9.2.2", + "path-to-regexp": "^6.0.0", "proxyquire": "^2.0.1", - "sinon": "^18.0.0", + "sinon": "^17.0.0", "typescript": "^5.1.6", "uuid": "^9.0.0" }, From f1c185fb660b9ef9f5b7f0311261b80872081bb9 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 09:55:47 -0500 Subject: [PATCH 275/279] chore: fix `npm` for Node v18 samples tests (#385) chore: fix `npm` for samples tests Source-Link: https://github.com/googleapis/synthtool/commit/4d752428d93b18b69c28acdbd9aa821a517db73a Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:0d39e59663287ae929c1d4ccf8ebf7cef9946826c9b86eda7e85d8d752dbb584 Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 4 ++-- core/paginator/.github/release-trigger.yml | 1 + .../.kokoro/continuous/node18/common.cfg | 24 +++++++++++++++++++ .../.kokoro/continuous/node18/lint.cfg | 4 ++++ .../continuous/node18/samples-test.cfg | 12 ++++++++++ .../.kokoro/continuous/node18/system-test.cfg | 12 ++++++++++ .../.kokoro/continuous/node18/test.cfg | 0 .../.kokoro/presubmit/node18/common.cfg | 24 +++++++++++++++++++ .../.kokoro/presubmit/node18/samples-test.cfg | 12 ++++++++++ .../.kokoro/presubmit/node18/system-test.cfg | 12 ++++++++++ .../.kokoro/presubmit/node18/test.cfg | 0 .../.kokoro/release/docs-devsite.cfg | 2 +- core/paginator/.kokoro/release/docs.cfg | 2 +- core/paginator/.kokoro/release/docs.sh | 2 +- core/paginator/.kokoro/release/publish.cfg | 2 +- 15 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 core/paginator/.kokoro/continuous/node18/common.cfg create mode 100644 core/paginator/.kokoro/continuous/node18/lint.cfg create mode 100644 core/paginator/.kokoro/continuous/node18/samples-test.cfg create mode 100644 core/paginator/.kokoro/continuous/node18/system-test.cfg create mode 100644 core/paginator/.kokoro/continuous/node18/test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node18/common.cfg create mode 100644 core/paginator/.kokoro/presubmit/node18/samples-test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node18/system-test.cfg create mode 100644 core/paginator/.kokoro/presubmit/node18/test.cfg diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 24943e1161e..39a62ca6bbb 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:609822e3c09b7a1bd90b99655904609f162cc15acb4704f1edf778284c36f429 -# created: 2024-10-01T19:34:30.797530443Z + digest: sha256:0d39e59663287ae929c1d4ccf8ebf7cef9946826c9b86eda7e85d8d752dbb584 +# created: 2024-11-21T22:39:44.342569463Z diff --git a/core/paginator/.github/release-trigger.yml b/core/paginator/.github/release-trigger.yml index d4ca94189e1..988d8b181d7 100644 --- a/core/paginator/.github/release-trigger.yml +++ b/core/paginator/.github/release-trigger.yml @@ -1 +1,2 @@ enabled: true +multiScmName: nodejs-paginator \ No newline at end of file diff --git a/core/paginator/.kokoro/continuous/node18/common.cfg b/core/paginator/.kokoro/continuous/node18/common.cfg new file mode 100644 index 00000000000..0a3c5bc8862 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node18/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/continuous/node18/lint.cfg b/core/paginator/.kokoro/continuous/node18/lint.cfg new file mode 100644 index 00000000000..939fa12b6d0 --- /dev/null +++ b/core/paginator/.kokoro/continuous/node18/lint.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/lint.sh" +} diff --git a/core/paginator/.kokoro/continuous/node18/samples-test.cfg b/core/paginator/.kokoro/continuous/node18/samples-test.cfg new file mode 100644 index 00000000000..1fc8ef25dba --- /dev/null +++ b/core/paginator/.kokoro/continuous/node18/samples-test.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/samples-test.sh" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/continuous/node18/system-test.cfg b/core/paginator/.kokoro/continuous/node18/system-test.cfg new file mode 100644 index 00000000000..6154e1a9a6e --- /dev/null +++ b/core/paginator/.kokoro/continuous/node18/system-test.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/continuous/node18/test.cfg b/core/paginator/.kokoro/continuous/node18/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/presubmit/node18/common.cfg b/core/paginator/.kokoro/presubmit/node18/common.cfg new file mode 100644 index 00000000000..0a3c5bc8862 --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node18/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/test.sh" +} diff --git a/core/paginator/.kokoro/presubmit/node18/samples-test.cfg b/core/paginator/.kokoro/presubmit/node18/samples-test.cfg new file mode 100644 index 00000000000..1fc8ef25dba --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node18/samples-test.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/samples-test.sh" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/presubmit/node18/system-test.cfg b/core/paginator/.kokoro/presubmit/node18/system-test.cfg new file mode 100644 index 00000000000..6154e1a9a6e --- /dev/null +++ b/core/paginator/.kokoro/presubmit/node18/system-test.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-paginator/.kokoro/system-test.sh" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/core/paginator/.kokoro/presubmit/node18/test.cfg b/core/paginator/.kokoro/presubmit/node18/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/paginator/.kokoro/release/docs-devsite.cfg b/core/paginator/.kokoro/release/docs-devsite.cfg index 551691d35c3..8a8f1bc7cfa 100644 --- a/core/paginator/.kokoro/release/docs-devsite.cfg +++ b/core/paginator/.kokoro/release/docs-devsite.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } # Download trampoline resources. diff --git a/core/paginator/.kokoro/release/docs.cfg b/core/paginator/.kokoro/release/docs.cfg index 91d905e40c9..d7e61453435 100644 --- a/core/paginator/.kokoro/release/docs.cfg +++ b/core/paginator/.kokoro/release/docs.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } # Download trampoline resources. diff --git a/core/paginator/.kokoro/release/docs.sh b/core/paginator/.kokoro/release/docs.sh index 1d8f3f490a5..e9079a60530 100755 --- a/core/paginator/.kokoro/release/docs.sh +++ b/core/paginator/.kokoro/release/docs.sh @@ -16,7 +16,7 @@ set -eo pipefail -# build jsdocs (Python is installed on the Node 10 docker image). +# build jsdocs (Python is installed on the Node 18 docker image). if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index eca41976468..bbc2bdf695e 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -30,7 +30,7 @@ build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } env_vars: { From 6785620dc12cd8e0208b1b55d59b65891a5791bb Mon Sep 17 00:00:00 2001 From: "Leah E. Cole" <6719667+leahecole@users.noreply.github.com> Date: Tue, 4 Mar 2025 15:20:08 -0500 Subject: [PATCH 276/279] chore!: migrate to node 18 (#386) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * WIP: node 18 changes * drop arrify * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix lint * fix lint * fix sinon bug * lint * manually add samples test fix * second part of fix --------- Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 7 ++-- .../paginator/.github/sync-repo-settings.yaml | 4 +- .../.kokoro/continuous/node14/common.cfg | 24 ------------ .../.kokoro/continuous/node14/lint.cfg | 4 -- .../continuous/node14/samples-test.cfg | 12 ------ .../.kokoro/continuous/node14/system-test.cfg | 12 ------ .../.kokoro/continuous/node14/test.cfg | 0 .../.kokoro/presubmit/node14/common.cfg | 24 ------------ .../.kokoro/presubmit/node14/samples-test.cfg | 12 ------ .../.kokoro/presubmit/node14/system-test.cfg | 12 ------ .../.kokoro/presubmit/node14/test.cfg | 0 core/paginator/.kokoro/samples-test.sh | 4 +- core/paginator/package.json | 37 +++++++++---------- core/paginator/src/index.ts | 13 ++++--- core/paginator/src/resource-stream.ts | 2 +- core/paginator/test/index.ts | 8 ++-- core/paginator/test/resource-stream.ts | 16 +++++++- 17 files changed, 53 insertions(+), 138 deletions(-) delete mode 100644 core/paginator/.kokoro/continuous/node14/common.cfg delete mode 100644 core/paginator/.kokoro/continuous/node14/lint.cfg delete mode 100644 core/paginator/.kokoro/continuous/node14/samples-test.cfg delete mode 100644 core/paginator/.kokoro/continuous/node14/system-test.cfg delete mode 100644 core/paginator/.kokoro/continuous/node14/test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node14/common.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node14/samples-test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node14/system-test.cfg delete mode 100644 core/paginator/.kokoro/presubmit/node14/test.cfg diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 39a62ca6bbb..4456edb0903 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 Google LLC +# Copyright 2025 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,6 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:0d39e59663287ae929c1d4ccf8ebf7cef9946826c9b86eda7e85d8d752dbb584 -# created: 2024-11-21T22:39:44.342569463Z + image: 'gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest' + digest: 'sha256:0d39e59663287ae929c1d4ccf8ebf7cef9946826c9b86eda7e85d8d752dbb584' diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml index b46e4c4d61d..a013376d1cb 100644 --- a/core/paginator/.github/sync-repo-settings.yaml +++ b/core/paginator/.github/sync-repo-settings.yaml @@ -8,9 +8,9 @@ branchProtectionRules: - "ci/kokoro: Samples test" - "ci/kokoro: System test" - lint - - test (14) - - test (16) - test (18) + - test (20) + - test (22) - cla/google - windows - OwlBot Post Processor diff --git a/core/paginator/.kokoro/continuous/node14/common.cfg b/core/paginator/.kokoro/continuous/node14/common.cfg deleted file mode 100644 index 032ff5371e6..00000000000 --- a/core/paginator/.kokoro/continuous/node14/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/continuous/node14/lint.cfg b/core/paginator/.kokoro/continuous/node14/lint.cfg deleted file mode 100644 index 939fa12b6d0..00000000000 --- a/core/paginator/.kokoro/continuous/node14/lint.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/lint.sh" -} diff --git a/core/paginator/.kokoro/continuous/node14/samples-test.cfg b/core/paginator/.kokoro/continuous/node14/samples-test.cfg deleted file mode 100644 index 1fc8ef25dba..00000000000 --- a/core/paginator/.kokoro/continuous/node14/samples-test.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/samples-test.sh" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "long-door-651-kokoro-system-test-service-account" -} \ No newline at end of file diff --git a/core/paginator/.kokoro/continuous/node14/system-test.cfg b/core/paginator/.kokoro/continuous/node14/system-test.cfg deleted file mode 100644 index 6154e1a9a6e..00000000000 --- a/core/paginator/.kokoro/continuous/node14/system-test.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "long-door-651-kokoro-system-test-service-account" -} \ No newline at end of file diff --git a/core/paginator/.kokoro/continuous/node14/test.cfg b/core/paginator/.kokoro/continuous/node14/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/.kokoro/presubmit/node14/common.cfg b/core/paginator/.kokoro/presubmit/node14/common.cfg deleted file mode 100644 index 032ff5371e6..00000000000 --- a/core/paginator/.kokoro/presubmit/node14/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" -} diff --git a/core/paginator/.kokoro/presubmit/node14/samples-test.cfg b/core/paginator/.kokoro/presubmit/node14/samples-test.cfg deleted file mode 100644 index 1fc8ef25dba..00000000000 --- a/core/paginator/.kokoro/presubmit/node14/samples-test.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/samples-test.sh" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "long-door-651-kokoro-system-test-service-account" -} \ No newline at end of file diff --git a/core/paginator/.kokoro/presubmit/node14/system-test.cfg b/core/paginator/.kokoro/presubmit/node14/system-test.cfg deleted file mode 100644 index 6154e1a9a6e..00000000000 --- a/core/paginator/.kokoro/presubmit/node14/system-test.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "long-door-651-kokoro-system-test-service-account" -} \ No newline at end of file diff --git a/core/paginator/.kokoro/presubmit/node14/test.cfg b/core/paginator/.kokoro/presubmit/node14/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/.kokoro/samples-test.sh b/core/paginator/.kokoro/samples-test.sh index 8c5d108cb58..1025155a0e9 100755 --- a/core/paginator/.kokoro/samples-test.sh +++ b/core/paginator/.kokoro/samples-test.sh @@ -16,7 +16,9 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=${HOME}/.npm-global +# Ensure the npm global directory is writable, otherwise rebuild `npm` +mkdir -p $NPM_CONFIG_PREFIX +npm config -g ls || npm i -g npm@`npm --version` # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/long-door-651-kokoro-system-test-service-account diff --git a/core/paginator/package.json b/core/paginator/package.json index 7d037b209e9..dee20d07b18 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -30,31 +30,30 @@ "author": "Google Inc.", "license": "Apache-2.0", "devDependencies": { - "@types/extend": "^3.0.0", - "@types/mocha": "^9.0.0", - "@types/node": "^20.4.9", - "@types/proxyquire": "^1.3.28", - "@types/sinon": "^17.0.0", - "@types/uuid": "^9.0.0", - "c8": "^9.0.0", - "codecov": "^3.0.4", - "gts": "^5.0.0", - "jsdoc": "^4.0.0", + "@types/extend": "^3.0.4", + "@types/mocha": "^10.0.10", + "@types/node": "^22.13.8", + "@types/proxyquire": "^1.3.31", + "@types/sinon": "^17.0.4", + "@types/uuid": "^10.0.0", + "c8": "^10.1.3", + "codecov": "^3.8.3", + "gts": "^6.0.2", + "jsdoc": "^4.0.4", "jsdoc-fresh": "^3.0.0", "jsdoc-region-tag": "^3.0.0", - "linkinator": "^3.0.0", - "mocha": "^9.2.2", - "path-to-regexp": "^6.0.0", - "proxyquire": "^2.0.1", - "sinon": "^17.0.0", - "typescript": "^5.1.6", - "uuid": "^9.0.0" + "linkinator": "^6.1.2", + "mocha": "^11.1.0", + "path-to-regexp": "^8.2.0", + "proxyquire": "^2.1.3", + "sinon": "^19.0.2", + "typescript": "^5.8.2", + "uuid": "^11.1.0" }, "dependencies": { - "arrify": "^2.0.0", "extend": "^3.0.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" } } diff --git a/core/paginator/src/index.ts b/core/paginator/src/index.ts index bf1620114e4..dd5f569840c 100644 --- a/core/paginator/src/index.ts +++ b/core/paginator/src/index.ts @@ -18,7 +18,6 @@ * @module common/paginator */ -import arrify = require('arrify'); import * as extend from 'extend'; import {TransformOptions} from 'stream'; import {ResourceStream} from './resource-stream'; @@ -83,7 +82,9 @@ export class Paginator { */ // tslint:disable-next-line:variable-name extend(Class: Function, methodNames: string | string[]) { - methodNames = arrify(methodNames); + if (typeof methodNames === 'string') { + methodNames = [methodNames]; + } methodNames.forEach(methodName => { const originalMethod = Class.prototype[methodName]; @@ -123,7 +124,7 @@ export class Paginator { const originalMethod = this[methodName + '_'] || this[methodName]; return paginator.runAsStream_( parsedArguments, - originalMethod.bind(this) + originalMethod.bind(this), ); }; } @@ -189,7 +190,7 @@ export class Paginator { parsedArguments.streamOptions = extend<{}, ParsedArguments>( true, {}, - parsedArguments.query as ParsedArguments + parsedArguments.query as ParsedArguments, ); delete parsedArguments.streamOptions.autoPaginate; delete parsedArguments.streamOptions.maxResults; @@ -237,7 +238,7 @@ export class Paginator { } promise.then( results => callback(null, results, query, ...otherArgs), - (err: Error) => callback(err) + (err: Error) => callback(err), ); } @@ -262,7 +263,7 @@ export class Paginator { /* eslint-disable @typescript-eslint/no-explicit-any */ runAsStream_( parsedArguments: ParsedArguments, - originalMethod: Function + originalMethod: Function, ): ResourceStream { return new ResourceStream(parsedArguments, originalMethod); } diff --git a/core/paginator/src/resource-stream.ts b/core/paginator/src/resource-stream.ts index 79b23ad6c91..fdb1522e71b 100644 --- a/core/paginator/src/resource-stream.ts +++ b/core/paginator/src/resource-stream.ts @@ -109,7 +109,7 @@ export class ResourceStream extends Transform implements ResourceEvents { } this._reading = false; - } + }, ); } catch (e) { this.destroy(e as Error); diff --git a/core/paginator/test/index.ts b/core/paginator/test/index.ts index 17de871958b..8c790f293bc 100644 --- a/core/paginator/test/index.ts +++ b/core/paginator/test/index.ts @@ -87,7 +87,7 @@ describe('paginator', () => { assert.notStrictEqual(originalMethod, FakeClass.prototype.methodToExtend); assert.notStrictEqual( anotherMethod, - FakeClass.prototype.anotherMethodToExtend + FakeClass.prototype.anotherMethodToExtend, ); }); @@ -394,7 +394,7 @@ describe('paginator', () => { results_: {}, query: {}, fakeRes: {}, - anotherArg: number + anotherArg: number, ) { assert.deepStrictEqual(results_, results); assert.deepStrictEqual(query, undefined); @@ -465,7 +465,7 @@ describe('paginator', () => { paginator .run_(parsedArguments, util.noop) .then(([results_]: [1]) => - assert.deepStrictEqual(results_, results) + assert.deepStrictEqual(results_, results), ); }); @@ -538,7 +538,7 @@ describe('paginator', () => { const fakeFn = sandbox.spy(); const stream = p.paginator.runAsStream_( fakeArgs, - fakeFn + fakeFn, ) as unknown as FakeResourceStream; assert(stream instanceof FakeResourceStream); diff --git a/core/paginator/test/resource-stream.ts b/core/paginator/test/resource-stream.ts index 671c3006dd6..7e9eb4b5b8a 100644 --- a/core/paginator/test/resource-stream.ts +++ b/core/paginator/test/resource-stream.ts @@ -272,7 +272,21 @@ describe('ResourceStream', () => { }); it('should keep reading if not full/ended', () => { - const clock = sandbox.useFakeTimers(); + // sinon adds a timer to `nextTick` by default beginning in v19 + // manually specifying the timers like this replicates the behavior pre v19 + const clock = sandbox.useFakeTimers({ + toFake: [ + 'setTimeout', + 'clearTimeout', + 'setInterval', + 'clearInterval', + 'Date', + 'setImmediate', + 'clearImmediate', + 'hrtime', + 'performance', + ], + }); stream._read(); const callback = requestSpy.lastCall.args[1]; From 309dc37e42d75458408215dd0ccbe907dcbb24e6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 15:28:47 -0500 Subject: [PATCH 277/279] chore(main): release 6.0.0 (#387) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- core/paginator/CHANGELOG.md | 11 +++++++++++ core/paginator/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/paginator/CHANGELOG.md b/core/paginator/CHANGELOG.md index 3b16722df8c..3cab10d401d 100644 --- a/core/paginator/CHANGELOG.md +++ b/core/paginator/CHANGELOG.md @@ -4,6 +4,17 @@ [1]: https://www.npmjs.com/package/nodejs-paginator?activeTab=versions +## [6.0.0](https://github.com/googleapis/nodejs-paginator/compare/v5.0.2...v6.0.0) (2025-03-04) + + +### ⚠ BREAKING CHANGES + +* migrate to node 18 ([#386](https://github.com/googleapis/nodejs-paginator/issues/386)) + +### Miscellaneous Chores + +* Migrate to node 18 ([#386](https://github.com/googleapis/nodejs-paginator/issues/386)) ([1f4b49f](https://github.com/googleapis/nodejs-paginator/commit/1f4b49f1d0a0251a99b106adf6ce6a7e01f2fa27)) + ## [5.0.2](https://github.com/googleapis/nodejs-paginator/compare/v5.0.1...v5.0.2) (2024-05-23) diff --git a/core/paginator/package.json b/core/paginator/package.json index dee20d07b18..3dbd45d6945 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/paginator", - "version": "5.0.2", + "version": "6.0.0", "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", From 93e1d630a705719ba994c53d143e806683e29826 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 17:09:49 -0700 Subject: [PATCH 278/279] chore: update owlbot-nodejs dependencies (#392) * chore: update owlbot-nodejs dependencies * Update container_test.yaml Source-Link: https://github.com/googleapis/synthtool/commit/1e798e6de27c63a88a1768c2a5f73b85e1523a21 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:c7e4968cfc97a204a4b2381f3ecb55cabc40c4cccf88b1ef8bef0d976be87fee Co-authored-by: Owl Bot --- core/paginator/.github/.OwlBot.lock.yaml | 5 +- .../.github/PULL_REQUEST_TEMPLATE.md | 33 +++++- .../scripts/fixtures/invalidIssueBody.txt | 50 ++++++++ .../scripts/fixtures/validIssueBody.txt | 50 ++++++++ .../validIssueBodyDifferentLinkLocation.txt | 50 ++++++++ .../scripts/tests/close-invalid-link.test.cjs | 86 ++++++++++++++ .../close-or-remove-response-label.test.cjs | 109 ++++++++++++++++++ 7 files changed, 376 insertions(+), 7 deletions(-) create mode 100644 core/paginator/.github/scripts/fixtures/invalidIssueBody.txt create mode 100644 core/paginator/.github/scripts/fixtures/validIssueBody.txt create mode 100644 core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt create mode 100644 core/paginator/.github/scripts/tests/close-invalid-link.test.cjs create mode 100644 core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml index 4456edb0903..60443342360 100644 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ b/core/paginator/.github/.OwlBot.lock.yaml @@ -12,5 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. docker: - image: 'gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest' - digest: 'sha256:0d39e59663287ae929c1d4ccf8ebf7cef9946826c9b86eda7e85d8d752dbb584' + image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest + digest: sha256:c7e4968cfc97a204a4b2381f3ecb55cabc40c4cccf88b1ef8bef0d976be87fee +# created: 2025-04-08T17:33:08.498793944Z diff --git a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md index fee31864b31..4ca5ec23381 100644 --- a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md +++ b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,30 @@ -Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/nodejs-paginator/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +> Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: + +## Description + +> Please provide a detailed description for the change. +> As much as possible, please try to keep changes separate by purpose. For example, try not to make a one-line bug fix in a feature request, or add an irrelevant README change to a bug fix. + +## Impact + +> What's the impact of this change? + +## Testing + +> Have you added unit and integration tests if necessary? +> Were any tests changed? Are any breaking changes necessary? + +## Additional Information + +> Any additional details that we should be aware of? + +## Checklist + +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/nodejs-paginator/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass -- [ ] Code coverage does not decrease (if any source code was changed) -- [ ] Appropriate docs were updated (if necessary) +- [ ] Code coverage does not decrease +- [ ] Appropriate docs were updated +- [ ] Appropriate comments were added, particularly in complex areas or places that require background +- [ ] No new warnings or issues will be generated from this change -Fixes # 🦕 +Fixes #issue_number_goes_here 🦕 diff --git a/core/paginator/.github/scripts/fixtures/invalidIssueBody.txt b/core/paginator/.github/scripts/fixtures/invalidIssueBody.txt new file mode 100644 index 00000000000..504bd669022 --- /dev/null +++ b/core/paginator/.github/scripts/fixtures/invalidIssueBody.txt @@ -0,0 +1,50 @@ +### Please make sure you have searched for information in the following guides. + +- [X] Search the issues already opened: https://github.com/GoogleCloudPlatform/google-cloud-node/issues +- [X] Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js +- [X] Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting +- [X] Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq +- [X] Check our libraries HOW-TO: https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md +- [X] Check out our authentication guide: https://github.com/googleapis/google-auth-library-nodejs +- [X] Check out handwritten samples for many of our APIs: https://github.com/GoogleCloudPlatform/nodejs-docs-samples + +### A screenshot that you have tested with "Try this API". + + +N/A + +### Link to the code that reproduces this issue. A link to a **public** Github Repository or gist with a minimal reproduction. + +not-a-link + +### A step-by-step description of how to reproduce the issue, based on the linked reproduction. + + +Change MY_PROJECT to your project name, add credentials if needed and run. + +### A clear and concise description of what the bug is, and what you expected to happen. + +The application crashes with the following exception (which there is no way to catch). It should just emit error, and allow graceful handling. +TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object + at _write (node:internal/streams/writable:474:13) + at Writable.write (node:internal/streams/writable:502:10) + at Duplexify._write (/project/node_modules/duplexify/index.js:212:22) + at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) + at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) + at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) + at Pumpify. (/project/node_modules/@google-cloud/speech/build/src/helpers.js:79:27) + at Object.onceWrapper (node:events:633:26) + at Pumpify.emit (node:events:518:28) + at obj. [as _write] (/project/node_modules/stubs/index.js:28:22) + at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) + at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) + at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) + at PassThrough.ondata (node:internal/streams/readable:1007:22) + at PassThrough.emit (node:events:518:28) + at addChunk (node:internal/streams/readable:559:12) { + code: 'ERR_INVALID_ARG_TYPE' + + +### A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** + +No library should crash an application this way. \ No newline at end of file diff --git a/core/paginator/.github/scripts/fixtures/validIssueBody.txt b/core/paginator/.github/scripts/fixtures/validIssueBody.txt new file mode 100644 index 00000000000..6e0ace338eb --- /dev/null +++ b/core/paginator/.github/scripts/fixtures/validIssueBody.txt @@ -0,0 +1,50 @@ +### Please make sure you have searched for information in the following guides. + +- [X] Search the issues already opened: https://github.com/GoogleCloudPlatform/google-cloud-node/issues +- [X] Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js +- [X] Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting +- [X] Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq +- [X] Check our libraries HOW-TO: https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md +- [X] Check out our authentication guide: https://github.com/googleapis/google-auth-library-nodejs +- [X] Check out handwritten samples for many of our APIs: https://github.com/GoogleCloudPlatform/nodejs-docs-samples + +### A screenshot that you have tested with "Try this API". + + +N/A + +### Link to the code that reproduces this issue. A link to a **public** Github Repository or gist with a minimal reproduction. + +https://gist.github.com/orgads/13cbf44c91923da27d8772b5f10489c9 + +### A step-by-step description of how to reproduce the issue, based on the linked reproduction. + + +Change MY_PROJECT to your project name, add credentials if needed and run. + +### A clear and concise description of what the bug is, and what you expected to happen. + +The application crashes with the following exception (which there is no way to catch). It should just emit error, and allow graceful handling. +TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object + at _write (node:internal/streams/writable:474:13) + at Writable.write (node:internal/streams/writable:502:10) + at Duplexify._write (/project/node_modules/duplexify/index.js:212:22) + at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) + at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) + at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) + at Pumpify. (/project/node_modules/@google-cloud/speech/build/src/helpers.js:79:27) + at Object.onceWrapper (node:events:633:26) + at Pumpify.emit (node:events:518:28) + at obj. [as _write] (/project/node_modules/stubs/index.js:28:22) + at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) + at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) + at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) + at PassThrough.ondata (node:internal/streams/readable:1007:22) + at PassThrough.emit (node:events:518:28) + at addChunk (node:internal/streams/readable:559:12) { + code: 'ERR_INVALID_ARG_TYPE' + + +### A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** + +No library should crash an application this way. \ No newline at end of file diff --git a/core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt b/core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt new file mode 100644 index 00000000000..984a420e376 --- /dev/null +++ b/core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt @@ -0,0 +1,50 @@ +### Please make sure you have searched for information in the following guides. + +- [X] Search the issues already opened: https://github.com/GoogleCloudPlatform/google-cloud-node/issues +- [X] Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js +- [X] Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting +- [X] Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq +- [X] Check our libraries HOW-TO: https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md +- [X] Check out our authentication guide: https://github.com/googleapis/google-auth-library-nodejs +- [X] Check out handwritten samples for many of our APIs: https://github.com/GoogleCloudPlatform/nodejs-docs-samples + +### A screenshot that you have tested with "Try this API". + + +N/A + +### A step-by-step description of how to reproduce the issue, based on the linked reproduction. + + +Change MY_PROJECT to your project name, add credentials if needed and run. + +### A clear and concise description of what the bug is, and what you expected to happen. + +The application crashes with the following exception (which there is no way to catch). It should just emit error, and allow graceful handling. +TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object + at _write (node:internal/streams/writable:474:13) + at Writable.write (node:internal/streams/writable:502:10) + at Duplexify._write (/project/node_modules/duplexify/index.js:212:22) + at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) + at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) + at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) + at Pumpify. (/project/node_modules/@google-cloud/speech/build/src/helpers.js:79:27) + at Object.onceWrapper (node:events:633:26) + at Pumpify.emit (node:events:518:28) + at obj. [as _write] (/project/node_modules/stubs/index.js:28:22) + at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) + at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) + at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) + at PassThrough.ondata (node:internal/streams/readable:1007:22) + at PassThrough.emit (node:events:518:28) + at addChunk (node:internal/streams/readable:559:12) { + code: 'ERR_INVALID_ARG_TYPE' + +### Link to the code that reproduces this issue. A link to a **public** Github Repository with a minimal reproduction. + + +https://gist.github.com/orgads/13cbf44c91923da27d8772b5f10489c9 + +### A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** + +No library should crash an application this way. \ No newline at end of file diff --git a/core/paginator/.github/scripts/tests/close-invalid-link.test.cjs b/core/paginator/.github/scripts/tests/close-invalid-link.test.cjs new file mode 100644 index 00000000000..f63ee89c811 --- /dev/null +++ b/core/paginator/.github/scripts/tests/close-invalid-link.test.cjs @@ -0,0 +1,86 @@ +// Copyright 2024 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'; + +const { describe, it } = require('mocha'); +const closeInvalidLink = require('../close-invalid-link.cjs'); +const fs = require('fs'); +const sinon = require('sinon'); + +describe('close issues with invalid links', () => { + let octokitStub; + let issuesStub; + + beforeEach(() => { + issuesStub = { + get: sinon.stub(), + createComment: sinon.stub(), + update: sinon.stub(), + }; + octokitStub = { + rest: { + issues: issuesStub, + }, + }; + }); + + afterEach(() => { + sinon.restore(); + }); + + it('does not do anything if it is not a bug', async () => { + const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; + issuesStub.get.resolves({ data: { body: "I'm having a problem with this." } }); + + await closeInvalidLink({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.get); + sinon.assert.notCalled(issuesStub.createComment); + sinon.assert.notCalled(issuesStub.update); + }); + + it('does not do anything if it is a bug with an appropriate link', async () => { + const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; + issuesStub.get.resolves({ data: { body: fs.readFileSync('./fixtures/validIssueBody.txt', 'utf-8') } }); + + await closeInvalidLink({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.get); + sinon.assert.notCalled(issuesStub.createComment); + sinon.assert.notCalled(issuesStub.update); + }); + + it('does not do anything if it is a bug with an appropriate link and the template changes', async () => { + const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; + issuesStub.get.resolves({ data: { body: fs.readFileSync('./fixtures/validIssueBodyDifferentLinkLocation.txt', 'utf-8') } }); + + await closeInvalidLink({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.get); + sinon.assert.notCalled(issuesStub.createComment); + sinon.assert.notCalled(issuesStub.update); + }); + + it('closes the issue if the link is invalid', async () => { + const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; + issuesStub.get.resolves({ data: { body: fs.readFileSync('./fixtures/invalidIssueBody.txt', 'utf-8') } }); + + await closeInvalidLink({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.get); + sinon.assert.calledOnce(issuesStub.createComment); + sinon.assert.calledOnce(issuesStub.update); + }); +}); \ No newline at end of file diff --git a/core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs b/core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs new file mode 100644 index 00000000000..fb092c53619 --- /dev/null +++ b/core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs @@ -0,0 +1,109 @@ +// Copyright 2024 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'; + +const { describe, it, beforeEach, afterEach } = require('mocha'); +const removeResponseLabel = require('../remove-response-label.cjs'); +const closeUnresponsive = require('../close-unresponsive.cjs'); +const sinon = require('sinon'); + +function getISODateDaysAgo(days) { + const today = new Date(); + const daysAgo = new Date(today.setDate(today.getDate() - days)); + return daysAgo.toISOString(); +} + +describe('close issues or remove needs more info labels', () => { + let octokitStub; + let issuesStub; + let paginateStub; + + beforeEach(() => { + issuesStub = { + listForRepo: sinon.stub(), + update: sinon.stub(), + createComment: sinon.stub(), + get: sinon.stub(), + removeLabel: sinon.stub(), + }; + paginateStub = sinon.stub(); + octokitStub = { + rest: { + issues: issuesStub, + }, + paginate: paginateStub, + }; + }); + + afterEach(() => { + sinon.restore(); + }); + + it('closes the issue if the OP has not responded within the allotted time and there is a needs-more-info label', async () => { + const context = { owner: 'testOrg', repo: 'testRepo' }; + const issuesInRepo = [{ user: { login: 'OP' }, labels: [{ name: 'needs more info' }] }]; + const eventsInIssue = [{ event: 'labeled', label: { name: 'needs more info' }, created_at: getISODateDaysAgo(16) }]; + + issuesStub.listForRepo.resolves({ data: issuesInRepo }); + paginateStub.resolves(eventsInIssue); + + await closeUnresponsive({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.listForRepo); + sinon.assert.calledOnce(paginateStub); + sinon.assert.calledOnce(issuesStub.update); + sinon.assert.calledOnce(issuesStub.createComment); + }); + + it('does nothing if not enough time has passed and there is a needs-more-info label', async () => { + const context = { owner: 'testOrg', repo: 'testRepo' }; + const issuesInRepo = [{ user: { login: 'OP' }, labels: [{ name: 'needs more info' }] }]; + const eventsInIssue = [{ event: 'labeled', label: { name: 'needs more info' }, created_at: getISODateDaysAgo(14) }]; + + issuesStub.listForRepo.resolves({ data: issuesInRepo }); + paginateStub.resolves(eventsInIssue); + + await closeUnresponsive({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.listForRepo); + sinon.assert.calledOnce(paginateStub); + sinon.assert.notCalled(issuesStub.update); + sinon.assert.notCalled(issuesStub.createComment); + }); + + it('removes the label if OP responded', async () => { + const context = { actor: 'OP', repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; + const issueContext = { user: {login: 'OP'}, labels: [{ name: 'needs more info' }] }; + + issuesStub.get.resolves({ data: issueContext }); + + await removeResponseLabel({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.get); + sinon.assert.calledOnce(issuesStub.removeLabel); + }); + + it('does not remove the label if author responded', async () => { + const context = { actor: 'repo-maintainer', repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; + const issueContext = { user: {login: 'OP'}, labels: [{ name: 'needs more info' }] }; + + issuesStub.get.resolves({ data: issueContext }); + + await removeResponseLabel({ github: octokitStub, context }); + + sinon.assert.calledOnce(issuesStub.get); + sinon.assert.notCalled(issuesStub.removeLabel); + }); +}); \ No newline at end of file From e0324e09eeec0ae301abed3121fa436b309e6029 Mon Sep 17 00:00:00 2001 From: Cody Oss Date: Mon, 9 Mar 2026 18:45:40 +0000 Subject: [PATCH 279/279] build: add release-please config, fix owlbot-config --- .github/CODEOWNERS | 1 + .release-please-manifest.json | 3 +- core/paginator/{.github => }/.OwlBot.yaml | 2 - core/paginator/.github/.OwlBot.lock.yaml | 17 --- core/paginator/.github/CODEOWNERS | 9 -- .../.github/ISSUE_TEMPLATE/bug_report.yml | 70 ----------- .../.github/ISSUE_TEMPLATE/config.yml | 4 - .../ISSUE_TEMPLATE/documentation_request.yml | 53 --------- .../ISSUE_TEMPLATE/feature_request.yml | 29 ----- .../ISSUE_TEMPLATE/processs_request.md | 4 - .../.github/ISSUE_TEMPLATE/questions.md | 8 -- .../.github/PULL_REQUEST_TEMPLATE.md | 30 ----- core/paginator/.github/auto-approve.yml | 2 - core/paginator/.github/auto-label.yaml | 2 - .../paginator/.github/generated-files-bot.yml | 16 --- core/paginator/.github/publish.yml | 0 core/paginator/.github/release-please.yml | 2 - core/paginator/.github/release-trigger.yml | 2 - .../.github/scripts/close-invalid-link.cjs | 56 --------- .../.github/scripts/close-unresponsive.cjs | 69 ----------- .../scripts/fixtures/invalidIssueBody.txt | 50 -------- .../scripts/fixtures/validIssueBody.txt | 50 -------- .../validIssueBodyDifferentLinkLocation.txt | 50 -------- .../.github/scripts/remove-response-label.cjs | 33 ------ .../scripts/tests/close-invalid-link.test.cjs | 86 -------------- .../close-or-remove-response-label.test.cjs | 109 ------------------ .../paginator/.github/sync-repo-settings.yaml | 23 ---- core/paginator/.kokoro/common.cfg | 4 +- .../.kokoro/continuous/node18/common.cfg | 4 +- .../.kokoro/continuous/node18/lint.cfg | 2 +- .../continuous/node18/samples-test.cfg | 2 +- .../.kokoro/continuous/node18/system-test.cfg | 2 +- .../.kokoro/presubmit/node18/common.cfg | 4 +- .../.kokoro/presubmit/node18/samples-test.cfg | 2 +- .../.kokoro/presubmit/node18/system-test.cfg | 2 +- .../.kokoro/presubmit/windows/test.cfg | 2 +- .../.kokoro/release/docs-devsite.cfg | 4 +- core/paginator/.kokoro/release/docs.cfg | 4 +- core/paginator/.kokoro/release/publish.cfg | 4 +- core/paginator/.kokoro/trampoline_v2.sh | 24 +++- core/paginator/.repo-metadata.json | 2 +- core/paginator/.trampolinerc | 2 +- core/paginator/package.json | 9 +- release-please-submodules.json | 7 +- 44 files changed, 56 insertions(+), 804 deletions(-) rename core/paginator/{.github => }/.OwlBot.yaml (89%) delete mode 100644 core/paginator/.github/.OwlBot.lock.yaml delete mode 100644 core/paginator/.github/CODEOWNERS delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/processs_request.md delete mode 100644 core/paginator/.github/ISSUE_TEMPLATE/questions.md delete mode 100644 core/paginator/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 core/paginator/.github/auto-approve.yml delete mode 100644 core/paginator/.github/auto-label.yaml delete mode 100644 core/paginator/.github/generated-files-bot.yml delete mode 100644 core/paginator/.github/publish.yml delete mode 100644 core/paginator/.github/release-please.yml delete mode 100644 core/paginator/.github/release-trigger.yml delete mode 100644 core/paginator/.github/scripts/close-invalid-link.cjs delete mode 100644 core/paginator/.github/scripts/close-unresponsive.cjs delete mode 100644 core/paginator/.github/scripts/fixtures/invalidIssueBody.txt delete mode 100644 core/paginator/.github/scripts/fixtures/validIssueBody.txt delete mode 100644 core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt delete mode 100644 core/paginator/.github/scripts/remove-response-label.cjs delete mode 100644 core/paginator/.github/scripts/tests/close-invalid-link.test.cjs delete mode 100644 core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs delete mode 100644 core/paginator/.github/sync-repo-settings.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4b96db04e7c..401dd14eb8d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,3 +13,4 @@ /handwritten/firestore @googleapis/firestore-team /handwritten/spanner @googleapis/spanner-team /handwritten/bigquery-storage @googleapis/bigquery-team +/core/paginator jsteam-handwritten-libraries diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 965b1bc91f6..5422bacd1c2 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,10 +1,11 @@ { + "core/paginator": "6.0.0", "handwritten/bigquery": "8.2.0", "handwritten/bigquery-storage": "5.1.0", "handwritten/cloud-profiler": "6.0.4", "handwritten/datastore": "10.1.0", - "handwritten/firestore": "8.3.0", "handwritten/error-reporting": "3.0.5", + "handwritten/firestore": "8.3.0", "handwritten/logging-bunyan": "5.1.1", "handwritten/logging-winston": "6.0.1", "handwritten/spanner": "8.6.0", diff --git a/core/paginator/.github/.OwlBot.yaml b/core/paginator/.OwlBot.yaml similarity index 89% rename from core/paginator/.github/.OwlBot.yaml rename to core/paginator/.OwlBot.yaml index 8ddb67c5ab8..46bbeee9f9f 100644 --- a/core/paginator/.github/.OwlBot.yaml +++ b/core/paginator/.OwlBot.yaml @@ -11,8 +11,6 @@ # 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. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest begin-after-commit-hash: 397c0bfd367a2427104f988d5329bc117caafd95 diff --git a/core/paginator/.github/.OwlBot.lock.yaml b/core/paginator/.github/.OwlBot.lock.yaml deleted file mode 100644 index 60443342360..00000000000 --- a/core/paginator/.github/.OwlBot.lock.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# 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. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:c7e4968cfc97a204a4b2381f3ecb55cabc40c4cccf88b1ef8bef0d976be87fee -# created: 2025-04-08T17:33:08.498793944Z diff --git a/core/paginator/.github/CODEOWNERS b/core/paginator/.github/CODEOWNERS deleted file mode 100644 index 201254f0b97..00000000000 --- a/core/paginator/.github/CODEOWNERS +++ /dev/null @@ -1,9 +0,0 @@ -# Code owners file. -# This file controls who is tagged for review for any given pull request. -# -# For syntax help see: -# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax - - -# Unless specified, the jsteam is the default owner for nodejs repositories. -* jsteam-handwritten-libraries @googleapis/jsteam \ No newline at end of file diff --git a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml b/core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 3b8ec07eba0..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Bug Report -description: Create a report to help us improve -labels: - - bug -body: - - type: markdown - attributes: - value: > - **PLEASE READ**: If you have a support contract with Google, please - create an issue in the [support - console](https://cloud.google.com/support/) instead of filing on GitHub. - This will ensure a timely response. Otherwise, please make sure to - follow the steps below. - - type: checkboxes - attributes: - label: Please make sure you have searched for information in the following - guides. - options: - - label: "Search the issues already opened: - https://github.com/GoogleCloudPlatform/google-cloud-node/issues" - required: true - - label: "Search StackOverflow: - http://stackoverflow.com/questions/tagged/google-cloud-platform+nod\ - e.js" - required: true - - label: "Check our Troubleshooting guide: - https://github.com/googleapis/google-cloud-node/blob/main/docs/trou\ - bleshooting.md" - required: true - - label: "Check our FAQ: - https://github.com/googleapis/google-cloud-node/blob/main/docs/faq.\ - md" - required: true - - label: "Check our libraries HOW-TO: - https://github.com/googleapis/gax-nodejs/blob/main/client-libraries\ - .md" - required: true - - label: "Check out our authentication guide: - https://github.com/googleapis/google-auth-library-nodejs" - required: true - - label: "Check out handwritten samples for many of our APIs: - https://github.com/GoogleCloudPlatform/nodejs-docs-samples" - required: true - - type: input - attributes: - label: > - Link to the code that reproduces this issue. A link to a **public** Github Repository or gist with a minimal - reproduction. - - type: textarea - attributes: - label: > - A step-by-step description of how to reproduce the issue, based on - the linked reproduction. - description: > - Screenshots can be provided in the issue body below. - placeholder: | - 1. Start the application in development (next dev) - 2. Click X - 3. Y will happen - - type: textarea - attributes: - label: A clear and concise description of what the bug is, and what you - expected to happen. - placeholder: Following the steps from the previous section, I expected A to - happen, but I observed B instead - - - type: textarea - attributes: - label: A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** - placeholder: 'Documentation here(link) states that B should happen instead of A' diff --git a/core/paginator/.github/ISSUE_TEMPLATE/config.yml b/core/paginator/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 603b90133b6..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,4 +0,0 @@ -contact_links: - - name: Google Cloud Support - url: https://cloud.google.com/support/ - about: If you have a support contract with Google, please use the Google Cloud Support portal. diff --git a/core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml b/core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml deleted file mode 100644 index 2e571c2e1d5..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/documentation_request.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Documentation Requests -description: Requests for more information -body: - - type: markdown - attributes: - value: > - Please use this issue type to log documentation requests against the library itself. - These requests should involve documentation on Github (`.md` files), and should relate to the library - itself. If you have questions or documentation requests for an API, please - reach out to the API tracker itself. - - Please submit an issue to the API team, either by submitting an - issue in its issue tracker https://cloud.google.com/support/docs/issue-trackers), or by - submitting an issue in its linked tracker in the .repo-metadata.json - file in the API under packages/* ([example]()). - You can also submit a request to documentation on cloud.google.com itself with the "Send Feedback" - on the bottom of the page. - - - Please note that documentation requests and questions for specific APIs - will be closed. - - type: checkboxes - attributes: - label: Please make sure you have searched for information in the following - guides. - options: - - label: "Search the issues already opened: - https://github.com/GoogleCloudPlatform/google-cloud-node/issues" - required: true - - label: "Check our Troubleshooting guide: - https://googlecloudplatform.github.io/google-cloud-node/#/docs/guid\ - es/troubleshooting" - required: true - - label: "Check our FAQ: - https://googlecloudplatform.github.io/google-cloud-node/#/docs/guid\ - es/faq" - required: true - - label: "Check our libraries HOW-TO: - https://github.com/googleapis/gax-nodejs/blob/main/client-libraries\ - .md" - required: true - - label: "Check out our authentication guide: - https://github.com/googleapis/google-auth-library-nodejs" - required: true - - label: "Check out handwritten samples for many of our APIs: - https://github.com/GoogleCloudPlatform/nodejs-docs-samples" - required: true - - type: textarea - attributes: - label: > - Documentation Request - validations: - required: true diff --git a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml b/core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index e7f33b00697..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Feature Request -description: Suggest an idea for this library -labels: - - feature request -body: - - type: markdown - attributes: - value: > - **PLEASE READ**: If you have a support contract with Google, please - create an issue in the [support - console](https://cloud.google.com/support/) instead of filing on GitHub. - This will ensure a timely response. Otherwise, please make sure to - follow the steps below. - - type: textarea - attributes: - label: > - What would you like to see in the library? - description: > - Screenshots can be provided in the issue body below. - placeholder: | - 1. Set up authentication like so - 2. Run the program like so - 3. X would be nice to happen - - type: textarea - attributes: - label: Describe alternatives you've considered - - type: textarea - attributes: - label: Additional context/notes diff --git a/core/paginator/.github/ISSUE_TEMPLATE/processs_request.md b/core/paginator/.github/ISSUE_TEMPLATE/processs_request.md deleted file mode 100644 index 45682e8f117..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/processs_request.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Process Request -about: Submit a process request to the library. Process requests are any requests related to library infrastructure, for example CI/CD, publishing, releasing, broken links. ---- diff --git a/core/paginator/.github/ISSUE_TEMPLATE/questions.md b/core/paginator/.github/ISSUE_TEMPLATE/questions.md deleted file mode 100644 index 62c1dd1b93a..00000000000 --- a/core/paginator/.github/ISSUE_TEMPLATE/questions.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: Question -about: If you have a question, please use Discussions - ---- - -If you have a general question that goes beyond the library itself, we encourage you to use [Discussions](https://github.com//discussions) -to engage with fellow community members! diff --git a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md b/core/paginator/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 4ca5ec23381..00000000000 --- a/core/paginator/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,30 +0,0 @@ -> Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - -## Description - -> Please provide a detailed description for the change. -> As much as possible, please try to keep changes separate by purpose. For example, try not to make a one-line bug fix in a feature request, or add an irrelevant README change to a bug fix. - -## Impact - -> What's the impact of this change? - -## Testing - -> Have you added unit and integration tests if necessary? -> Were any tests changed? Are any breaking changes necessary? - -## Additional Information - -> Any additional details that we should be aware of? - -## Checklist - -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/nodejs-paginator/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea -- [ ] Ensure the tests and linter pass -- [ ] Code coverage does not decrease -- [ ] Appropriate docs were updated -- [ ] Appropriate comments were added, particularly in complex areas or places that require background -- [ ] No new warnings or issues will be generated from this change - -Fixes #issue_number_goes_here 🦕 diff --git a/core/paginator/.github/auto-approve.yml b/core/paginator/.github/auto-approve.yml deleted file mode 100644 index 7cba0af636c..00000000000 --- a/core/paginator/.github/auto-approve.yml +++ /dev/null @@ -1,2 +0,0 @@ -processes: - - "NodeDependency" \ No newline at end of file diff --git a/core/paginator/.github/auto-label.yaml b/core/paginator/.github/auto-label.yaml deleted file mode 100644 index 09c8d735b45..00000000000 --- a/core/paginator/.github/auto-label.yaml +++ /dev/null @@ -1,2 +0,0 @@ -requestsize: - enabled: true diff --git a/core/paginator/.github/generated-files-bot.yml b/core/paginator/.github/generated-files-bot.yml deleted file mode 100644 index 992ccef4a13..00000000000 --- a/core/paginator/.github/generated-files-bot.yml +++ /dev/null @@ -1,16 +0,0 @@ -generatedFiles: -- path: '.kokoro/**' - message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' -- path: '.github/CODEOWNERS' - message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' -- path: '.github/workflows/ci.yaml' - message: '`.github/workflows/ci.yaml` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' -- path: '.github/generated-files-bot.+(yml|yaml)' - message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' -- path: 'README.md' - message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' -- path: 'samples/README.md' - message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' -ignoreAuthors: -- 'gcf-owl-bot[bot]' -- 'yoshi-automation' diff --git a/core/paginator/.github/publish.yml b/core/paginator/.github/publish.yml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/core/paginator/.github/release-please.yml b/core/paginator/.github/release-please.yml deleted file mode 100644 index a1b41da3cb3..00000000000 --- a/core/paginator/.github/release-please.yml +++ /dev/null @@ -1,2 +0,0 @@ -handleGHRelease: true -releaseType: node diff --git a/core/paginator/.github/release-trigger.yml b/core/paginator/.github/release-trigger.yml deleted file mode 100644 index 988d8b181d7..00000000000 --- a/core/paginator/.github/release-trigger.yml +++ /dev/null @@ -1,2 +0,0 @@ -enabled: true -multiScmName: nodejs-paginator \ No newline at end of file diff --git a/core/paginator/.github/scripts/close-invalid-link.cjs b/core/paginator/.github/scripts/close-invalid-link.cjs deleted file mode 100644 index d7a3688e755..00000000000 --- a/core/paginator/.github/scripts/close-invalid-link.cjs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2024 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. - -async function closeIssue(github, owner, repo, number) { - await github.rest.issues.createComment({ - owner: owner, - repo: repo, - issue_number: number, - body: 'Issue was opened with an invalid reproduction link. Please make sure the repository is a valid, publicly-accessible github repository, and make sure the url is complete (example: https://github.com/googleapis/google-cloud-node)' - }); - await github.rest.issues.update({ - owner: owner, - repo: repo, - issue_number: number, - state: 'closed' - }); -} -module.exports = async ({github, context}) => { - const owner = context.repo.owner; - const repo = context.repo.repo; - const number = context.issue.number; - - const issue = await github.rest.issues.get({ - owner: owner, - repo: repo, - issue_number: number, - }); - - const isBugTemplate = issue.data.body.includes('Link to the code that reproduces this issue'); - - if (isBugTemplate) { - console.log(`Issue ${number} is a bug template`) - try { - const link = issue.data.body.split('\n')[18].match(/(https?:\/\/(gist\.)?github.com\/.*)/)[0]; - console.log(`Issue ${number} contains this link: ${link}`) - const isValidLink = (await fetch(link)).ok; - console.log(`Issue ${number} has a ${isValidLink ? 'valid' : 'invalid'} link`) - if (!isValidLink) { - await closeIssue(github, owner, repo, number); - } - } catch (err) { - await closeIssue(github, owner, repo, number); - } - } -}; diff --git a/core/paginator/.github/scripts/close-unresponsive.cjs b/core/paginator/.github/scripts/close-unresponsive.cjs deleted file mode 100644 index 142dc1265a4..00000000000 --- a/core/paginator/.github/scripts/close-unresponsive.cjs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2024 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. - -function labeledEvent(data) { - return data.event === 'labeled' && data.label.name === 'needs more info'; - } - - const numberOfDaysLimit = 15; - const close_message = `This has been closed since a request for information has \ - not been answered for ${numberOfDaysLimit} days. It can be reopened when the \ - requested information is provided.`; - - module.exports = async ({github, context}) => { - const owner = context.repo.owner; - const repo = context.repo.repo; - - const issues = await github.rest.issues.listForRepo({ - owner: owner, - repo: repo, - labels: 'needs more info', - }); - const numbers = issues.data.map((e) => e.number); - - for (const number of numbers) { - const events = await github.paginate( - github.rest.issues.listEventsForTimeline, - { - owner: owner, - repo: repo, - issue_number: number, - }, - (response) => response.data.filter(labeledEvent) - ); - - const latest_response_label = events[events.length - 1]; - - const created_at = new Date(latest_response_label.created_at); - const now = new Date(); - const diff = now - created_at; - const diffDays = diff / (1000 * 60 * 60 * 24); - - if (diffDays > numberOfDaysLimit) { - await github.rest.issues.update({ - owner: owner, - repo: repo, - issue_number: number, - state: 'closed', - }); - - await github.rest.issues.createComment({ - owner: owner, - repo: repo, - issue_number: number, - body: close_message, - }); - } - } - }; diff --git a/core/paginator/.github/scripts/fixtures/invalidIssueBody.txt b/core/paginator/.github/scripts/fixtures/invalidIssueBody.txt deleted file mode 100644 index 504bd669022..00000000000 --- a/core/paginator/.github/scripts/fixtures/invalidIssueBody.txt +++ /dev/null @@ -1,50 +0,0 @@ -### Please make sure you have searched for information in the following guides. - -- [X] Search the issues already opened: https://github.com/GoogleCloudPlatform/google-cloud-node/issues -- [X] Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js -- [X] Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting -- [X] Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq -- [X] Check our libraries HOW-TO: https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md -- [X] Check out our authentication guide: https://github.com/googleapis/google-auth-library-nodejs -- [X] Check out handwritten samples for many of our APIs: https://github.com/GoogleCloudPlatform/nodejs-docs-samples - -### A screenshot that you have tested with "Try this API". - - -N/A - -### Link to the code that reproduces this issue. A link to a **public** Github Repository or gist with a minimal reproduction. - -not-a-link - -### A step-by-step description of how to reproduce the issue, based on the linked reproduction. - - -Change MY_PROJECT to your project name, add credentials if needed and run. - -### A clear and concise description of what the bug is, and what you expected to happen. - -The application crashes with the following exception (which there is no way to catch). It should just emit error, and allow graceful handling. -TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object - at _write (node:internal/streams/writable:474:13) - at Writable.write (node:internal/streams/writable:502:10) - at Duplexify._write (/project/node_modules/duplexify/index.js:212:22) - at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) - at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) - at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) - at Pumpify. (/project/node_modules/@google-cloud/speech/build/src/helpers.js:79:27) - at Object.onceWrapper (node:events:633:26) - at Pumpify.emit (node:events:518:28) - at obj. [as _write] (/project/node_modules/stubs/index.js:28:22) - at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) - at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) - at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) - at PassThrough.ondata (node:internal/streams/readable:1007:22) - at PassThrough.emit (node:events:518:28) - at addChunk (node:internal/streams/readable:559:12) { - code: 'ERR_INVALID_ARG_TYPE' - - -### A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** - -No library should crash an application this way. \ No newline at end of file diff --git a/core/paginator/.github/scripts/fixtures/validIssueBody.txt b/core/paginator/.github/scripts/fixtures/validIssueBody.txt deleted file mode 100644 index 6e0ace338eb..00000000000 --- a/core/paginator/.github/scripts/fixtures/validIssueBody.txt +++ /dev/null @@ -1,50 +0,0 @@ -### Please make sure you have searched for information in the following guides. - -- [X] Search the issues already opened: https://github.com/GoogleCloudPlatform/google-cloud-node/issues -- [X] Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js -- [X] Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting -- [X] Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq -- [X] Check our libraries HOW-TO: https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md -- [X] Check out our authentication guide: https://github.com/googleapis/google-auth-library-nodejs -- [X] Check out handwritten samples for many of our APIs: https://github.com/GoogleCloudPlatform/nodejs-docs-samples - -### A screenshot that you have tested with "Try this API". - - -N/A - -### Link to the code that reproduces this issue. A link to a **public** Github Repository or gist with a minimal reproduction. - -https://gist.github.com/orgads/13cbf44c91923da27d8772b5f10489c9 - -### A step-by-step description of how to reproduce the issue, based on the linked reproduction. - - -Change MY_PROJECT to your project name, add credentials if needed and run. - -### A clear and concise description of what the bug is, and what you expected to happen. - -The application crashes with the following exception (which there is no way to catch). It should just emit error, and allow graceful handling. -TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object - at _write (node:internal/streams/writable:474:13) - at Writable.write (node:internal/streams/writable:502:10) - at Duplexify._write (/project/node_modules/duplexify/index.js:212:22) - at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) - at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) - at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) - at Pumpify. (/project/node_modules/@google-cloud/speech/build/src/helpers.js:79:27) - at Object.onceWrapper (node:events:633:26) - at Pumpify.emit (node:events:518:28) - at obj. [as _write] (/project/node_modules/stubs/index.js:28:22) - at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) - at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) - at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) - at PassThrough.ondata (node:internal/streams/readable:1007:22) - at PassThrough.emit (node:events:518:28) - at addChunk (node:internal/streams/readable:559:12) { - code: 'ERR_INVALID_ARG_TYPE' - - -### A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** - -No library should crash an application this way. \ No newline at end of file diff --git a/core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt b/core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt deleted file mode 100644 index 984a420e376..00000000000 --- a/core/paginator/.github/scripts/fixtures/validIssueBodyDifferentLinkLocation.txt +++ /dev/null @@ -1,50 +0,0 @@ -### Please make sure you have searched for information in the following guides. - -- [X] Search the issues already opened: https://github.com/GoogleCloudPlatform/google-cloud-node/issues -- [X] Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js -- [X] Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting -- [X] Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq -- [X] Check our libraries HOW-TO: https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md -- [X] Check out our authentication guide: https://github.com/googleapis/google-auth-library-nodejs -- [X] Check out handwritten samples for many of our APIs: https://github.com/GoogleCloudPlatform/nodejs-docs-samples - -### A screenshot that you have tested with "Try this API". - - -N/A - -### A step-by-step description of how to reproduce the issue, based on the linked reproduction. - - -Change MY_PROJECT to your project name, add credentials if needed and run. - -### A clear and concise description of what the bug is, and what you expected to happen. - -The application crashes with the following exception (which there is no way to catch). It should just emit error, and allow graceful handling. -TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object - at _write (node:internal/streams/writable:474:13) - at Writable.write (node:internal/streams/writable:502:10) - at Duplexify._write (/project/node_modules/duplexify/index.js:212:22) - at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) - at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) - at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) - at Pumpify. (/project/node_modules/@google-cloud/speech/build/src/helpers.js:79:27) - at Object.onceWrapper (node:events:633:26) - at Pumpify.emit (node:events:518:28) - at obj. [as _write] (/project/node_modules/stubs/index.js:28:22) - at doWrite (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:390:139) - at writeOrBuffer (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:381:5) - at Writable.write (/project/node_modules/duplexify/node_modules/readable-stream/lib/_stream_writable.js:302:11) - at PassThrough.ondata (node:internal/streams/readable:1007:22) - at PassThrough.emit (node:events:518:28) - at addChunk (node:internal/streams/readable:559:12) { - code: 'ERR_INVALID_ARG_TYPE' - -### Link to the code that reproduces this issue. A link to a **public** Github Repository with a minimal reproduction. - - -https://gist.github.com/orgads/13cbf44c91923da27d8772b5f10489c9 - -### A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. ** - -No library should crash an application this way. \ No newline at end of file diff --git a/core/paginator/.github/scripts/remove-response-label.cjs b/core/paginator/.github/scripts/remove-response-label.cjs deleted file mode 100644 index 887cf349e9d..00000000000 --- a/core/paginator/.github/scripts/remove-response-label.cjs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2024 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. - -module.exports = async ({ github, context }) => { - const commenter = context.actor; - const issue = await github.rest.issues.get({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - }); - const author = issue.data.user.login; - const labels = issue.data.labels.map((e) => e.name); - - if (author === commenter && labels.includes('needs more info')) { - await github.rest.issues.removeLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - name: 'needs more info', - }); - } - }; diff --git a/core/paginator/.github/scripts/tests/close-invalid-link.test.cjs b/core/paginator/.github/scripts/tests/close-invalid-link.test.cjs deleted file mode 100644 index f63ee89c811..00000000000 --- a/core/paginator/.github/scripts/tests/close-invalid-link.test.cjs +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2024 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'; - -const { describe, it } = require('mocha'); -const closeInvalidLink = require('../close-invalid-link.cjs'); -const fs = require('fs'); -const sinon = require('sinon'); - -describe('close issues with invalid links', () => { - let octokitStub; - let issuesStub; - - beforeEach(() => { - issuesStub = { - get: sinon.stub(), - createComment: sinon.stub(), - update: sinon.stub(), - }; - octokitStub = { - rest: { - issues: issuesStub, - }, - }; - }); - - afterEach(() => { - sinon.restore(); - }); - - it('does not do anything if it is not a bug', async () => { - const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; - issuesStub.get.resolves({ data: { body: "I'm having a problem with this." } }); - - await closeInvalidLink({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.get); - sinon.assert.notCalled(issuesStub.createComment); - sinon.assert.notCalled(issuesStub.update); - }); - - it('does not do anything if it is a bug with an appropriate link', async () => { - const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; - issuesStub.get.resolves({ data: { body: fs.readFileSync('./fixtures/validIssueBody.txt', 'utf-8') } }); - - await closeInvalidLink({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.get); - sinon.assert.notCalled(issuesStub.createComment); - sinon.assert.notCalled(issuesStub.update); - }); - - it('does not do anything if it is a bug with an appropriate link and the template changes', async () => { - const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; - issuesStub.get.resolves({ data: { body: fs.readFileSync('./fixtures/validIssueBodyDifferentLinkLocation.txt', 'utf-8') } }); - - await closeInvalidLink({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.get); - sinon.assert.notCalled(issuesStub.createComment); - sinon.assert.notCalled(issuesStub.update); - }); - - it('closes the issue if the link is invalid', async () => { - const context = { repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; - issuesStub.get.resolves({ data: { body: fs.readFileSync('./fixtures/invalidIssueBody.txt', 'utf-8') } }); - - await closeInvalidLink({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.get); - sinon.assert.calledOnce(issuesStub.createComment); - sinon.assert.calledOnce(issuesStub.update); - }); -}); \ No newline at end of file diff --git a/core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs b/core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs deleted file mode 100644 index fb092c53619..00000000000 --- a/core/paginator/.github/scripts/tests/close-or-remove-response-label.test.cjs +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2024 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'; - -const { describe, it, beforeEach, afterEach } = require('mocha'); -const removeResponseLabel = require('../remove-response-label.cjs'); -const closeUnresponsive = require('../close-unresponsive.cjs'); -const sinon = require('sinon'); - -function getISODateDaysAgo(days) { - const today = new Date(); - const daysAgo = new Date(today.setDate(today.getDate() - days)); - return daysAgo.toISOString(); -} - -describe('close issues or remove needs more info labels', () => { - let octokitStub; - let issuesStub; - let paginateStub; - - beforeEach(() => { - issuesStub = { - listForRepo: sinon.stub(), - update: sinon.stub(), - createComment: sinon.stub(), - get: sinon.stub(), - removeLabel: sinon.stub(), - }; - paginateStub = sinon.stub(); - octokitStub = { - rest: { - issues: issuesStub, - }, - paginate: paginateStub, - }; - }); - - afterEach(() => { - sinon.restore(); - }); - - it('closes the issue if the OP has not responded within the allotted time and there is a needs-more-info label', async () => { - const context = { owner: 'testOrg', repo: 'testRepo' }; - const issuesInRepo = [{ user: { login: 'OP' }, labels: [{ name: 'needs more info' }] }]; - const eventsInIssue = [{ event: 'labeled', label: { name: 'needs more info' }, created_at: getISODateDaysAgo(16) }]; - - issuesStub.listForRepo.resolves({ data: issuesInRepo }); - paginateStub.resolves(eventsInIssue); - - await closeUnresponsive({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.listForRepo); - sinon.assert.calledOnce(paginateStub); - sinon.assert.calledOnce(issuesStub.update); - sinon.assert.calledOnce(issuesStub.createComment); - }); - - it('does nothing if not enough time has passed and there is a needs-more-info label', async () => { - const context = { owner: 'testOrg', repo: 'testRepo' }; - const issuesInRepo = [{ user: { login: 'OP' }, labels: [{ name: 'needs more info' }] }]; - const eventsInIssue = [{ event: 'labeled', label: { name: 'needs more info' }, created_at: getISODateDaysAgo(14) }]; - - issuesStub.listForRepo.resolves({ data: issuesInRepo }); - paginateStub.resolves(eventsInIssue); - - await closeUnresponsive({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.listForRepo); - sinon.assert.calledOnce(paginateStub); - sinon.assert.notCalled(issuesStub.update); - sinon.assert.notCalled(issuesStub.createComment); - }); - - it('removes the label if OP responded', async () => { - const context = { actor: 'OP', repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; - const issueContext = { user: {login: 'OP'}, labels: [{ name: 'needs more info' }] }; - - issuesStub.get.resolves({ data: issueContext }); - - await removeResponseLabel({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.get); - sinon.assert.calledOnce(issuesStub.removeLabel); - }); - - it('does not remove the label if author responded', async () => { - const context = { actor: 'repo-maintainer', repo: { owner: 'testOrg', repo: 'testRepo' }, issue: { number: 1 } }; - const issueContext = { user: {login: 'OP'}, labels: [{ name: 'needs more info' }] }; - - issuesStub.get.resolves({ data: issueContext }); - - await removeResponseLabel({ github: octokitStub, context }); - - sinon.assert.calledOnce(issuesStub.get); - sinon.assert.notCalled(issuesStub.removeLabel); - }); -}); \ No newline at end of file diff --git a/core/paginator/.github/sync-repo-settings.yaml b/core/paginator/.github/sync-repo-settings.yaml deleted file mode 100644 index a013376d1cb..00000000000 --- a/core/paginator/.github/sync-repo-settings.yaml +++ /dev/null @@ -1,23 +0,0 @@ -branchProtectionRules: - - pattern: main - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: true - requiredStatusCheckContexts: - - "ci/kokoro: Samples test" - - "ci/kokoro: System test" - - lint - - test (18) - - test (20) - - test (22) - - cla/google - - windows - - OwlBot Post Processor -permissionRules: - - team: yoshi-admins - permission: admin - - team: jsteam-admins - permission: admin - - team: jsteam - permission: push diff --git a/core/paginator/.kokoro/common.cfg b/core/paginator/.kokoro/common.cfg index 032ff5371e6..5bbf287fbb7 100644 --- a/core/paginator/.kokoro/common.cfg +++ b/core/paginator/.kokoro/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" +build_file: "nodejs-paginator/core/paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -20,5 +20,5 @@ env_vars: { } env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/test.sh" } diff --git a/core/paginator/.kokoro/continuous/node18/common.cfg b/core/paginator/.kokoro/continuous/node18/common.cfg index 0a3c5bc8862..186a3c85bd3 100644 --- a/core/paginator/.kokoro/continuous/node18/common.cfg +++ b/core/paginator/.kokoro/continuous/node18/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" +build_file: "nodejs-paginator/core/paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -20,5 +20,5 @@ env_vars: { } env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/test.sh" } diff --git a/core/paginator/.kokoro/continuous/node18/lint.cfg b/core/paginator/.kokoro/continuous/node18/lint.cfg index 939fa12b6d0..84a0ec4715f 100644 --- a/core/paginator/.kokoro/continuous/node18/lint.cfg +++ b/core/paginator/.kokoro/continuous/node18/lint.cfg @@ -1,4 +1,4 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/lint.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/lint.sh" } diff --git a/core/paginator/.kokoro/continuous/node18/samples-test.cfg b/core/paginator/.kokoro/continuous/node18/samples-test.cfg index 1fc8ef25dba..77cb50e1cd2 100644 --- a/core/paginator/.kokoro/continuous/node18/samples-test.cfg +++ b/core/paginator/.kokoro/continuous/node18/samples-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/samples-test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/samples-test.sh" } env_vars: { diff --git a/core/paginator/.kokoro/continuous/node18/system-test.cfg b/core/paginator/.kokoro/continuous/node18/system-test.cfg index 6154e1a9a6e..4175c5b4d5c 100644 --- a/core/paginator/.kokoro/continuous/node18/system-test.cfg +++ b/core/paginator/.kokoro/continuous/node18/system-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/system-test.sh" } env_vars: { diff --git a/core/paginator/.kokoro/presubmit/node18/common.cfg b/core/paginator/.kokoro/presubmit/node18/common.cfg index 0a3c5bc8862..186a3c85bd3 100644 --- a/core/paginator/.kokoro/presubmit/node18/common.cfg +++ b/core/paginator/.kokoro/presubmit/node18/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" +build_file: "nodejs-paginator/core/paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -20,5 +20,5 @@ env_vars: { } env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/test.sh" } diff --git a/core/paginator/.kokoro/presubmit/node18/samples-test.cfg b/core/paginator/.kokoro/presubmit/node18/samples-test.cfg index 1fc8ef25dba..77cb50e1cd2 100644 --- a/core/paginator/.kokoro/presubmit/node18/samples-test.cfg +++ b/core/paginator/.kokoro/presubmit/node18/samples-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/samples-test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/samples-test.sh" } env_vars: { diff --git a/core/paginator/.kokoro/presubmit/node18/system-test.cfg b/core/paginator/.kokoro/presubmit/node18/system-test.cfg index 6154e1a9a6e..4175c5b4d5c 100644 --- a/core/paginator/.kokoro/presubmit/node18/system-test.cfg +++ b/core/paginator/.kokoro/presubmit/node18/system-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/system-test.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/system-test.sh" } env_vars: { diff --git a/core/paginator/.kokoro/presubmit/windows/test.cfg b/core/paginator/.kokoro/presubmit/windows/test.cfg index c47d07b54a9..cb9baa82b39 100644 --- a/core/paginator/.kokoro/presubmit/windows/test.cfg +++ b/core/paginator/.kokoro/presubmit/windows/test.cfg @@ -1,2 +1,2 @@ # Use the test file directly -build_file: "nodejs-paginator/.kokoro/test.bat" +build_file: "nodejs-paginator/core/paginator/.kokoro/test.bat" diff --git a/core/paginator/.kokoro/release/docs-devsite.cfg b/core/paginator/.kokoro/release/docs-devsite.cfg index 8a8f1bc7cfa..134d9b4257a 100644 --- a/core/paginator/.kokoro/release/docs-devsite.cfg +++ b/core/paginator/.kokoro/release/docs-devsite.cfg @@ -18,9 +18,9 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" +build_file: "nodejs-paginator/core/paginator/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/release/docs-devsite.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/release/docs-devsite.sh" } diff --git a/core/paginator/.kokoro/release/docs.cfg b/core/paginator/.kokoro/release/docs.cfg index d7e61453435..96f5e78f753 100644 --- a/core/paginator/.kokoro/release/docs.cfg +++ b/core/paginator/.kokoro/release/docs.cfg @@ -18,9 +18,9 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" +build_file: "nodejs-paginator/core/paginator/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/release/docs.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/release/docs.sh" } diff --git a/core/paginator/.kokoro/release/publish.cfg b/core/paginator/.kokoro/release/publish.cfg index bbc2bdf695e..94af1b9c344 100644 --- a/core/paginator/.kokoro/release/publish.cfg +++ b/core/paginator/.kokoro/release/publish.cfg @@ -25,7 +25,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-paginator/.kokoro/trampoline_v2.sh" +build_file: "nodejs-paginator/core/paginator/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -35,7 +35,7 @@ env_vars: { env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-paginator/.kokoro/publish.sh" + value: "github/nodejs-paginator/core/paginator/.kokoro/publish.sh" } # Store the packages we uploaded to npmjs.org and their corresponding diff --git a/core/paginator/.kokoro/trampoline_v2.sh b/core/paginator/.kokoro/trampoline_v2.sh index 4d03112128a..1fdd89c9080 100755 --- a/core/paginator/.kokoro/trampoline_v2.sh +++ b/core/paginator/.kokoro/trampoline_v2.sh @@ -246,14 +246,34 @@ function repo_root() { if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then PROGRAM_PATH="$(realpath "$0")" PROGRAM_DIR="$(dirname "${PROGRAM_PATH}")" - PROJECT_ROOT="$(repo_root "${PROGRAM_DIR}")" + PROJECT_ROOT="$(repo_root "${PROGRAM_DIR}")/core/paginator" else - PROJECT_ROOT="$(repo_root $(pwd))" + PROJECT_ROOT="$(repo_root $(pwd))/core/paginator" fi log_yellow "Changing to the project root: ${PROJECT_ROOT}." cd "${PROJECT_ROOT}" +# Auto-injected conditional check +# Check if the package directory has changes. If not, skip tests. +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + # The package path is hardcoded during migration + RELATIVE_PKG_PATH="core/paginator" + + echo "Checking for changes in ${RELATIVE_PKG_PATH}..." + + # Determine the diff range based on the CI system/event + # Safe default: HEAD~1..HEAD + DIFF_RANGE="HEAD~1..HEAD" + + if git diff --quiet "${DIFF_RANGE}" -- "${RELATIVE_PKG_PATH}"; then + echo "No changes detected in ${RELATIVE_PKG_PATH}. Skipping tests." + exit 0 + else + echo "Changes detected in ${RELATIVE_PKG_PATH}. Proceeding with tests." + fi +fi + # To support relative path for `TRAMPOLINE_SERVICE_ACCOUNT`, we need # to use this environment variable in `PROJECT_ROOT`. if [[ -n "${TRAMPOLINE_SERVICE_ACCOUNT:-}" ]]; then diff --git a/core/paginator/.repo-metadata.json b/core/paginator/.repo-metadata.json index 77e364b6d41..8e1cd714bf8 100644 --- a/core/paginator/.repo-metadata.json +++ b/core/paginator/.repo-metadata.json @@ -3,7 +3,7 @@ "name_pretty": "Google Cloud Common Paginator", "release_level": "stable", "language": "nodejs", - "repo": "googleapis/nodejs-paginator", + "repo": "googleapis/google-cloud-node", "distribution_name": "@google-cloud/paginator", "client_documentation": "https://cloud.google.com/nodejs/docs/reference/paginator/latest", "library_type": "OTHER", diff --git a/core/paginator/.trampolinerc b/core/paginator/.trampolinerc index 5fc2253137d..9b4f78ac8be 100644 --- a/core/paginator/.trampolinerc +++ b/core/paginator/.trampolinerc @@ -49,4 +49,4 @@ if [[ -z "${TRAMPOLINE_BUILD_FILE:-}" ]]; then fi # Secret Manager secrets. -source ${PROJECT_ROOT}/.kokoro/populate-secrets.sh +source ${PROJECT_ROOT}/core/paginator/.kokoro/populate-secrets.sh diff --git a/core/paginator/package.json b/core/paginator/package.json index 3dbd45d6945..de0cecfcd05 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -4,7 +4,11 @@ "description": "A result paging utility used by Google node.js modules", "main": "build/src/index.js", "types": "build/src/index.d.ts", - "repository": "googleapis/nodejs-paginator", + "repository": { + "type": "git", + "directory": "core/paginator", + "url": "https://github.com/googleapis/google-cloud-node.git" + }, "scripts": { "test": "c8 mocha build/test", "compile": "tsc -p .", @@ -55,5 +59,6 @@ }, "engines": { "node": ">=18" - } + }, + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/core/paginator" } diff --git a/release-please-submodules.json b/release-please-submodules.json index b132d34c7d6..b7cf32f47e4 100644 --- a/release-please-submodules.json +++ b/release-please-submodules.json @@ -2,6 +2,7 @@ "commit-batch-size": 1, "include-component-in-tag": true, "packages": { + "core/paginator": {}, "handwritten/bigquery": { "component": "bigquery" }, @@ -14,12 +15,12 @@ "handwritten/datastore": { "component": "datastore" }, - "handwritten/firestore": { - "component": "firestore" - }, "handwritten/error-reporting": { "component": "error-reporting" }, + "handwritten/firestore": { + "component": "firestore" + }, "handwritten/logging-bunyan": { "component": "logging-bunyan" },