From 563ab8389523643f823a651917ff963a9f610ed3 Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 12 Jul 2019 08:55:04 -0700 Subject: [PATCH] Simpler gulp4 port --- gulpfile.js | 37 +- package-lock.json | 729 +++++++++++++++------------- package.json | 7 +- tasks/admin/components/create.js | 5 +- tasks/admin/distributions/create.js | 5 +- tasks/admin/publish.js | 7 +- tasks/admin/release.js | 8 +- tasks/build.js | 35 +- tasks/build/assets.js | 13 +- tasks/build/css.js | 18 +- tasks/build/javascript.js | 13 +- tasks/check-install.js | 13 +- tasks/clean.js | 12 +- tasks/collections/admin.js | 20 +- tasks/collections/build.js | 6 +- tasks/collections/rtl.js | 4 +- tasks/config/defaults.js | 1 + tasks/config/npm/gulpfile.js | 2 +- tasks/docs/build.js | 11 +- tasks/docs/serve.js | 11 +- tasks/install.js | 18 +- tasks/rtl/build.js | 11 +- tasks/rtl/watch.js | 12 +- tasks/version.js | 12 +- tasks/watch.js | 15 +- 25 files changed, 580 insertions(+), 445 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 7b9c5894d..e5a47f9ac 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,7 +3,7 @@ *******************************/ var - gulp = require('gulp-help')(require('gulp')), + gulp = require('gulp'), // read user config to know what task to load config = require('./tasks/config/user'), @@ -34,27 +34,30 @@ var watchRTL = require('./tasks/rtl/watch') ; +/* Simple Compatibility with Gulp 3 */ +gulp.start = function(name) { + gulp.task(name)(); +} /******************************* Tasks *******************************/ -gulp.task('default', false, [ - 'check-install' -]); +gulp.task('watch', watch); + +gulp.task('build', build); +gulp.task('build-javascript', buildJS); +gulp.task('build-css', buildCSS); +gulp.task('build-assets',buildAssets); -gulp.task('watch', 'Watch for site/theme changes', watch); +gulp.task('clean', clean); +gulp.task('version', version); -gulp.task('build', 'Builds all files from source', build); -gulp.task('build-javascript', 'Builds all javascript from source', buildJS); -gulp.task('build-css', 'Builds all css from source', buildCSS); -gulp.task('build-assets', 'Copies all assets from source', buildAssets); +gulp.task('install', install); +gulp.task('check-install', checkInstall); -gulp.task('clean', 'Clean dist folder', clean); -gulp.task('version', 'Displays current version of Semantic', version); -gulp.task('install', 'Runs set-up', install); -gulp.task('check-install', 'Displays current version of Semantic', checkInstall); +//gulp.task('default', ['check-install']); /*-------------- Docs @@ -65,8 +68,8 @@ gulp.task('check-install', 'Displays current version of Semantic', checkInstall) https://github.com/Semantic-Org/Semantic-UI-Docs/ */ -gulp.task('serve-docs', 'Serve file changes to SUI Docs', serveDocs); -gulp.task('build-docs', 'Build all files and add to SUI Docs', buildDocs); +gulp.task('serve-docs', serveDocs); +gulp.task('build-docs', buildDocs); /*-------------- @@ -74,8 +77,8 @@ gulp.task('build-docs', 'Build all files and add to SUI Docs', buildDocs); ---------------*/ if(config.rtl) { - gulp.task('watch-rtl', 'Watch files as RTL', watchRTL); - gulp.task('build-rtl', 'Build all files as RTL', buildRTL); + gulp.task('watch-rtl', watchRTL); + gulp.task('build-rtl', buildRTL); } /* Admin Tasks */ diff --git a/package-lock.json b/package-lock.json index 665959cd4..558bf9e50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,9 @@ { "name": "semantic-ui", - "version": "2.4.0", + "version": "2.4.2", "lockfileVersion": 1, "requires": true, "dependencies": { - "@types/node": { - "version": "10.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.7.tgz", - "integrity": "sha512-yOxFfkN9xUFLyvWaeYj90mlqTJ41CsQzWKS3gXdOMOyPVacUsymejKxJ4/pMW7exouubuEeZLJawGgcNGYlTeg==" - }, - "@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -319,7 +309,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true }, "assign-symbols": { "version": "1.0.0", @@ -842,9 +833,9 @@ } }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" }, "component-emitter": { "version": "1.2.1", @@ -1033,9 +1024,9 @@ } }, "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" }, "default-compare": { "version": "1.0.0", @@ -1057,14 +1048,6 @@ "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1097,12 +1080,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "optional": true }, "detect-file": { "version": "1.0.0", @@ -1110,9 +1089,9 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" }, "diff": { "version": "1.0.8", @@ -1211,31 +1190,20 @@ "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==" }, "editorconfig": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.1.tgz", - "integrity": "sha512-3fGD2GMwmR+QSCyc/sUp9wc7yZFrYODLBN9zQMzuSm21/AO13Vf42CaCOwNkZ8oYM+hixAttt43xhaP6bjh5YQ==", + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", "requires": { - "@types/node": "^10.11.7", - "@types/semver": "^5.5.0", "commander": "^2.19.0", - "lru-cache": "^4.1.3", + "lru-cache": "^4.1.5", "semver": "^5.6.0", "sigmund": "^1.0.1" }, "dependencies": { - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" } } }, @@ -1244,24 +1212,6 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.79.tgz", "integrity": "sha512-LQdY3j4PxuUl6xfxiFruTSlCniTrTrzAd8/HfsLEMi0PUpaQ0Iy+Pr4N4VllDYjs0Hyu2lkTbvzqlG+PX9NsNw==" }, - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1" - } - } - } - }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -1535,7 +1485,8 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "optional": true }, "fancy-log": { "version": "1.3.2", @@ -1583,11 +1534,6 @@ "to-regex-range": "^2.1.0" } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" - }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1641,11 +1587,6 @@ "parse-filepath": "^1.0.1" } }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" - }, "flagged-respawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", @@ -1791,7 +1732,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -1809,11 +1751,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1826,15 +1770,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -1937,7 +1884,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -1947,6 +1895,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1959,17 +1908,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -1986,6 +1938,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2058,7 +2011,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2068,6 +2022,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2143,7 +2098,8 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2173,6 +2129,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2190,6 +2147,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2228,11 +2186,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.2", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -2241,14 +2201,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "requires": { - "globule": "~0.1.0" - } - }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -2370,73 +2322,67 @@ } }, "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" }, "dependencies": { - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "requires": { - "brace-expansion": "^1.0.0" - } + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "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" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "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==", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "safe-buffer": "~5.1.0" } } } }, "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "requires": { - "gaze": "^0.5.1" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", "requires": { - "find-index": "^0.1.1" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" } }, "global-modules": { @@ -2480,47 +2426,6 @@ } } }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } - } - }, "glogg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", @@ -2530,12 +2435,9 @@ } }, "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "requires": { - "natives": "^1.1.0" - } + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" }, "growly": { "version": "1.3.0", @@ -2543,23 +2445,91 @@ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + } } }, "gulp-autoprefixer": { @@ -3183,22 +3153,6 @@ } } }, - "gulp-help": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/gulp-help/-/gulp-help-1.6.1.tgz", - "integrity": "sha1-Jh2xhuGDl/7z9qLCLpwxW/qIrgw=", - "requires": { - "chalk": "^1.0.0", - "object-assign": "^3.0.0" - }, - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" - } - } - }, "gulp-if": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", @@ -3210,15 +3164,15 @@ } }, "gulp-json-editor": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/gulp-json-editor/-/gulp-json-editor-2.4.2.tgz", - "integrity": "sha512-mUPSsibfnRT04Iy9AfrvC8kfcJZJFYt5qfr6TTQHHBZ1qviz2qqfAf7DLS2Frp33ycyZJvm6n9cwNgV00A95TA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/gulp-json-editor/-/gulp-json-editor-2.5.2.tgz", + "integrity": "sha512-nG/5JyXc3Sz8v1b62bU15nJK7hIwQz1/Qmf0J1fMFWyQtLmfUXypEUynCJyahHpcuaEq6jWJ6Ym03uGNv9AQOQ==", "requires": { - "deepmerge": "^2.1.1", - "detect-indent": "^5.0.0", - "js-beautify": "^1.7.5", + "deepmerge": "^3.2.0", + "detect-indent": "^6.0.0", + "js-beautify": "^1.9.1", "plugin-error": "^1.0.1", - "through2": "^2.0.3" + "through2": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -3248,6 +3202,32 @@ "arr-union": "^3.1.0", "extend-shallow": "^3.0.2" } + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "requires": { + "readable-stream": "2 || 3" + } } } }, @@ -4272,25 +4252,42 @@ } }, "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", + "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==" }, "js-beautify": { - "version": "1.8.7", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.7.tgz", - "integrity": "sha512-yhAMCTv0L9GNg6Gql7i+g4C1z9rQhfHXy4J0TGYFoBzzHR4reWYS573gkRrPuE58dYOH451LmBeAb8L1pLEfdA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.0.tgz", + "integrity": "sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q==", "requires": { - "config-chain": "~1.1.5", - "editorconfig": "^0.15.0", - "mkdirp": "~0.5.0", + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "~0.5.1", "nopt": "~4.0.1" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + } } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true }, "json-schema": { "version": "0.2.3", @@ -4312,6 +4309,11 @@ "jsonify": "~0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -4494,11 +4496,6 @@ } } }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" - }, "lodash._baseassign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", @@ -4724,9 +4721,13 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } }, "make-error": { "version": "1.3.5", @@ -4961,12 +4962,14 @@ "mime-db": { "version": "1.36.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", + "optional": true }, "mime-types": { "version": "2.1.20", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "optional": true, "requires": { "mime-db": "~1.36.0" } @@ -5052,11 +5055,6 @@ "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", "optional": true }, - "natives": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", - "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==" - }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", @@ -5322,21 +5320,48 @@ "mimic-fn": "^1.0.0" } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "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==", + "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" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" - }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -6422,7 +6447,8 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "optional": true }, "semver": { "version": "4.3.6", @@ -6437,11 +6463,6 @@ "sver-compat": "^1.5.0" } }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -6782,11 +6803,6 @@ "duplexer": "~0.1.1" } }, - "stream-consume": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=" - }, "stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", @@ -6845,15 +6861,6 @@ "ansi-regex": "^2.0.0" } }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } - }, "strip-bom-buf": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", @@ -7013,6 +7020,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, "requires": { "os-homedir": "^1.0.0" } @@ -7167,7 +7175,8 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true }, "typedarray": { "version": "0.0.6", @@ -7269,9 +7278,24 @@ } }, "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + }, + "dependencies": { + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + } + } }, "unset-value": { "version": "1.0.0", @@ -7343,11 +7367,6 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -7360,11 +7379,11 @@ "optional": true }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", + "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", "requires": { - "user-home": "^1.1.1" + "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { @@ -7460,52 +7479,82 @@ } }, "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" }, "dependencies": { "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "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" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "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==", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "safe-buffer": "~5.1.0" } }, "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" + "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" } } } diff --git a/package.json b/package.json index 6deb41c04..75dfb0fd5 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "better-console": "*", "del": "^3.0.0", "extend": "^3.0.2", - "gulp": "^3.9.1", + "gulp": "^4.0.2", "gulp-autoprefixer": "^6.0.0", "gulp-chmod": "^2.0.0", "gulp-clone": "^2.0.1", @@ -62,9 +62,8 @@ "gulp-dedupe": "0.0.2", "gulp-flatten": "^0.4.0", "gulp-header": "^2.0.5", - "gulp-help": "^1.6.1", "gulp-if": "^2.0.2", - "gulp-json-editor": "^2.4.2", + "gulp-json-editor": "^2.5.2", "gulp-less": "^4.0.1", "gulp-clean-css": "^3.10.0", "gulp-notify": "^3.2.0", @@ -76,7 +75,7 @@ "gulp-rtlcss": "^1.3.0", "gulp-uglify": "^3.0.1", "gulp-watch": "^5.0.1", - "jquery": "^3.3.1", + "jquery": "^3.4.1", "map-stream": "^0.1.0", "merge-stream": "^1.0.0", "mkdirp": "^0.5.1", diff --git a/tasks/admin/components/create.js b/tasks/admin/components/create.js index 311b17955..71bde60e0 100644 --- a/tasks/admin/components/create.js +++ b/tasks/admin/components/create.js @@ -22,7 +22,6 @@ var del = require('del'), fs = require('fs'), path = require('path'), - runSequence = require('run-sequence'), // admin dependencies concatFileNames = require('gulp-concat-filenames'), @@ -310,7 +309,7 @@ module.exports = function(callback) { // synchronous tasks in orchestrator? I think not gulp.task(task.all, false, function(callback) { - runSequence([ + gulp.series([ task.repo, task.npm, task.bower, @@ -327,5 +326,5 @@ module.exports = function(callback) { })(component); } - runSequence(tasks, callback); + gulp.series(tasks, callback); }; diff --git a/tasks/admin/distributions/create.js b/tasks/admin/distributions/create.js index 732707f85..283bca3e5 100644 --- a/tasks/admin/distributions/create.js +++ b/tasks/admin/distributions/create.js @@ -17,7 +17,6 @@ var del = require('del'), fs = require('fs'), path = require('path'), - runSequence = require('run-sequence'), mergeStream = require('merge-stream'), // admin dependencies @@ -215,5 +214,5 @@ module.exports = function(callback) { })(distribution); } - runSequence(tasks, callback); -}; \ No newline at end of file + gulp.series(tasks, callback); +}; diff --git a/tasks/admin/publish.js b/tasks/admin/publish.js index e80c86a50..9272076e9 100644 --- a/tasks/admin/publish.js +++ b/tasks/admin/publish.js @@ -9,17 +9,14 @@ */ -var - runSequence = require('run-sequence') -; /* Release All */ module.exports = function(callback) { - runSequence( + gulp.series( 'update distributions', // commit less/css versions to github 'update components', // commit components to github callback ); -}; \ No newline at end of file +}; diff --git a/tasks/admin/release.js b/tasks/admin/release.js index a247e8bfa..dc047d1a8 100644 --- a/tasks/admin/release.js +++ b/tasks/admin/release.js @@ -10,14 +10,10 @@ */ -var - runSequence = require('run-sequence') -; - /* Release All */ module.exports = function(callback) { - runSequence( + gulp.series( //'build', // build Semantic 'init distributions', // sync with current github version 'create distributions', // update each repo with changes from master repo @@ -26,4 +22,4 @@ module.exports = function(callback) { callback ); -}; \ No newline at end of file +}; diff --git a/tasks/build.js b/tasks/build.js index 56ea87924..821343389 100644 --- a/tasks/build.js +++ b/tasks/build.js @@ -4,26 +4,22 @@ var // dependencies - gulp = require('gulp-help')(require('gulp')), - runSequence = require('run-sequence'), + gulp = require('gulp'), // config - config = require('./config/user'), - install = require('./config/project/install'), + config = require('./config/user'), + install = require('./config/project/install'), // task sequence - tasks = [] -; + tasks = [], + {series, parallel} = gulp, -// sub-tasks -if(config.rtl) { - require('./collections/rtl')(gulp); -} -require('./collections/build')(gulp); + build +; -module.exports = function(callback) { +build = function(callback) { console.info('Building Semantic'); @@ -46,5 +42,18 @@ module.exports = function(callback) { tasks.push('build-css'); tasks.push('build-assets'); - runSequence(tasks, callback); + tasks = tasks.map(task => { + gulp.task(task)(callback); + return (taskDone) => { + taskDone(); + }; + }); + + series(parallel(tasks), callback); }; + + +/* Export with Metadata */ +build.displayName = 'build'; +build.description = 'Build SUI from source'; +module.exports = build; diff --git a/tasks/build/assets.js b/tasks/build/assets.js index bc37ad993..f61bad69c 100644 --- a/tasks/build/assets.js +++ b/tasks/build/assets.js @@ -19,10 +19,12 @@ var output = config.paths.output, source = config.paths.source, - log = tasks.log + log = tasks.log, + + buildAssets ; -module.exports = function(callback) { +buildAssets = function(callback) { console.info('Building assets'); @@ -32,4 +34,9 @@ module.exports = function(callback) { .pipe(gulp.dest(output.themes)) ; -}; \ No newline at end of file +}; + +/* Export with Metadata */ +buildAssets.displayName = 'build-css'; +buildAssets.description = 'Builds all css from source'; +module.exports = buildAssets; diff --git a/tasks/build/css.js b/tasks/build/css.js index 839aea3ee..da067e48b 100644 --- a/tasks/build/css.js +++ b/tasks/build/css.js @@ -21,7 +21,6 @@ var print = require('gulp-print').default, rename = require('gulp-rename'), replace = require('gulp-replace'), - runSequence = require('run-sequence'), // config config = require('../config/user'), @@ -37,13 +36,15 @@ var banner = tasks.banner, comments = tasks.regExp.comments, log = tasks.log, - settings = tasks.settings + settings = tasks.settings, + + buildCSS ; // add internal tasks (concat release) require('../collections/internal')(gulp); -module.exports = function(callback) { +buildCSS = function(callback) { var tasksCompleted = 0, @@ -91,7 +92,8 @@ module.exports = function(callback) { .pipe(gulp.dest(output.uncompressed)) .pipe(print(log.created)) .on('end', function() { - runSequence('package uncompressed css', maybeCallback); + gulp.start('package uncompressed css'); + maybeCallback(); }) ; @@ -106,8 +108,14 @@ module.exports = function(callback) { .pipe(gulp.dest(output.compressed)) .pipe(print(log.created)) .on('end', function() { - runSequence('package compressed css', maybeCallback); + gulp.start('package compressed css'); + maybeCallback(); }) ; }; + +/* Export with Metadata */ +buildCSS.displayName = 'build-css'; +buildCSS.description = 'Builds all css from source'; +module.exports = buildCSS; diff --git a/tasks/build/javascript.js b/tasks/build/javascript.js index 6dc3951b7..12c096cb3 100644 --- a/tasks/build/javascript.js +++ b/tasks/build/javascript.js @@ -33,13 +33,15 @@ var banner = tasks.banner, comments = tasks.regExp.comments, log = tasks.log, - settings = tasks.settings + settings = tasks.settings, + + buildJavascript ; // add internal tasks (concat release) require('../collections/internal')(gulp); -module.exports = function(callback) { +buildJavascript = function(callback) { var stream, @@ -55,7 +57,7 @@ module.exports = function(callback) { } // copy source javascript - gulp.src(source.definitions + '/**/' + globs.components + '.js') + return gulp.src(source.definitions + '/**/' + globs.components + '.js') .pipe(plumber()) .pipe(flatten()) .pipe(replace(comments.license.in, comments.license.out)) @@ -75,3 +77,8 @@ module.exports = function(callback) { ; }; + +/* Export with Metadata */ +buildJavascript.displayName = 'build-javascript'; +buildJavascript.description = 'Builds all javascript from source'; +module.exports = buildJavascript; diff --git a/tasks/check-install.js b/tasks/check-install.js index 9bab87e87..7200e75bf 100644 --- a/tasks/check-install.js +++ b/tasks/check-install.js @@ -7,11 +7,13 @@ var gulp = require('gulp'), fs = require('fs'), console = require('better-console'), - install = require('./config/project/install') + install = require('./config/project/install'), + + checkInstall ; // export task -module.exports = function() { +checkInstall = function() { setTimeout(function() { if( !install.isSetup() ) { @@ -25,4 +27,9 @@ module.exports = function() { }, 50); // Delay to allow console.clear to remove messages from check event -}; \ No newline at end of file +}; + +/* Export with Metadata */ +checkInstall.displayName = 'check-install'; +checkInstall.description = 'Checks if SUI needs to install before build/watch'; +module.exports = checkInstall; diff --git a/tasks/clean.js b/tasks/clean.js index f435b4e24..b6ae511f9 100644 --- a/tasks/clean.js +++ b/tasks/clean.js @@ -5,10 +5,16 @@ var del = require('del'), config = require('./config/user'), - tasks = require('./config/tasks') + tasks = require('./config/tasks'), + + clean ; // cleans distribution files -module.exports = function(callback) { +clean = function(callback) { return del([config.paths.clean], tasks.settings.del, callback); -}; \ No newline at end of file +}; + +clean.displayName = 'clean'; +clean.description = 'Cleans dist folder'; +module.exports = clean; diff --git a/tasks/collections/admin.js b/tasks/collections/admin.js index a384d1fab..efd4df748 100644 --- a/tasks/collections/admin.js +++ b/tasks/collections/admin.js @@ -32,18 +32,18 @@ module.exports = function(gulp) { ; /* Release */ - gulp.task('init distributions', 'Grabs each component from GitHub', initDistributions); - gulp.task('create distributions', 'Updates files in each repo', createDistributions); - gulp.task('init components', 'Grabs each component from GitHub', initComponents); - gulp.task('create components', 'Updates files in each repo', createComponents); + gulp.task('init distributions', initDistributions); + gulp.task('create distributions', createDistributions); + gulp.task('init components', initComponents); + gulp.task('create components', createComponents); /* Publish */ - gulp.task('update distributions', 'Commits component updates from create to GitHub', updateDistributions); - gulp.task('update components', 'Commits component updates from create to GitHub', updateComponents); + gulp.task('update distributions', updateDistributions); + gulp.task('update components', updateComponents); /* Tasks */ - gulp.task('release', 'Stages changes in GitHub repos for all distributions', release); - gulp.task('publish', 'Publishes all releases (components, package)', publish); - gulp.task('register', 'Registers all packages with NPM', register); + gulp.task('release', release); + gulp.task('publish', publish); + gulp.task('register', register); -}; \ No newline at end of file +}; diff --git a/tasks/collections/build.js b/tasks/collections/build.js index f7ea28767..ce79b06a1 100644 --- a/tasks/collections/build.js +++ b/tasks/collections/build.js @@ -12,8 +12,8 @@ module.exports = function(gulp) { ; // in case these tasks are undefined during import, less make sure these are available in scope - gulp.task('build-javascript', 'Builds all javascript from source', buildJS); - gulp.task('build-css', 'Builds all css from source', buildCSS); - gulp.task('build-assets', 'Copies all assets from source', buildAssets); + gulp.task('build-javascript', buildJS); + gulp.task('build-css', buildCSS); + gulp.task('build-assets', buildAssets); }; diff --git a/tasks/collections/rtl.js b/tasks/collections/rtl.js index 4c8e70a42..6ba635dd9 100644 --- a/tasks/collections/rtl.js +++ b/tasks/collections/rtl.js @@ -10,7 +10,7 @@ module.exports = function(gulp) { watchRTL = require('./../rtl/watch') ; - gulp.task('watch-rtl', 'Build all files as RTL', watchRTL); - gulp.task('build-rtl', 'Watch files as RTL ', buildRTL); + gulp.task('watch-rtl', watchRTL); + gulp.task('build-rtl', buildRTL); }; diff --git a/tasks/config/defaults.js b/tasks/config/defaults.js index 0f3e228f3..1ad99bd00 100644 --- a/tasks/config/defaults.js +++ b/tasks/config/defaults.js @@ -98,6 +98,7 @@ module.exports = { 'sticky', 'tab', 'transition', + 'video', // behaviors 'api', diff --git a/tasks/config/npm/gulpfile.js b/tasks/config/npm/gulpfile.js index bde19605e..33d6b8985 100644 --- a/tasks/config/npm/gulpfile.js +++ b/tasks/config/npm/gulpfile.js @@ -3,7 +3,7 @@ *******************************/ var - gulp = require('gulp-help')(require('gulp')), + gulp = require('gulp'), // read user config to know what task to load config = require('./tasks/config/user'), diff --git a/tasks/docs/build.js b/tasks/docs/build.js index 8d401b5ed..0a1fc222d 100644 --- a/tasks/docs/build.js +++ b/tasks/docs/build.js @@ -45,13 +45,15 @@ var banner = tasks.banner, comments = tasks.regExp.comments, log = tasks.log, - settings = tasks.settings + settings = tasks.settings, + + buildDocs ; // add internal tasks (concat release) require('../collections/internal')(gulp); -module.exports = function(callback) { +buildDocs = function(callback) { var stream, @@ -187,3 +189,8 @@ module.exports = function(callback) { ; }; + +/* Export with Metadata */ +buildDocs.displayName = 'build-docs'; +buildDocs.description = 'Build all files and add to SUI Docs'; +module.exports = buildDocs; diff --git a/tasks/docs/serve.js b/tasks/docs/serve.js index 6cfd3d7a7..52a354fc7 100644 --- a/tasks/docs/serve.js +++ b/tasks/docs/serve.js @@ -41,12 +41,14 @@ var globs, assets, output, - source + source, + + serveDocs ; require('../collections/internal')(gulp); -module.exports = function () { +serveDocs = function () { // use a different config config = configSetup.addDerivedValues(config); @@ -253,3 +255,8 @@ module.exports = function () { }; + +/* Export with Metadata */ +serveDocs.displayName = 'serve-docs'; +serveDocs.description = 'Serve file changes to SUI Docs'; +module.exports = serveDocs; diff --git a/tasks/install.js b/tasks/install.js index ca05625f4..29e79d813 100644 --- a/tasks/install.js +++ b/tasks/install.js @@ -23,7 +23,6 @@ var fs = require('fs'), mkdirp = require('mkdirp'), path = require('path'), - runSequence = require('run-sequence'), // gulp dependencies chmod = require('gulp-chmod'), @@ -51,11 +50,12 @@ var folders = install.folders, regExp = install.regExp, settings = install.settings, - source = install.source + source = install.source, + + install ; -// Export install task -module.exports = function (callback) { +install = function (callback) { var currentConfig = requireDotFile('semantic.json'), @@ -408,7 +408,7 @@ gulp.task('create install files', function(callback) { }); - runSequence( + gulp.parallel( 'create theme.config', 'create semantic.json', callback @@ -449,7 +449,7 @@ gulp.task('clean up install', function() { }); -runSequence( +gulp.series( 'run setup', 'create install files', 'clean up install', @@ -457,3 +457,9 @@ runSequence( ); }; + +/* Export with Metadata */ +install.displayName = 'install'; +install.description = 'Installs semantic'; +module.exports = install; + diff --git a/tasks/rtl/build.js b/tasks/rtl/build.js index aaa563bbc..8b0cd58fb 100644 --- a/tasks/rtl/build.js +++ b/tasks/rtl/build.js @@ -39,13 +39,15 @@ var banner = tasks.banner, comments = tasks.regExp.comments, log = tasks.log, - settings = tasks.settings + settings = tasks.settings, + + buildRTL ; // add internal tasks (concat release) require('../collections/internal')(gulp); -module.exports = function(callback) { +buildRTL = function(callback) { var stream, @@ -130,3 +132,8 @@ module.exports = function(callback) { ; }; + +/* Export with Metadata */ +buildRTL.displayName = 'build-rtl'; +buildRTL.description = 'Build files as RTL'; +module.exports = buildRTL; diff --git a/tasks/rtl/watch.js b/tasks/rtl/watch.js index 157ba6e5f..af1f756ac 100644 --- a/tasks/rtl/watch.js +++ b/tasks/rtl/watch.js @@ -41,14 +41,16 @@ var banner = tasks.banner, comments = tasks.regExp.comments, log = tasks.log, - settings = tasks.settings + settings = tasks.settings, + + watchRTL ; // add internal tasks (concat release) require('../collections/internal')(gulp); -module.exports = function(callback) { +watchRTL = function(callback) { if( !install.isSetup() ) { console.error('Cannot watch files. Run "gulp install" to set-up Semantic'); @@ -219,3 +221,9 @@ module.exports = function(callback) { ; }; + + +/* Export with Metadata */ +watchRTL.displayName = 'watch-rtl'; +watchRTL.description = 'Watch files as RTL'; +module.exports = watchRTL; diff --git a/tasks/version.js b/tasks/version.js index df49f5542..416d6b2d3 100644 --- a/tasks/version.js +++ b/tasks/version.js @@ -3,9 +3,15 @@ *******************************/ var - release = require('./config/project/release') + release = require('./config/project/release'), + version ; -module.exports = function(callback) { +version = function(callback) { console.log(release.title + ' ' + release.version); -}; \ No newline at end of file +}; + +/* Export with Metadata */ +version.displayName = 'version'; +version.description = 'Displays current version of Semantic'; +module.exports = version; diff --git a/tasks/watch.js b/tasks/watch.js index 168de11e2..b884107ae 100644 --- a/tasks/watch.js +++ b/tasks/watch.js @@ -3,7 +3,7 @@ *******************************/ var - gulp = require('gulp-help')(require('gulp')), + gulp = require('gulp'), // node dependencies console = require('better-console'), @@ -22,7 +22,6 @@ var replace = require('gulp-replace'), uglify = require('gulp-uglify'), replaceExt = require('replace-ext'), - watch = require('gulp-watch'), // user config config = require('./config/user'), @@ -40,7 +39,9 @@ var banner = tasks.banner, comments = tasks.regExp.comments, log = tasks.log, - settings = tasks.settings + settings = tasks.settings, + + watch ; @@ -52,7 +53,7 @@ require('./collections/internal')(gulp); // export task -module.exports = function(callback) { +watch = function(callback) { if( !install.isSetup() ) { console.error('Cannot watch files. Run "gulp install" to set-up Semantic'); @@ -229,3 +230,9 @@ module.exports = function(callback) { ; }; + + +/* Export with Metadata */ +watch.displayName = 'watch'; +watch.description = 'Watch for site/theme changes'; +module.exports = watch;