From a998d980c510d5a0f595364ba569989da6906454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matias=20Niemel=C3=A4?= Date: Tue, 15 Dec 2015 11:46:50 -0800 Subject: [PATCH 1/6] chore(build): add a validation step for angularFiles --- Gruntfile.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++- angularFiles.js | 2 +- package.json | 1 + 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 018f08b16f1c..82d5b224b8bf 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -4,7 +4,9 @@ var files = require('./angularFiles').files; var util = require('./lib/grunt/utils.js'); var versionInfo = require('./lib/versions/version-info'); var path = require('path'); +var fs = require('fs'); var e2e = require('./test/e2e/tools'); +var glob = require("glob"); module.exports = function(grunt) { //grunt plugins @@ -339,6 +341,56 @@ module.exports = function(grunt) { grunt.task.run('shell:npm-install'); } + grunt.registerTask('validate-angular-files', function() { + var combinedFiles = Object.assign({}, files.angularModules); + combinedFiles.ng = files.angularSrc; + combinedFiles.angularLoader = files.angularLoader; + + var errorsDetected = false; + var directories = []; + var detectedFiles = { + "src/ng/rootElement.js": true + }; + + for (var section in combinedFiles) { + var sectionFiles = combinedFiles[section]; + + if (section != "angularLoader") { + directories.push("src/" + section); + } + + console.log("Validating " + sectionFiles.length + " files from the \"" + section + "\" module"); + + sectionFiles.forEach(function(file) { + detectedFiles[file] = true; + + if (!fs.existsSync(file)) { + grunt.log.error(file + " does not exist in the local file structure"); + errorsDetected = true; + } + }); + } + + directories.forEach(function(directory) { + glob.sync(directory + "/**/*").forEach(function(filePath) { + if (!fs.lstatSync(filePath).isDirectory()) { + var fileName = path.basename(filePath); + var isHiddenFile = fileName[0] == "."; + if (!isHiddenFile && !detectedFiles[filePath]) { + grunt.log.error(filePath + " exists in the local file structure but isn't used by any module"); + errorsDetected = true; + } + } + }); + }); + + if (errorsDetected) { + throw new Error("Not all files were properly detected the local file structure"); + } else { + console.log("All files were detected successfully!"); + } + }); + //alias tasks grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['jshint', 'jscs', 'package','test:unit','test:promises-aplus', 'tests:docs', 'test:protractor']); grunt.registerTask('test:jqlite', 'Run the unit tests with Karma' , ['tests:jqlite']); @@ -354,7 +406,7 @@ module.exports = function(grunt) { grunt.registerTask('minify', ['bower','clean', 'build', 'minall']); grunt.registerTask('webserver', ['connect:devserver']); - grunt.registerTask('package', ['bower','clean', 'buildall', 'minall', 'collect-errors', 'docs', 'copy', 'write', 'compress']); + grunt.registerTask('package', ['bower', 'validate-angular-files','clean', 'buildall', 'minall', 'collect-errors', 'docs', 'copy', 'write', 'compress']); grunt.registerTask('ci-checks', ['ddescribe-iit', 'merge-conflict', 'jshint', 'jscs']); grunt.registerTask('default', ['package']); }; diff --git a/angularFiles.js b/angularFiles.js index 77d1a762cb4f..5ed579e0b7b8 100755 --- a/angularFiles.js +++ b/angularFiles.js @@ -85,7 +85,7 @@ var angularFiles = { ], 'angularLoader': [ - 'stringify.js', + 'src/stringify.js', 'src/minErr.js', 'src/loader.js' ], diff --git a/package.json b/package.json index f3dbf0a08238..9db78ae98768 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "dgeni": "^0.4.0", "dgeni-packages": "^0.11.0", "event-stream": "~3.1.0", + "glob": "^6.0.1", "grunt": "~0.4.2", "grunt-bump": "~0.0.13", "grunt-contrib-clean": "~0.6.0", From 08ff720fa865bd011d9f2fe8399159f0e61940e8 Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Thu, 17 Dec 2015 14:29:33 +0000 Subject: [PATCH 2/6] chore(npm-shrinkwrap): install glob package --- npm-shrinkwrap.clean.json | 73 ++++++---- npm-shrinkwrap.json | 299 ++++++++++++++++++++------------------ 2 files changed, 202 insertions(+), 170 deletions(-) diff --git a/npm-shrinkwrap.clean.json b/npm-shrinkwrap.clean.json index 27776bd491ba..bd1e3f9f260f 100644 --- a/npm-shrinkwrap.clean.json +++ b/npm-shrinkwrap.clean.json @@ -5865,6 +5865,49 @@ } } }, + "glob": { + "version": "6.0.1", + "dependencies": { + "inflight": { + "version": "1.0.4", + "dependencies": { + "wrappy": { + "version": "1.0.1" + } + } + }, + "inherits": { + "version": "2.0.1" + }, + "minimatch": { + "version": "3.0.0", + "dependencies": { + "brace-expansion": { + "version": "1.1.2", + "dependencies": { + "balanced-match": { + "version": "0.3.0" + }, + "concat-map": { + "version": "0.0.1" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "dependencies": { + "wrappy": { + "version": "1.0.1" + } + } + }, + "path-is-absolute": { + "version": "1.0.0" + } + } + }, "grunt": { "version": "0.4.5", "dependencies": { @@ -9219,14 +9262,6 @@ }, "async-each": { "version": "0.1.6" - }, - "fsevents": { - "version": "0.3.5", - "dependencies": { - "nan": { - "version": "1.5.3" - } - } } } }, @@ -10394,28 +10429,6 @@ }, "ultron": { "version": "1.0.1" - }, - "bufferutil": { - "version": "1.1.0", - "dependencies": { - "bindings": { - "version": "1.2.1" - }, - "nan": { - "version": "1.8.4" - } - } - }, - "utf-8-validate": { - "version": "1.1.0", - "dependencies": { - "bindings": { - "version": "1.2.1" - }, - "nan": { - "version": "1.8.4" - } - } } } }, diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index f924f678e969..1a036d8ae0e0 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -8479,22 +8479,22 @@ }, "dgeni-packages": { "version": "0.11.0", - "from": "dgeni-packages@0.11.0", + "from": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.11.0.tgz", "resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.11.0.tgz", "dependencies": { "catharsis": { "version": "0.8.7", - "from": "catharsis@>=0.8.1 <0.9.0", + "from": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.7.tgz", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.7.tgz", "dependencies": { "underscore-contrib": { "version": "0.3.0", - "from": "underscore-contrib@>=0.3.0 <0.4.0", + "from": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", "dependencies": { "underscore": { "version": "1.6.0", - "from": "underscore@1.6.0", + "from": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" } } @@ -8503,141 +8503,141 @@ }, "change-case": { "version": "2.3.0", - "from": "change-case@>=2.1.0 <3.0.0", + "from": "https://registry.npmjs.org/change-case/-/change-case-2.3.0.tgz", "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.0.tgz", "dependencies": { "camel-case": { "version": "1.2.0", - "from": "camel-case@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.0.tgz", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.0.tgz" }, "constant-case": { "version": "1.1.1", - "from": "constant-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.1.tgz" }, "dot-case": { "version": "1.1.1", - "from": "dot-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.1.tgz" }, "is-lower-case": { "version": "1.1.1", - "from": "is-lower-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.1.tgz" }, "is-upper-case": { "version": "1.1.1", - "from": "is-upper-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.1.tgz" }, "lower-case": { "version": "1.1.2", - "from": "lower-case@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.2.tgz", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.2.tgz" }, "lower-case-first": { "version": "1.0.0", - "from": "lower-case-first@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.0.tgz", "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.0.tgz" }, "param-case": { "version": "1.1.1", - "from": "param-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/param-case/-/param-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.1.tgz" }, "pascal-case": { "version": "1.1.1", - "from": "pascal-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.1.tgz" }, "path-case": { "version": "1.1.1", - "from": "path-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/path-case/-/path-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.1.tgz" }, "sentence-case": { "version": "1.1.2", - "from": "sentence-case@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.2.tgz", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.2.tgz" }, "snake-case": { "version": "1.1.1", - "from": "snake-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.1.tgz" }, "swap-case": { "version": "1.1.1", - "from": "swap-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.1.tgz" }, "title-case": { "version": "1.1.1", - "from": "title-case@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/title-case/-/title-case-1.1.1.tgz", "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.1.tgz" }, "upper-case": { "version": "1.1.2", - "from": "upper-case@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.2.tgz", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.2.tgz" }, "upper-case-first": { "version": "1.1.1", - "from": "upper-case-first@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.1.tgz" } } }, "espree": { "version": "2.2.5", - "from": "espree@>=2.2.3 <3.0.0", + "from": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz" }, "estraverse": { "version": "4.1.1", - "from": "estraverse@>=4.1.0 <5.0.0", + "from": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" }, "glob": { "version": "3.2.11", - "from": "glob@>=3.2.8 <3.3.0", + "from": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "htmlparser2": { "version": "3.8.3", - "from": "htmlparser2@>=3.7.3 <4.0.0", + "from": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", "dependencies": { "domhandler": { "version": "2.3.0", - "from": "domhandler@>=2.3.0 <2.4.0", + "from": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" }, "domutils": { "version": "1.5.1", - "from": "domutils@>=1.5.0 <1.6.0", + "from": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "dependencies": { "dom-serializer": { "version": "0.1.0", - "from": "dom-serializer@>=0.0.0 <1.0.0", + "from": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "dependencies": { "domelementtype": { "version": "1.1.3", - "from": "domelementtype@>=1.1.1 <1.2.0", + "from": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" }, "entities": { "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", + "from": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" } } @@ -8646,137 +8646,137 @@ }, "domelementtype": { "version": "1.3.0", - "from": "domelementtype@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" }, "readable-stream": { "version": "1.1.13", - "from": "readable-stream@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "entities": { "version": "1.0.0", - "from": "entities@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" } } }, "minimatch": { "version": "0.3.0", - "from": "minimatch@>=0.3.0 <0.4.0", + "from": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "dependencies": { "lru-cache": { "version": "2.7.0", - "from": "lru-cache@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" } } }, "nunjucks": { "version": "1.3.4", - "from": "nunjucks@>=1.2.0 <2.0.0", + "from": "https://registry.npmjs.org/nunjucks/-/nunjucks-1.3.4.tgz", "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-1.3.4.tgz", "dependencies": { "optimist": { "version": "0.6.1", - "from": "optimist@*", + "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } }, "chokidar": { "version": "0.12.6", - "from": "chokidar@>=0.12.5 <0.13.0", + "from": "https://registry.npmjs.org/chokidar/-/chokidar-0.12.6.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-0.12.6.tgz", "dependencies": { "readdirp": { "version": "1.3.0", - "from": "readdirp@>=1.3.0 <1.4.0", + "from": "https://registry.npmjs.org/readdirp/-/readdirp-1.3.0.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.3.0.tgz", "dependencies": { "graceful-fs": { "version": "2.0.3", - "from": "graceful-fs@>=2.0.0 <2.1.0", + "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz" }, "minimatch": { "version": "0.2.14", - "from": "minimatch@>=0.2.12 <0.3.0", + "from": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { "version": "2.7.0", - "from": "lru-cache@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" } } }, "readable-stream": { "version": "1.0.33", - "from": "readable-stream@>=1.0.26-2 <1.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -8785,17 +8785,17 @@ }, "async-each": { "version": "0.1.6", - "from": "async-each@>=0.1.5 <0.2.0", + "from": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz", "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" }, "fsevents": { "version": "0.3.8", - "from": "fsevents@>=0.3.1 <0.4.0", + "from": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "dependencies": { "nan": { "version": "2.1.0", - "from": "nan@>=2.0.2 <3.0.0", + "from": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" } } @@ -8806,42 +8806,42 @@ }, "q-io": { "version": "1.10.9", - "from": "q-io@>=1.10.9 <1.11.0", + "from": "https://registry.npmjs.org/q-io/-/q-io-1.10.9.tgz", "resolved": "https://registry.npmjs.org/q-io/-/q-io-1.10.9.tgz", "dependencies": { "q": { "version": "0.9.7", - "from": "q@>=0.9.7 <0.10.0", + "from": "https://registry.npmjs.org/q/-/q-0.9.7.tgz", "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz" }, "qs": { "version": "0.1.0", - "from": "qs@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/qs/-/qs-0.1.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-0.1.0.tgz" }, "url2": { "version": "0.0.0", - "from": "url2@>=0.0.0 <0.1.0", + "from": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz", "resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz" }, "mime": { "version": "1.2.11", - "from": "mime@>=1.2.11 <1.3.0", + "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "mimeparse": { "version": "0.1.4", - "from": "mimeparse@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz", "resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz" }, "collections": { "version": "0.2.2", - "from": "collections@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz", "resolved": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz", "dependencies": { "weak-map": { "version": "1.0.0", - "from": "weak-map@1.0.0", + "from": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz", "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz" } } @@ -8850,62 +8850,62 @@ }, "semver": { "version": "4.3.6", - "from": "semver@>=4.3.4 <5.0.0", + "from": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "shelljs": { "version": "0.5.3", - "from": "shelljs@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz" }, "winston": { "version": "0.7.3", - "from": "winston@>=0.7.2 <0.8.0", + "from": "https://registry.npmjs.org/winston/-/winston-0.7.3.tgz", "resolved": "https://registry.npmjs.org/winston/-/winston-0.7.3.tgz", "dependencies": { "async": { "version": "0.2.10", - "from": "async@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "colors": { "version": "0.6.2", - "from": "colors@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" }, "cycle": { "version": "1.0.3", - "from": "cycle@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" }, "eyes": { "version": "0.1.8", - "from": "eyes@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" }, "pkginfo": { "version": "0.3.1", - "from": "pkginfo@>=0.3.0 <0.4.0", + "from": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" }, "request": { "version": "2.16.6", - "from": "request@>=2.16.0 <2.17.0", + "from": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", "dependencies": { "form-data": { "version": "0.0.10", - "from": "form-data@>=0.0.3 <0.1.0", + "from": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", "dependencies": { "combined-stream": { "version": "0.0.7", - "from": "combined-stream@>=0.0.4 <0.1.0", + "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "dependencies": { "delayed-stream": { "version": "0.0.5", - "from": "delayed-stream@0.0.5", + "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" } } @@ -8914,81 +8914,81 @@ }, "mime": { "version": "1.2.11", - "from": "mime@>=1.2.7 <1.3.0", + "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "hawk": { "version": "0.10.2", - "from": "hawk@>=0.10.2 <0.11.0", + "from": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", "dependencies": { "hoek": { "version": "0.7.6", - "from": "hoek@>=0.7.0 <0.8.0", + "from": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" }, "boom": { "version": "0.3.8", - "from": "boom@>=0.3.0 <0.4.0", + "from": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" }, "cryptiles": { "version": "0.1.3", - "from": "cryptiles@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz" }, "sntp": { "version": "0.1.4", - "from": "sntp@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz", "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz" } } }, "node-uuid": { "version": "1.4.3", - "from": "node-uuid@>=1.4.0 <1.5.0", + "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" }, "cookie-jar": { "version": "0.2.0", - "from": "cookie-jar@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz" }, "aws-sign": { "version": "0.2.0", - "from": "aws-sign@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz", "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz" }, "oauth-sign": { "version": "0.2.0", - "from": "oauth-sign@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz" }, "forever-agent": { "version": "0.2.0", - "from": "forever-agent@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz" }, "tunnel-agent": { "version": "0.2.0", - "from": "tunnel-agent@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" }, "json-stringify-safe": { "version": "3.0.0", - "from": "json-stringify-safe@>=3.0.0 <3.1.0", + "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz" }, "qs": { "version": "0.5.6", - "from": "qs@>=0.5.4 <0.6.0", + "from": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" } } }, "stack-trace": { "version": "0.0.9", - "from": "stack-trace@>=0.0.0 <0.1.0", + "from": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" } } @@ -9037,6 +9037,71 @@ } } }, + "glob": { + "version": "6.0.1", + "from": "glob@*", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.1.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.2", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", + "dependencies": { + "balanced-match": { + "version": "0.3.0", + "from": "balanced-match@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + }, "grunt": { "version": "0.4.5", "from": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", @@ -14194,18 +14259,6 @@ "version": "0.1.6", "from": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz", "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" - }, - "fsevents": { - "version": "0.3.5", - "from": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.5.tgz", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.5.tgz", - "dependencies": { - "nan": { - "version": "1.5.3", - "from": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" - } - } } } }, @@ -16007,40 +16060,6 @@ "version": "1.0.1", "from": "https://registry.npmjs.org/ultron/-/ultron-1.0.1.tgz", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.1.tgz" - }, - "bufferutil": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/bufferutil/-/bufferutil-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-1.1.0.tgz", - "dependencies": { - "bindings": { - "version": "1.2.1", - "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" - }, - "nan": { - "version": "1.8.4", - "from": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" - } - } - }, - "utf-8-validate": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.1.0.tgz", - "dependencies": { - "bindings": { - "version": "1.2.1", - "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" - }, - "nan": { - "version": "1.8.4", - "from": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" - } - } } } }, From a8b5f5c08dfa175901481c33e57bf37cf8fe9926 Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Thu, 17 Dec 2015 14:53:15 +0000 Subject: [PATCH 3/6] chore(angularFiles): add documentation only file to list of files This prevents errors when checking `validate-angular-files` --- angularFiles.js | 1 + 1 file changed, 1 insertion(+) diff --git a/angularFiles.js b/angularFiles.js index 5ed579e0b7b8..6be3f249bb2f 100755 --- a/angularFiles.js +++ b/angularFiles.js @@ -34,6 +34,7 @@ var angularFiles = { 'src/ng/q.js', 'src/ng/raf.js', 'src/ng/rootScope.js', + 'src/ng/rootElement.js', 'src/ng/sanitizeUri.js', 'src/ng/sce.js', 'src/ng/sniffer.js', From fc2650b35904a15a74e987dfd1580a974eadc116 Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Thu, 17 Dec 2015 14:54:00 +0000 Subject: [PATCH 4/6] chore(GruntFile): move `validate-angular-files` task into its own file --- Gruntfile.js | 50 -------------------------- lib/grunt/validate-angular-files.js | 56 +++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 50 deletions(-) create mode 100644 lib/grunt/validate-angular-files.js diff --git a/Gruntfile.js b/Gruntfile.js index 82d5b224b8bf..e8f18bf507a2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -4,9 +4,7 @@ var files = require('./angularFiles').files; var util = require('./lib/grunt/utils.js'); var versionInfo = require('./lib/versions/version-info'); var path = require('path'); -var fs = require('fs'); var e2e = require('./test/e2e/tools'); -var glob = require("glob"); module.exports = function(grunt) { //grunt plugins @@ -341,55 +339,7 @@ module.exports = function(grunt) { grunt.task.run('shell:npm-install'); } - grunt.registerTask('validate-angular-files', function() { - var combinedFiles = Object.assign({}, files.angularModules); - combinedFiles.ng = files.angularSrc; - combinedFiles.angularLoader = files.angularLoader; - var errorsDetected = false; - var directories = []; - var detectedFiles = { - "src/ng/rootElement.js": true - }; - - for (var section in combinedFiles) { - var sectionFiles = combinedFiles[section]; - - if (section != "angularLoader") { - directories.push("src/" + section); - } - - console.log("Validating " + sectionFiles.length + " files from the \"" + section + "\" module"); - - sectionFiles.forEach(function(file) { - detectedFiles[file] = true; - - if (!fs.existsSync(file)) { - grunt.log.error(file + " does not exist in the local file structure"); - errorsDetected = true; - } - }); - } - - directories.forEach(function(directory) { - glob.sync(directory + "/**/*").forEach(function(filePath) { - if (!fs.lstatSync(filePath).isDirectory()) { - var fileName = path.basename(filePath); - var isHiddenFile = fileName[0] == "."; - if (!isHiddenFile && !detectedFiles[filePath]) { - grunt.log.error(filePath + " exists in the local file structure but isn't used by any module"); - errorsDetected = true; - } - } - }); - }); - - if (errorsDetected) { - throw new Error("Not all files were properly detected the local file structure"); - } else { - console.log("All files were detected successfully!"); - } - }); //alias tasks grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['jshint', 'jscs', 'package','test:unit','test:promises-aplus', 'tests:docs', 'test:protractor']); diff --git a/lib/grunt/validate-angular-files.js b/lib/grunt/validate-angular-files.js new file mode 100644 index 000000000000..5a97f4510ed5 --- /dev/null +++ b/lib/grunt/validate-angular-files.js @@ -0,0 +1,56 @@ +var path = require('path'); +var fs = require('fs'); +var glob = require("glob"); +var _ = require('lodash'); +var files = require('../../angularFiles').files; + +module.exports = function(grunt) { + + grunt.registerTask('validate-angular-files', function() { + var combinedFiles = _.clone(files.angularModules); + combinedFiles.ng = files.angularSrc; + combinedFiles.angularLoader = files.angularLoader; + + var errorsDetected = false; + var directories = []; + var detectedFiles = {}; + + for (var section in combinedFiles) { + var sectionFiles = combinedFiles[section]; + + if (section != "angularLoader") { + directories.push("src/" + section); + } + + grunt.log.debug("Validating " + sectionFiles.length + " files from the \"" + section + "\" module."); + + sectionFiles.forEach(function(file) { + detectedFiles[file] = true; + + if (!fs.existsSync(file)) { + grunt.log.error(file + " does not exist in the local file structure."); + errorsDetected = true; + } + }); + } + + directories.forEach(function(directory) { + glob.sync(directory + "/**/*").forEach(function(filePath) { + if (!fs.lstatSync(filePath).isDirectory()) { + var fileName = path.basename(filePath); + var isHiddenFile = fileName[0] == "."; + if (!isHiddenFile && !detectedFiles[filePath]) { + grunt.log.error(filePath + " exists in the local file structure but isn't used by any module."); + errorsDetected = true; + } + } + }); + }); + + if (errorsDetected) { + throw new Error("Not all files were properly detected in the local file structure."); + } else { + grunt.log.ok("All files were detected successfully!"); + } + }); +}; \ No newline at end of file From 108e8a6ee0a7d8003c73705b94a0affa4366d6bf Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Thu, 17 Dec 2015 14:56:49 +0000 Subject: [PATCH 5/6] chore(GruntFile): fix whitespace in lists --- Gruntfile.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index e8f18bf507a2..f84b4e42bf62 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -233,7 +233,7 @@ module.exports = function(grunt) { }, "promises-aplus-adapter": { dest:'tmp/promises-aplus-adapter++.js', - src:['src/ng/q.js','lib/promises-aplus/promises-aplus-test-adapter.js'] + src:['src/ng/q.js', 'lib/promises-aplus/promises-aplus-test-adapter.js'] } }, @@ -342,7 +342,7 @@ module.exports = function(grunt) { //alias tasks - grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['jshint', 'jscs', 'package','test:unit','test:promises-aplus', 'tests:docs', 'test:protractor']); + grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['jshint', 'jscs', 'package', 'test:unit', 'test:promises-aplus', 'tests:docs', 'test:protractor']); grunt.registerTask('test:jqlite', 'Run the unit tests with Karma' , ['tests:jqlite']); grunt.registerTask('test:jquery', 'Run the jQuery unit tests with Karma', ['tests:jquery']); grunt.registerTask('test:modules', 'Run the Karma module tests with Karma', ['build', 'tests:modules']); @@ -352,11 +352,11 @@ module.exports = function(grunt) { grunt.registerTask('test:travis-protractor', 'Run the end to end tests with Protractor for Travis CI builds', ['connect:testserver', 'protractor:travis']); grunt.registerTask('test:ci-protractor', 'Run the end to end tests with Protractor for Jenkins CI builds', ['webdriver', 'connect:testserver', 'protractor:jenkins']); grunt.registerTask('test:e2e', 'Alias for test:protractor', ['test:protractor']); - grunt.registerTask('test:promises-aplus',['build:promises-aplus-adapter','shell:promises-aplus-tests']); + grunt.registerTask('test:promises-aplus',['build:promises-aplus-adapter', 'shell:promises-aplus-tests']); - grunt.registerTask('minify', ['bower','clean', 'build', 'minall']); + grunt.registerTask('minify', ['bower', 'clean', 'build', 'minall']); grunt.registerTask('webserver', ['connect:devserver']); - grunt.registerTask('package', ['bower', 'validate-angular-files','clean', 'buildall', 'minall', 'collect-errors', 'docs', 'copy', 'write', 'compress']); + grunt.registerTask('package', ['bower', 'validate-angular-files', 'clean', 'buildall', 'minall', 'collect-errors', 'docs', 'copy', 'write', 'compress']); grunt.registerTask('ci-checks', ['ddescribe-iit', 'merge-conflict', 'jshint', 'jscs']); grunt.registerTask('default', ['package']); }; From bc6cd068da72b93d047a7157cecc05249b15c74f Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Thu, 17 Dec 2015 15:37:30 +0000 Subject: [PATCH 6/6] chore(GruntFile): move `validate-angular-files` task into its own file --- lib/grunt/validate-angular-files.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/grunt/validate-angular-files.js b/lib/grunt/validate-angular-files.js index 5a97f4510ed5..7fc580c60d84 100644 --- a/lib/grunt/validate-angular-files.js +++ b/lib/grunt/validate-angular-files.js @@ -1,3 +1,5 @@ +'use strict'; + var path = require('path'); var fs = require('fs'); var glob = require("glob");