diff --git a/.circleci/config.yml b/.circleci/config.yml index aa8e0a106b..e24fa49b44 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -278,7 +278,8 @@ jobs: - run: 'yarn bazel:lint || (echo -e "\n.bzl files have lint errors. Please run ''yarn bazel:lint-fix''"; exit 1)' - - run: yarn -s lint --branch $CI_GIT_BASE_REVISION + - run: yarn -s tslint + - run: yarn -s ng-dev format changed $CI_GIT_BASE_REVISION --check - run: yarn -s ts-circular-deps:check - run: yarn -s ng-dev pullapprove verify - run: yarn -s ng-dev commit-message validate-range --range $CI_COMMIT_RANGE diff --git a/.dev-infra.json b/.dev-infra.json index 5d8ec701d1..a4ef046c90 100644 --- a/.dev-infra.json +++ b/.dev-infra.json @@ -54,7 +54,6 @@ "!packages/common/src/i18n/currencies.ts", "!packages/common/src/i18n/locale_en.ts", "modules/benchmarks/**/*.{js,ts}", - "modules/e2e_util/**/*.{js,ts}", "modules/playground/**/*.{js,ts}", "tools/**/*.{js,ts}", "!tools/gulp-tasks/cldr/extract.js", diff --git a/gulpfile.js b/gulpfile.js index eed70c10b7..d83869224c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -26,33 +26,36 @@ function loadTask(fileName, taskName) { return task(gulp); } -//####################################################### -// A format and enforce task for different sets of files. -//####################################################### -// All source files. -gulp.task('format:all', loadTask('format', 'format')); -gulp.task('format:all:enforce', loadTask('format', 'enforce')); - -// Untracked source code files. -gulp.task('format:untracked', loadTask('format', 'format-untracked')); -gulp.task('format:untracked:enforce', loadTask('format', 'enforce-untracked')); - -// Changed, tracked source code files. -gulp.task('format:diff', loadTask('format', 'format-diff')); -gulp.task('format:diff:enforce', loadTask('format', 'enforce-diff')); - -// Changed, both tracked and untracked, source code files. -gulp.task('format:changed', ['format:untracked', 'format:diff']); -gulp.task('format:changed:enforce', ['format:untracked:enforce', 'format:diff:enforce']); - -// Alias for `format:changed` that formerly formatted all files. -gulp.task('format', ['format:changed']); - -gulp.task('lint', ['format:changed:enforce']); gulp.task('source-map-test', loadTask('source-map-test')); gulp.task('changelog', loadTask('changelog')); gulp.task('changelog:zonejs', loadTask('changelog-zonejs')); gulp.task('check-env', () => {/* this is a noop because the env test ran already above */}); gulp.task('cldr:extract', loadTask('cldr', 'extract')); gulp.task('cldr:gen-closure-locale', loadTask('cldr', 'closure')); + + +// TODO(josephperrott): Remove old task entries and deprecation notice after deprecation period. +/** Notify regarding `gulp format:*` deprecation. */ +function gulpFormatDeprecationNotice() { + console.info(`######################################################################`) + console.info(`gulp format is deprecated in favor of running the formatter via ng-dev`); + console.info(); + console.info(`You can find more usage information by running:`); + console.info(` yarn ng-dev format --help`); + console.info(); + console.info(`For more on the rationale and effects of this deprecation visit:`); + console.info(` https://github.com/angular/angular/pull/36726#issue-406278018`); + console.info(`######################################################################`) + process.exit(1); +} +gulp.task('format:all', gulpFormatDeprecationNotice); +gulp.task('format:all:enforce', gulpFormatDeprecationNotice); +gulp.task('format:untracked', gulpFormatDeprecationNotice); +gulp.task('format:untracked:enforce', gulpFormatDeprecationNotice); +gulp.task('format:diff', gulpFormatDeprecationNotice); +gulp.task('format:diff:enforce', gulpFormatDeprecationNotice); +gulp.task('format:changed', gulpFormatDeprecationNotice); +gulp.task('format:changed:enforce', gulpFormatDeprecationNotice); +gulp.task('format', gulpFormatDeprecationNotice); +gulp.task('lint', gulpFormatDeprecationNotice); diff --git a/package.json b/package.json index e4e739baf7..cf48dd7a21 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "//circleci-win-comment": "See the test-win circleci job for why these are needed. If they are not needed anymore, remove them.", "circleci-win-ve": "bazelisk test --build_tag_filters=-ivy-only --test_tag_filters=-ivy-only,-browser:chromium-local //packages/compiler-cli/... //tools/ts-api-guardian/...", "circleci-win-ivy": "bazelisk test --config=ivy --build_tag_filters=-no-ivy-aot,-fixme-ivy-aot --test_tag_filters=-no-ivy-aot,-fixme-ivy-aot,-browser:chromium-local //packages/compiler-cli/... //tools/ts-api-guardian/...", - "lint": "yarn -s tslint && yarn gulp lint", + "lint": "yarn -s tslint && yarn -s ng-dev format changed --check", "tslint": "tsc -p tools/tsconfig.json && tslint -c tslint.json \"+(packages|modules|scripts|tools)/**/*.+(js|ts)\"", "public-api:check": "node goldens/public-api/manage.js test", "public-api:update": "node goldens/public-api/manage.js accept", @@ -167,11 +167,7 @@ "firefox-profile": "1.0.3", "glob": "7.1.2", "gulp": "3.9.1", - "gulp-clang-format": "^1.0.27", "gulp-conventional-changelog": "^2.0.3", - "gulp-filter": "^5.1.0", - "gulp-git": "^2.7.0", - "gulp-tslint": "8.1.2", "husky": "^4.2.3", "inquirer": "^7.1.0", "jpm": "1.3.1", diff --git a/tools/gulp-tasks/README.md b/tools/gulp-tasks/README.md index 5f7a3660e6..7c59ac7925 100644 --- a/tools/gulp-tasks/README.md +++ b/tools/gulp-tasks/README.md @@ -15,23 +15,6 @@ module.exports = (gulp) => (done) => { }; ``` -E.g. The `format.js` file contains two tasks: - -```js -module.exports = { - // Check source code for formatting errors (clang-format) - enforce: (gulp) => () => { - ... - }, - - // Format the source code with clang-format (see .clang-format) - format: (gulp) => () => { - ... - } -}; - -``` - ## Loading Tasks The tasks are loaded in the gulp file, by requiring them. There is a helper called `loadTask(fileName, taskName)` @@ -42,15 +25,3 @@ E.g. Loading the task that will run the build, from a task file that contains on ```js gulp.task('build.sh', loadTask('build')); ``` - -E.g. Loading the task that will enforce formatting, from a task file that contains more than one task: - -```js -gulp.task('format:enforce', loadTask('format', 'enforce')); -``` - -E.g. Loading a task that has dependencies: - -```js -gulp.task('lint', ['format:enforce'], loadTask('lint')); -``` diff --git a/tools/gulp-tasks/format.js b/tools/gulp-tasks/format.js deleted file mode 100644 index a9d168f535..0000000000 --- a/tools/gulp-tasks/format.js +++ /dev/null @@ -1,162 +0,0 @@ -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -const {I18N_FOLDER, I18N_DATA_FOLDER} = require('./cldr/extract'); - -// clang-format entry points -const srcsToFmt = [ - 'dev-infra/**/*.{js,ts}', - 'packages/**/*.{js,ts}', - '!packages/zone.js', // Ignore the `zone.js/` directory itself. (The contents are still matched.) - `!${I18N_DATA_FOLDER}/**/*.{js,ts}`, - `!${I18N_FOLDER}/available_locales.ts`, - `!${I18N_FOLDER}/currencies.ts`, - `!${I18N_FOLDER}/locale_en.ts`, - 'modules/benchmarks/**/*.{js,ts}', - 'modules/e2e_util/**/*.{js,ts}', - 'modules/playground/**/*.{js,ts}', - 'tools/**/*.{js,ts}', - '!tools/gulp-tasks/cldr/extract.js', - '!tools/public_api_guard/**/*.d.ts', - '!tools/ts-api-guardian/test/fixtures/**', - './*.{js,ts}', - '!**/node_modules/**', - '!**/dist/**', - '!**/built/**', - '!shims_for_IE.js', -]; - -/** - * Gulp stream that wraps the gulp-git status, - * only returns untracked files, and converts - * the stdout into a stream of files. - */ -function gulpStatus() { - const Vinyl = require('vinyl'); - const path = require('path'); - const gulpGit = require('gulp-git'); - const through = require('through2'); - const srcStream = through.obj(); - - const opt = {cwd: process.cwd()}; - - // https://git-scm.com/docs/git-status#_short_format - const RE_STATUS = /((\s\w)|(\w+)|\?{0,2})\s([\w\+\-\/\\\.]+)(\s->\s)?([\w\+\-\/\\\.]+)*\n{0,1}/gm; - - gulpGit.status({args: '--porcelain', quiet: true}, function(err, stdout) { - if (err) return srcStream.emit('error', err); - - const data = stdout.toString(); - let currentMatch; - - while ((currentMatch = RE_STATUS.exec(data)) !== null) { - // status - const status = currentMatch[1].trim().toLowerCase(); - - // We only care about untracked files and renamed files - if (!new RegExp(/r|\?/i).test(status)) { - continue; - } - - // file path - const currentFilePath = currentMatch[4]; - - // new file path in case its been moved - const newFilePath = currentMatch[6]; - const filePath = newFilePath || currentFilePath; - - srcStream.write(new Vinyl({ - path: path.resolve(opt.cwd, filePath), - cwd: opt.cwd, - })); - - RE_STATUS.lastIndex++; - } - - srcStream.end(); - }); - - return srcStream; -} - -module.exports = { - // Check source code for formatting errors with clang-format - enforce: (gulp) => () => { - const format = require('gulp-clang-format'); - const clangFormat = require('clang-format'); - return gulp.src(srcsToFmt).pipe( - format.checkFormat('file', clangFormat, {verbose: true, fail: true})); - }, - - // Check only the untracked source code files for formatting errors with .clang-format - 'enforce-untracked': (gulp) => () => { - const format = require('gulp-clang-format'); - const clangFormat = require('clang-format'); - const gulpFilter = require('gulp-filter'); - - return gulpStatus() - .pipe(gulpFilter(srcsToFmt)) - .pipe(format.checkFormat('file', clangFormat, {verbose: true, fail: true})); - }, - - // Check only the changed source code files diffed from the provided branch for formatting - // errors with clang-format - 'enforce-diff': (gulp) => () => { - const format = require('gulp-clang-format'); - const clangFormat = require('clang-format'); - const gulpFilter = require('gulp-filter'); - const minimist = require('minimist'); - const gulpGit = require('gulp-git'); - - const args = minimist(process.argv.slice(2)); - const branch = args.branch || 'master'; - - return gulpGit.diff(branch, {log: false}) - .pipe(gulpFilter(srcsToFmt)) - .pipe(format.checkFormat('file', clangFormat, {verbose: true, fail: true})); - }, - - // Format the source code with clang-format (see .clang-format) - format: (gulp) => () => { - const format = require('gulp-clang-format'); - const clangFormat = require('clang-format'); - return gulp.src(srcsToFmt, {base: '.'}) - .pipe(format.format('file', clangFormat)) - .pipe(gulp.dest('.')); - }, - - // Format only the untracked source code files with clang-format (see .clang-format) - 'format-untracked': (gulp) => () => { - const format = require('gulp-clang-format'); - const clangFormat = require('clang-format'); - const gulpFilter = require('gulp-filter'); - - return gulpStatus() - .pipe(gulpFilter(srcsToFmt)) - .pipe(format.format('file', clangFormat)) - .pipe(gulp.dest('.')); - }, - - // Format only the changed source code files diffed from the provided branch with clang-format - // (see .clang-format) - 'format-diff': (gulp) => () => { - const format = require('gulp-clang-format'); - const clangFormat = require('clang-format'); - const gulpFilter = require('gulp-filter'); - const minimist = require('minimist'); - const gulpGit = require('gulp-git'); - - const args = minimist(process.argv.slice(2)); - const branch = args.branch || 'master'; - - return gulpGit.diff(branch, {log: false}) - .pipe(gulpFilter(srcsToFmt)) - .pipe(format.format('file', clangFormat)) - .pipe(gulp.dest('.')); - } -}; diff --git a/yarn.lock b/yarn.lock index 5f0489de2b..ac611646b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1835,13 +1835,6 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -1866,13 +1859,6 @@ ansi-html@0.0.7: resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1933,11 +1919,6 @@ any-promise@~0.1.0: resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27" integrity sha1-gwtoCqflbzNFHUsEnzvYBESY7ic= -any-shell-escape@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/any-shell-escape/-/any-shell-escape-0.1.1.tgz#d55ab972244c71a9a5e1ab0879f30bf110806959" - integrity sha1-1Vq5ciRMcaml4asIefML8RCAaVk= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -2051,29 +2032,16 @@ argparse@^1.0.7, argparse@~1.0.9: dependencies: sprintf-js "~1.0.2" -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" @@ -2134,11 +2102,6 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - array-slice@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" @@ -3172,7 +3135,7 @@ cjson@^0.3.1: dependencies: json-parse-helpfulerror "^1.0.3" -clang-format@^1.0.32, clang-format@^1.4.0: +clang-format@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/clang-format/-/clang-format-1.4.0.tgz#1ee2f10637eb5bb0bd7d0b82c949af68e848367e" integrity sha512-NrdyUnHJOGvMa60vbWk7GJTvOdhibj3uK5C0FlwdNG4301OUvqEJTFce9I9x8qw2odBbIVrJ+9xbsFS3a4FbDA== @@ -3242,7 +3205,7 @@ cli-boxes@^1.0.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= -cli-color@^1.0.0, cli-color@^1.2.0: +cli-color@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w== @@ -3320,11 +3283,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -3339,11 +3297,6 @@ clone-stats@^0.0.1: resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - clone@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" @@ -3359,15 +3312,6 @@ clone@^2.1.1, clone@^2.1.2: resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -4661,11 +4605,6 @@ didyoumean@^1.2.1: resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= -diff@^2.0.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" - integrity sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k= - diff@^3.2.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -4799,7 +4738,7 @@ duplexer2@0.0.2: dependencies: readable-stream "~1.1.9" -duplexer2@~0.1.0, duplexer2@~0.1.4: +duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= @@ -4811,7 +4750,7 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexer@^0.1.1, duplexer@~0.1.1: +duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= @@ -5189,19 +5128,6 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -event-stream@^3.1.5: - version "3.3.5" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.5.tgz#e5dd8989543630d94c6cf4d657120341fa31636b" - integrity sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g== - dependencies: - duplexer "^0.1.1" - from "^0.1.7" - map-stream "0.0.7" - pause-stream "^0.0.11" - split "^1.0.1" - stream-combiner "^0.2.2" - through "^2.3.8" - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -5331,13 +5257,6 @@ ext@^1.1.2: dependencies: type "^2.0.0" -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -5766,13 +5685,6 @@ first-chunk-stream@^1.0.0: resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= -first-chunk-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" - integrity sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA= - dependencies: - readable-stream "^2.0.2" - flagged-respawn@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" @@ -5888,7 +5800,7 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -from@^0.1.7, from@~0: +from@~0: version "0.1.7" resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= @@ -6579,18 +6491,6 @@ gtoken@^4.1.0: jws "^4.0.0" mime "^2.2.0" -gulp-clang-format@^1.0.27: - version "1.0.27" - resolved "https://registry.yarnpkg.com/gulp-clang-format/-/gulp-clang-format-1.0.27.tgz#c89716c26745703356c4ff3f2b0964393c73969e" - integrity sha512-Jj4PGuNXKdqVCh9fijvL7wdzma5TQRJz1vv8FjOjnSkfq3s/mvbdE/jq+5HG1c/q+jcYkXTEGkYT3CrdnJOLaQ== - dependencies: - clang-format "^1.0.32" - fancy-log "^1.3.2" - gulp-diff "^1.0.0" - plugin-error "^1.0.1" - stream-combiner2 "^1.1.1" - through2 "^2.0.3" - gulp-conventional-changelog@^2.0.3: version "2.0.29" resolved "https://registry.yarnpkg.com/gulp-conventional-changelog/-/gulp-conventional-changelog-2.0.29.tgz#5068ed24a0baa8ae365420707521903690d41108" @@ -6604,50 +6504,7 @@ gulp-conventional-changelog@^2.0.3: plugin-error "^1.0.1" through2 "^3.0.0" -gulp-diff@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulp-diff/-/gulp-diff-1.0.0.tgz#101b23712dd6b107bd07d05ab88ea3ac485fed77" - integrity sha1-EBsjcS3WsQe9B9BauI6jrEhf7Xc= - dependencies: - cli-color "^1.0.0" - diff "^2.0.2" - event-stream "^3.1.5" - gulp-util "^3.0.6" - through2 "^2.0.0" - -gulp-filter@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" - integrity sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM= - dependencies: - multimatch "^2.0.0" - plugin-error "^0.1.2" - streamfilter "^1.0.5" - -gulp-git@^2.7.0: - version "2.10.1" - resolved "https://registry.yarnpkg.com/gulp-git/-/gulp-git-2.10.1.tgz#218615c94bbf90660c1cb07a37054041d5e4f2eb" - integrity sha512-qiXYYDXchMZU/AWAgtphi4zbJb/0gXgfPw7TlZwu/7qPS3Bdcc3zbVe1B0xY9S8on6RQTmWoi+KaTGACIXQeNg== - dependencies: - any-shell-escape "^0.1.1" - fancy-log "^1.3.2" - lodash.template "^4.4.0" - plugin-error "^1.0.1" - require-dir "^1.0.0" - strip-bom-stream "^3.0.0" - through2 "^2.0.3" - vinyl "^2.0.1" - -gulp-tslint@8.1.2: - version "8.1.2" - resolved "https://registry.yarnpkg.com/gulp-tslint/-/gulp-tslint-8.1.2.tgz#e0f43194b473d7e76bb45a58fe8c60e7dfe3beb2" - integrity sha512-0RNGqbp2TKPdbG+sWU3mNMXEMuF/noY1KS4+jd5lOStkvuFINkFL29dHX3IT1u+vVFD4Glwf+lkcdR2QMVNMzA== - dependencies: - gulp-util "~3.0.8" - map-stream "~0.0.7" - through "~2.3.8" - -gulp-util@^3.0.0, gulp-util@^3.0.6, gulp-util@~3.0.8: +gulp-util@^3.0.0: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= @@ -7812,7 +7669,7 @@ is-url@^1.2.2, is-url@^1.2.4: resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== -is-utf8@^0.2.0, is-utf8@^0.2.1: +is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= @@ -8408,11 +8265,6 @@ killable@^1.0.1: resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -8833,7 +8685,7 @@ lodash.template@^3.0.0: lodash.restparam "^3.0.0" lodash.templatesettings "^3.0.0" -lodash.template@^4.0.2, lodash.template@^4.4.0: +lodash.template@^4.0.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== @@ -9114,11 +8966,6 @@ map-obj@^2.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= -map-stream@0.0.7, map-stream@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" - integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= - map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" @@ -9379,7 +9226,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -9618,16 +9465,6 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - multimatch@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" @@ -10644,7 +10481,7 @@ pathval@^1.1.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -pause-stream@0.0.11, pause-stream@^0.0.11: +pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= @@ -10751,17 +10588,6 @@ plist@^3.0.1: xmlbuilder "^9.0.7" xmldom "0.1.x" -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" @@ -11167,16 +10993,16 @@ private@^0.1.8: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -11833,11 +11659,6 @@ replace-ext@0.0.1: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - request-progress@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-0.3.1.tgz#0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a" @@ -11924,11 +11745,6 @@ request@~2.87.0: tunnel-agent "^0.6.0" uuid "^3.1.0" -require-dir@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-1.2.0.tgz#0d443b75e96012d3ca749cf19f529a789ae74817" - integrity sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -12952,7 +12768,7 @@ split@0.3: dependencies: through "2" -split@^1.0.0, split@^1.0.1: +split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -13025,22 +12841,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-combiner@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" - integrity sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg= - dependencies: - duplexer "~0.1.1" - through "~2.3.4" - stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" @@ -13093,13 +12893,6 @@ stream-to-promise@2.2.0: end-of-stream "~1.1.0" stream-to-array "~2.3.0" -streamfilter@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" - integrity sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ== - dependencies: - readable-stream "^2.0.2" - streamroller@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" @@ -13253,21 +13046,6 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-bom-buf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" - integrity sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI= - dependencies: - is-utf8 "^0.2.1" - -strip-bom-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-3.0.0.tgz#956bcc5d84430f69256a90ed823765cd858e159c" - integrity sha1-lWvMXYRDD2klapDtgjdlzYWOFZw= - dependencies: - first-chunk-stream "^2.0.0" - strip-bom-buf "^1.0.0" - strip-bom@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" @@ -13643,7 +13421,7 @@ through2@^0.6.1: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@^2.0.0, through2@^2.0.2, through2@^2.0.3: +through2@^2.0.0, through2@^2.0.2: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -13658,7 +13436,7 @@ through2@^3.0.0, through2@^3.0.1: dependencies: readable-stream "2 || 3" -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1, through@~2.3.4, through@~2.3.8: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -14506,18 +14284,6 @@ vinyl@^0.5.0: clone-stats "^0.0.1" replace-ext "0.0.1" -vinyl@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - vlq@0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1"