package/package.json000644 000765 000024 0000001136 12661161704013022 0ustar00000000 000000 { "name": "tmatch", "version": "2.0.1", "description": "This module exists to facilitate the `t.match()` method in [`tap`](http://npm.im/tap).", "main": "index.js", "scripts": { "test": "tap test/*.js --coverage --branches=100" }, "repository": { "type": "git", "url": "git+https://github.com/isaacs/tmatch.git" }, "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "license": "ISC", "bugs": { "url": "https://github.com/isaacs/tmatch/issues" }, "homepage": "https://github.com/isaacs/tmatch#readme", "devDependencies": { "tap": "^5.5.0" } } package/README.md000644 000765 000024 0000006777 12661135304012030 0ustar00000000 000000 # tmatch This module exists to facilitate the `t.match()` method in [`tap`](http://npm.im/tap). It checks whether a value matches a given "pattern". A pattern is an object with a set of fields that must be in the test object, or a regular expression that a test string must match, or any combination thereof. The algorithm is borrowed heavily from [`only-shallow`](http://npm.im/only-shallow), with some notable differences with respect to the handling of missing properties and the way that regular expressions are compared to strings. ## usage ```javascript var matches = require('tmatch') if (!matches(testObject, pattern)) console.log("yay! diversity!"); // somewhat more realistic example.. http.get(someUrl).on('response', function (res) { var expect = { statusCode: 200, headers: { server: /express/ } } if (!tmatch(res, expect)) { throw new Error('Expect 200 status code from express server') } }) ``` ## details Copied from the source, here are the details of `tmatch`'s algorithm: 1. If the object loosely equals the pattern, then return true. Note that this covers object identity, some type coercion, and matching `null` against `undefined`. 2. If the object is a string, and the pattern is a RegExp, then return true if `pattern.test(object)`. 3. If the object is a string and the pattern is a non-empty string, then return true if the string occurs within the object. 5. If the object and the pattern are both Date objects, then return true if they represent the same date. 6. If the object is a Date object, and the pattern is a string, then return true if the pattern is parseable as a date that is the same date as the object. 7. If the object is an `arguments` object, or the pattern is an `arguments` object, then cast them to arrays and compare their contents. 8. If the pattern is the `Buffer` constructor, then return true if the object is a Buffer. 9. If the pattern is the `Function` constructor, then return true if the object is a function. 10. If the pattern is the String constructor, then return true if the pattern is a string. 11. If the pattern is the Boolean constructor, then return true if the pattern is a boolean. 12. If the pattern is the Array constructor, then return true if the pattern is an array. 13. If the pattern is any function, and then object is an object, then return true if the object is an `instanceof` the pattern. 14. At this point, if the object or the pattern are not objects, then return false (because they would have matched earlier). 15. If the object is a RegExp and the pattern is also a RegExp, return true if their source, global, multiline, lastIndex, and ignoreCase fields all match. 16. If the object is a buffer, and the pattern is also a buffer, then return true if they contain the same bytes. 17. At this point, both object and pattern are object type values, so compare their keys: 1. Get list of all iterable keys in pattern and object. If both are zero (two empty objects), return true. 2. Check to see if this pattern and this object have been tested already (to handle cycles). If so, return true, since the check higher up in the stack will catch any mismatch. 3. For each key in the pattern, match it against the corresponding key in object. Missing keys in object will be resolved to `undefined`, so it's possible to use `{foo:null}` as a pattern to ensure that the object *doesn't* have a `foo` property. ## license ISC. Go nuts. package/LICENSE000644 000765 000024 0000001375 12600174454011545 0ustar00000000 000000 The ISC License Copyright (c) Isaac Z. Schlueter and Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. package/index.js000644 000765 000024 0000011126 12661161643012203 0ustar00000000 000000 'use strict' function isArguments (obj) { return Object.prototype.toString.call(obj) === '[object Arguments]' } module.exports = match function match (obj, pattern) { return match_(obj, pattern, [], []) } /* istanbul ignore next */ var log = (/\btmatch\b/.test(process.env.NODE_DEBUG || '')) ? console.error : function () {} function match_ (obj, pattern, ca, cb) { log('TMATCH', typeof obj, pattern) if (obj == pattern) { log('TMATCH same object or simple value, or problem') // if one is object, and the other isn't, then this is bogus if (obj === null || pattern === null) { return true } else if (typeof obj === 'object' && typeof pattern === 'object') { return true } else if (typeof obj === 'object' && typeof pattern !== 'object') { return false } else if (typeof obj !== 'object' && typeof pattern === 'object') { return false } else { return true } } else if (obj === null || pattern === null) { log('TMATCH null test, already failed ==') return false } else if (typeof obj === 'string' && pattern instanceof RegExp) { log('TMATCH string~=regexp test') return pattern.test(obj) } else if (typeof obj === 'string' && typeof pattern === 'string' && pattern) { log('TMATCH string~=string test') return obj.indexOf(pattern) !== -1 } else if (obj instanceof Date && pattern instanceof Date) { log('TMATCH date test') return obj.getTime() === pattern.getTime() } else if (obj instanceof Date && typeof pattern === 'string') { log('TMATCH date~=string test') return obj.getTime() === new Date(pattern).getTime() } else if (isArguments(obj) || isArguments(pattern)) { log('TMATCH arguments test') var slice = Array.prototype.slice return match_(slice.call(obj), slice.call(pattern), ca, cb) } else if (pattern === Buffer) { log('TMATCH Buffer ctor') return Buffer.isBuffer(obj) } else if (pattern === Function) { log('TMATCH Function ctor') return typeof obj === 'function' } else if (pattern === Number) { log('TMATCH Number ctor (finite, not NaN)') return typeof obj === 'number' && obj === obj && isFinite(obj) } else if (pattern !== pattern) { log('TMATCH NaN') return obj !== obj } else if (pattern === String) { log('TMATCH String ctor') return typeof obj === 'string' } else if (pattern === Boolean) { log('TMATCH Boolean ctor') return typeof obj === 'boolean' } else if (pattern === Array) { log('TMATCH Array ctor', pattern, Array.isArray(obj)) return Array.isArray(obj) } else if (typeof pattern === 'function' && typeof obj === 'object') { log('TMATCH object~=function') return obj instanceof pattern } else if (typeof obj !== 'object' || typeof pattern !== 'object') { log('TMATCH obj is not object, pattern is not object, false') return false } else if (obj instanceof RegExp && pattern instanceof RegExp) { log('TMATCH regexp~=regexp test') return obj.source === pattern.source && obj.global === pattern.global && obj.multiline === pattern.multiline && obj.lastIndex === pattern.lastIndex && obj.ignoreCase === pattern.ignoreCase } else if (Buffer.isBuffer(obj) && Buffer.isBuffer(pattern)) { log('TMATCH buffer test') if (obj.equals) { return obj.equals(pattern) } else { if (obj.length !== pattern.length) return false for (var j = 0; j < obj.length; j++) if (obj[j] != pattern[j]) return false return true } } else { // both are objects. interesting case! log('TMATCH object~=object test') var kobj = Object.keys(obj) var kpat = Object.keys(pattern) log(' TMATCH patternkeys=%j objkeys=%j', kpat, kobj) // don't bother with stack acrobatics if there's nothing there if (kobj.length === 0 && kpat.length === 0) return true // if we've seen this exact pattern and object already, then // it means that pattern and obj have matching cyclicalness // however, non-cyclical patterns can match cyclical objects log(' TMATCH check seen objects...') var cal = ca.length while (cal--) if (ca[cal] === obj && cb[cal] === pattern) return true ca.push(obj); cb.push(pattern) log(' TMATCH not seen previously') var key for (var l = kpat.length - 1; l >= 0; l--) { key = kpat[l] log(' TMATCH test obj[%j]', key, obj[key], pattern[key]) if (!match_(obj[key], pattern[key], ca, cb)) return false } ca.pop() cb.pop() log(' TMATCH object pass') return true } /* istanbul ignore next */ throw new Error('impossible to reach this point') } package/.nyc_output/94400.json000644 000765 000024 0000000002 12661161647014373 0ustar00000000 000000 {}package/.nyc_output/94402.json000644 000765 000024 0000042436 12661161647014416 0ustar00000000 000000 {"./index.js":{"path":"./index.js","s":{"1":1,"2":160,"3":1,"4":1,"5":64,"6":1,"7":1,"8":139,"9":139,"10":46,"11":46,"12":7,"13":39,"14":4,"15":35,"16":1,"17":34,"18":1,"19":33,"20":93,"21":1,"22":1,"23":92,"24":5,"25":5,"26":87,"27":3,"28":3,"29":84,"30":2,"31":2,"32":82,"33":1,"34":1,"35":81,"36":2,"37":2,"38":2,"39":79,"40":1,"41":1,"42":78,"43":1,"44":1,"45":77,"46":4,"47":4,"48":73,"49":1,"50":1,"51":72,"52":1,"53":1,"54":71,"55":1,"56":1,"57":70,"58":1,"59":1,"60":69,"61":2,"62":2,"63":67,"64":10,"65":10,"66":57,"67":4,"68":4,"69":53,"70":6,"71":6,"72":3,"73":3,"74":1,"75":2,"76":3,"77":1,"78":1,"79":47,"80":47,"81":47,"82":47,"83":47,"84":2,"85":45,"86":45,"87":45,"88":15,"89":1,"90":44,"91":44,"92":44,"93":44,"94":44,"95":73,"96":73,"97":73,"98":9,"99":35,"100":35,"101":35,"102":35,"103":0},"b":{"1":[0,1],"2":[1,1],"3":[46,93],"4":[7,39],"5":[46,41],"6":[4,35],"7":[39,5],"8":[1,34],"9":[35,1],"10":[1,33],"11":[34,34],"12":[1,92],"13":[93,93],"14":[5,87],"15":[92,10],"16":[3,84],"17":[87,5,3],"18":[2,82],"19":[84,5],"20":[1,81],"21":[82,3],"22":[2,79],"23":[81,79],"24":[1,78],"25":[1,77],"26":[4,73],"27":[4,4,3],"28":[1,72],"29":[1,71],"30":[1,70],"31":[1,69],"32":[2,67],"33":[69,4],"34":[10,57],"35":[67,58],"36":[4,53],"37":[57,4],"38":[4,3,2,2,2],"39":[6,47],"40":[53,6],"41":[3,3],"42":[1,2],"43":[1,2],"44":[2,45],"45":[47,2],"46":[1,14],"47":[15,1],"48":[9,64]},"f":{"1":160,"2":64,"3":522,"4":139},"fnMap":{"1":{"name":"isArguments","line":3,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}}},"2":{"name":"match","line":9,"loc":{"start":{"line":9,"column":0},"end":{"line":9,"column":30}}},"3":{"name":"(anonymous_3)","line":15,"loc":{"start":{"line":15,"column":18},"end":{"line":15,"column":30}},"skip":true},"4":{"name":"match_","line":17,"loc":{"start":{"line":17,"column":0},"end":{"line":17,"column":39}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":5,"column":1}},"2":{"start":{"line":4,"column":2},"end":{"line":4,"column":69}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":22}},"4":{"start":{"line":9,"column":0},"end":{"line":11,"column":1}},"5":{"start":{"line":10,"column":2},"end":{"line":10,"column":37}},"6":{"start":{"line":14,"column":0},"end":{"line":15,"column":32},"skip":true},"7":{"start":{"line":17,"column":0},"end":{"line":154,"column":1}},"8":{"start":{"line":18,"column":2},"end":{"line":18,"column":36}},"9":{"start":{"line":19,"column":2},"end":{"line":150,"column":3}},"10":{"start":{"line":20,"column":4},"end":{"line":20,"column":57}},"11":{"start":{"line":22,"column":4},"end":{"line":36,"column":5}},"12":{"start":{"line":23,"column":6},"end":{"line":23,"column":17}},"13":{"start":{"line":25,"column":11},"end":{"line":36,"column":5}},"14":{"start":{"line":26,"column":6},"end":{"line":26,"column":17}},"15":{"start":{"line":28,"column":11},"end":{"line":36,"column":5}},"16":{"start":{"line":29,"column":6},"end":{"line":29,"column":18}},"17":{"start":{"line":31,"column":11},"end":{"line":36,"column":5}},"18":{"start":{"line":32,"column":6},"end":{"line":32,"column":18}},"19":{"start":{"line":35,"column":6},"end":{"line":35,"column":17}},"20":{"start":{"line":38,"column":9},"end":{"line":150,"column":3}},"21":{"start":{"line":39,"column":4},"end":{"line":39,"column":46}},"22":{"start":{"line":40,"column":4},"end":{"line":40,"column":16}},"23":{"start":{"line":42,"column":9},"end":{"line":150,"column":3}},"24":{"start":{"line":43,"column":4},"end":{"line":43,"column":37}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":28}},"26":{"start":{"line":46,"column":9},"end":{"line":150,"column":3}},"27":{"start":{"line":47,"column":4},"end":{"line":47,"column":37}},"28":{"start":{"line":48,"column":4},"end":{"line":48,"column":38}},"29":{"start":{"line":50,"column":9},"end":{"line":150,"column":3}},"30":{"start":{"line":51,"column":4},"end":{"line":51,"column":27}},"31":{"start":{"line":52,"column":4},"end":{"line":52,"column":46}},"32":{"start":{"line":54,"column":9},"end":{"line":150,"column":3}},"33":{"start":{"line":55,"column":4},"end":{"line":55,"column":35}},"34":{"start":{"line":56,"column":4},"end":{"line":56,"column":56}},"35":{"start":{"line":58,"column":9},"end":{"line":150,"column":3}},"36":{"start":{"line":59,"column":4},"end":{"line":59,"column":32}},"37":{"start":{"line":60,"column":4},"end":{"line":60,"column":37}},"38":{"start":{"line":61,"column":4},"end":{"line":61,"column":63}},"39":{"start":{"line":63,"column":9},"end":{"line":150,"column":3}},"40":{"start":{"line":64,"column":4},"end":{"line":64,"column":29}},"41":{"start":{"line":65,"column":4},"end":{"line":65,"column":31}},"42":{"start":{"line":67,"column":9},"end":{"line":150,"column":3}},"43":{"start":{"line":68,"column":4},"end":{"line":68,"column":31}},"44":{"start":{"line":69,"column":4},"end":{"line":69,"column":36}},"45":{"start":{"line":71,"column":9},"end":{"line":150,"column":3}},"46":{"start":{"line":72,"column":4},"end":{"line":72,"column":47}},"47":{"start":{"line":73,"column":4},"end":{"line":73,"column":66}},"48":{"start":{"line":75,"column":9},"end":{"line":150,"column":3}},"49":{"start":{"line":76,"column":4},"end":{"line":76,"column":21}},"50":{"start":{"line":77,"column":4},"end":{"line":77,"column":22}},"51":{"start":{"line":79,"column":9},"end":{"line":150,"column":3}},"52":{"start":{"line":80,"column":4},"end":{"line":80,"column":29}},"53":{"start":{"line":81,"column":4},"end":{"line":81,"column":34}},"54":{"start":{"line":83,"column":9},"end":{"line":150,"column":3}},"55":{"start":{"line":84,"column":4},"end":{"line":84,"column":30}},"56":{"start":{"line":85,"column":4},"end":{"line":85,"column":35}},"57":{"start":{"line":87,"column":9},"end":{"line":150,"column":3}},"58":{"start":{"line":88,"column":4},"end":{"line":88,"column":57}},"59":{"start":{"line":89,"column":4},"end":{"line":89,"column":29}},"60":{"start":{"line":91,"column":9},"end":{"line":150,"column":3}},"61":{"start":{"line":92,"column":4},"end":{"line":92,"column":34}},"62":{"start":{"line":93,"column":4},"end":{"line":93,"column":33}},"63":{"start":{"line":95,"column":9},"end":{"line":150,"column":3}},"64":{"start":{"line":96,"column":4},"end":{"line":96,"column":65}},"65":{"start":{"line":97,"column":4},"end":{"line":97,"column":16}},"66":{"start":{"line":99,"column":9},"end":{"line":150,"column":3}},"67":{"start":{"line":100,"column":4},"end":{"line":100,"column":37}},"68":{"start":{"line":101,"column":4},"end":{"line":105,"column":43}},"69":{"start":{"line":107,"column":9},"end":{"line":150,"column":3}},"70":{"start":{"line":108,"column":4},"end":{"line":108,"column":29}},"71":{"start":{"line":109,"column":4},"end":{"line":117,"column":5}},"72":{"start":{"line":110,"column":6},"end":{"line":110,"column":32}},"73":{"start":{"line":112,"column":6},"end":{"line":112,"column":53}},"74":{"start":{"line":112,"column":41},"end":{"line":112,"column":53}},"75":{"start":{"line":114,"column":6},"end":{"line":114,"column":81}},"76":{"start":{"line":114,"column":43},"end":{"line":114,"column":81}},"77":{"start":{"line":114,"column":69},"end":{"line":114,"column":81}},"78":{"start":{"line":116,"column":6},"end":{"line":116,"column":17}},"79":{"start":{"line":121,"column":4},"end":{"line":121,"column":37}},"80":{"start":{"line":122,"column":4},"end":{"line":122,"column":31}},"81":{"start":{"line":123,"column":4},"end":{"line":123,"column":35}},"82":{"start":{"line":124,"column":4},"end":{"line":124,"column":57}},"83":{"start":{"line":127,"column":4},"end":{"line":127,"column":59}},"84":{"start":{"line":127,"column":48},"end":{"line":127,"column":59}},"85":{"start":{"line":132,"column":4},"end":{"line":132,"column":41}},"86":{"start":{"line":133,"column":4},"end":{"line":133,"column":23}},"87":{"start":{"line":134,"column":4},"end":{"line":134,"column":73}},"88":{"start":{"line":134,"column":18},"end":{"line":134,"column":73}},"89":{"start":{"line":134,"column":62},"end":{"line":134,"column":73}},"90":{"start":{"line":135,"column":4},"end":{"line":135,"column":17}},"91":{"start":{"line":135,"column":18},"end":{"line":135,"column":34}},"92":{"start":{"line":136,"column":4},"end":{"line":136,"column":39}},"93":{"start":{"line":138,"column":4},"end":{"line":138,"column":11}},"94":{"start":{"line":139,"column":4},"end":{"line":143,"column":5}},"95":{"start":{"line":140,"column":6},"end":{"line":140,"column":19}},"96":{"start":{"line":141,"column":6},"end":{"line":141,"column":63}},"97":{"start":{"line":142,"column":6},"end":{"line":142,"column":63}},"98":{"start":{"line":142,"column":51},"end":{"line":142,"column":63}},"99":{"start":{"line":145,"column":4},"end":{"line":145,"column":12}},"100":{"start":{"line":146,"column":4},"end":{"line":146,"column":12}},"101":{"start":{"line":148,"column":4},"end":{"line":148,"column":31}},"102":{"start":{"line":149,"column":4},"end":{"line":149,"column":15}},"103":{"start":{"line":153,"column":2},"end":{"line":153,"column":51},"skip":true}},"branchMap":{"1":{"line":14,"type":"cond-expr","locations":[{"start":{"line":15,"column":2},"end":{"line":15,"column":15},"skip":true},{"start":{"line":15,"column":18},"end":{"line":15,"column":32},"skip":true}]},"2":{"line":14,"type":"binary-expr","locations":[{"start":{"line":14,"column":29},"end":{"line":14,"column":51},"skip":true},{"start":{"line":14,"column":55},"end":{"line":14,"column":57},"skip":true}]},"3":{"line":19,"type":"if","locations":[{"start":{"line":19,"column":2},"end":{"line":19,"column":2}},{"start":{"line":19,"column":2},"end":{"line":19,"column":2}}]},"4":{"line":22,"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":22,"column":4}},{"start":{"line":22,"column":4},"end":{"line":22,"column":4}}]},"5":{"line":22,"type":"binary-expr","locations":[{"start":{"line":22,"column":8},"end":{"line":22,"column":20}},{"start":{"line":22,"column":24},"end":{"line":22,"column":40}}]},"6":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":11},"end":{"line":25,"column":11}},{"start":{"line":25,"column":11},"end":{"line":25,"column":11}}]},"7":{"line":25,"type":"binary-expr","locations":[{"start":{"line":25,"column":15},"end":{"line":25,"column":38}},{"start":{"line":25,"column":42},"end":{"line":25,"column":69}}]},"8":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":11},"end":{"line":28,"column":11}},{"start":{"line":28,"column":11},"end":{"line":28,"column":11}}]},"9":{"line":28,"type":"binary-expr","locations":[{"start":{"line":28,"column":15},"end":{"line":28,"column":38}},{"start":{"line":28,"column":42},"end":{"line":28,"column":69}}]},"10":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":11},"end":{"line":31,"column":11}},{"start":{"line":31,"column":11},"end":{"line":31,"column":11}}]},"11":{"line":31,"type":"binary-expr","locations":[{"start":{"line":31,"column":15},"end":{"line":31,"column":38}},{"start":{"line":31,"column":42},"end":{"line":31,"column":69}}]},"12":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":9},"end":{"line":38,"column":9}},{"start":{"line":38,"column":9},"end":{"line":38,"column":9}}]},"13":{"line":38,"type":"binary-expr","locations":[{"start":{"line":38,"column":13},"end":{"line":38,"column":25}},{"start":{"line":38,"column":29},"end":{"line":38,"column":45}}]},"14":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":9},"end":{"line":42,"column":9}},{"start":{"line":42,"column":9},"end":{"line":42,"column":9}}]},"15":{"line":42,"type":"binary-expr","locations":[{"start":{"line":42,"column":13},"end":{"line":42,"column":36}},{"start":{"line":42,"column":40},"end":{"line":42,"column":65}}]},"16":{"line":46,"type":"if","locations":[{"start":{"line":46,"column":9},"end":{"line":46,"column":9}},{"start":{"line":46,"column":9},"end":{"line":46,"column":9}}]},"17":{"line":46,"type":"binary-expr","locations":[{"start":{"line":46,"column":13},"end":{"line":46,"column":36}},{"start":{"line":46,"column":40},"end":{"line":46,"column":67}},{"start":{"line":46,"column":71},"end":{"line":46,"column":78}}]},"18":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":9},"end":{"line":50,"column":9}},{"start":{"line":50,"column":9},"end":{"line":50,"column":9}}]},"19":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":13},"end":{"line":50,"column":32}},{"start":{"line":50,"column":36},"end":{"line":50,"column":59}}]},"20":{"line":54,"type":"if","locations":[{"start":{"line":54,"column":9},"end":{"line":54,"column":9}},{"start":{"line":54,"column":9},"end":{"line":54,"column":9}}]},"21":{"line":54,"type":"binary-expr","locations":[{"start":{"line":54,"column":13},"end":{"line":54,"column":32}},{"start":{"line":54,"column":36},"end":{"line":54,"column":63}}]},"22":{"line":58,"type":"if","locations":[{"start":{"line":58,"column":9},"end":{"line":58,"column":9}},{"start":{"line":58,"column":9},"end":{"line":58,"column":9}}]},"23":{"line":58,"type":"binary-expr","locations":[{"start":{"line":58,"column":13},"end":{"line":58,"column":29}},{"start":{"line":58,"column":33},"end":{"line":58,"column":53}}]},"24":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":9},"end":{"line":63,"column":9}},{"start":{"line":63,"column":9},"end":{"line":63,"column":9}}]},"25":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":9},"end":{"line":67,"column":9}},{"start":{"line":67,"column":9},"end":{"line":67,"column":9}}]},"26":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":9},"end":{"line":71,"column":9}},{"start":{"line":71,"column":9},"end":{"line":71,"column":9}}]},"27":{"line":73,"type":"binary-expr","locations":[{"start":{"line":73,"column":11},"end":{"line":73,"column":34}},{"start":{"line":73,"column":38},"end":{"line":73,"column":49}},{"start":{"line":73,"column":53},"end":{"line":73,"column":66}}]},"28":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":9},"end":{"line":75,"column":9}},{"start":{"line":75,"column":9},"end":{"line":75,"column":9}}]},"29":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":9},"end":{"line":79,"column":9}},{"start":{"line":79,"column":9},"end":{"line":79,"column":9}}]},"30":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":9},"end":{"line":83,"column":9}},{"start":{"line":83,"column":9},"end":{"line":83,"column":9}}]},"31":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":9},"end":{"line":87,"column":9}},{"start":{"line":87,"column":9},"end":{"line":87,"column":9}}]},"32":{"line":91,"type":"if","locations":[{"start":{"line":91,"column":9},"end":{"line":91,"column":9}},{"start":{"line":91,"column":9},"end":{"line":91,"column":9}}]},"33":{"line":91,"type":"binary-expr","locations":[{"start":{"line":91,"column":13},"end":{"line":91,"column":42}},{"start":{"line":91,"column":46},"end":{"line":91,"column":69}}]},"34":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":9},"end":{"line":95,"column":9}},{"start":{"line":95,"column":9},"end":{"line":95,"column":9}}]},"35":{"line":95,"type":"binary-expr","locations":[{"start":{"line":95,"column":13},"end":{"line":95,"column":36}},{"start":{"line":95,"column":40},"end":{"line":95,"column":67}}]},"36":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":9},"end":{"line":99,"column":9}},{"start":{"line":99,"column":9},"end":{"line":99,"column":9}}]},"37":{"line":99,"type":"binary-expr","locations":[{"start":{"line":99,"column":13},"end":{"line":99,"column":34}},{"start":{"line":99,"column":38},"end":{"line":99,"column":63}}]},"38":{"line":101,"type":"binary-expr","locations":[{"start":{"line":101,"column":11},"end":{"line":101,"column":40}},{"start":{"line":102,"column":6},"end":{"line":102,"column":35}},{"start":{"line":103,"column":6},"end":{"line":103,"column":41}},{"start":{"line":104,"column":6},"end":{"line":104,"column":41}},{"start":{"line":105,"column":6},"end":{"line":105,"column":43}}]},"39":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":9},"end":{"line":107,"column":9}},{"start":{"line":107,"column":9},"end":{"line":107,"column":9}}]},"40":{"line":107,"type":"binary-expr","locations":[{"start":{"line":107,"column":13},"end":{"line":107,"column":33}},{"start":{"line":107,"column":37},"end":{"line":107,"column":61}}]},"41":{"line":109,"type":"if","locations":[{"start":{"line":109,"column":4},"end":{"line":109,"column":4}},{"start":{"line":109,"column":4},"end":{"line":109,"column":4}}]},"42":{"line":112,"type":"if","locations":[{"start":{"line":112,"column":6},"end":{"line":112,"column":6}},{"start":{"line":112,"column":6},"end":{"line":112,"column":6}}]},"43":{"line":114,"type":"if","locations":[{"start":{"line":114,"column":43},"end":{"line":114,"column":43}},{"start":{"line":114,"column":43},"end":{"line":114,"column":43}}]},"44":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":4},"end":{"line":127,"column":4}},{"start":{"line":127,"column":4},"end":{"line":127,"column":4}}]},"45":{"line":127,"type":"binary-expr","locations":[{"start":{"line":127,"column":8},"end":{"line":127,"column":25}},{"start":{"line":127,"column":29},"end":{"line":127,"column":46}}]},"46":{"line":134,"type":"if","locations":[{"start":{"line":134,"column":18},"end":{"line":134,"column":18}},{"start":{"line":134,"column":18},"end":{"line":134,"column":18}}]},"47":{"line":134,"type":"binary-expr","locations":[{"start":{"line":134,"column":22},"end":{"line":134,"column":37}},{"start":{"line":134,"column":41},"end":{"line":134,"column":60}}]},"48":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":6},"end":{"line":142,"column":6}},{"start":{"line":142,"column":6},"end":{"line":142,"column":6}}]}}}}package/coverage/prettify.js000644 000765 000024 0000042241 12660714166014542 0ustar00000000 000000 window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); package/coverage/sorter.js000644 000765 000024 0000011661 12660714166014214 0ustar00000000 000000 var addSorting = (function () { "use strict"; var cols, currentSort = { index: 0, desc: false }; // returns the summary table element function getTable() { return document.querySelector('.coverage-summary table'); } // returns the thead element of the summary table function getTableHeader() { return getTable().querySelector('thead tr'); } // returns the tbody element of the summary table function getTableBody() { return getTable().querySelector('tbody'); } // returns the th element for nth column function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } // loads all columns function loadColumns() { var colNodes = getTableHeader().querySelectorAll('th'), colNode, cols = [], col, i; for (i = 0; i < colNodes.length; i += 1) { colNode = colNodes[i]; col = { key: colNode.getAttribute('data-col'), sortable: !colNode.getAttribute('data-nosort'), type: colNode.getAttribute('data-type') || 'string' }; cols.push(col); if (col.sortable) { col.defaultDescSort = col.type === 'number'; colNode.innerHTML = colNode.innerHTML + ''; } } return cols; } // attaches a data attribute to every tr element with an object // of data values keyed by column name function loadRowData(tableRow) { var tableCols = tableRow.querySelectorAll('td'), colNode, col, data = {}, i, val; for (i = 0; i < tableCols.length; i += 1) { colNode = tableCols[i]; col = cols[i]; val = colNode.getAttribute('data-value'); if (col.type === 'number') { val = Number(val); } data[col.key] = val; } return data; } // loads all row data function loadData() { var rows = getTableBody().querySelectorAll('tr'), i; for (i = 0; i < rows.length; i += 1) { rows[i].data = loadRowData(rows[i]); } } // sorts the table using the data for the ith column function sortByIndex(index, desc) { var key = cols[index].key, sorter = function (a, b) { a = a.data[key]; b = b.data[key]; return a < b ? -1 : a > b ? 1 : 0; }, finalSorter = sorter, tableBody = document.querySelector('.coverage-summary tbody'), rowNodes = tableBody.querySelectorAll('tr'), rows = [], i; if (desc) { finalSorter = function (a, b) { return -1 * sorter(a, b); }; } for (i = 0; i < rowNodes.length; i += 1) { rows.push(rowNodes[i]); tableBody.removeChild(rowNodes[i]); } rows.sort(finalSorter); for (i = 0; i < rows.length; i += 1) { tableBody.appendChild(rows[i]); } } // removes sort indicators for current column being sorted function removeSortIndicators() { var col = getNthColumn(currentSort.index), cls = col.className; cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); col.className = cls; } // adds sort indicators for current column being sorted function addSortIndicators() { getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; } // adds event listeners for all sorter widgets function enableUI() { var i, el, ithSorter = function ithSorter(i) { var col = cols[i]; return function () { var desc = col.defaultDescSort; if (currentSort.index === i) { desc = !currentSort.desc; } sortByIndex(i, desc); removeSortIndicators(); currentSort.index = i; currentSort.desc = desc; addSortIndicators(); }; }; for (i =0 ; i < cols.length; i += 1) { if (cols[i].sortable) { el = getNthColumn(i).querySelector('.sorter'); if (el.addEventListener) { el.addEventListener('click', ithSorter(i)); } else { el.attachEvent('onclick', ithSorter(i)); } } } } // adds sorting functionality to the UI return function () { if (!getTable()) { return; } cols = loadColumns(); loadData(cols); addSortIndicators(); enableUI(); }; })(); window.addEventListener('load', addSorting); package/coverage/__root__/index.html000644 000765 000024 0000006220 12660714166016107 0ustar00000000 000000 Code coverage report for __root__/

Code coverage report for __root__/

Statements: 69% (69 / 100)      Branches: 74.42% (64 / 86)      Functions: 100% (4 / 4)      Lines: 69.23% (63 / 91)      Ignored: none     

All files » __root__/
File Statements Branches Functions Lines
index.js 69% (69 / 100) 74.42% (64 / 86) 100% (4 / 4) 69.23% (63 / 91)
package/coverage/__root__/index.js.html000644 000765 000024 0000045663 12660714166016540 0ustar00000000 000000 Code coverage report for index.js

Code coverage report for index.js

Statements: 69% (69 / 100)      Branches: 74.42% (64 / 86)      Functions: 100% (4 / 4)      Lines: 69.23% (63 / 91)      Ignored: none     

All files » __root__/ » index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173    1 108     1   1 49     1 1                                                             1     1 105   105 40 40   65 1 1   64 5 5   59 2 2   57       57 2 2   55       55 2 2 2   53       53       53       53       53       53       53       53 10 10   43 4 4           39                               39 39 39 39     39         37 37 37 36 36   36 36 54 54 54     30   30 30            
'use strict'
 
function isArguments (obj) {
  return Object.prototype.toString.call(obj) === '[object Arguments]'
}
 
module.exports = match
 
function match (obj, pattern) {
  return match_(obj, pattern, [], [])
}
 
try {
  match.fastEqual = require('buffertools').equals
} catch (e) {
  // whoops, nobody told buffertools it wasn't installed
}
 
/**
1. If the object is a string, and the pattern is a RegExp, then return
   true if `pattern.test(object)`.
2. Use loose equality (`==`) only for all other value types
   (non-objects).  `tmatch` cares more about shape and contents than
   type. This step will also catch functions, with the useful
   (default) property that only references to the same function are
   considered equal.  'Ware the halting problem!
3. `null` *is* an object – a singleton value object, in fact – so if
   either is `null`, return object == pattern.
4. Since the only way to make it this far is for `object` or `pattern`
   to be an object, if `object` or `pattern` is *not* an object,
   they're clearly not a match.
5. It's much faster to compare dates by numeric value (`.getTime()`)
   than by lexical value.
6. Compare RegExps by their components, not the objects themselves.
7. The parts of an arguments list most people care about are the
   arguments themselves, not the callee, which you shouldn't be
   looking at anyway.
8. Objects are more complex:
   1. Return `true` if `object` and `pattern` both have no properties.
   2. Ensure that cyclical references don't blow up the stack.
   3. Ensure that all the key names in `pattern` exist in `object`.
   4. Ensure that all of the associated values match, recursively.
*/
 
var log = (/\btmatch\b/.test(process.env.NODE_DEBUG || '')) ?
  console.error : function () {}
 
function match_ (obj, pattern, ca, cb) {
  log('TMATCH', typeof obj, pattern)
  /*eslint eqeqeq:0*/
  if (obj == pattern) {
    log('TMATCH same object or simple value, true')
    return true
 
  } else if (obj === null || pattern === null) {
    log('TMATCH null test')
    return obj == pattern
 
  } else if (typeof obj === 'string' && pattern instanceof RegExp) {
    log('TMATCH string~=regexp test')
    return pattern.test(obj)
 
  } else if (typeof obj === 'string' && typeof pattern === 'string' && pattern) {
    log('TMATCH string~=string test')
    return obj.indexOf(pattern) !== -1
 
  } else Iif (pattern === Buffer) {
    log('TMATCH Buffer ctor')
    return Buffer.isBuffer(obj)
 
  } else if (obj instanceof Date && pattern instanceof Date) {
    log('TMATCH date test')
    return obj.getTime() === pattern.getTime()
 
  } else Iif (obj instanceof Date && typeof pattern === 'string') {
    log('TMATCH date~=string test')
    return obj.getTime() === new Date(pattern).getTime()
 
  } else if (isArguments(obj) || isArguments(pattern)) {
    log('TMATCH arguments test')
    var slice = Array.prototype.slice
    return match_(slice.call(obj), slice.call(pattern), ca, cb)
 
  } else Iif (pattern === Function) {
    log('TMATCH Function ctor')
    return typeof obj === 'function'
 
  } else Iif (pattern === Number) {
    log('TMATCH Number ctor')
    return typeof obj === 'number' && obj === obj
 
  } else Iif (pattern !== pattern) {
    log('TMATCH NaN')
    return obj !== obj
 
  } else Iif (pattern === String) {
    log('TMATCH String ctor')
    return typeof obj === 'string'
 
  } else Iif (pattern === Boolean) {
    log('TMATCH Boolean ctor')
    return typeof obj === 'boolean'
 
  } else Iif (pattern === Array) {
    log('TMATCH Array ctor')
    return Array.isArray(pattern)
 
  } else Iif (typeof pattern === 'function' && typeof obj === 'object') {
    log('TMATCH object~=function')
    return obj instanceof pattern
 
  } else if (typeof obj !== 'object' || typeof pattern !== 'object') {
    log('TMATCH obj is not object, pattern is not object, false')
    return false
 
  } else if (obj instanceof RegExp && pattern instanceof RegExp) {
    log('TMATCH regexp~=regexp test')
    return obj.source === pattern.source &&
    obj.global === pattern.global &&
    obj.multiline === pattern.multiline &&
    obj.lastIndex === pattern.lastIndex &&
    obj.ignoreCase === pattern.ignoreCase
 
  } else Iif (Buffer.isBuffer(obj) && Buffer.isBuffer(pattern)) {
    log('TMATCH buffer test')
    if (obj.equals) {
      return obj.equals(pattern)
    } else if (match.fastEqual) {
      return match.fastEqual.call(obj, pattern)
    } else {
      if (obj.length !== pattern.length) return false
 
      for (var j = 0; j < obj.length; j++) if (obj[j] != pattern[j]) return false
 
      return true
    }
 
  } else {
    // both are objects.  interesting case!
    log('TMATCH object~=object test')
    var kobj = Object.keys(obj)
    var kpat = Object.keys(pattern)
    log('  TMATCH patternkeys=%j objkeys=%j', kpat, kobj)
 
    // don't bother with stack acrobatics if there's nothing there
    if (kobj.length === 0 && kpat.length === 0) return true
 
    // if we've seen this exact pattern and object already, then
    // it means that pattern and obj have matching cyclicalness
    // however, non-cyclical patterns can match cyclical objects
    log('  TMATCH check seen objects...')
    var cal = ca.length
    while (cal--) if (ca[cal] === obj && cb[cal] === pattern) return true
    ca.push(obj); cb.push(pattern)
    log('  TMATCH not seen previously')
 
    var key
    for (var l = kpat.length - 1; l >= 0; l--) {
      key = kpat[l]
      log('  TMATCH test obj[%j]', key, obj[key], pattern[key])
      if (!match_(obj[key], pattern[key], ca, cb)) return false
    }
 
    ca.pop(); cb.pop()
 
    log('  TMATCH object pass')
    return true
  }
 
  log('TMATCH no way to match')
  return false
}
 
package/coverage/base.css000644 000765 000024 0000011224 12660714166013757 0ustar00000000 000000 body, html { margin:0; padding: 0; } body { font-family: Helvetica Neue, Helvetica,Arial; font-size: 10pt; } div.header, div.footer { background: #eee; padding: 1em; } div.header { z-index: 100; position: fixed; top: 0; border-bottom: 1px solid #666; width: 100%; } div.footer { border-top: 1px solid #666; } div.body { margin-top: 10em; } div.meta { font-size: 90%; text-align: center; } h1, h2, h3 { font-weight: normal; } h1 { font-size: 12pt; } h2 { font-size: 10pt; } pre { font-family: Consolas, Menlo, Monaco, monospace; margin: 0; padding: 0; line-height: 1.3; font-size: 14px; -moz-tab-size: 2; -o-tab-size: 2; tab-size: 2; } div.path { font-size: 110%; } div.path a:link, div.path a:visited { color: #000; } table.coverage { border-collapse: collapse; margin:0; padding: 0 } table.coverage td { margin: 0; padding: 0; color: #111; vertical-align: top; } table.coverage td.line-count { width: 50px; text-align: right; padding-right: 5px; } table.coverage td.line-coverage { color: #777 !important; text-align: right; border-left: 1px solid #666; border-right: 1px solid #666; } table.coverage td.text { } table.coverage td span.cline-any { display: inline-block; padding: 0 5px; width: 40px; } table.coverage td span.cline-neutral { background: #eee; } table.coverage td span.cline-yes { background: #b5d592; color: #999; } table.coverage td span.cline-no { background: #fc8c84; } .cstat-yes { color: #111; } .cstat-no { background: #fc8c84; color: #111; } .fstat-no { background: #ffc520; color: #111 !important; } .cbranch-no { background: yellow !important; color: #111; } .cstat-skip { background: #ddd; color: #111; } .fstat-skip { background: #ddd; color: #111 !important; } .cbranch-skip { background: #ddd !important; color: #111; } .missing-if-branch { display: inline-block; margin-right: 10px; position: relative; padding: 0 4px; background: black; color: yellow; } .skip-if-branch { display: none; margin-right: 10px; position: relative; padding: 0 4px; background: #ccc; color: white; } .missing-if-branch .typ, .skip-if-branch .typ { color: inherit !important; } .entity, .metric { font-weight: bold; } .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; } .metric small { font-size: 80%; font-weight: normal; color: #666; } div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; } div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; } div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; } div.coverage-summary th.file { border-right: none !important; } div.coverage-summary th.pic { border-left: none !important; text-align: right; } div.coverage-summary th.pct { border-right: none !important; } div.coverage-summary th.abs { border-left: none !important; text-align: right; } div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; } div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; } div.coverage-summary td.file { border-left: 1px solid #666; white-space: nowrap; } div.coverage-summary td.pic { min-width: 120px !important; } div.coverage-summary a:link { text-decoration: none; color: #000; } div.coverage-summary a:visited { text-decoration: none; color: #777; } div.coverage-summary a:hover { text-decoration: underline; } div.coverage-summary tfoot td { border-top: 1px solid #666; } div.coverage-summary .sorter { height: 10px; width: 7px; display: inline-block; margin-left: 0.5em; background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; } div.coverage-summary .sorted .sorter { background-position: 0 -20px; } div.coverage-summary .sorted-desc .sorter { background-position: 0 -10px; } .high { background: #b5d592 !important; } .medium { background: #ffe87c !important; } .low { background: #fc8c84 !important; } span.cover-fill, span.cover-empty { display:inline-block; border:1px solid #444; background: white; height: 12px; } span.cover-fill { background: #ccc; border-right: 1px solid #444; } span.cover-empty { background: white; border-left: none; } span.cover-full { border-right: none !important; } pre.prettyprint { border: none !important; padding: 0 !important; margin: 0 !important; } .com { color: #999 !important; } .ignore-none { color: #999; font-weight: normal; } package/coverage/index.html000644 000765 000024 0000006123 12660714166014332 0ustar00000000 000000 Code coverage report for All files

Code coverage report for All files

Statements: 69% (69 / 100)      Branches: 74.42% (64 / 86)      Functions: 100% (4 / 4)      Lines: 69.23% (63 / 91)      Ignored: none     

File Statements Branches Functions Lines
__root__/ 69% (69 / 100) 74.42% (64 / 86) 100% (4 / 4) 69.23% (63 / 91)
package/coverage/lcov-report/prettify.js000644 000765 000024 0000042241 12661161005017003 0ustar00000000 000000 window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); package/coverage/lcov-report/sorter.js000644 000765 000024 0000012066 12661161005016455 0ustar00000000 000000 var addSorting = (function () { "use strict"; var cols, currentSort = { index: 0, desc: false }; // returns the summary table element function getTable() { return document.querySelector('.coverage-summary'); } // returns the thead element of the summary table function getTableHeader() { return getTable().querySelector('thead tr'); } // returns the tbody element of the summary table function getTableBody() { return getTable().querySelector('tbody'); } // returns the th element for nth column function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } // loads all columns function loadColumns() { var colNodes = getTableHeader().querySelectorAll('th'), colNode, cols = [], col, i; for (i = 0; i < colNodes.length; i += 1) { colNode = colNodes[i]; col = { key: colNode.getAttribute('data-col'), sortable: !colNode.getAttribute('data-nosort'), type: colNode.getAttribute('data-type') || 'string' }; cols.push(col); if (col.sortable) { col.defaultDescSort = col.type === 'number'; colNode.innerHTML = colNode.innerHTML + ''; } } return cols; } // attaches a data attribute to every tr element with an object // of data values keyed by column name function loadRowData(tableRow) { var tableCols = tableRow.querySelectorAll('td'), colNode, col, data = {}, i, val; for (i = 0; i < tableCols.length; i += 1) { colNode = tableCols[i]; col = cols[i]; val = colNode.getAttribute('data-value'); if (col.type === 'number') { val = Number(val); } data[col.key] = val; } return data; } // loads all row data function loadData() { var rows = getTableBody().querySelectorAll('tr'), i; for (i = 0; i < rows.length; i += 1) { rows[i].data = loadRowData(rows[i]); } } // sorts the table using the data for the ith column function sortByIndex(index, desc) { var key = cols[index].key, sorter = function (a, b) { a = a.data[key]; b = b.data[key]; return a < b ? -1 : a > b ? 1 : 0; }, finalSorter = sorter, tableBody = document.querySelector('.coverage-summary tbody'), rowNodes = tableBody.querySelectorAll('tr'), rows = [], i; if (desc) { finalSorter = function (a, b) { return -1 * sorter(a, b); }; } for (i = 0; i < rowNodes.length; i += 1) { rows.push(rowNodes[i]); tableBody.removeChild(rowNodes[i]); } rows.sort(finalSorter); for (i = 0; i < rows.length; i += 1) { tableBody.appendChild(rows[i]); } } // removes sort indicators for current column being sorted function removeSortIndicators() { var col = getNthColumn(currentSort.index), cls = col.className; cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); col.className = cls; } // adds sort indicators for current column being sorted function addSortIndicators() { getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; } // adds event listeners for all sorter widgets function enableUI() { var i, el, ithSorter = function ithSorter(i) { var col = cols[i]; return function () { var desc = col.defaultDescSort; if (currentSort.index === i) { desc = !currentSort.desc; } sortByIndex(i, desc); removeSortIndicators(); currentSort.index = i; currentSort.desc = desc; addSortIndicators(); }; }; for (i =0 ; i < cols.length; i += 1) { if (cols[i].sortable) { // add the click event handler on the th so users // dont have to click on those tiny arrows el = getNthColumn(i).querySelector('.sorter').parentElement; if (el.addEventListener) { el.addEventListener('click', ithSorter(i)); } else { el.attachEvent('onclick', ithSorter(i)); } } } } // adds sorting functionality to the UI return function () { if (!getTable()) { return; } cols = loadColumns(); loadData(cols); addSortIndicators(); enableUI(); }; })(); window.addEventListener('load', addSorting); package/coverage/lcov-report/__root__/index.html000644 000765 000024 0000007206 12661161005020355 0ustar00000000 000000 Code coverage report for __root__/

all files __root__/

100% Statements 95/95
100% Branches 85/85
100% Functions 4/4
100% Lines 87/87
1 statement, 1 branch Ignored     
File Statements Branches Functions Lines
index.js
100% 95/95 100% 85/85 100% 4/4 100% 87/87
package/coverage/lcov-report/__root__/index.js.html000644 000765 000024 0000041121 12661161005020762 0ustar00000000 000000 Code coverage report for index.js

all files / __root__/ index.js

100% Statements 95/95
100% Branches 85/85
100% Functions 4/4
100% Lines 87/87
1 statement, 1 branch Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166    158×       59×                                                               133× 133× 41× 41×   92×   91×   86×   83×   81×   80×   78×   77×   76×   72×   71×   70×   69×   68×   66× 10× 10×   56×           52×               46× 46× 46× 46×     46×         44× 44× 44× 43× 43×   43× 43× 72× 72× 72×     34× 34×   34× 34×          
'use strict'
 
function isArguments (obj) {
  return Object.prototype.toString.call(obj) === '[object Arguments]'
}
 
module.exports = match
 
function match (obj, pattern) {
  return match_(obj, pattern, [], [])
}
 
/**
1. If the object is a string, and the pattern is a RegExp, then return
   true if `pattern.test(object)`.
2. Use loose equality (`==`) only for all other value types
   (non-objects).  `tmatch` cares more about shape and contents than
   type. This step will also catch functions, with the useful
   (default) property that only references to the same function are
   considered equal.  'Ware the halting problem!
3. `null` *is* an object – a singleton value object, in fact – so if
   either is `null`, return object == pattern.
4. Since the only way to make it this far is for `object` or `pattern`
   to be an object, if `object` or `pattern` is *not* an object,
   they're clearly not a match.
5. It's much faster to compare dates by numeric value (`.getTime()`)
   than by lexical value.
6. Compare RegExps by their components, not the objects themselves.
7. The parts of an arguments list most people care about are the
   arguments themselves, not the callee, which you shouldn't be
   looking at anyway.
8. Objects are more complex:
   1. Return `true` if `object` and `pattern` both have no properties.
   2. Ensure that cyclical references don't blow up the stack.
   3. Ensure that all the key names in `pattern` exist in `object`.
   4. Ensure that all of the associated values match, recursively.
*/
 
/* istanbul ignore next */
var log = (/\btmatch\b/.test(process.env.NODE_DEBUG || '')) ?
  console.error : function () {}
 
function match_ (obj, pattern, ca, cb) {
  log('TMATCH', typeof obj, pattern)
  if (obj == pattern) {
    log('TMATCH same object or simple value, true')
    return true
 
  } else if (obj === null || pattern === null) {
    log('TMATCH null test, already failed ==')
    return false
 
  } else if (typeof obj === 'string' && pattern instanceof RegExp) {
    log('TMATCH string~=regexp test')
    return pattern.test(obj)
 
  } else if (typeof obj === 'string' && typeof pattern === 'string' && pattern) {
    log('TMATCH string~=string test')
    return obj.indexOf(pattern) !== -1
 
  } else if (obj instanceof Date && pattern instanceof Date) {
    log('TMATCH date test')
    return obj.getTime() === pattern.getTime()
 
  } else if (obj instanceof Date && typeof pattern === 'string') {
    log('TMATCH date~=string test')
    return obj.getTime() === new Date(pattern).getTime()
 
  } else if (isArguments(obj) || isArguments(pattern)) {
    log('TMATCH arguments test')
    var slice = Array.prototype.slice
    return match_(slice.call(obj), slice.call(pattern), ca, cb)
 
  } else if (pattern === Buffer) {
    log('TMATCH Buffer ctor')
    return Buffer.isBuffer(obj)
 
  } else if (pattern === Function) {
    log('TMATCH Function ctor')
    return typeof obj === 'function'
 
  } else if (pattern === Number) {
    log('TMATCH Number ctor (finite, not NaN)')
    return typeof obj === 'number' && obj === obj && isFinite(obj)
 
  } else if (pattern !== pattern) {
    log('TMATCH NaN')
    return obj !== obj
 
  } else if (pattern === String) {
    log('TMATCH String ctor')
    return typeof obj === 'string'
 
  } else if (pattern === Boolean) {
    log('TMATCH Boolean ctor')
    return typeof obj === 'boolean'
 
  } else if (pattern === Array) {
    log('TMATCH Array ctor', pattern, Array.isArray(obj))
    return Array.isArray(obj)
 
  } else if (typeof pattern === 'function' && typeof obj === 'object') {
    log('TMATCH object~=function')
    return obj instanceof pattern
 
  } else if (typeof obj !== 'object' || typeof pattern !== 'object') {
    log('TMATCH obj is not object, pattern is not object, false')
    return false
 
  } else if (obj instanceof RegExp && pattern instanceof RegExp) {
    log('TMATCH regexp~=regexp test')
    return obj.source === pattern.source &&
      obj.global === pattern.global &&
      obj.multiline === pattern.multiline &&
      obj.lastIndex === pattern.lastIndex &&
      obj.ignoreCase === pattern.ignoreCase
 
  } else if (Buffer.isBuffer(obj) && Buffer.isBuffer(pattern)) {
    log('TMATCH buffer test')
    if (obj.equals) {
      return obj.equals(pattern)
    } else {
      if (obj.length !== pattern.length) return false
 
      for (var j = 0; j < obj.length; j++) if (obj[j] != pattern[j]) return false
 
      return true
    }
 
  } else {
    // both are objects.  interesting case!
    log('TMATCH object~=object test')
    var kobj = Object.keys(obj)
    var kpat = Object.keys(pattern)
    log('  TMATCH patternkeys=%j objkeys=%j', kpat, kobj)
 
    // don't bother with stack acrobatics if there's nothing there
    if (kobj.length === 0 && kpat.length === 0) return true
 
    // if we've seen this exact pattern and object already, then
    // it means that pattern and obj have matching cyclicalness
    // however, non-cyclical patterns can match cyclical objects
    log('  TMATCH check seen objects...')
    var cal = ca.length
    while (cal--) if (ca[cal] === obj && cb[cal] === pattern) return true
    ca.push(obj); cb.push(pattern)
    log('  TMATCH not seen previously')
 
    var key
    for (var l = kpat.length - 1; l >= 0; l--) {
      key = kpat[l]
      log('  TMATCH test obj[%j]', key, obj[key], pattern[key])
      if (!match_(obj[key], pattern[key], ca, cb)) return false
    }
 
    ca.pop()
    cb.pop()
 
    log('  TMATCH object pass')
    return true
  }
 
  /* istanbul ignore next */
  throw new Error('impossible to reach this point')
}
 
package/coverage/lcov-report/base.css000644 000765 000024 0000011702 12661161005016221 0ustar00000000 000000 body, html { margin:0; padding: 0; height: 100%; } body { font-family: Helvetica Neue, Helvetica, Arial; font-size: 14px; color:#333; } .small { font-size: 12px;; } *, *:after, *:before { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; } h1 { font-size: 20px; margin: 0;} h2 { font-size: 14px; } pre { font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; margin: 0; padding: 0; -moz-tab-size: 2; -o-tab-size: 2; tab-size: 2; } a { color:#0074D9; text-decoration:none; } a:hover { text-decoration:underline; } .strong { font-weight: bold; } .space-top1 { padding: 10px 0 0 0; } .pad2y { padding: 20px 0; } .pad1y { padding: 10px 0; } .pad2x { padding: 0 20px; } .pad2 { padding: 20px; } .pad1 { padding: 10px; } .space-left2 { padding-left:55px; } .space-right2 { padding-right:20px; } .center { text-align:center; } .clearfix { display:block; } .clearfix:after { content:''; display:block; height:0; clear:both; visibility:hidden; } .fl { float: left; } @media only screen and (max-width:640px) { .col3 { width:100%; max-width:100%; } .hide-mobile { display:none!important; } } .quiet { color: #7f7f7f; color: rgba(0,0,0,0.5); } .quiet a { opacity: 0.7; } .fraction { font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10px; color: #555; background: #E8E8E8; padding: 4px 5px; border-radius: 3px; vertical-align: middle; } div.path a:link, div.path a:visited { color: #333; } table.coverage { border-collapse: collapse; margin: 10px 0 0 0; padding: 0; } table.coverage td { margin: 0; padding: 0; vertical-align: top; } table.coverage td.line-count { text-align: right; padding: 0 5px 0 20px; } table.coverage td.line-coverage { text-align: right; padding-right: 10px; min-width:20px; } table.coverage td span.cline-any { display: inline-block; padding: 0 5px; width: 100%; } .missing-if-branch { display: inline-block; margin-right: 5px; border-radius: 3px; position: relative; padding: 0 4px; background: #333; color: yellow; } .skip-if-branch { display: none; margin-right: 10px; position: relative; padding: 0 4px; background: #ccc; color: white; } .missing-if-branch .typ, .skip-if-branch .typ { color: inherit !important; } .coverage-summary { border-collapse: collapse; width: 100%; } .coverage-summary tr { border-bottom: 1px solid #bbb; } .keyline-all { border: 1px solid #ddd; } .coverage-summary td, .coverage-summary th { padding: 10px; } .coverage-summary tbody { border: 1px solid #bbb; } .coverage-summary td { border-right: 1px solid #bbb; } .coverage-summary td:last-child { border-right: none; } .coverage-summary th { text-align: left; font-weight: normal; white-space: nowrap; } .coverage-summary th.file { border-right: none !important; } .coverage-summary th.pct { } .coverage-summary th.pic, .coverage-summary th.abs, .coverage-summary td.pct, .coverage-summary td.abs { text-align: right; } .coverage-summary td.file { white-space: nowrap; } .coverage-summary td.pic { min-width: 120px !important; } .coverage-summary tfoot td { } .coverage-summary .sorter { height: 10px; width: 7px; display: inline-block; margin-left: 0.5em; background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; } .coverage-summary .sorted .sorter { background-position: 0 -20px; } .coverage-summary .sorted-desc .sorter { background-position: 0 -10px; } .status-line { height: 10px; } /* dark red */ .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } .low .chart { border:1px solid #C21F39 } /* medium red */ .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } /* light red */ .low, .cline-no { background:#FCE1E5 } /* light green */ .high, .cline-yes { background:rgb(230,245,208) } /* medium green */ .cstat-yes { background:rgb(161,215,106) } /* dark green */ .status-line.high, .high .cover-fill { background:rgb(77,146,33) } .high .chart { border:1px solid rgb(77,146,33) } .medium .chart { border:1px solid #666; } .medium .cover-fill { background: #666; } .cbranch-no { background: yellow !important; color: #111; } .cstat-skip { background: #ddd; color: #111; } .fstat-skip { background: #ddd; color: #111 !important; } .cbranch-skip { background: #ddd !important; color: #111; } span.cline-neutral { background: #eaeaea; } .medium { background: #eaeaea; } .cover-fill, .cover-empty { display:inline-block; height: 12px; } .chart { line-height: 0; } .cover-empty { background: white; } .cover-full { border-right: none !important; } pre.prettyprint { border: none !important; padding: 0 !important; margin: 0 !important; } .com { color: #999 !important; } .ignore-none { color: #999; font-weight: normal; } .wrapper { min-height: 100%; height: auto !important; height: 100%; margin: 0 auto -48px; } .footer, .push { height: 48px; } package/coverage/lcov-report/index.html000644 000765 000024 0000007121 12661161005016572 0ustar00000000 000000 Code coverage report for All files

/

100% Statements 95/95
100% Branches 85/85
100% Functions 4/4
100% Lines 87/87
1 statement, 1 branch Ignored     
File Statements Branches Functions Lines
__root__/
100% 95/95 100% 85/85 100% 4/4 100% 87/87
package/coverage/lcov-report/prettify.css000644 000765 000024 0000001244 12661161005017155 0ustar00000000 000000 .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} package/coverage/lcov-report/sort-arrow-sprite.png000644 000765 000024 0000000321 12661161005020721 0ustar00000000 000000 PNG  IHDRF3tEXtSoftwareAdobe ImageReadyqe<sIDATxڼRA De[ HfFX gf3Dd Fw-˘ ngM+OVں=""/ĥ'Y?HhV @pY8Bwc,IENDB`package/coverage/lcov.info000644 000765 000024 0000004411 12661161005014140 0ustar00000000 000000 TN: SF:./index.js FN:3,isArguments FN:9,match FN:41,(anonymous_3) FN:43,match_ FNF:4 FNH:4 FNDA:158,isArguments FNDA:59,match FNDA:505,(anonymous_3) FNDA:133,match_ DA:3,1 DA:4,158 DA:7,1 DA:9,1 DA:10,59 DA:40,1 DA:43,1 DA:44,133 DA:45,133 DA:46,41 DA:47,41 DA:49,92 DA:50,1 DA:51,1 DA:53,91 DA:54,5 DA:55,5 DA:57,86 DA:58,3 DA:59,3 DA:61,83 DA:62,2 DA:63,2 DA:65,81 DA:66,1 DA:67,1 DA:69,80 DA:70,2 DA:71,2 DA:72,2 DA:74,78 DA:75,1 DA:76,1 DA:78,77 DA:79,1 DA:80,1 DA:82,76 DA:83,4 DA:84,4 DA:86,72 DA:87,1 DA:88,1 DA:90,71 DA:91,1 DA:92,1 DA:94,70 DA:95,1 DA:96,1 DA:98,69 DA:99,1 DA:100,1 DA:102,68 DA:103,2 DA:104,2 DA:106,66 DA:107,10 DA:108,10 DA:110,56 DA:111,4 DA:112,4 DA:118,52 DA:119,6 DA:120,6 DA:121,3 DA:123,3 DA:125,3 DA:127,1 DA:132,46 DA:133,46 DA:134,46 DA:135,46 DA:138,46 DA:143,44 DA:144,44 DA:145,44 DA:146,43 DA:147,43 DA:149,43 DA:150,43 DA:151,72 DA:152,72 DA:153,72 DA:156,34 DA:157,34 DA:159,34 DA:160,34 DA:164,1 LF:87 LH:87 BRDA:40,1,0,0 BRDA:40,1,1,1 BRDA:40,2,0,1 BRDA:40,2,1,1 BRDA:45,3,0,41 BRDA:45,3,1,92 BRDA:49,4,0,1 BRDA:49,4,1,91 BRDA:49,5,0,92 BRDA:49,5,1,92 BRDA:53,6,0,5 BRDA:53,6,1,86 BRDA:53,7,0,91 BRDA:53,7,1,10 BRDA:57,8,0,3 BRDA:57,8,1,83 BRDA:57,9,0,86 BRDA:57,9,1,5 BRDA:57,9,2,3 BRDA:61,10,0,2 BRDA:61,10,1,81 BRDA:61,11,0,83 BRDA:61,11,1,5 BRDA:65,12,0,1 BRDA:65,12,1,80 BRDA:65,13,0,81 BRDA:65,13,1,3 BRDA:69,14,0,2 BRDA:69,14,1,78 BRDA:69,15,0,80 BRDA:69,15,1,78 BRDA:74,16,0,1 BRDA:74,16,1,77 BRDA:78,17,0,1 BRDA:78,17,1,76 BRDA:82,18,0,4 BRDA:82,18,1,72 BRDA:84,19,0,4 BRDA:84,19,1,4 BRDA:84,19,2,3 BRDA:86,20,0,1 BRDA:86,20,1,71 BRDA:90,21,0,1 BRDA:90,21,1,70 BRDA:94,22,0,1 BRDA:94,22,1,69 BRDA:98,23,0,1 BRDA:98,23,1,68 BRDA:102,24,0,2 BRDA:102,24,1,66 BRDA:102,25,0,68 BRDA:102,25,1,4 BRDA:106,26,0,10 BRDA:106,26,1,56 BRDA:106,27,0,66 BRDA:106,27,1,57 BRDA:110,28,0,4 BRDA:110,28,1,52 BRDA:110,29,0,56 BRDA:110,29,1,4 BRDA:112,30,0,4 BRDA:112,30,1,3 BRDA:112,30,2,2 BRDA:112,30,3,2 BRDA:112,30,4,2 BRDA:118,31,0,6 BRDA:118,31,1,46 BRDA:118,32,0,52 BRDA:118,32,1,6 BRDA:120,33,0,3 BRDA:120,33,1,3 BRDA:123,34,0,1 BRDA:123,34,1,2 BRDA:125,35,0,1 BRDA:125,35,1,2 BRDA:138,36,0,2 BRDA:138,36,1,44 BRDA:138,37,0,46 BRDA:138,37,1,2 BRDA:145,38,0,1 BRDA:145,38,1,14 BRDA:145,39,0,15 BRDA:145,39,1,1 BRDA:153,40,0,9 BRDA:153,40,1,63 BRF:85 BRH:85 end_of_record package/coverage/prettify.css000644 000765 000024 0000001244 12660714166014714 0ustar00000000 000000 .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} package/coverage/sort-arrow-sprite.png000644 000765 000024 0000000321 12660714166016460 0ustar00000000 000000 PNG  IHDRF3tEXtSoftwareAdobe ImageReadyqe<sIDATxڼRA De[ HfFX gf3Dd Fw-˘ ngM+OVں=""/ĥ'Y?HhV @pY8Bwc,IENDB`package/test/deep.js000644 000765 000024 0000012745 12661161645013002 0ustar00000000 000000 var tap = require('tap') var test = tap.test var match = require('../') test("shouldn't care about key order and types", function (t) { t.ok(match({ a: 1, b: 2 }, { b: 2, a: '1' })) t.end() }) test('should notice objects with different shapes', function (t) { t.notOk(match( { a: 1, b: 'a thing' }, { a: 1, b: undefined } )) t.ok(match( { a: 1 }, { a: 1, b: undefined } )) t.end() }) test('extra keys in object are ok', function (t) { t.ok(match( { a: 1, b: null, c: 'ok' }, { a: 1, b: undefined } )) t.end() }) test('should notice objects with different keys', function (t) { t.notOk(match( { a: 1, b: 2 }, { a: 1, c: 2 } )) t.end() }) test('should handle dates', function (t) { t.notOk(match(new Date('1972-08-01'), null)) t.notOk(match(new Date('1972-08-01'), undefined)) t.ok(match(new Date('1972-08-01'), new Date('1972-08-01'))) t.ok(match({ x: new Date('1972-08-01') }, { x: new Date('1972-08-01') })) t.end() }) test('should handle RegExps', function (t) { t.notOk(match(/[b]/, /[a]/)) t.notOk(match(/[a]/i, /[a]/g)) t.ok(match(/[a]/, /[a]/)) t.ok(match(/ab?[a-z]{,6}/g, /ab?[a-z]{,6}/g)) t.end() }) test('should handle functions', function (t) { var fnA = function (a) { return a } var fnB = function (a) { return a } t.notOk(match( function a () {}, function a () {} // but is it the _same_ a tho )) t.notOk(match(fnA, fnB)) t.ok(match(fnA, fnA)) t.ok(match(fnB, fnB)) t.end() }) test('should handle arguments', function (t) { var outer = arguments ;(function (tt) { var inner = arguments t.ok(match(outer, outer)) t.ok(match(outer, inner)) t.ok(match(outer, [t])) }(t)) t.end() }) test('same arrays match', function (t) { t.ok(match([1, 2, 3], [1, 2, 3])) t.end() }) test("different arrays don't match", function (t) { t.notOk(match([1, 2, 3], [1, 2, 3, 4])) t.notOk(match([1, 2, 3], [1, 2, 4])) t.end() }) test('empty arrays match', function (t) { t.ok(match([], [])) t.ok(match({ x: [] }, { x: [] })) t.end() }) test("shallower shouldn't care about key order recursively and types", function (t) { t.ok(match( { x: { a: 1, b: 2 }, y: { c: 3, d: 4 } }, { y: { d: 4, c: 3 }, x: { b: '2', a: '1' } } )) t.end() }) test('undefined is the same as itself', function (t) { t.ok(match(undefined, undefined)) t.ok(match({ x: undefined }, { x: undefined })) t.ok(match({ x: [undefined] }, { x: [undefined] })) t.end() }) test('undefined and null are Close Enough', function (t) { t.ok(match(undefined, null)) t.ok(match({ x: null }, { x: undefined })) t.ok(match({ x: [undefined] }, { x: [null] })) t.end() }) test("null is as shallow as you'd expect", function (t) { t.ok(match(null, null)) t.ok(match({ x: null }, { x: null })) t.ok(match({ x: [null] }, { x: [null] })) t.end() }) test('the same number matches', function (t) { t.ok(match(0, 0)) t.ok(match(1, 1)) t.ok(match(3.14, 3.14)) t.end() }) test("different numbers don't match", function (t) { t.notOk(match(0, 1)) t.notOk(match(1, -1)) t.notOk(match(3.14, 2.72)) t.end() }) test("tmatch shouldn't care about key order (but still might) and types", function (t) { t.ok(match( [ { foo: { z: 100, y: 200, x: 300 } }, 'bar', 11, { baz: { d: 4, a: 1, b: 2, c: 3 } } ], [ { foo: { z: 100, y: 200, x: 300 } }, 'bar', 11, { baz: { a: '1', b: '2', c: '3', d: '4' } } ] )) t.end() }) test("match shouldn't blow up on circular data structures", function (t) { var x1 = { z: 4 } var y1 = { x: x1 } x1.y = y1 var x2 = { z: 4 } var y2 = { x: x2 } x2.y = y2 t.ok(match(x1, x2)) t.end() }) test('regexps match strings', function (t) { var x = { one: 'String' } var y = { one: /.ring$/ } t.ok(match(x, y)) t.ok(match(x.one, y.one)) x = [ 'String', 'String' ] y = [ /.ring$/, /.ring$/ ] t.ok(match(x, y)) x = [ 'Ring', /.ring$/ ] y = [ /.ring$/ ] t.notOk(match(x, y)) t.end() }) test('partial strings match on indexOf', function (t) { var x = { one: 'String' } var y = { one: 'rin' } t.ok(match(x, y)) t.notOk(match(y, x)) t.end() }) test('ctors and other fun things', function (t) { function Foo () { this._isFoo = 'foo' } t.notOk(match(new Buffer('asdf'), new Buffer('asdff'))) var d = new Date().toISOString() var obj = { buffer: new Buffer('x'), date: new Date(d), fn: function () {}, foo: new Foo(), num: 1.2, nan: NaN, bool: true, array: [], str: 'asdf', inf: Infinity, neginf: -Infinity } t.ok(match(obj, { buffer: Buffer, date: Date, fn: Function, foo: Foo, num: Number, nan: NaN, bool: Boolean, array: Array, str: String })) t.ok(match(obj, { buffer: new Buffer('x'), date: d, foo: new Foo(), str: 'sd' })) var buf = new Buffer('x') buf.equals = null t.ok(match(obj, { buffer: buf })) var buf2 = new Buffer('y') buf2.equals = null t.notOk(match(buf, buf2)) var buf3 = new Buffer('xy') buf3.equals = null t.notOk(match(buf, buf3)) var buf4 = new Buffer('xy') buf4.equals = null t.ok(match(buf4, buf3)) t.notOk(match(obj, { inf: Number })) t.notOk(match(obj, { neginf: Number })) t.notOk(match(obj, { nan: Number })) t.end() }) test('js WAT! array/string stuff', function (t) { t.notOk(match([1], 1)) t.notOk(match(1, [1])) t.ok(match([1], [1])) var o = {} t.ok(match(o, o)) t.ok(match(1, '1')) t.end() })