aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tmp
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/tmp
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
node_modules
Diffstat (limited to 'node_modules/tmp')
-rw-r--r--node_modules/tmp/.eslintrc.js24
-rw-r--r--node_modules/tmp/Gruntfile.js18
-rw-r--r--node_modules/tmp/LICENSE21
-rwxr-xr-xnode_modules/tmp/cleanup.sh3
-rw-r--r--node_modules/tmp/coverage/coverage.json1
-rw-r--r--node_modules/tmp/coverage/lcov-report/base.css213
-rw-r--r--node_modules/tmp/coverage/lcov-report/index.html93
-rw-r--r--node_modules/tmp/coverage/lcov-report/lib/index.html93
-rw-r--r--node_modules/tmp/coverage/lcov-report/lib/tmp.js.html1448
-rw-r--r--node_modules/tmp/coverage/lcov-report/prettify.css1
-rw-r--r--node_modules/tmp/coverage/lcov-report/prettify.js1
-rw-r--r--node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.pngbin0 -> 209 bytes
-rw-r--r--node_modules/tmp/coverage/lcov-report/sorter.js158
-rw-r--r--node_modules/tmp/coverage/lcov.info300
-rwxr-xr-xnode_modules/tmp/run-tests7
-rw-r--r--node_modules/tmp/test/dir-sync-test.js230
-rw-r--r--node_modules/tmp/test/file-sync-test.js190
-rw-r--r--node_modules/tmp/test/graceful-sync.js20
-rw-r--r--node_modules/tmp/test/issue62-sync.js27
-rw-r--r--node_modules/tmp/test/issue62.js27
-rw-r--r--node_modules/tmp/test/keep-sync.js12
-rw-r--r--node_modules/tmp/test/spawn-sync.js32
-rw-r--r--node_modules/tmp/test/unsafe-sync.js30
23 files changed, 2949 insertions, 0 deletions
diff --git a/node_modules/tmp/.eslintrc.js b/node_modules/tmp/.eslintrc.js
new file mode 100644
index 000000000..8222a832b
--- /dev/null
+++ b/node_modules/tmp/.eslintrc.js
@@ -0,0 +1,24 @@
+module.exports = {
+ "env": {
+ "node": true
+ },
+ "extends": "eslint:recommended",
+ "rules": {
+ "indent": [
+ "error",
+ 2
+ ],
+ "linebreak-style": [
+ "error",
+ "unix"
+ ],
+ "quotes": [
+ "error",
+ "single"
+ ],
+ "semi": [
+ "error",
+ "always"
+ ]
+ }
+};
diff --git a/node_modules/tmp/Gruntfile.js b/node_modules/tmp/Gruntfile.js
new file mode 100644
index 000000000..8df64e70d
--- /dev/null
+++ b/node_modules/tmp/Gruntfile.js
@@ -0,0 +1,18 @@
+module.exports = function(grunt) {
+ grunt.initConfig({
+ jshint: {
+ all: ['Gruntfile.js', 'lib/*.js', 'test/*.js']
+ },
+ vows: {
+ all: {
+ src: ['test/*.js'],
+ }
+ }
+ });
+
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ //grunt.loadNpmTasks('grunt-vows-runner');
+ grunt.loadNpmTasks('grunt-vows');
+
+ grunt.registerTask('default', ['jshint', 'vows']);
+};
diff --git a/node_modules/tmp/LICENSE b/node_modules/tmp/LICENSE
new file mode 100644
index 000000000..72418bd9d
--- /dev/null
+++ b/node_modules/tmp/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 KARASZI István
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/tmp/cleanup.sh b/node_modules/tmp/cleanup.sh
new file mode 100755
index 000000000..d069ebfb5
--- /dev/null
+++ b/node_modules/tmp/cleanup.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+rm -vrf ${TMPDIR}/{foo,tmp,something,complicated,clike,using}*
diff --git a/node_modules/tmp/coverage/coverage.json b/node_modules/tmp/coverage/coverage.json
new file mode 100644
index 000000000..5a2f97dbe
--- /dev/null
+++ b/node_modules/tmp/coverage/coverage.json
@@ -0,0 +1 @@
+{"/Users/ikaraszi/_vc/github/node-tmp/lib/tmp.js":{"path":"/Users/ikaraszi/_vc/github/node-tmp/lib/tmp.js","s":{"1":1,"2":1,"3":1,"4":33,"5":33,"6":33,"7":0,"8":33,"9":366,"10":33,"11":1,"12":9,"13":1,"14":79,"15":5,"16":5,"17":5,"18":74,"19":4,"20":79,"21":1,"22":37,"23":4,"24":33,"25":5,"26":28,"27":28,"28":1,"29":25,"30":25,"31":4,"32":21,"33":0,"34":21,"35":21,"36":21,"37":21,"38":0,"39":0,"40":0,"41":21,"42":1,"43":18,"44":18,"45":2,"46":16,"47":0,"48":16,"49":16,"50":16,"51":16,"52":16,"53":0,"54":1,"55":9,"56":9,"57":9,"58":9,"59":1,"60":8,"61":8,"62":0,"63":8,"64":1,"65":9,"66":9,"67":9,"68":8,"69":8,"70":1,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":1,"85":9,"86":9,"87":9,"88":1,"89":8,"90":8,"91":0,"92":8,"93":1,"94":9,"95":9,"96":8,"97":8,"98":1,"99":16,"100":2,"101":2,"102":0,"103":0,"104":2,"105":16,"106":16,"107":16,"108":1,"109":16,"110":16,"111":16,"112":16,"113":16,"114":1,"115":32,"116":32,"117":5,"118":0,"119":5,"120":5,"121":5,"122":5,"123":5,"124":1,"125":0,"126":0,"127":0,"128":0,"129":0,"130":1,"131":0,"132":1,"133":3,"134":1,"135":0,"136":0,"137":0,"138":0,"139":1,"140":0,"141":0,"142":0,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"b":{"1":[5,74],"2":[5,5],"3":[4,70],"4":[4,33],"5":[4,4],"6":[5,28],"7":[28,14],"8":[28,8],"9":[28,28],"10":[25,20],"11":[4,21],"12":[25,24],"13":[0,21],"14":[21,3],"15":[0,21],"16":[0,0],"17":[18,16],"18":[2,16],"19":[18,18],"20":[0,16],"21":[16,2],"22":[6,3],"23":[1,8],"24":[8,6],"25":[0,8],"26":[9,6],"27":[8,6],"28":[0,0],"29":[0,0],"30":[0,0],"31":[1,8],"32":[8,6],"33":[0,8],"34":[8,6],"35":[0,0],"36":[0,0],"37":[16,0],"38":[0,16],"39":[16,0],"40":[0,5],"41":[5,0],"42":[0,0],"43":[0,0],"44":[0,1],"45":[1,0,0,0],"46":[0,0]},"f":{"1":33,"2":9,"3":79,"4":37,"5":25,"6":21,"7":21,"8":18,"9":9,"10":9,"11":8,"12":9,"13":0,"14":9,"15":9,"16":8,"17":9,"18":16,"19":2,"20":16,"21":32,"22":5,"23":0,"24":0,"25":3,"26":0,"27":0},"fnMap":{"1":{"name":"_randomChars","line":53,"loc":{"start":{"line":53,"column":0},"end":{"line":53,"column":31}}},"2":{"name":"_isUndefined","line":79,"loc":{"start":{"line":79,"column":0},"end":{"line":79,"column":27}}},"3":{"name":"_parseArguments","line":92,"loc":{"start":{"line":92,"column":0},"end":{"line":92,"column":44}}},"4":{"name":"_generateTmpName","line":112,"loc":{"start":{"line":112,"column":0},"end":{"line":112,"column":32}}},"5":{"name":"_getTmpName","line":140,"loc":{"start":{"line":140,"column":0},"end":{"line":140,"column":40}}},"6":{"name":"_getUniqueName","line":153,"loc":{"start":{"line":153,"column":3},"end":{"line":153,"column":29}}},"7":{"name":"(anonymous_7)","line":157,"loc":{"start":{"line":157,"column":18},"end":{"line":157,"column":33}}},"8":{"name":"_getTmpNameSync","line":176,"loc":{"start":{"line":176,"column":0},"end":{"line":176,"column":34}}},"9":{"name":"_createTmpFile","line":207,"loc":{"start":{"line":207,"column":0},"end":{"line":207,"column":43}}},"10":{"name":"_tmpNameCreated","line":216,"loc":{"start":{"line":216,"column":20},"end":{"line":216,"column":56}}},"11":{"name":"_fileCreated","line":220,"loc":{"start":{"line":220,"column":56},"end":{"line":220,"column":87}}},"12":{"name":"_createTmpFileSync","line":235,"loc":{"start":{"line":235,"column":0},"end":{"line":235,"column":37}}},"13":{"name":"_rmdirRecursiveSync","line":258,"loc":{"start":{"line":258,"column":0},"end":{"line":258,"column":35}}},"14":{"name":"_createTmpDir","line":296,"loc":{"start":{"line":296,"column":0},"end":{"line":296,"column":42}}},"15":{"name":"_tmpNameCreated","line":303,"loc":{"start":{"line":303,"column":20},"end":{"line":303,"column":56}}},"16":{"name":"_dirCreated","line":307,"loc":{"start":{"line":307,"column":42},"end":{"line":307,"column":68}}},"17":{"name":"_createTmpDirSync","line":322,"loc":{"start":{"line":322,"column":0},"end":{"line":322,"column":36}}},"18":{"name":"_prepareTmpFileRemoveCallback","line":345,"loc":{"start":{"line":345,"column":0},"end":{"line":345,"column":55}}},"19":{"name":"_removeCallback","line":346,"loc":{"start":{"line":346,"column":46},"end":{"line":346,"column":79}}},"20":{"name":"_prepareTmpDirRemoveCallback","line":377,"loc":{"start":{"line":377,"column":0},"end":{"line":377,"column":50}}},"21":{"name":"_prepareRemoveCallback","line":396,"loc":{"start":{"line":396,"column":0},"end":{"line":396,"column":53}}},"22":{"name":"_cleanupCallback","line":399,"loc":{"start":{"line":399,"column":9},"end":{"line":399,"column":37}}},"23":{"name":"_garbageCollector","line":417,"loc":{"start":{"line":417,"column":0},"end":{"line":417,"column":29}}},"24":{"name":"_setGracefulCleanup","line":431,"loc":{"start":{"line":431,"column":0},"end":{"line":431,"column":31}}},"25":{"name":"(anonymous_25)","line":435,"loc":{"start":{"line":435,"column":51},"end":{"line":435,"column":68}}},"26":{"name":"_uncaughtExceptionThrown","line":440,"loc":{"start":{"line":440,"column":43},"end":{"line":440,"column":82}}},"27":{"name":"_exit","line":448,"loc":{"start":{"line":448,"column":28},"end":{"line":448,"column":49}}}},"statementMap":{"1":{"start":{"line":12,"column":0},"end":{"line":17,"column":32}},"2":{"start":{"line":23,"column":0},"end":{"line":43,"column":29}},"3":{"start":{"line":53,"column":0},"end":{"line":70,"column":1}},"4":{"start":{"line":54,"column":2},"end":{"line":56,"column":15}},"5":{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},"6":{"start":{"line":60,"column":4},"end":{"line":60,"column":38}},"7":{"start":{"line":62,"column":4},"end":{"line":62,"column":44}},"8":{"start":{"line":65,"column":2},"end":{"line":67,"column":3}},"9":{"start":{"line":66,"column":4},"end":{"line":66,"column":59}},"10":{"start":{"line":69,"column":2},"end":{"line":69,"column":24}},"11":{"start":{"line":79,"column":0},"end":{"line":81,"column":1}},"12":{"start":{"line":80,"column":2},"end":{"line":80,"column":36}},"13":{"start":{"line":92,"column":0},"end":{"line":103,"column":1}},"14":{"start":{"line":93,"column":2},"end":{"line":100,"column":3}},"15":{"start":{"line":94,"column":4},"end":{"line":95,"column":20}},"16":{"start":{"line":96,"column":6},"end":{"line":96,"column":31}},"17":{"start":{"line":97,"column":6},"end":{"line":97,"column":21}},"18":{"start":{"line":98,"column":9},"end":{"line":100,"column":3}},"19":{"start":{"line":99,"column":4},"end":{"line":99,"column":17}},"20":{"start":{"line":102,"column":2},"end":{"line":102,"column":29}},"21":{"start":{"line":112,"column":0},"end":{"line":131,"column":1}},"22":{"start":{"line":113,"column":2},"end":{"line":115,"column":3}},"23":{"start":{"line":114,"column":4},"end":{"line":114,"column":50}},"24":{"start":{"line":118,"column":2},"end":{"line":120,"column":3}},"25":{"start":{"line":119,"column":4},"end":{"line":119,"column":68}},"26":{"start":{"line":123,"column":2},"end":{"line":128,"column":13}},"27":{"start":{"line":130,"column":2},"end":{"line":130,"column":43}},"28":{"start":{"line":140,"column":0},"end":{"line":167,"column":1}},"29":{"start":{"line":141,"column":2},"end":{"line":145,"column":40}},"30":{"start":{"line":147,"column":2},"end":{"line":148,"column":42}},"31":{"start":{"line":148,"column":4},"end":{"line":148,"column":42}},"32":{"start":{"line":150,"column":2},"end":{"line":151,"column":54}},"33":{"start":{"line":151,"column":4},"end":{"line":151,"column":54}},"34":{"start":{"line":153,"column":2},"end":{"line":166,"column":7}},"35":{"start":{"line":154,"column":4},"end":{"line":154,"column":38}},"36":{"start":{"line":157,"column":4},"end":{"line":165,"column":7}},"37":{"start":{"line":158,"column":6},"end":{"line":162,"column":7}},"38":{"start":{"line":159,"column":8},"end":{"line":159,"column":49}},"39":{"start":{"line":159,"column":25},"end":{"line":159,"column":49}},"40":{"start":{"line":161,"column":8},"end":{"line":161,"column":95}},"41":{"start":{"line":164,"column":6},"end":{"line":164,"column":21}},"42":{"start":{"line":176,"column":0},"end":{"line":198,"column":1}},"43":{"start":{"line":177,"column":2},"end":{"line":180,"column":40}},"44":{"start":{"line":182,"column":2},"end":{"line":183,"column":37}},"45":{"start":{"line":183,"column":4},"end":{"line":183,"column":37}},"46":{"start":{"line":185,"column":2},"end":{"line":186,"column":49}},"47":{"start":{"line":186,"column":4},"end":{"line":186,"column":49}},"48":{"start":{"line":188,"column":2},"end":{"line":195,"column":24}},"49":{"start":{"line":189,"column":4},"end":{"line":189,"column":38}},"50":{"start":{"line":190,"column":4},"end":{"line":194,"column":5}},"51":{"start":{"line":191,"column":8},"end":{"line":191,"column":26}},"52":{"start":{"line":193,"column":8},"end":{"line":193,"column":20}},"53":{"start":{"line":197,"column":2},"end":{"line":197,"column":76}},"54":{"start":{"line":207,"column":0},"end":{"line":226,"column":1}},"55":{"start":{"line":208,"column":2},"end":{"line":211,"column":17}},"56":{"start":{"line":213,"column":4},"end":{"line":213,"column":72}},"57":{"start":{"line":216,"column":2},"end":{"line":225,"column":5}},"58":{"start":{"line":217,"column":4},"end":{"line":217,"column":28}},"59":{"start":{"line":217,"column":13},"end":{"line":217,"column":28}},"60":{"start":{"line":220,"column":4},"end":{"line":224,"column":7}},"61":{"start":{"line":221,"column":6},"end":{"line":221,"column":30}},"62":{"start":{"line":221,"column":15},"end":{"line":221,"column":30}},"63":{"start":{"line":223,"column":6},"end":{"line":223,"column":72}},"64":{"start":{"line":235,"column":0},"end":{"line":250,"column":1}},"65":{"start":{"line":236,"column":2},"end":{"line":238,"column":19}},"66":{"start":{"line":240,"column":4},"end":{"line":240,"column":42}},"67":{"start":{"line":242,"column":2},"end":{"line":242,"column":35}},"68":{"start":{"line":243,"column":2},"end":{"line":243,"column":67}},"69":{"start":{"line":245,"column":2},"end":{"line":249,"column":4}},"70":{"start":{"line":258,"column":0},"end":{"line":287,"column":1}},"71":{"start":{"line":259,"column":2},"end":{"line":259,"column":20}},"72":{"start":{"line":261,"column":2},"end":{"line":286,"column":30}},"73":{"start":{"line":262,"column":4},"end":{"line":265,"column":34}},"74":{"start":{"line":267,"column":4},"end":{"line":281,"column":5}},"75":{"start":{"line":268,"column":6},"end":{"line":270,"column":34}},"76":{"start":{"line":272,"column":6},"end":{"line":280,"column":7}},"77":{"start":{"line":273,"column":8},"end":{"line":276,"column":9}},"78":{"start":{"line":274,"column":10},"end":{"line":274,"column":26}},"79":{"start":{"line":275,"column":10},"end":{"line":275,"column":25}},"80":{"start":{"line":277,"column":8},"end":{"line":277,"column":24}},"81":{"start":{"line":279,"column":8},"end":{"line":279,"column":28}},"82":{"start":{"line":283,"column":4},"end":{"line":285,"column":5}},"83":{"start":{"line":284,"column":6},"end":{"line":284,"column":24}},"84":{"start":{"line":296,"column":0},"end":{"line":313,"column":1}},"85":{"start":{"line":297,"column":2},"end":{"line":300,"column":17}},"86":{"start":{"line":303,"column":2},"end":{"line":312,"column":5}},"87":{"start":{"line":304,"column":4},"end":{"line":304,"column":28}},"88":{"start":{"line":304,"column":13},"end":{"line":304,"column":28}},"89":{"start":{"line":307,"column":4},"end":{"line":311,"column":7}},"90":{"start":{"line":308,"column":6},"end":{"line":308,"column":30}},"91":{"start":{"line":308,"column":15},"end":{"line":308,"column":30}},"92":{"start":{"line":310,"column":6},"end":{"line":310,"column":63}},"93":{"start":{"line":322,"column":0},"end":{"line":334,"column":1}},"94":{"start":{"line":323,"column":2},"end":{"line":325,"column":19}},"95":{"start":{"line":327,"column":2},"end":{"line":327,"column":35}},"96":{"start":{"line":328,"column":2},"end":{"line":328,"column":44}},"97":{"start":{"line":330,"column":2},"end":{"line":333,"column":4}},"98":{"start":{"line":345,"column":0},"end":{"line":367,"column":1}},"99":{"start":{"line":346,"column":2},"end":{"line":360,"column":17}},"100":{"start":{"line":347,"column":4},"end":{"line":358,"column":5}},"101":{"start":{"line":348,"column":6},"end":{"line":348,"column":30}},"102":{"start":{"line":354,"column":6},"end":{"line":357,"column":7}},"103":{"start":{"line":356,"column":8},"end":{"line":356,"column":16}},"104":{"start":{"line":359,"column":4},"end":{"line":359,"column":29}},"105":{"start":{"line":362,"column":2},"end":{"line":364,"column":3}},"106":{"start":{"line":363,"column":4},"end":{"line":363,"column":43}},"107":{"start":{"line":366,"column":2},"end":{"line":366,"column":24}},"108":{"start":{"line":377,"column":0},"end":{"line":386,"column":1}},"109":{"start":{"line":378,"column":2},"end":{"line":378,"column":88}},"110":{"start":{"line":379,"column":2},"end":{"line":379,"column":68}},"111":{"start":{"line":381,"column":2},"end":{"line":383,"column":3}},"112":{"start":{"line":382,"column":4},"end":{"line":382,"column":43}},"113":{"start":{"line":385,"column":2},"end":{"line":385,"column":24}},"114":{"start":{"line":396,"column":0},"end":{"line":410,"column":1}},"115":{"start":{"line":397,"column":2},"end":{"line":397,"column":21}},"116":{"start":{"line":399,"column":2},"end":{"line":409,"column":4}},"117":{"start":{"line":400,"column":4},"end":{"line":400,"column":23}},"118":{"start":{"line":400,"column":16},"end":{"line":400,"column":23}},"119":{"start":{"line":402,"column":4},"end":{"line":402,"column":57}},"120":{"start":{"line":403,"column":4},"end":{"line":405,"column":5}},"121":{"start":{"line":404,"column":6},"end":{"line":404,"column":38}},"122":{"start":{"line":407,"column":4},"end":{"line":407,"column":18}},"123":{"start":{"line":408,"column":4},"end":{"line":408,"column":24}},"124":{"start":{"line":417,"column":0},"end":{"line":429,"column":1}},"125":{"start":{"line":418,"column":2},"end":{"line":420,"column":3}},"126":{"start":{"line":419,"column":4},"end":{"line":419,"column":11}},"127":{"start":{"line":422,"column":2},"end":{"line":428,"column":3}},"128":{"start":{"line":423,"column":4},"end":{"line":427,"column":5}},"129":{"start":{"line":424,"column":6},"end":{"line":424,"column":35}},"130":{"start":{"line":431,"column":0},"end":{"line":433,"column":1}},"131":{"start":{"line":432,"column":2},"end":{"line":432,"column":26}},"132":{"start":{"line":435,"column":0},"end":{"line":437,"column":3}},"133":{"start":{"line":436,"column":2},"end":{"line":436,"column":29}},"134":{"start":{"line":439,"column":0},"end":{"line":446,"column":1}},"135":{"start":{"line":440,"column":2},"end":{"line":445,"column":5}},"136":{"start":{"line":441,"column":4},"end":{"line":441,"column":30}},"137":{"start":{"line":442,"column":4},"end":{"line":442,"column":24}},"138":{"start":{"line":444,"column":4},"end":{"line":444,"column":14}},"139":{"start":{"line":448,"column":0},"end":{"line":451,"column":3}},"140":{"start":{"line":449,"column":2},"end":{"line":449,"column":38}},"141":{"start":{"line":449,"column":12},"end":{"line":449,"column":38}},"142":{"start":{"line":450,"column":2},"end":{"line":450,"column":22}},"143":{"start":{"line":454,"column":0},"end":{"line":454,"column":29}},"144":{"start":{"line":455,"column":0},"end":{"line":455,"column":35}},"145":{"start":{"line":456,"column":0},"end":{"line":456,"column":43}},"146":{"start":{"line":457,"column":0},"end":{"line":457,"column":37}},"147":{"start":{"line":458,"column":0},"end":{"line":458,"column":45}},"148":{"start":{"line":459,"column":0},"end":{"line":459,"column":37}},"149":{"start":{"line":460,"column":0},"end":{"line":460,"column":45}},"150":{"start":{"line":461,"column":0},"end":{"line":461,"column":56}}},"branchMap":{"1":{"line":93,"type":"if","locations":[{"start":{"line":93,"column":2},"end":{"line":93,"column":2}},{"start":{"line":93,"column":2},"end":{"line":93,"column":2}}]},"2":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":16},"end":{"line":96,"column":24}},{"start":{"line":96,"column":28},"end":{"line":96,"column":30}}]},"3":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":9},"end":{"line":98,"column":9}},{"start":{"line":98,"column":9},"end":{"line":98,"column":9}}]},"4":{"line":113,"type":"if","locations":[{"start":{"line":113,"column":2},"end":{"line":113,"column":2}},{"start":{"line":113,"column":2},"end":{"line":113,"column":2}}]},"5":{"line":114,"type":"binary-expr","locations":[{"start":{"line":114,"column":21},"end":{"line":114,"column":29}},{"start":{"line":114,"column":33},"end":{"line":114,"column":37}}]},"6":{"line":118,"type":"if","locations":[{"start":{"line":118,"column":2},"end":{"line":118,"column":2}},{"start":{"line":118,"column":2},"end":{"line":118,"column":2}}]},"7":{"line":124,"type":"binary-expr","locations":[{"start":{"line":124,"column":4},"end":{"line":124,"column":15}},{"start":{"line":124,"column":19},"end":{"line":124,"column":25}}]},"8":{"line":127,"type":"binary-expr","locations":[{"start":{"line":127,"column":4},"end":{"line":127,"column":16}},{"start":{"line":127,"column":20},"end":{"line":127,"column":22}}]},"9":{"line":130,"type":"binary-expr","locations":[{"start":{"line":130,"column":19},"end":{"line":130,"column":27}},{"start":{"line":130,"column":31},"end":{"line":130,"column":35}}]},"10":{"line":145,"type":"binary-expr","locations":[{"start":{"line":145,"column":12},"end":{"line":145,"column":22}},{"start":{"line":145,"column":26},"end":{"line":145,"column":39}}]},"11":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":2},"end":{"line":147,"column":2}},{"start":{"line":147,"column":2},"end":{"line":147,"column":2}}]},"12":{"line":147,"type":"binary-expr","locations":[{"start":{"line":147,"column":6},"end":{"line":147,"column":18}},{"start":{"line":147,"column":22},"end":{"line":147,"column":31}}]},"13":{"line":150,"type":"if","locations":[{"start":{"line":150,"column":2},"end":{"line":150,"column":2}},{"start":{"line":150,"column":2},"end":{"line":150,"column":2}}]},"14":{"line":150,"type":"binary-expr","locations":[{"start":{"line":150,"column":6},"end":{"line":150,"column":19}},{"start":{"line":150,"column":23},"end":{"line":150,"column":61}}]},"15":{"line":158,"type":"if","locations":[{"start":{"line":158,"column":6},"end":{"line":158,"column":6}},{"start":{"line":158,"column":6},"end":{"line":158,"column":6}}]},"16":{"line":159,"type":"if","locations":[{"start":{"line":159,"column":8},"end":{"line":159,"column":8}},{"start":{"line":159,"column":8},"end":{"line":159,"column":8}}]},"17":{"line":180,"type":"binary-expr","locations":[{"start":{"line":180,"column":12},"end":{"line":180,"column":22}},{"start":{"line":180,"column":26},"end":{"line":180,"column":39}}]},"18":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":2},"end":{"line":182,"column":2}},{"start":{"line":182,"column":2},"end":{"line":182,"column":2}}]},"19":{"line":182,"type":"binary-expr","locations":[{"start":{"line":182,"column":6},"end":{"line":182,"column":18}},{"start":{"line":182,"column":22},"end":{"line":182,"column":31}}]},"20":{"line":185,"type":"if","locations":[{"start":{"line":185,"column":2},"end":{"line":185,"column":2}},{"start":{"line":185,"column":2},"end":{"line":185,"column":2}}]},"21":{"line":185,"type":"binary-expr","locations":[{"start":{"line":185,"column":6},"end":{"line":185,"column":19}},{"start":{"line":185,"column":23},"end":{"line":185,"column":61}}]},"22":{"line":213,"type":"cond-expr","locations":[{"start":{"line":213,"column":50},"end":{"line":213,"column":56}},{"start":{"line":213,"column":59},"end":{"line":213,"column":71}}]},"23":{"line":217,"type":"if","locations":[{"start":{"line":217,"column":4},"end":{"line":217,"column":4}},{"start":{"line":217,"column":4},"end":{"line":217,"column":4}}]},"24":{"line":220,"type":"binary-expr","locations":[{"start":{"line":220,"column":32},"end":{"line":220,"column":41}},{"start":{"line":220,"column":45},"end":{"line":220,"column":54}}]},"25":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":6},"end":{"line":221,"column":6}},{"start":{"line":221,"column":6},"end":{"line":221,"column":6}}]},"26":{"line":240,"type":"binary-expr","locations":[{"start":{"line":240,"column":19},"end":{"line":240,"column":31}},{"start":{"line":240,"column":35},"end":{"line":240,"column":41}}]},"27":{"line":243,"type":"binary-expr","locations":[{"start":{"line":243,"column":43},"end":{"line":243,"column":52}},{"start":{"line":243,"column":56},"end":{"line":243,"column":65}}]},"28":{"line":272,"type":"if","locations":[{"start":{"line":272,"column":6},"end":{"line":272,"column":6}},{"start":{"line":272,"column":6},"end":{"line":272,"column":6}}]},"29":{"line":273,"type":"if","locations":[{"start":{"line":273,"column":8},"end":{"line":273,"column":8}},{"start":{"line":273,"column":8},"end":{"line":273,"column":8}}]},"30":{"line":283,"type":"if","locations":[{"start":{"line":283,"column":4},"end":{"line":283,"column":4}},{"start":{"line":283,"column":4},"end":{"line":283,"column":4}}]},"31":{"line":304,"type":"if","locations":[{"start":{"line":304,"column":4},"end":{"line":304,"column":4}},{"start":{"line":304,"column":4},"end":{"line":304,"column":4}}]},"32":{"line":307,"type":"binary-expr","locations":[{"start":{"line":307,"column":19},"end":{"line":307,"column":28}},{"start":{"line":307,"column":32},"end":{"line":307,"column":40}}]},"33":{"line":308,"type":"if","locations":[{"start":{"line":308,"column":6},"end":{"line":308,"column":6}},{"start":{"line":308,"column":6},"end":{"line":308,"column":6}}]},"34":{"line":328,"type":"binary-expr","locations":[{"start":{"line":328,"column":21},"end":{"line":328,"column":30}},{"start":{"line":328,"column":34},"end":{"line":328,"column":42}}]},"35":{"line":354,"type":"if","locations":[{"start":{"line":354,"column":6},"end":{"line":354,"column":6}},{"start":{"line":354,"column":6},"end":{"line":354,"column":6}}]},"36":{"line":354,"type":"binary-expr","locations":[{"start":{"line":354,"column":10},"end":{"line":354,"column":30}},{"start":{"line":354,"column":34},"end":{"line":354,"column":55}}]},"37":{"line":362,"type":"if","locations":[{"start":{"line":362,"column":2},"end":{"line":362,"column":2}},{"start":{"line":362,"column":2},"end":{"line":362,"column":2}}]},"38":{"line":378,"type":"cond-expr","locations":[{"start":{"line":378,"column":44},"end":{"line":378,"column":63}},{"start":{"line":378,"column":66},"end":{"line":378,"column":87}}]},"39":{"line":381,"type":"if","locations":[{"start":{"line":381,"column":2},"end":{"line":381,"column":2}},{"start":{"line":381,"column":2},"end":{"line":381,"column":2}}]},"40":{"line":400,"type":"if","locations":[{"start":{"line":400,"column":4},"end":{"line":400,"column":4}},{"start":{"line":400,"column":4},"end":{"line":400,"column":4}}]},"41":{"line":403,"type":"if","locations":[{"start":{"line":403,"column":4},"end":{"line":403,"column":4}},{"start":{"line":403,"column":4},"end":{"line":403,"column":4}}]},"42":{"line":418,"type":"if","locations":[{"start":{"line":418,"column":2},"end":{"line":418,"column":2}},{"start":{"line":418,"column":2},"end":{"line":418,"column":2}}]},"43":{"line":418,"type":"binary-expr","locations":[{"start":{"line":418,"column":6},"end":{"line":418,"column":24}},{"start":{"line":418,"column":28},"end":{"line":418,"column":45}}]},"44":{"line":439,"type":"if","locations":[{"start":{"line":439,"column":0},"end":{"line":439,"column":0}},{"start":{"line":439,"column":0},"end":{"line":439,"column":0}}]},"45":{"line":439,"type":"binary-expr","locations":[{"start":{"line":439,"column":4},"end":{"line":439,"column":20}},{"start":{"line":439,"column":25},"end":{"line":439,"column":39}},{"start":{"line":439,"column":43},"end":{"line":439,"column":59}},{"start":{"line":439,"column":63},"end":{"line":439,"column":77}}]},"46":{"line":449,"type":"if","locations":[{"start":{"line":449,"column":2},"end":{"line":449,"column":2}},{"start":{"line":449,"column":2},"end":{"line":449,"column":2}}]}}}} \ No newline at end of file
diff --git a/node_modules/tmp/coverage/lcov-report/base.css b/node_modules/tmp/coverage/lcov-report/base.css
new file mode 100644
index 000000000..29737bcb0
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/base.css
@@ -0,0 +1,213 @@
+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) }
+/* dark yellow (gold) */
+.medium .chart { border:1px solid #f9cd0b; }
+.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
+/* light yellow */
+.medium { background: #fff4c2; }
+/* light gray */
+span.cline-neutral { background: #eaeaea; }
+
+.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; }
+
+
+.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;
+}
diff --git a/node_modules/tmp/coverage/lcov-report/index.html b/node_modules/tmp/coverage/lcov-report/index.html
new file mode 100644
index 000000000..1d4d14f03
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/index.html
@@ -0,0 +1,93 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for All files</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="prettify.css" />
+ <link rel="stylesheet" href="base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ /
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">74.67% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>112/150</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">65.96% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>62/94</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">81.48% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>22/27</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">76.92% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>110/143</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line medium'></div>
+<div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+ <td class="file medium" data-value="lib/"><a href="lib/index.html">lib/</a></td>
+ <td data-value="74.67" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 74%;"></div><div class="cover-empty" style="width:26%;"></div></div></td>
+ <td data-value="74.67" class="pct medium">74.67%</td>
+ <td data-value="150" class="abs medium">112/150</td>
+ <td data-value="65.96" class="pct medium">65.96%</td>
+ <td data-value="94" class="abs medium">62/94</td>
+ <td data-value="81.48" class="pct high">81.48%</td>
+ <td data-value="27" class="abs high">22/27</td>
+ <td data-value="76.92" class="pct medium">76.92%</td>
+ <td data-value="143" class="abs medium">110/143</td>
+ </tr>
+
+</tbody>
+</table>
+</div><div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 20 2016 12:42:12 GMT+0200 (CEST)
+</div>
+</div>
+<script src="prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/tmp/coverage/lcov-report/lib/index.html b/node_modules/tmp/coverage/lcov-report/lib/index.html
new file mode 100644
index 000000000..ee405aeac
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/lib/index.html
@@ -0,0 +1,93 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> lib/
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">74.67% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>112/150</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">65.96% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>62/94</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">81.48% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>22/27</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">76.92% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>110/143</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line medium'></div>
+<div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+ <td class="file medium" data-value="tmp.js"><a href="tmp.js.html">tmp.js</a></td>
+ <td data-value="74.67" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 74%;"></div><div class="cover-empty" style="width:26%;"></div></div></td>
+ <td data-value="74.67" class="pct medium">74.67%</td>
+ <td data-value="150" class="abs medium">112/150</td>
+ <td data-value="65.96" class="pct medium">65.96%</td>
+ <td data-value="94" class="abs medium">62/94</td>
+ <td data-value="81.48" class="pct high">81.48%</td>
+ <td data-value="27" class="abs high">22/27</td>
+ <td data-value="76.92" class="pct medium">76.92%</td>
+ <td data-value="143" class="abs medium">110/143</td>
+ </tr>
+
+</tbody>
+</table>
+</div><div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 20 2016 12:42:12 GMT+0200 (CEST)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/tmp/coverage/lcov-report/lib/tmp.js.html b/node_modules/tmp/coverage/lcov-report/lib/tmp.js.html
new file mode 100644
index 000000000..8d0fa2b1b
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/lib/tmp.js.html
@@ -0,0 +1,1448 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/tmp.js</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> / <a href="index.html">lib/</a> tmp.js
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">74.67% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>112/150</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">65.96% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>62/94</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">81.48% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>22/27</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">76.92% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>110/143</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line medium'></div>
+<pre><table class="coverage">
+<tr><td class="line-count quiet">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
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">33×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">33×</span>
+<span class="cline-any cline-yes">33×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">33×</span>
+<span class="cline-any cline-yes">366×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">33×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">79×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">74×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">79×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">37×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">33×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">28×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">28×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">21×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">21×</span>
+<span class="cline-any cline-yes">21×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">21×</span>
+<span class="cline-any cline-yes">21×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">21×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">18×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">18×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">32×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">32×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">3×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
+ * Tmp
+ *
+ * Copyright (c) 2011-2015 KARASZI Istvan &lt;github@spam.raszi.hu&gt;
+ *
+ * MIT Licensed
+ */
+&nbsp;
+/**
+ * Module dependencies.
+ */
+var
+ fs = require('fs'),
+ path = require('path'),
+ crypto = require('crypto'),
+ tmpDir = require('os-tmpdir'),
+ _c = require('constants');
+&nbsp;
+&nbsp;
+/**
+ * The working inner variables.
+ */
+var
+ // store the actual TMP directory
+ _TMP = tmpDir(),
+&nbsp;
+ // the random characters to choose from
+ RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
+&nbsp;
+ TEMPLATE_PATTERN = /XXXXXX/,
+&nbsp;
+ DEFAULT_TRIES = 3,
+&nbsp;
+ CREATE_FLAGS = _c.O_CREAT | _c.O_EXCL | _c.O_RDWR,
+&nbsp;
+ DIR_MODE = 448 /* 0700 */,
+ FILE_MODE = 384 /* 0600 */,
+&nbsp;
+ // this will hold the objects need to be removed on exit
+ _removeObjects = [],
+&nbsp;
+ _gracefulCleanup = false,
+ _uncaughtException = false;
+&nbsp;
+/**
+ * Random name generator based on crypto.
+ * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
+ *
+ * @param {Number} howMany
+ * @return {String}
+ * @api private
+ */
+function _randomChars(howMany) {
+ var
+ value = [],
+ rnd = null;
+&nbsp;
+ // make sure that we do not fail because we ran out of entropy
+ try {
+ rnd = crypto.randomBytes(howMany);
+ } catch (e) {
+<span class="cstat-no" title="statement not covered" > rnd = crypto.pseudoRandomBytes(howMany);</span>
+ }
+&nbsp;
+ for (var i = 0; i &lt; howMany; i++) {
+ value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);
+ }
+&nbsp;
+ return value.join('');
+}
+&nbsp;
+/**
+ * Checks whether the `obj` parameter is defined or not.
+ *
+ * @param {Object} obj
+ * @return {Boolean}
+ * @api private
+ */
+function _isUndefined(obj) {
+ return typeof obj === 'undefined';
+}
+&nbsp;
+/**
+ * Parses the function arguments.
+ *
+ * This function helps to have optional arguments.
+ *
+ * @param {Object} options
+ * @param {Function} callback
+ * @api private
+ */
+function _parseArguments(options, callback) {
+ if (typeof options == 'function') {
+ var
+ tmp = options;
+ options = callback || {};
+ callback = tmp;
+ } else if (typeof options == 'undefined') {
+ options = {};
+ }
+&nbsp;
+ return [options, callback];
+}
+&nbsp;
+/**
+ * Generates a new temporary name.
+ *
+ * @param {Object} opts
+ * @returns {String}
+ * @api private
+ */
+function _generateTmpName(opts) {
+ if (opts.name) {
+ return path.join(opts.dir || _TMP, opts.name);
+ }
+&nbsp;
+ // mkstemps like template
+ if (opts.template) {
+ return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6));
+ }
+&nbsp;
+ // prefix and postfix
+ var name = [
+ opts.prefix || 'tmp-',
+ process.pid,
+ _randomChars(12),
+ opts.postfix || ''
+ ].join('');
+&nbsp;
+ return path.join(opts.dir || _TMP, name);
+}
+&nbsp;
+/**
+ * Gets a temporary file name.
+ *
+ * @param {Object} options
+ * @param {Function} callback
+ * @api private
+ */
+function _getTmpName(options, callback) {
+ var
+ args = _parseArguments(options, callback),
+ opts = args[0],
+ cb = args[1],
+ tries = opts.tries || DEFAULT_TRIES;
+&nbsp;
+ if (isNaN(tries) || tries &lt; 0)
+ return cb(new Error('Invalid tries'));
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.template &amp;&amp; !opts.template.match(TEMPLATE_PATTERN))
+<span class="cstat-no" title="statement not covered" > return cb(new Error('Invalid template provided'));</span>
+&nbsp;
+ (function _getUniqueName() {
+ var name = _generateTmpName(opts);
+&nbsp;
+ // check whether the path exists then retry if needed
+ fs.stat(name, function (err) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!err) {
+<span class="cstat-no" title="statement not covered" > if (tries-- &gt; 0) <span class="cstat-no" title="statement not covered" >return _getUniqueName();</span></span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));</span>
+ }
+&nbsp;
+ cb(null, name);
+ });
+ }());
+}
+&nbsp;
+/**
+ * Synchronous version of _getTmpName.
+ *
+ * @param {Object} options
+ * @returns {String}
+ * @api private
+ */
+function _getTmpNameSync(options) {
+ var
+ args = _parseArguments(options),
+ opts = args[0],
+ tries = opts.tries || DEFAULT_TRIES;
+&nbsp;
+ if (isNaN(tries) || tries &lt; 0)
+ throw new Error('Invalid tries');
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.template &amp;&amp; !opts.template.match(TEMPLATE_PATTERN))
+<span class="cstat-no" title="statement not covered" > throw new Error('Invalid template provided');</span>
+&nbsp;
+ do {
+ var name = _generateTmpName(opts);
+ try {
+ fs.statSync(name);
+ } catch (e) {
+ return name;
+ }
+ } while (tries-- &gt; 0);
+&nbsp;
+<span class="cstat-no" title="statement not covered" > throw new Error('Could not get a unique tmp filename, max tries reached');</span>
+}
+&nbsp;
+/**
+ * Creates and opens a temporary file.
+ *
+ * @param {Object} options
+ * @param {Function} callback
+ * @api public
+ */
+function _createTmpFile(options, callback) {
+ var
+ args = _parseArguments(options, callback),
+ opts = args[0],
+ cb = args[1];
+&nbsp;
+ opts.postfix = (_isUndefined(opts.postfix)) ? '.tmp' : opts.postfix;
+&nbsp;
+ // gets a temporary filename
+ _getTmpName(opts, function _tmpNameCreated(err, name) {
+ if (err) return cb(err);
+&nbsp;
+ // create and open the file
+ fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb(err);</span>
+&nbsp;
+ cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts));
+ });
+ });
+}
+&nbsp;
+/**
+ * Synchronous version of _createTmpFile.
+ *
+ * @param {Object} options
+ * @returns {Object} object consists of name, fd and removeCallback
+ * @api private
+ */
+function _createTmpFileSync(options) {
+ var
+ args = _parseArguments(options),
+ opts = args[0];
+&nbsp;
+ opts.postfix = opts.postfix || '.tmp';
+&nbsp;
+ var name = _getTmpNameSync(opts);
+ var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
+&nbsp;
+ return {
+ name : name,
+ fd : fd,
+ removeCallback : _prepareTmpFileRemoveCallback(name, fd, opts)
+ };
+}
+&nbsp;
+/**
+ * Removes files and folders in a directory recursively.
+ *
+ * @param {String} root
+ * @api private
+ */
+<span class="fstat-no" title="function not covered" >function _rmdirRecursiveSync(root) {</span>
+<span class="cstat-no" title="statement not covered" > var dirs = [root];</span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > do {</span>
+<span class="cstat-no" title="statement not covered" > var</span>
+ dir = dirs.pop(),
+ deferred = false,
+ files = fs.readdirSync(dir);
+&nbsp;
+<span class="cstat-no" title="statement not covered" > for (var i = 0, length = files.length; i &lt; length; i++) {</span>
+<span class="cstat-no" title="statement not covered" > var</span>
+ file = path.join(dir, files[i]),
+ stat = fs.lstatSync(file); // lstat so we don't recurse into symlinked directories
+&nbsp;
+<span class="cstat-no" title="statement not covered" > if (stat.isDirectory()) {</span>
+<span class="cstat-no" title="statement not covered" > if (!deferred) {</span>
+<span class="cstat-no" title="statement not covered" > deferred = true;</span>
+<span class="cstat-no" title="statement not covered" > dirs.push(dir);</span>
+ }
+<span class="cstat-no" title="statement not covered" > dirs.push(file);</span>
+ } else {
+<span class="cstat-no" title="statement not covered" > fs.unlinkSync(file);</span>
+ }
+ }
+&nbsp;
+<span class="cstat-no" title="statement not covered" > if (!deferred) {</span>
+<span class="cstat-no" title="statement not covered" > fs.rmdirSync(dir);</span>
+ }
+ } while (dirs.length !== 0);
+}
+&nbsp;
+/**
+ * Creates a temporary directory.
+ *
+ * @param {Object} options
+ * @param {Function} callback
+ * @api public
+ */
+function _createTmpDir(options, callback) {
+ var
+ args = _parseArguments(options, callback),
+ opts = args[0],
+ cb = args[1];
+&nbsp;
+ // gets a temporary filename
+ _getTmpName(opts, function _tmpNameCreated(err, name) {
+ if (err) return cb(err);
+&nbsp;
+ // create the directory
+ fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb(err);</span>
+&nbsp;
+ cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
+ });
+ });
+}
+&nbsp;
+/**
+ * Synchronous version of _createTmpDir.
+ *
+ * @param {Object} options
+ * @returns {Object} object consists of name and removeCallback
+ * @api private
+ */
+function _createTmpDirSync(options) {
+ var
+ args = _parseArguments(options),
+ opts = args[0];
+&nbsp;
+ var name = _getTmpNameSync(opts);
+ fs.mkdirSync(name, opts.mode || DIR_MODE);
+&nbsp;
+ return {
+ name : name,
+ removeCallback : _prepareTmpDirRemoveCallback(name, opts)
+ };
+}
+&nbsp;
+/**
+ * Prepares the callback for removal of the temporary file.
+ *
+ * @param {String} name
+ * @param {int} fd
+ * @param {Object} opts
+ * @api private
+ * @returns {Function} the callback
+ */
+function _prepareTmpFileRemoveCallback(name, fd, opts) {
+ var removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) {
+ try {
+ fs.closeSync(fdPath[0]);
+ }
+ catch (e) {
+ // under some node/windows related circumstances, a temporary file
+ // may have not be created as expected or the file was already closed
+ // by the user, in which case we will simply ignore the error
+<span class="cstat-no" title="statement not covered" > if (e.errno != -_c.EBADF &amp;&amp; e.errno != -_c.ENOENT) {</span>
+ // reraise any unanticipated error
+<span class="cstat-no" title="statement not covered" > throw e;</span>
+ }
+ }
+ fs.unlinkSync(fdPath[1]);
+ }, [fd, name]);
+&nbsp;
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!opts.keep) {
+ _removeObjects.unshift(removeCallback);
+ }
+&nbsp;
+ return removeCallback;
+}
+&nbsp;
+/**
+ * Prepares the callback for removal of the temporary directory.
+ *
+ * @param {String} name
+ * @param {Object} opts
+ * @returns {Function} the callback
+ * @api private
+ */
+function _prepareTmpDirRemoveCallback(name, opts) {
+ var removeFunction = opts.unsafeCleanup ? <span class="branch-0 cbranch-no" title="branch not covered" >_rmdirRecursiveSync </span>: fs.rmdirSync.bind(fs);
+ var removeCallback = _prepareRemoveCallback(removeFunction, name);
+&nbsp;
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!opts.keep) {
+ _removeObjects.unshift(removeCallback);
+ }
+&nbsp;
+ return removeCallback;
+}
+&nbsp;
+/**
+ * Creates a guarded function wrapping the removeFunction call.
+ *
+ * @param {Function} removeFunction
+ * @param {Object} arg
+ * @returns {Function}
+ * @api private
+ */
+function _prepareRemoveCallback(removeFunction, arg) {
+ var called = false;
+&nbsp;
+ return function _cleanupCallback() {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (called) <span class="cstat-no" title="statement not covered" >return;</span>
+&nbsp;
+ var index = _removeObjects.indexOf(_cleanupCallback);
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (index &gt;= 0) {
+ _removeObjects.splice(index, 1);
+ }
+&nbsp;
+ called = true;
+ removeFunction(arg);
+ };
+}
+&nbsp;
+/**
+ * The garbage collector.
+ *
+ * @api private
+ */
+<span class="fstat-no" title="function not covered" >function _garbageCollector() {</span>
+<span class="cstat-no" title="statement not covered" > if (_uncaughtException &amp;&amp; !_gracefulCleanup) {</span>
+<span class="cstat-no" title="statement not covered" > return;</span>
+ }
+&nbsp;
+<span class="cstat-no" title="statement not covered" > for (var i = 0, length = _removeObjects.length; i &lt; length; i++) {</span>
+<span class="cstat-no" title="statement not covered" > try {</span>
+<span class="cstat-no" title="statement not covered" > _removeObjects[i].call(null);</span>
+ } catch (e) {
+ // already removed?
+ }
+ }
+}
+&nbsp;
+<span class="fstat-no" title="function not covered" >function _setGracefulCleanup() {</span>
+<span class="cstat-no" title="statement not covered" > _gracefulCleanup = true;</span>
+}
+&nbsp;
+var version = process.versions.node.split('.').map(function (value) {
+ return parseInt(value, 10);
+});
+&nbsp;
+<span class="missing-if-branch" title="if path not taken" >I</span>if (version[0] === 0 &amp;&amp; (<span class="branch-1 cbranch-no" title="branch not covered" >version[1] &lt; 9 </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >version[1] === 9 </span>&amp;&amp; <span class="branch-3 cbranch-no" title="branch not covered" >version[2] &lt; 5)</span>) {
+<span class="cstat-no" title="statement not covered" > process.addListener('uncaughtException', <span class="fstat-no" title="function not covered" >function _uncaughtExceptionThrown(err) {</span></span>
+<span class="cstat-no" title="statement not covered" > _uncaughtException = true;</span>
+<span class="cstat-no" title="statement not covered" > _garbageCollector();</span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > throw err;</span>
+ });
+}
+&nbsp;
+process.addListener('exit', <span class="fstat-no" title="function not covered" >function _exit(code) {</span>
+<span class="cstat-no" title="statement not covered" > if (code) <span class="cstat-no" title="statement not covered" >_uncaughtException = true;</span></span>
+<span class="cstat-no" title="statement not covered" > _garbageCollector();</span>
+});
+&nbsp;
+// exporting all the needed methods
+module.exports.tmpdir = _TMP;
+module.exports.dir = _createTmpDir;
+module.exports.dirSync = _createTmpDirSync;
+module.exports.file = _createTmpFile;
+module.exports.fileSync = _createTmpFileSync;
+module.exports.tmpName = _getTmpName;
+module.exports.tmpNameSync = _getTmpNameSync;
+module.exports.setGracefulCleanup = _setGracefulCleanup;
+&nbsp;</pre></td></tr>
+</table></pre>
+<div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 20 2016 12:42:12 GMT+0200 (CEST)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/tmp/coverage/lcov-report/prettify.css b/node_modules/tmp/coverage/lcov-report/prettify.css
new file mode 100644
index 000000000..b317a7cda
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/prettify.css
@@ -0,0 +1 @@
+.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}
diff --git a/node_modules/tmp/coverage/lcov-report/prettify.js b/node_modules/tmp/coverage/lcov-report/prettify.js
new file mode 100644
index 000000000..ef51e0386
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/prettify.js
@@ -0,0 +1 @@
+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;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){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;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[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<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=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<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=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<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=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<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=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*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\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<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=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<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\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"]);
diff --git a/node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.png b/node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.png
new file mode 100644
index 000000000..03f704a60
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.png
Binary files differ
diff --git a/node_modules/tmp/coverage/lcov-report/sorter.js b/node_modules/tmp/coverage/lcov-report/sorter.js
new file mode 100644
index 000000000..6c5034e40
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov-report/sorter.js
@@ -0,0 +1,158 @@
+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 + '<span class="sorter"></span>';
+ }
+ }
+ 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);
diff --git a/node_modules/tmp/coverage/lcov.info b/node_modules/tmp/coverage/lcov.info
new file mode 100644
index 000000000..1f185c309
--- /dev/null
+++ b/node_modules/tmp/coverage/lcov.info
@@ -0,0 +1,300 @@
+TN:
+SF:/Users/ikaraszi/_vc/github/node-tmp/lib/tmp.js
+FN:53,_randomChars
+FN:79,_isUndefined
+FN:92,_parseArguments
+FN:112,_generateTmpName
+FN:140,_getTmpName
+FN:153,_getUniqueName
+FN:157,(anonymous_7)
+FN:176,_getTmpNameSync
+FN:207,_createTmpFile
+FN:216,_tmpNameCreated
+FN:220,_fileCreated
+FN:235,_createTmpFileSync
+FN:258,_rmdirRecursiveSync
+FN:296,_createTmpDir
+FN:303,_tmpNameCreated
+FN:307,_dirCreated
+FN:322,_createTmpDirSync
+FN:345,_prepareTmpFileRemoveCallback
+FN:346,_removeCallback
+FN:377,_prepareTmpDirRemoveCallback
+FN:396,_prepareRemoveCallback
+FN:399,_cleanupCallback
+FN:417,_garbageCollector
+FN:431,_setGracefulCleanup
+FN:435,(anonymous_25)
+FN:440,_uncaughtExceptionThrown
+FN:448,_exit
+FNF:27
+FNH:22
+FNDA:33,_randomChars
+FNDA:9,_isUndefined
+FNDA:79,_parseArguments
+FNDA:37,_generateTmpName
+FNDA:25,_getTmpName
+FNDA:21,_getUniqueName
+FNDA:21,(anonymous_7)
+FNDA:18,_getTmpNameSync
+FNDA:9,_createTmpFile
+FNDA:9,_tmpNameCreated
+FNDA:8,_fileCreated
+FNDA:9,_createTmpFileSync
+FNDA:0,_rmdirRecursiveSync
+FNDA:9,_createTmpDir
+FNDA:9,_tmpNameCreated
+FNDA:8,_dirCreated
+FNDA:9,_createTmpDirSync
+FNDA:16,_prepareTmpFileRemoveCallback
+FNDA:2,_removeCallback
+FNDA:16,_prepareTmpDirRemoveCallback
+FNDA:32,_prepareRemoveCallback
+FNDA:5,_cleanupCallback
+FNDA:0,_garbageCollector
+FNDA:0,_setGracefulCleanup
+FNDA:3,(anonymous_25)
+FNDA:0,_uncaughtExceptionThrown
+FNDA:0,_exit
+DA:12,1
+DA:23,1
+DA:53,1
+DA:54,33
+DA:59,33
+DA:60,33
+DA:62,0
+DA:65,33
+DA:66,366
+DA:69,33
+DA:79,1
+DA:80,9
+DA:92,1
+DA:93,79
+DA:94,5
+DA:96,5
+DA:97,5
+DA:98,74
+DA:99,4
+DA:102,79
+DA:112,1
+DA:113,37
+DA:114,4
+DA:118,33
+DA:119,5
+DA:123,28
+DA:130,28
+DA:140,1
+DA:141,25
+DA:147,25
+DA:148,4
+DA:150,21
+DA:151,0
+DA:153,21
+DA:154,21
+DA:157,21
+DA:158,21
+DA:159,0
+DA:161,0
+DA:164,21
+DA:176,1
+DA:177,18
+DA:182,18
+DA:183,2
+DA:185,16
+DA:186,0
+DA:188,16
+DA:189,16
+DA:190,16
+DA:191,16
+DA:193,16
+DA:197,0
+DA:207,1
+DA:208,9
+DA:213,9
+DA:216,9
+DA:217,9
+DA:220,8
+DA:221,8
+DA:223,8
+DA:235,1
+DA:236,9
+DA:240,9
+DA:242,9
+DA:243,8
+DA:245,8
+DA:258,1
+DA:259,0
+DA:261,0
+DA:262,0
+DA:267,0
+DA:268,0
+DA:272,0
+DA:273,0
+DA:274,0
+DA:275,0
+DA:277,0
+DA:279,0
+DA:283,0
+DA:284,0
+DA:296,1
+DA:297,9
+DA:303,9
+DA:304,9
+DA:307,8
+DA:308,8
+DA:310,8
+DA:322,1
+DA:323,9
+DA:327,9
+DA:328,8
+DA:330,8
+DA:345,1
+DA:346,16
+DA:347,2
+DA:348,2
+DA:354,0
+DA:356,0
+DA:359,2
+DA:362,16
+DA:363,16
+DA:366,16
+DA:377,1
+DA:378,16
+DA:379,16
+DA:381,16
+DA:382,16
+DA:385,16
+DA:396,1
+DA:397,32
+DA:399,32
+DA:400,5
+DA:402,5
+DA:403,5
+DA:404,5
+DA:407,5
+DA:408,5
+DA:417,1
+DA:418,0
+DA:419,0
+DA:422,0
+DA:423,0
+DA:424,0
+DA:431,1
+DA:432,0
+DA:435,1
+DA:436,3
+DA:439,1
+DA:440,0
+DA:441,0
+DA:442,0
+DA:444,0
+DA:448,1
+DA:449,0
+DA:450,0
+DA:454,1
+DA:455,1
+DA:456,1
+DA:457,1
+DA:458,1
+DA:459,1
+DA:460,1
+DA:461,1
+LF:143
+LH:110
+BRDA:93,1,0,5
+BRDA:93,1,1,74
+BRDA:96,2,0,5
+BRDA:96,2,1,5
+BRDA:98,3,0,4
+BRDA:98,3,1,70
+BRDA:113,4,0,4
+BRDA:113,4,1,33
+BRDA:114,5,0,4
+BRDA:114,5,1,4
+BRDA:118,6,0,5
+BRDA:118,6,1,28
+BRDA:124,7,0,28
+BRDA:124,7,1,14
+BRDA:127,8,0,28
+BRDA:127,8,1,8
+BRDA:130,9,0,28
+BRDA:130,9,1,28
+BRDA:145,10,0,25
+BRDA:145,10,1,20
+BRDA:147,11,0,4
+BRDA:147,11,1,21
+BRDA:147,12,0,25
+BRDA:147,12,1,24
+BRDA:150,13,0,0
+BRDA:150,13,1,21
+BRDA:150,14,0,21
+BRDA:150,14,1,3
+BRDA:158,15,0,0
+BRDA:158,15,1,21
+BRDA:159,16,0,0
+BRDA:159,16,1,0
+BRDA:180,17,0,18
+BRDA:180,17,1,16
+BRDA:182,18,0,2
+BRDA:182,18,1,16
+BRDA:182,19,0,18
+BRDA:182,19,1,18
+BRDA:185,20,0,0
+BRDA:185,20,1,16
+BRDA:185,21,0,16
+BRDA:185,21,1,2
+BRDA:213,22,0,6
+BRDA:213,22,1,3
+BRDA:217,23,0,1
+BRDA:217,23,1,8
+BRDA:220,24,0,8
+BRDA:220,24,1,6
+BRDA:221,25,0,0
+BRDA:221,25,1,8
+BRDA:240,26,0,9
+BRDA:240,26,1,6
+BRDA:243,27,0,8
+BRDA:243,27,1,6
+BRDA:272,28,0,0
+BRDA:272,28,1,0
+BRDA:273,29,0,0
+BRDA:273,29,1,0
+BRDA:283,30,0,0
+BRDA:283,30,1,0
+BRDA:304,31,0,1
+BRDA:304,31,1,8
+BRDA:307,32,0,8
+BRDA:307,32,1,6
+BRDA:308,33,0,0
+BRDA:308,33,1,8
+BRDA:328,34,0,8
+BRDA:328,34,1,6
+BRDA:354,35,0,0
+BRDA:354,35,1,0
+BRDA:354,36,0,0
+BRDA:354,36,1,0
+BRDA:362,37,0,16
+BRDA:362,37,1,0
+BRDA:378,38,0,0
+BRDA:378,38,1,16
+BRDA:381,39,0,16
+BRDA:381,39,1,0
+BRDA:400,40,0,0
+BRDA:400,40,1,5
+BRDA:403,41,0,5
+BRDA:403,41,1,0
+BRDA:418,42,0,0
+BRDA:418,42,1,0
+BRDA:418,43,0,0
+BRDA:418,43,1,0
+BRDA:439,44,0,0
+BRDA:439,44,1,1
+BRDA:439,45,0,1
+BRDA:439,45,1,0
+BRDA:439,45,2,0
+BRDA:439,45,3,0
+BRDA:449,46,0,0
+BRDA:449,46,1,0
+BRF:94
+BRH:62
+end_of_record
diff --git a/node_modules/tmp/run-tests b/node_modules/tmp/run-tests
new file mode 100755
index 000000000..a377f1083
--- /dev/null
+++ b/node_modules/tmp/run-tests
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+DIR="x"
+
+rm -rf ${DIR}
+mkdir ${DIR}
+TMPDIR=${DIR} npm test
diff --git a/node_modules/tmp/test/dir-sync-test.js b/node_modules/tmp/test/dir-sync-test.js
new file mode 100644
index 000000000..091a03e58
--- /dev/null
+++ b/node_modules/tmp/test/dir-sync-test.js
@@ -0,0 +1,230 @@
+var
+ vows = require('vows'),
+ assert = require('assert'),
+
+ path = require('path'),
+ fs = require('fs'),
+ existsSync = fs.existsSync || path.existsSync,
+
+ tmp = require('../lib/tmp.js'),
+ Test = require('./base.js');
+
+
+function _testDir(mode) {
+ return function _testDirGenerated(result) {
+ assert.ok(existsSync(result.name), 'should exist');
+
+ var stat = fs.statSync(result.name);
+ assert.ok(stat.isDirectory(), 'should be a directory');
+
+ Test.testStat(stat, mode);
+ };
+}
+
+vows.describe('Synchronous directory creation').addBatch({
+ 'when using without parameters': {
+ topic: function () {
+ return tmp.dirSync();
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a directory': _testDir(040700),
+ 'should have the default prefix': Test.testPrefixSync('tmp-')
+ },
+
+ 'when using with prefix': {
+ topic: function () {
+ return tmp.dirSync({ prefix: 'something' });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a directory': _testDir(040700),
+ 'should have the provided prefix': Test.testPrefixSync('something')
+ },
+
+ 'when using with postfix': {
+ topic: function () {
+ return tmp.dirSync({ postfix: '.txt' });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a directory': _testDir(040700),
+ 'should have the provided postfix': Test.testPostfixSync('.txt')
+ },
+
+ 'when using template': {
+ topic: function () {
+ return tmp.dirSync({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a directory': _testDir(040700),
+ 'should have the provided prefix': Test.testPrefixSync('clike-'),
+ 'should have the provided postfix': Test.testPostfixSync('-postfix')
+ },
+
+ 'when using name': {
+ topic: function () {
+ return tmp.dirSync({ name: 'using-name' });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should have the provided name': Test.testNameSync(path.join(tmp.tmpdir, 'using-name')),
+ 'should be a directory': function (result) {
+ _testDir(040700)(result);
+ result.removeCallback();
+ assert.ok(!existsSync(result.name), 'Directory should be removed');
+ }
+ },
+
+ 'when using multiple options': {
+ topic: function () {
+ return tmp.dirSync({ prefix: 'foo', postfix: 'bar', mode: 0750 });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a directory': _testDir(040750),
+ 'should have the provided prefix': Test.testPrefixSync('foo'),
+ 'should have the provided postfix': Test.testPostfixSync('bar')
+ },
+
+ 'when using multiple options and mode': {
+ topic: function () {
+ return tmp.dirSync({ prefix: 'complicated', postfix: 'options', mode: 0755 });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a directory': _testDir(040755),
+ 'should have the provided prefix': Test.testPrefixSync('complicated'),
+ 'should have the provided postfix': Test.testPostfixSync('options')
+ },
+
+ 'no tries': {
+ topic: function () {
+ try {
+ return tmp.dirSync({ tries: -1 });
+ }
+ catch (e) {
+ return e;
+ }
+ },
+
+ 'should return with an error': function (topic) {
+ assert.instanceOf(topic, Error);
+ }
+ },
+
+ 'keep testing': {
+ topic: function () {
+ Test.testKeepSync('dir', '1', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should be a dir': function (err, name) {
+ _testDir(040700)({ name: name });
+ fs.rmdirSync(name);
+ }
+ },
+
+ 'unlink testing': {
+ topic: function () {
+ Test.testKeepSync('dir', '0', this.callback);
+ },
+
+ 'should not return with error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should not exist': function (err, name) {
+ assert.ok(!existsSync(name), 'Directory should be removed');
+ }
+ },
+
+ 'non graceful testing': {
+ topic: function () {
+ Test.testGracefulSync('dir', '0', this.callback);
+ },
+
+ 'should not return with error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should be a dir': function (err, name) {
+ _testDir(040700)({ name: name });
+ fs.rmdirSync(name);
+ }
+ },
+
+ 'graceful testing': {
+ topic: function () {
+ Test.testGracefulSync('dir', '1', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should not exist': function (err, name) {
+ assert.ok(!existsSync(name), 'Directory should be removed');
+ }
+ },
+
+ 'unsafeCleanup === true': {
+ topic: function () {
+ Test.testUnsafeCleanupSync('1', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should not exist': function (err, name) {
+ assert.ok(!existsSync(name), 'Directory should be removed');
+ },
+ 'should remove symlinked dir': function(err, name) {
+ assert.ok(
+ !existsSync(name + '/symlinkme-target'),
+ 'should remove target'
+ );
+ },
+ 'should not remove contents of symlink dir': function(err, name) {
+ assert.ok(
+ existsSync(__dirname + '/symlinkme/file.js'),
+ 'should not remove symlinked directory\'s content'
+ );
+ }
+ },
+
+ 'unsafeCleanup === true with issue62 structure': {
+ topic: function () {
+ Test.testIssue62Sync(this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should not exist': function (err, name) {
+ assert.ok(!existsSync(name), 'Directory should be removed');
+ }
+ },
+
+ 'unsafeCleanup === false': {
+ topic: function () {
+ Test.testUnsafeCleanupSync('0', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should be a directory': function (err, name) {
+ _testDir(040700)({name:name});
+ // make sure that everything gets cleaned up
+ fs.unlinkSync(path.join(name, 'should-be-removed.file'));
+ fs.unlinkSync(path.join(name, 'symlinkme-target'));
+ fs.rmdirSync(name);
+ }
+ },
+
+ 'remove callback': {
+ topic: function () {
+ return tmp.dirSync();
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'removeCallback should remove directory': function (result) {
+ result.removeCallback();
+ assert.ok(!existsSync(result.name), 'Directory should be removed');
+ }
+ }
+}).exportTo(module);
diff --git a/node_modules/tmp/test/file-sync-test.js b/node_modules/tmp/test/file-sync-test.js
new file mode 100644
index 000000000..44c1d22f5
--- /dev/null
+++ b/node_modules/tmp/test/file-sync-test.js
@@ -0,0 +1,190 @@
+var
+ vows = require('vows'),
+ assert = require('assert'),
+
+ path = require('path'),
+ fs = require('fs'),
+ existsSync = fs.existsSync || path.existsSync,
+
+ tmp = require('../lib/tmp.js'),
+ Test = require('./base.js');
+
+
+function _testFile(mode, fdTest) {
+ return function _testFileGenerated(result) {
+ assert.ok(existsSync(result.name), 'should exist');
+
+ var stat = fs.statSync(result.name);
+ assert.equal(stat.size, 0, 'should have zero size');
+ assert.ok(stat.isFile(), 'should be a file');
+
+ Test.testStat(stat, mode);
+
+ // check with fstat as well (fd checking)
+ if (fdTest) {
+ var fstat = fs.fstatSync(result.fd);
+ assert.deepEqual(fstat, stat, 'fstat results should be the same');
+
+ var data = new Buffer('something');
+ assert.equal(fs.writeSync(result.fd, data, 0, data.length, 0), data.length, 'should be writable');
+ assert.ok(!fs.closeSync(result.fd), 'should not return with error');
+ }
+ };
+}
+
+vows.describe('Synchronous file creation').addBatch({
+ 'when using without parameters': {
+ topic: function () {
+ return tmp.fileSync();
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a file': _testFile(0100600, true),
+ 'should have the default prefix': Test.testPrefixSync('tmp-'),
+ 'should have the default postfix': Test.testPostfixSync('.tmp')
+ },
+
+ 'when using with prefix': {
+ topic: function () {
+ return tmp.fileSync({ prefix: 'something' });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a file': _testFile(0100600, true),
+ 'should have the provided prefix': Test.testPrefixSync('something')
+ },
+
+ 'when using with postfix': {
+ topic: function () {
+ return tmp.fileSync({ postfix: '.txt' });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a file': _testFile(0100600, true),
+ 'should have the provided postfix': Test.testPostfixSync('.txt')
+ },
+
+ 'when using template': {
+ topic: function () {
+ return tmp.fileSync({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a file': _testFile(0100600, true),
+ 'should have the provided prefix': Test.testPrefixSync('clike-'),
+ 'should have the provided postfix': Test.testPostfixSync('-postfix')
+ },
+
+ 'when using name': {
+ topic: function () {
+ return tmp.fileSync({ name: 'using-name.tmp' });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should have the provided name': Test.testNameSync(path.join(tmp.tmpdir, 'using-name.tmp')),
+ 'should be a file': function (result) {
+ _testFile(0100600, true);
+ fs.unlinkSync(result.name);
+ }
+ },
+
+ 'when using multiple options': {
+ topic: function () {
+ return tmp.fileSync({ prefix: 'foo', postfix: 'bar', mode: 0640 });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a file': _testFile(0100640, true),
+ 'should have the provided prefix': Test.testPrefixSync('foo'),
+ 'should have the provided postfix': Test.testPostfixSync('bar')
+ },
+
+ 'when using multiple options and mode': {
+ topic: function () {
+ return tmp.fileSync({ prefix: 'complicated', postfix: 'options', mode: 0644 });
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'should be a file': _testFile(0100644, true),
+ 'should have the provided prefix': Test.testPrefixSync('complicated'),
+ 'should have the provided postfix': Test.testPostfixSync('options')
+ },
+
+ 'no tries': {
+ topic: function () {
+ try {
+ return tmp.fileSync({ tries: -1 });
+ }
+ catch (e) {
+ return e;
+ }
+ },
+
+ 'should return with an error': function (topic) {
+ assert.instanceOf(topic, Error);
+ }
+ },
+
+ 'keep testing': {
+ topic: function () {
+ Test.testKeepSync('file', '1', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should be a file': function (err, name) {
+ _testFile(0100600, false)({name:name});
+ fs.unlinkSync(name);
+ }
+ },
+
+ 'unlink testing': {
+ topic: function () {
+ Test.testKeepSync('file', '0', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should not exist': function (err, name) {
+ assert.ok(!existsSync(name), 'File should be removed');
+ }
+ },
+
+ 'non graceful testing': {
+ topic: function () {
+ Test.testGracefulSync('file', '0', this.callback);
+ },
+
+ 'should not return with error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should be a file': function (err, name) {
+ _testFile(0100600, false)({name:name});
+ fs.unlinkSync(name);
+ }
+ },
+
+ 'graceful testing': {
+ topic: function () {
+ Test.testGracefulSync('file', '1', this.callback);
+ },
+
+ 'should not return with an error': assert.isNull,
+ 'should return with a name': Test.assertName,
+ 'should not exist': function (err, name) {
+ assert.ok(!existsSync(name), 'File should be removed');
+ }
+ },
+
+ 'remove callback': {
+ topic: function () {
+ return tmp.fileSync();
+ },
+
+ 'should return with a name': Test.assertNameSync,
+ 'removeCallback should remove file': function (result) {
+ result.removeCallback();
+ assert.ok(!existsSync(result.name), 'File should be removed');
+ }
+ }
+
+}).exportTo(module);
diff --git a/node_modules/tmp/test/graceful-sync.js b/node_modules/tmp/test/graceful-sync.js
new file mode 100644
index 000000000..37766ffa6
--- /dev/null
+++ b/node_modules/tmp/test/graceful-sync.js
@@ -0,0 +1,20 @@
+var
+ tmp = require('../lib/tmp'),
+ spawn = require('./spawn-sync');
+
+var graceful = spawn.arg;
+
+if (graceful) {
+ tmp.setGracefulCleanup();
+}
+
+try {
+ var result = spawn.tmpFunction();
+ spawn.out(result.name, function () {
+ throw new Error('Thrown on purpose');
+ });
+}
+catch (e) {
+ spawn.err(e, spawn.exit);
+}
+
diff --git a/node_modules/tmp/test/issue62-sync.js b/node_modules/tmp/test/issue62-sync.js
new file mode 100644
index 000000000..94840c66d
--- /dev/null
+++ b/node_modules/tmp/test/issue62-sync.js
@@ -0,0 +1,27 @@
+
+var
+ fs = require('fs'),
+ join = require('path').join,
+ spawn = require('./spawn-sync');
+
+try {
+ var result = spawn.tmpFunction({ unsafeCleanup: true });
+ try {
+ // creates structure from issue 62
+ // https://github.com/raszi/node-tmp/issues/62
+
+ fs.mkdirSync(join(result.name, 'issue62'));
+
+ ['foo', 'bar'].forEach(function(subdir) {
+ fs.mkdirSync(join(result.name, 'issue62', subdir));
+ fs.writeFileSync(join(result.name, 'issue62', subdir, 'baz.txt'), '');
+ });
+
+ spawn.out(result.name, spawn.exit);
+ } catch (e) {
+ spawn.err(e.toString(), spawn.exit);
+ }
+}
+catch (e) {
+ spawn.err(e, spawn.exit);
+}
diff --git a/node_modules/tmp/test/issue62.js b/node_modules/tmp/test/issue62.js
new file mode 100644
index 000000000..004e19077
--- /dev/null
+++ b/node_modules/tmp/test/issue62.js
@@ -0,0 +1,27 @@
+var
+ fs = require('fs'),
+ join = require('path').join,
+ spawn = require('./spawn');
+
+spawn.tmpFunction({ unsafeCleanup: true }, function (err, name) {
+ if (err) {
+ spawn.err(err, spawn.exit);
+ return;
+ }
+
+ try {
+ // creates structure from issue 62
+ // https://github.com/raszi/node-tmp/issues/62
+
+ fs.mkdirSync(join(name, 'issue62'));
+
+ ['foo', 'bar'].forEach(function(subdir) {
+ fs.mkdirSync(join(name, 'issue62', subdir));
+ fs.writeFileSync(join(name, 'issue62', subdir, 'baz.txt'), '');
+ });
+
+ spawn.out(name, spawn.exit);
+ } catch (e) {
+ spawn.err(e.toString(), spawn.exit);
+ }
+});
diff --git a/node_modules/tmp/test/keep-sync.js b/node_modules/tmp/test/keep-sync.js
new file mode 100644
index 000000000..6cd8b186a
--- /dev/null
+++ b/node_modules/tmp/test/keep-sync.js
@@ -0,0 +1,12 @@
+var spawn = require('./spawn-sync');
+
+var keep = spawn.arg;
+
+try {
+ var result = spawn.tmpFunction({ keep: keep });
+ spawn.out(result.name, spawn.exit);
+}
+catch (e) {
+ spawn.err(err, spawn.exit);
+}
+
diff --git a/node_modules/tmp/test/spawn-sync.js b/node_modules/tmp/test/spawn-sync.js
new file mode 100644
index 000000000..bde2db469
--- /dev/null
+++ b/node_modules/tmp/test/spawn-sync.js
@@ -0,0 +1,32 @@
+var
+ fs = require('fs'),
+ tmp = require('../lib/tmp');
+
+function _writeSync(stream, str, cb) {
+ var flushed = stream.write(str);
+ if (flushed) {
+ return cb(null);
+ }
+
+ stream.once('drain', function _flushed() {
+ cb(null);
+ });
+}
+
+module.exports.out = function (str, cb) {
+ _writeSync(process.stdout, str, cb);
+};
+
+module.exports.err = function (str, cb) {
+ _writeSync(process.stderr, str, cb);
+};
+
+module.exports.exit = function () {
+ process.exit(0);
+};
+
+var type = process.argv[2];
+module.exports.tmpFunction = (type == 'file') ? tmp.fileSync : tmp.dirSync;
+
+var arg = (process.argv[3] && parseInt(process.argv[3], 10) === 1) ? true : false;
+module.exports.arg = arg;
diff --git a/node_modules/tmp/test/unsafe-sync.js b/node_modules/tmp/test/unsafe-sync.js
new file mode 100644
index 000000000..97717d05d
--- /dev/null
+++ b/node_modules/tmp/test/unsafe-sync.js
@@ -0,0 +1,30 @@
+var
+ fs = require('fs'),
+ join = require('path').join,
+ spawn = require('./spawn-sync');
+
+var unsafe = spawn.arg;
+
+try {
+ var result = spawn.tmpFunction({ unsafeCleanup: unsafe });
+ try {
+ // file that should be removed
+ var fd = fs.openSync(join(result.name, 'should-be-removed.file'), 'w');
+ fs.closeSync(fd);
+
+ // in tree source
+ var symlinkSource = join(__dirname, 'symlinkme');
+ // testing target
+ var symlinkTarget = join(result.name, 'symlinkme-target');
+
+ // symlink that should be removed but the contents should be preserved.
+ fs.symlinkSync(symlinkSource, symlinkTarget, 'dir');
+
+ spawn.out(result.name, spawn.exit);
+ } catch (e) {
+ spawn.err(e.toString(), spawn.exit);
+ }
+}
+catch (e) {
+ spawn.err(err, spawn.exit);
+}