Changeset 516 for Dev/trunk/node_modules/grunt-contrib-jshint
- Timestamp:
- 03/14/14 12:36:58 (11 years ago)
- Location:
- Dev/trunk
- Files:
-
- 3 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk
- Property svn:ignore
-
old new 1 1 build 2 quod-erat.git
-
- Property svn:ignore
-
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/node_modules/glob/glob.js
r484 r516 77 77 } 78 78 79 this._processingEmitQueue = false 79 80 80 81 glob.Glob = Glob … … 99 100 options = options || {} 100 101 102 this._endEmitted = false 101 103 this.EOF = {} 102 104 this._emitQueue = [] 105 106 this.paused = false 107 this._processingEmitQueue = false 103 108 104 109 this.maxDepth = options.maxDepth || 1000 … … 217 222 if (this.mark) { 218 223 // at *some* point we statted all of these 219 all = all.map(function (m) { 220 var sc = this.cache[m] 221 if (!sc) 222 return m 223 var isDir = (Array.isArray(sc) || sc === 2) 224 if (isDir && m.slice(-1) !== "/") { 225 return m + "/" 226 } 227 if (!isDir && m.slice(-1) === "/") { 228 return m.replace(/\/+$/, "") 229 } 230 return m 231 }, this) 224 all = all.map(this._mark, this) 232 225 } 233 226 … … 246 239 function alphasort (a, b) { 247 240 return a > b ? 1 : a < b ? -1 : 0 241 } 242 243 Glob.prototype._mark = function (p) { 244 var c = this.cache[p] 245 var m = p 246 if (c) { 247 var isDir = c === 2 || Array.isArray(c) 248 var slash = p.slice(-1) === '/' 249 250 if (isDir && !slash) 251 m += '/' 252 else if (!isDir && slash) 253 m = m.slice(0, -1) 254 255 if (m !== p) { 256 this.statCache[m] = this.statCache[p] 257 this.cache[m] = this.cache[p] 258 } 259 } 260 261 return m 248 262 } 249 263 … … 272 286 273 287 Glob.prototype.emitMatch = function (m) { 274 if (!this.stat || this.statCache[m] || m === this.EOF) { 275 this._emitQueue.push(m) 276 this._processEmitQueue() 277 } else { 278 this._stat(m, function(exists, isDir) { 279 if (exists) { 280 this._emitQueue.push(m) 281 this._processEmitQueue() 282 } 283 }) 284 } 288 this.log('emitMatch', m) 289 this._emitQueue.push(m) 290 this._processEmitQueue() 285 291 } 286 292 287 293 Glob.prototype._processEmitQueue = function (m) { 294 this.log("pEQ paused=%j processing=%j m=%j", this.paused, 295 this._processingEmitQueue, m) 296 var done = false 288 297 while (!this._processingEmitQueue && 289 298 !this.paused) { 290 299 this._processingEmitQueue = true 291 300 var m = this._emitQueue.shift() 301 this.log(">processEmitQueue", m === this.EOF ? ":EOF:" : m) 292 302 if (!m) { 303 this.log(">processEmitQueue, falsey m") 293 304 this._processingEmitQueue = false 294 305 break 295 306 } 296 307 297 this.log('emit!', m === this.EOF ? "end" : "match") 298 299 this.emit(m === this.EOF ? "end" : "match", m) 300 this._processingEmitQueue = false 301 } 308 if (m === this.EOF || !(this.mark && !this.stat)) { 309 this.log("peq: unmarked, or eof") 310 next.call(this, 0, false) 311 } else if (this.statCache[m]) { 312 var sc = this.statCache[m] 313 var exists 314 if (sc) 315 exists = sc.isDirectory() ? 2 : 1 316 this.log("peq: stat cached") 317 next.call(this, exists, exists === 2) 318 } else { 319 this.log("peq: _stat, then next") 320 this._stat(m, next) 321 } 322 323 function next(exists, isDir) { 324 this.log("next", m, exists, isDir) 325 var ev = m === this.EOF ? "end" : "match" 326 327 // "end" can only happen once. 328 assert(!this._endEmitted) 329 if (ev === "end") 330 this._endEmitted = true 331 332 if (exists) { 333 // Doesn't mean it necessarily doesn't exist, it's possible 334 // we just didn't check because we don't care that much, or 335 // this is EOF anyway. 336 if (isDir && !m.match(/\/$/)) { 337 m = m + "/" 338 } else if (!isDir && m.match(/\/$/)) { 339 m = m.replace(/\/+$/, "") 340 } 341 } 342 this.log("emit", ev, m) 343 this.emit(ev, m) 344 this._processingEmitQueue = false 345 if (done && m !== this.EOF && !this.paused) 346 this._processEmitQueue() 347 } 348 } 349 done = true 302 350 } 303 351 -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/node_modules/glob/package.json
r484 r516 7 7 "name": "glob", 8 8 "description": "a little globber", 9 "version": "3.2. 7",9 "version": "3.2.9", 10 10 "repository": { 11 11 "type": "git", … … 26 26 }, 27 27 "scripts": { 28 "test": "tap test/*.js" 28 "test": "tap test/*.js", 29 "test-regen": "TEST_REGEN=1 node test/00-setup.js" 29 30 }, 30 31 "license": "BSD", … … 35 36 }, 36 37 "homepage": "https://github.com/isaacs/node-glob", 37 "_id": "glob@3.2.7", 38 "dist": { 39 "shasum": "cd490a505ff7f2aef7a29ce0e4ce83d995ddbfc6" 40 }, 41 "_from": "glob@>= 3.1.4", 42 "_resolved": "https://registry.npmjs.org/glob/-/glob-3.2.7.tgz" 38 "_id": "glob@3.2.9", 39 "_from": "glob@>= 3.1.4" 43 40 } -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/node_modules/glob/test/bash-results.json
r484 r516 299 299 "./test/nocase-nomagic.js", 300 300 "./test/pause-resume.js", 301 "./test/readme-issue.js", 301 302 "./test/root-nomount.js", 302 303 "./test/root.js", -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/node_modules/glob/test/mark.js
r484 r516 2 2 var glob = require('../') 3 3 process.chdir(__dirname) 4 5 // expose timing issues 6 var lag = 5 7 glob.Glob.prototype._stat = function(o) { return function(f, cb) { 8 var args = arguments 9 setTimeout(function() { 10 o.call(this, f, cb) 11 }.bind(this), lag += 5) 12 }}(glob.Glob.prototype._stat) 13 14 15 test("mark, with **", function (t) { 16 glob("a/*b*/**", {mark: true}, function (er, results) { 17 if (er) 18 throw er 19 var expect = 20 [ 'a/abcdef/', 21 'a/abcdef/g/', 22 'a/abcdef/g/h', 23 'a/abcfed/', 24 'a/abcfed/g/', 25 'a/abcfed/g/h', 26 'a/b/', 27 'a/b/c/', 28 'a/b/c/d', 29 'a/bc/', 30 'a/bc/e/', 31 'a/bc/e/f', 32 'a/cb/', 33 'a/cb/e/', 34 'a/cb/e/f' ] 35 36 t.same(results, expect) 37 t.end() 38 }) 39 }) 4 40 5 41 test("mark, no / on pattern", function (t) { … … 19 55 t.same(results, expect) 20 56 t.end() 57 }).on('match', function(m) { 58 t.similar(m, /\/$/) 21 59 }) 22 60 }) … … 37 75 t.same(results, expect) 38 76 t.end() 77 }).on('match', function(m) { 78 t.similar(m, /[^\/]$/) 39 79 }) 40 80 }) … … 54 94 t.same(results, expect) 55 95 t.end() 96 }).on('match', function(m) { 97 t.similar(m, /\/$/) 56 98 }) 57 99 }) … … 71 113 t.same(results, expect) 72 114 t.end() 115 }).on('match', function(m) { 116 t.similar(m, /\/$/) 73 117 }) 74 118 }) -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/package.json
r484 r516 50 50 "readmeFilename": "README.md", 51 51 "_id": "cli@0.4.5", 52 "dist": { 53 "shasum": "e4be7ec0a35b5ce30039b58f9382fc4f4b881810" 54 }, 55 "_from": "cli@0.4.x", 56 "_resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz" 52 "_from": "cli@0.4.x" 57 53 } -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/minimatch/README.md
r484 r516 20 20 minimatch("bar.foo", "*.foo") // true! 21 21 minimatch("bar.foo", "*.bar") // false! 22 minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! 22 23 ``` 23 24 … … 36 37 * `man 3 fnmatch` 37 38 * `man 5 gitignore` 38 39 ### Comparisons to other fnmatch/glob implementations40 41 While strict compliance with the existing standards is a worthwhile42 goal, some discrepancies exist between minimatch and other43 implementations, and are intentional.44 45 If the pattern starts with a `!` character, then it is negated. Set the46 `nonegate` flag to suppress this behavior, and treat leading `!`47 characters normally. This is perhaps relevant if you wish to start the48 pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`49 characters at the start of a pattern will negate the pattern multiple50 times.51 52 If a pattern starts with `#`, then it is treated as a comment, and53 will not match anything. Use `\#` to match a literal `#` at the54 start of a line, or set the `nocomment` flag to suppress this behavior.55 56 The double-star character `**` is supported by default, unless the57 `noglobstar` flag is set. This is supported in the manner of bsdglob58 and bash 4.1, where `**` only has special significance if it is the only59 thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but60 `a/**b` will not. **Note that this is different from the way that `**` is61 handled by ruby's `Dir` class.**62 63 If an escaped pattern has no matches, and the `nonull` flag is set,64 then minimatch.match returns the pattern as-provided, rather than65 interpreting the character escapes. For example,66 `minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than67 `"*a?"`. This is akin to setting the `nullglob` option in bash, except68 that it does not resolve escaped pattern characters.69 70 If brace expansion is not disabled, then it is performed before any71 other interpretation of the glob pattern. Thus, a pattern like72 `+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded73 **first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are74 checked for validity. Since those two are valid, matching proceeds.75 76 39 77 40 ## Minimatch Class … … 217 180 Returns from negate expressions the same as if they were not negated. 218 181 (Ie, true on a hit, false on a miss.) 182 183 184 ## Comparisons to other fnmatch/glob implementations 185 186 While strict compliance with the existing standards is a worthwhile 187 goal, some discrepancies exist between minimatch and other 188 implementations, and are intentional. 189 190 If the pattern starts with a `!` character, then it is negated. Set the 191 `nonegate` flag to suppress this behavior, and treat leading `!` 192 characters normally. This is perhaps relevant if you wish to start the 193 pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` 194 characters at the start of a pattern will negate the pattern multiple 195 times. 196 197 If a pattern starts with `#`, then it is treated as a comment, and 198 will not match anything. Use `\#` to match a literal `#` at the 199 start of a line, or set the `nocomment` flag to suppress this behavior. 200 201 The double-star character `**` is supported by default, unless the 202 `noglobstar` flag is set. This is supported in the manner of bsdglob 203 and bash 4.1, where `**` only has special significance if it is the only 204 thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but 205 `a/**b` will not. 206 207 If an escaped pattern has no matches, and the `nonull` flag is set, 208 then minimatch.match returns the pattern as-provided, rather than 209 interpreting the character escapes. For example, 210 `minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than 211 `"*a?"`. This is akin to setting the `nullglob` option in bash, except 212 that it does not resolve escaped pattern characters. 213 214 If brace expansion is not disabled, then it is performed before any 215 other interpretation of the glob pattern. Thus, a pattern like 216 `+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded 217 **first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are 218 checked for validity. Since those two are valid, matching proceeds. -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/minimatch/minimatch.js
r484 r516 69 69 var slashSplit = /\/+/ 70 70 71 minimatch.monkeyPatch = monkeyPatch72 function monkeyPatch () {73 var desc = Object.getOwnPropertyDescriptor(String.prototype, "match")74 var orig = desc.value75 desc.value = function (p) {76 if (p instanceof Minimatch) return p.match(this)77 return orig.call(this, p)78 }79 Object.defineProperty(String.prototype, desc)80 }81 82 71 minimatch.filter = filter 83 72 function filter (pattern, options) { … … 179 168 } 180 169 170 Minimatch.prototype.debug = function() {} 171 181 172 Minimatch.prototype.make = make 182 173 function make () { … … 203 194 var set = this.globSet = this.braceExpand() 204 195 205 if (options.debug) console.error(this.pattern, set) 196 if (options.debug) this.debug = console.error 197 198 this.debug(this.pattern, set) 206 199 207 200 // step 3: now we have a set, so turn each one into a series of path-portion … … 214 207 }) 215 208 216 if (options.debug) console.error(this.pattern, set)209 this.debug(this.pattern, set) 217 210 218 211 // glob --> regexps … … 221 214 }, this) 222 215 223 if (options.debug) console.error(this.pattern, set)216 this.debug(this.pattern, set) 224 217 225 218 // filter out everything that didn't compile properly. … … 228 221 }) 229 222 230 if (options.debug) console.error(this.pattern, set)223 this.debug(this.pattern, set) 231 224 232 225 this.set = set … … 303 296 // and then prepend it to everything we find. 304 297 if (pattern.charAt(0) !== "{") { 305 // console.error(pattern)298 this.debug(pattern) 306 299 var prefix = null 307 300 for (var i = 0, l = pattern.length; i < l; i ++) { 308 301 var c = pattern.charAt(i) 309 // console.error(i, c)302 this.debug(i, c) 310 303 if (c === "\\") { 311 304 escaping = !escaping … … 318 311 // actually no sets, all { were escaped. 319 312 if (prefix === null) { 320 // console.error("no sets")313 this.debug("no sets") 321 314 return [pattern] 322 315 } 323 316 324 var tail = braceExpand(pattern.substr(i), options)317 var tail = braceExpand.call(this, pattern.substr(i), options) 325 318 return tail.map(function (t) { 326 319 return prefix + t … … 337 330 var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/) 338 331 if (numset) { 339 // console.error("numset", numset[1], numset[2])340 var suf = braceExpand (pattern.substr(numset[0].length), options)332 this.debug("numset", numset[1], numset[2]) 333 var suf = braceExpand.call(this, pattern.substr(numset[0].length), options) 341 334 , start = +numset[1] 342 335 , end = +numset[2] … … 370 363 } 371 364 372 // console.error("Entering for")365 this.debug("Entering for") 373 366 FOR: for (i = 1, l = pattern.length; i < l; i ++) { 374 367 var c = pattern.charAt(i) 375 // console.error("", i, c)368 this.debug("", i, c) 376 369 377 370 if (escaping) { … … 421 414 // and need to escape the leading brace 422 415 if (depth !== 0) { 423 // console.error("didn't close", pattern)424 return braceExpand ("\\" + pattern, options)416 this.debug("didn't close", pattern) 417 return braceExpand.call(this, "\\" + pattern, options) 425 418 } 426 419 427 420 // x{y,z} -> ["xy", "xz"] 428 // console.error("set", set)429 // console.error("suffix", pattern.substr(i))430 var suf = braceExpand (pattern.substr(i), options)421 this.debug("set", set) 422 this.debug("suffix", pattern.substr(i)) 423 var suf = braceExpand.call(this, pattern.substr(i), options) 431 424 // ["b", "c{d,e}","{f,g}h"] -> 432 425 // [["b"], ["cd", "ce"], ["fh", "gh"]] 433 426 var addBraces = set.length === 1 434 // console.error("set pre-expanded", set)427 this.debug("set pre-expanded", set) 435 428 set = set.map(function (p) { 436 return braceExpand (p, options)437 } )438 // console.error("set expanded", set)429 return braceExpand.call(this, p, options) 430 }, this) 431 this.debug("set expanded", set) 439 432 440 433 … … 497 490 : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))" 498 491 : "(?!\\.)" 492 , self = this 499 493 500 494 function clearStateChar () { … … 515 509 break 516 510 } 511 self.debug('clearStateChar %j %j', stateChar, re) 517 512 stateChar = false 518 513 } … … 523 518 ; i ++ ) { 524 519 525 if (options.debug) { 526 console.error("%s\t%s %s %j", pattern, i, re, c) 527 } 520 this.debug("%s\t%s %s %j", pattern, i, re, c) 528 521 529 522 // skip over any that are escaped. … … 552 545 case "@": 553 546 case "!": 554 if (options.debug) { 555 console.error("%s\t%s %s %j <-- stateChar", pattern, i, re, c) 556 } 547 this.debug("%s\t%s %s %j <-- stateChar", pattern, i, re, c) 557 548 558 549 // all of those are literals inside a class, except that 559 550 // the glob [!a] means [^a] in regexp 560 551 if (inClass) { 552 this.debug(' in class') 561 553 if (c === "!" && i === classStart + 1) c = "^" 562 554 re += c … … 567 559 // that there was something like ** or +? in there. 568 560 // Handle the stateChar, then proceed with this one. 561 self.debug('call clearStateChar %j', stateChar) 569 562 clearStateChar() 570 563 stateChar = c … … 592 585 // negation is (?:(?!js)[^/]*) 593 586 re += stateChar === "!" ? "(?:(?!" : "(?:" 587 this.debug('plType %j %j', stateChar, re) 594 588 stateChar = false 595 589 continue … … 601 595 } 602 596 597 clearStateChar() 603 598 hasMagic = true 604 599 re += ")" … … 624 619 } 625 620 621 clearStateChar() 626 622 re += "|" 627 623 continue … … 716 712 }) 717 713 718 // console.error("tail=%j\n %s", tail, tail)714 this.debug("tail=%j\n %s", tail, tail) 719 715 var t = pl.type === "*" ? star 720 716 : pl.type === "?" ? qmark … … 830 826 Minimatch.prototype.match = match 831 827 function match (f, partial) { 832 // console.error("match", f, this.pattern)828 this.debug("match", f, this.pattern) 833 829 // short-circuit in the case of busted things. 834 830 // comments, etc. … … 848 844 // treat the test path as a set of pathparts. 849 845 f = f.split(slashSplit) 850 if (options.debug) { 851 console.error(this.pattern, "split", f) 852 } 846 this.debug(this.pattern, "split", f) 853 847 854 848 // just ONE of the pattern sets in this.set needs to match … … 858 852 859 853 var set = this.set 860 // console.error(this.pattern, "set", set) 854 this.debug(this.pattern, "set", set) 855 856 var splitFile = path.basename(f.join("/")).split("/") 861 857 862 858 for (var i = 0, l = set.length; i < l; i ++) { 863 var pattern = set[i] 864 var hit = this.matchOne(f, pattern, partial) 859 var pattern = set[i], file = f 860 if (options.matchBase && pattern.length === 1) { 861 file = splitFile 862 } 863 var hit = this.matchOne(file, pattern, partial) 865 864 if (hit) { 866 865 if (options.flipNegate) return true … … 883 882 var options = this.options 884 883 885 if (options.debug) { 886 console.error("matchOne", 887 { "this": this 888 , file: file 889 , pattern: pattern }) 890 } 891 892 if (options.matchBase && pattern.length === 1) { 893 file = path.basename(file.join("/")).split("/") 894 } 895 896 if (options.debug) { 897 console.error("matchOne", file.length, pattern.length) 898 } 884 this.debug("matchOne", 885 { "this": this 886 , file: file 887 , pattern: pattern }) 888 889 this.debug("matchOne", file.length, pattern.length) 899 890 900 891 for ( var fi = 0 … … 905 896 ; fi ++, pi ++ ) { 906 897 907 if (options.debug) { 908 console.error("matchOne loop") 909 } 898 this.debug("matchOne loop") 910 899 var p = pattern[pi] 911 900 , f = file[fi] 912 901 913 if (options.debug) { 914 console.error(pattern, p, f) 915 } 902 this.debug(pattern, p, f) 916 903 917 904 // should be impossible. … … 920 907 921 908 if (p === GLOBSTAR) { 922 if (options.debug) 923 console.error('GLOBSTAR', [pattern, p, f]) 909 this.debug('GLOBSTAR', [pattern, p, f]) 924 910 925 911 // "**" … … 948 934 , pr = pi + 1 949 935 if (pr === pl) { 950 if (options.debug) 951 console.error('** at the end') 936 this.debug('** at the end') 952 937 // a ** at the end will just swallow the rest. 953 938 // We have found a match. … … 967 952 var swallowee = file[fr] 968 953 969 if (options.debug) { 970 console.error('\nglobstar while', 971 file, fr, pattern, pr, swallowee) 972 } 954 this.debug('\nglobstar while', 955 file, fr, pattern, pr, swallowee) 973 956 974 957 // XXX remove this slice. Just pass the start index. 975 958 if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { 976 if (options.debug) 977 console.error('globstar found match!', fr, fl, swallowee) 959 this.debug('globstar found match!', fr, fl, swallowee) 978 960 // found a match. 979 961 return true … … 983 965 if (swallowee === "." || swallowee === ".." || 984 966 (!options.dot && swallowee.charAt(0) === ".")) { 985 if (options.debug) 986 console.error("dot detected!", file, fr, pattern, pr) 967 this.debug("dot detected!", file, fr, pattern, pr) 987 968 break WHILE 988 969 } 989 970 990 971 // ** swallows a segment, and continue. 991 if (options.debug) 992 console.error('globstar swallow a segment, and continue') 972 this.debug('globstar swallow a segment, and continue') 993 973 fr ++ 994 974 } … … 999 979 if (partial) { 1000 980 // ran out of file 1001 // console.error("\n>>> no match, partial?", file, fr, pattern, pr)981 this.debug("\n>>> no match, partial?", file, fr, pattern, pr) 1002 982 if (fr === fl) return true 1003 983 } … … 1015 995 hit = f === p 1016 996 } 1017 if (options.debug) { 1018 console.error("string match", p, f, hit) 1019 } 997 this.debug("string match", p, f, hit) 1020 998 } else { 1021 999 hit = f.match(p) 1022 if (options.debug) { 1023 console.error("pattern match", p, f, hit) 1024 } 1000 this.debug("pattern match", p, f, hit) 1025 1001 } 1026 1002 -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/package.json
r484 r516 30 30 "homepage": "https://github.com/isaacs/node-lru-cache", 31 31 "_id": "lru-cache@2.5.0", 32 "dist": { 33 "shasum": "be07d09e5b05f10b83d0cf01d4891a7729288c69" 34 }, 35 "_from": "lru-cache@2", 36 "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" 32 "_from": "lru-cache@2" 37 33 } -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/minimatch/package.json
r484 r516 7 7 "name": "minimatch", 8 8 "description": "a glob matcher in javascript", 9 "version": "0.2.1 2",9 "version": "0.2.14", 10 10 "repository": { 11 11 "type": "git", … … 14 14 "main": "minimatch.js", 15 15 "scripts": { 16 "test": "tap test "16 "test": "tap test/*.js" 17 17 }, 18 18 "engines": { … … 30 30 "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE" 31 31 }, 32 "readme": "# minimatch\n\nA minimal matching utility.\n\n[](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require(\"minimatch\")\n\nminimatch(\"bar.foo\", \"*.foo\") // true!\nminimatch(\"bar.foo\", \"*.bar\") // false!\n ```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated. Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally. This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`. Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything. Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set. This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part. That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not. **Note that this is different from the way that `**` is\nhandled by ruby's `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes. For example,\n`minimatch.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`. This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern. Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity. Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require(\"minimatch\").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n Each row in the\n array corresponds to a brace-expanded pattern. Each item in the row\n corresponds to a single path-part. For example, the pattern\n `{a,b/c}/d` would expand to a set of patterns like:\n\n [ [ a, d ]\n , [ b, c, d ] ]\n\n If a portion of the pattern doesn't have any \"magic\" in it\n (that is, it's something like `\"foo\"` rather than `fo*o?`), then it\n will be left as a string rather than converted to a regular\n expression.\n\n* `regexp` Created by the `makeRe` method. A single regular expression\n expressing the entire pattern. This is useful in cases where you wish\n to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `\"\"`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n filename, and match it against a single row in the `regExpSet`. This\n method is mainly for internal use, but is exposed so that it can be\n used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items. So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export. Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, \"*.js\", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`. Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter(\"*.js\", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob. If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, \"*.js\", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable \"extglob\" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself. When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes. For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n",32 "readme": "# minimatch\n\nA minimal matching utility.\n\n[](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require(\"minimatch\")\n\nminimatch(\"bar.foo\", \"*.foo\") // true!\nminimatch(\"bar.foo\", \"*.bar\") // false!\nminimatch(\"bar.foo\", \"*.+(bar|foo)\", { debug: true }) // true, and noisy!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require(\"minimatch\").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n Each row in the\n array corresponds to a brace-expanded pattern. Each item in the row\n corresponds to a single path-part. For example, the pattern\n `{a,b/c}/d` would expand to a set of patterns like:\n\n [ [ a, d ]\n , [ b, c, d ] ]\n\n If a portion of the pattern doesn't have any \"magic\" in it\n (that is, it's something like `\"foo\"` rather than `fo*o?`), then it\n will be left as a string rather than converted to a regular\n expression.\n\n* `regexp` Created by the `makeRe` method. A single regular expression\n expressing the entire pattern. This is useful in cases where you wish\n to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `\"\"`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n filename, and match it against a single row in the `regExpSet`. This\n method is mainly for internal use, but is exposed so that it can be\n used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items. So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export. Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, \"*.js\", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`. Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter(\"*.js\", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob. If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, \"*.js\", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable \"extglob\" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself. When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes. For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n\n\n## Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated. Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally. This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`. Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything. Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set. This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part. That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes. For example,\n`minimatch.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`. This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern. Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity. Since those two are valid, matching proceeds.\n", 33 33 "readmeFilename": "README.md", 34 34 "bugs": { … … 36 36 }, 37 37 "homepage": "https://github.com/isaacs/minimatch", 38 "_id": "minimatch@0.2.1 2",39 "_from": "minimatch@ 0.x.x"38 "_id": "minimatch@0.2.14", 39 "_from": "minimatch@~0.2.12" 40 40 } -
Dev/trunk/node_modules/grunt-contrib-jshint/node_modules/jshint/package.json
r484 r516 67 67 "readmeFilename": "README.md", 68 68 "_id": "jshint@2.1.11", 69 "dist": { 70 "shasum": "489758eda8a6b0059179f2314afa39d34a5bc333" 71 }, 72 "_from": "jshint@~2.1.10", 73 "_resolved": "https://registry.npmjs.org/jshint/-/jshint-2.1.11.tgz" 69 "_from": "jshint@~2.1.10" 74 70 }
Note: See TracChangeset
for help on using the changeset viewer.