Skip to content

Instantly share code, notes, and snippets.

@abe33
Created July 8, 2014 08:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abe33/f3e14389911f45e6cec1 to your computer and use it in GitHub Desktop.
Save abe33/f3e14389911f45e6cec1 to your computer and use it in GitHub Desktop.
Git-log install error
0 info it worked if it ends with ok
1 verbose cli [ '/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin/node',
1 verbose cli '/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js',
1 verbose cli '--globalconfig',
1 verbose cli '/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/.apmrc',
1 verbose cli '--userconfig',
1 verbose cli '/Users/cedric/.atom/.apmrc',
1 verbose cli 'install',
1 verbose cli '--target=0.11.10',
1 verbose cli '--arch=x64' ]
2 info using npm@1.4.4
3 info using node@v0.10.26
4 verbose readDependencies using package.json deps
5 verbose install where, deps [ '/Users/cedric/.atom/packages/git-log', [ 'd3' ] ]
6 info preinstall git-log@0.0.0
7 verbose readDependencies using package.json deps
8 verbose cache add [ 'd3@>0.0', null ]
9 verbose cache add name=undefined spec="d3@>0.0" args=["d3@>0.0",null]
10 verbose parsed url { protocol: null,
10 verbose parsed url slashes: null,
10 verbose parsed url auth: null,
10 verbose parsed url host: null,
10 verbose parsed url port: null,
10 verbose parsed url hostname: null,
10 verbose parsed url hash: null,
10 verbose parsed url search: null,
10 verbose parsed url query: null,
10 verbose parsed url pathname: 'd3@%3E0.0',
10 verbose parsed url path: 'd3@%3E0.0',
10 verbose parsed url href: 'd3@%3E0.0' }
11 verbose cache add name="d3" spec=">0.0" args=["d3",">0.0"]
12 verbose parsed url { protocol: null,
12 verbose parsed url slashes: null,
12 verbose parsed url auth: null,
12 verbose parsed url host: null,
12 verbose parsed url port: null,
12 verbose parsed url hostname: null,
12 verbose parsed url hash: null,
12 verbose parsed url search: null,
12 verbose parsed url query: null,
12 verbose parsed url pathname: '%3E0.0',
12 verbose parsed url path: '%3E0.0',
12 verbose parsed url href: '%3E0.0' }
13 verbose addNamed [ 'd3', '>0.0' ]
14 verbose addNamed [ null, '>=0.1.0-0' ]
15 silly lockFile 7e236b19-d3-0-0 d3@>0.0
16 verbose lock d3@>0.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/7e236b19-d3-0-0.lock
17 silly addNameRange { name: 'd3', range: '>=0.1.0-0', hasData: false }
18 verbose url raw d3
19 verbose url resolving [ 'https://registry.npmjs.org/', './d3' ]
20 verbose url resolved https://registry.npmjs.org/d3
21 info trying registry request attempt 1 at 10:15:11
22 verbose etag "1CLB7BFEGVO9CNPWBE6SJU4DC"
23 http GET https://registry.npmjs.org/d3
24 http 304 https://registry.npmjs.org/d3
25 silly registry.get cb [ 304,
25 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:49 GMT',
25 silly registry.get server: 'Apache',
25 silly registry.get via: '1.1 varnish',
25 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:49 GMT',
25 silly registry.get 'cache-control': 'max-age=30',
25 silly registry.get etag: '"1CLB7BFEGVO9CNPWBE6SJU4DC"',
25 silly registry.get 'x-served-by': 'cache-fra1223-FRA',
25 silly registry.get 'x-cache': 'MISS',
25 silly registry.get 'x-cache-hits': '0',
25 silly registry.get 'x-timer': 'S1404807289.279584,VS0,VE715',
25 silly registry.get vary: 'Accept',
25 silly registry.get 'content-length': '0',
25 silly registry.get 'keep-alive': 'timeout=10, max=50',
25 silly registry.get connection: 'Keep-Alive' } ]
26 verbose etag d3 from cache
27 silly addNameRange number 2 { name: 'd3', range: '>=0.1.0-0', hasData: true }
28 silly addNameRange versions [ 'd3',
28 silly addNameRange [ '1.29.5',
28 silly addNameRange '2.1.3',
28 silly addNameRange '2.2.1',
28 silly addNameRange '2.3.0',
28 silly addNameRange '2.3.2',
28 silly addNameRange '2.3.3',
28 silly addNameRange '2.3.4',
28 silly addNameRange '2.4.0',
28 silly addNameRange '2.4.1',
28 silly addNameRange '2.4.2',
28 silly addNameRange '2.5.1',
28 silly addNameRange '2.5.2',
28 silly addNameRange '2.6.0',
28 silly addNameRange '2.7.0',
28 silly addNameRange '2.7.2',
28 silly addNameRange '2.7.3',
28 silly addNameRange '2.7.4',
28 silly addNameRange '2.7.5',
28 silly addNameRange '2.8.0',
28 silly addNameRange '2.8.1',
28 silly addNameRange '2.9.0',
28 silly addNameRange '2.9.1',
28 silly addNameRange '2.9.2',
28 silly addNameRange '2.9.3',
28 silly addNameRange '2.9.4',
28 silly addNameRange '2.9.6',
28 silly addNameRange '2.9.7',
28 silly addNameRange '2.10.0',
28 silly addNameRange '2.10.1',
28 silly addNameRange '2.10.3',
28 silly addNameRange '3.0.0',
28 silly addNameRange '3.0.1',
28 silly addNameRange '3.0.2',
28 silly addNameRange '3.0.3',
28 silly addNameRange '3.0.4',
28 silly addNameRange '3.0.5',
28 silly addNameRange '3.0.6',
28 silly addNameRange '3.0.7',
28 silly addNameRange '3.0.8',
28 silly addNameRange '3.1.0',
28 silly addNameRange '3.1.1',
28 silly addNameRange '3.1.2',
28 silly addNameRange '3.1.3',
28 silly addNameRange '3.1.4',
28 silly addNameRange '3.1.5',
28 silly addNameRange '3.1.6',
28 silly addNameRange '3.1.7',
28 silly addNameRange '3.1.8',
28 silly addNameRange '3.1.9',
28 silly addNameRange '3.1.10',
28 silly addNameRange '3.2.0',
28 silly addNameRange '3.2.1',
28 silly addNameRange '3.2.2',
28 silly addNameRange '3.2.3',
28 silly addNameRange '3.2.4',
28 silly addNameRange '3.2.5',
28 silly addNameRange '3.2.6',
28 silly addNameRange '3.2.7',
28 silly addNameRange '3.2.8',
28 silly addNameRange '3.3.0',
28 silly addNameRange '3.3.1',
28 silly addNameRange '3.3.2',
28 silly addNameRange '3.3.3',
28 silly addNameRange '3.3.4',
28 silly addNameRange '3.3.5',
28 silly addNameRange '3.3.6',
28 silly addNameRange '3.3.7',
28 silly addNameRange '3.3.8',
28 silly addNameRange '3.3.9',
28 silly addNameRange '3.3.10',
28 silly addNameRange '3.3.11',
28 silly addNameRange '3.3.12',
28 silly addNameRange '3.3.13',
28 silly addNameRange '3.4.0',
28 silly addNameRange '3.4.1',
28 silly addNameRange '3.4.2',
28 silly addNameRange '3.4.3',
28 silly addNameRange '3.4.4',
28 silly addNameRange '3.4.5',
28 silly addNameRange '3.4.6',
28 silly addNameRange '3.4.7',
28 silly addNameRange '3.4.8',
28 silly addNameRange '3.4.9' ] ]
29 verbose addNamed [ 'd3', '3.4.9' ]
30 verbose addNamed [ '3.4.9', '3.4.9' ]
31 silly lockFile b63f786c-d3-3-4-9 d3@3.4.9
32 verbose lock d3@3.4.9 /Users/cedric/.atom/.node-gyp/.atom/.apm/b63f786c-d3-3-4-9.lock
33 silly lockFile b63f786c-d3-3-4-9 d3@3.4.9
34 silly lockFile b63f786c-d3-3-4-9 d3@3.4.9
35 silly lockFile 7e236b19-d3-0-0 d3@>0.0
36 silly lockFile 7e236b19-d3-0-0 d3@>0.0
37 silly resolved [ { name: 'd3',
37 silly resolved version: '3.4.9',
37 silly resolved description: 'A small, free JavaScript library for manipulating documents based on data.',
37 silly resolved keywords: [ 'dom', 'w3c', 'visualization', 'svg', 'animation', 'canvas' ],
37 silly resolved homepage: 'http://d3js.org',
37 silly resolved author: { name: 'Mike Bostock', url: 'http://bost.ocks.org/mike' },
37 silly resolved contributors: [ [Object] ],
37 silly resolved repository: { type: 'git', url: 'https://github.com/mbostock/d3.git' },
37 silly resolved main: 'index.js',
37 silly resolved browserify: 'd3.js',
37 silly resolved jspm:
37 silly resolved { main: 'd3',
37 silly resolved shim: [Object],
37 silly resolved files: [Object],
37 silly resolved buildConfig: [Object] },
37 silly resolved jam: { main: 'd3.js', shim: [Object] },
37 silly resolved spm: { main: 'd3.js' },
37 silly resolved dependencies: { jsdom: '0.5.7' },
37 silly resolved devDependencies:
37 silly resolved { smash: '~0.0.12',
37 silly resolved 'uglify-js': '2.4.0',
37 silly resolved vows: '0.7.0',
37 silly resolved seedrandom: '2.3.1' },
37 silly resolved scripts: { test: 'vows; echo' },
37 silly resolved licenses: [ [Object] ],
37 silly resolved readme: '# Data-Driven Documents\n\n<a href="http://d3js.org"><img src="http://d3js.org/logo.svg" align="left" hspace="10" vspace="6"></a>\n\n**D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation.\n\nWant to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki)\n\nFor examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock).\n',
37 silly resolved readmeFilename: 'README.md',
37 silly resolved bugs: { url: 'https://github.com/mbostock/d3/issues' },
37 silly resolved _id: 'd3@3.4.9',
37 silly resolved _from: 'd3@>0.0' } ]
38 info install d3@3.4.9 into /Users/cedric/.atom/packages/git-log
39 info installOne d3@3.4.9
40 info /Users/cedric/.atom/packages/git-log/node_modules/d3 unbuild
41 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/d3/3.4.9/package.tgz
42 silly lockFile 40c2b546-packages-git-log-node-modules-d3 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3
43 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3 /Users/cedric/.atom/.node-gyp/.atom/.apm/40c2b546-packages-git-log-node-modules-d3.lock
44 silly lockFile b1505507-yp-atom-apm-d3-3-4-9-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/d3/3.4.9/package.tgz
45 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/d3/3.4.9/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/b1505507-yp-atom-apm-d3-3-4-9-package-tgz.lock
46 silly gunzTarPerm modes [ '755', '644' ]
47 silly gunzTarPerm extractEntry package.json
48 silly gunzTarPerm extractEntry .npmignore
49 silly gunzTarPerm extractEntry README.md
50 silly gunzTarPerm extractEntry LICENSE
51 silly gunzTarPerm extractEntry d3.js
52 silly gunzTarPerm extractEntry d3.min.js
53 silly gunzTarPerm extractEntry index.js
54 silly gunzTarPerm extractEntry bin/bower
55 silly gunzTarPerm extractEntry bin/component
56 silly gunzTarPerm extractEntry bin/start
57 silly gunzTarPerm extractEntry bin/uglify
58 silly gunzTarPerm extractEntry .spmignore
59 silly gunzTarPerm extractEntry component.json
60 silly gunzTarPerm extractEntry composer.json
61 silly gunzTarPerm extractEntry CONTRIBUTING.md
62 silly gunzTarPerm extractEntry src/d3.js
63 silly gunzTarPerm extractEntry src/end.js
64 silly gunzTarPerm extractEntry src/start.js
65 silly gunzTarPerm extractEntry src/geom/clip-line.js
66 silly gunzTarPerm extractEntry src/geom/delaunay.js
67 silly gunzTarPerm extractEntry src/geom/geom.js
68 silly gunzTarPerm extractEntry src/geom/hull.js
69 silly gunzTarPerm extractEntry src/geom/index.js
70 silly gunzTarPerm extractEntry src/geom/point.js
71 silly gunzTarPerm extractEntry src/geom/polygon.js
72 silly gunzTarPerm extractEntry src/geom/quadtree.js
73 silly gunzTarPerm extractEntry src/geom/voronoi.js
74 silly gunzTarPerm extractEntry src/geom/voronoi/beach.js
75 silly gunzTarPerm extractEntry src/geom/voronoi/cell.js
76 silly gunzTarPerm extractEntry src/geom/voronoi/circle.js
77 silly gunzTarPerm extractEntry src/geom/voronoi/clip.js
78 silly gunzTarPerm extractEntry src/geom/voronoi/edge.js
79 silly gunzTarPerm extractEntry src/geom/voronoi/index.js
80 silly gunzTarPerm extractEntry src/geom/voronoi/red-black.js
81 silly gunzTarPerm extractEntry src/core/array.js
82 silly gunzTarPerm extractEntry src/core/functor.js
83 silly gunzTarPerm extractEntry src/core/identity.js
84 silly gunzTarPerm extractEntry src/core/index.js
85 silly gunzTarPerm extractEntry src/core/noop.js
86 silly gunzTarPerm extractEntry src/core/document.js
87 silly gunzTarPerm extractEntry src/core/rebind.js
88 silly gunzTarPerm extractEntry src/core/source.js
89 silly gunzTarPerm extractEntry src/core/subclass.js
90 silly gunzTarPerm extractEntry src/core/target.js
91 silly gunzTarPerm extractEntry src/core/true.js
92 silly gunzTarPerm extractEntry src/core/class.js
93 silly gunzTarPerm extractEntry src/core/vendor.js
94 silly gunzTarPerm extractEntry src/core/ns.js
95 silly gunzTarPerm extractEntry src/arrays/ascending.js
96 silly gunzTarPerm extractEntry src/arrays/max.js
97 silly gunzTarPerm extractEntry src/arrays/mean.js
98 silly gunzTarPerm extractEntry src/arrays/median.js
99 silly gunzTarPerm extractEntry src/arrays/merge.js
100 silly gunzTarPerm extractEntry src/arrays/map.js
101 silly gunzTarPerm extractEntry src/arrays/nest.js
102 silly gunzTarPerm extractEntry src/arrays/pairs.js
103 silly gunzTarPerm extractEntry src/arrays/permute.js
104 silly gunzTarPerm extractEntry src/arrays/quantile.js
105 silly gunzTarPerm extractEntry src/arrays/range.js
106 silly gunzTarPerm extractEntry src/arrays/keys.js
107 silly gunzTarPerm extractEntry src/arrays/set.js
108 silly gunzTarPerm extractEntry src/arrays/index.js
109 silly gunzTarPerm extractEntry src/arrays/shuffle.js
110 silly gunzTarPerm extractEntry src/arrays/extent.js
111 silly gunzTarPerm extractEntry src/arrays/sum.js
112 silly gunzTarPerm extractEntry src/arrays/entries.js
113 silly gunzTarPerm extractEntry src/arrays/transpose.js
114 silly gunzTarPerm extractEntry src/arrays/descending.js
115 silly gunzTarPerm extractEntry src/arrays/values.js
116 silly gunzTarPerm extractEntry src/arrays/bisect.js
117 silly gunzTarPerm extractEntry src/arrays/zip.js
118 silly gunzTarPerm extractEntry src/arrays/min.js
119 silly gunzTarPerm extractEntry src/dsv/csv.js
120 silly gunzTarPerm extractEntry src/dsv/dsv.js
121 silly gunzTarPerm extractEntry src/dsv/index.js
122 silly gunzTarPerm extractEntry src/dsv/tsv.js
123 silly gunzTarPerm extractEntry src/color/color.js
124 silly gunzTarPerm extractEntry src/color/hcl.js
125 silly gunzTarPerm extractEntry src/color/hsl.js
126 silly gunzTarPerm extractEntry src/color/index.js
127 silly gunzTarPerm extractEntry src/color/lab.js
128 silly gunzTarPerm extractEntry src/color/rgb.js
129 silly gunzTarPerm extractEntry src/color/xyz.js
130 silly gunzTarPerm extractEntry src/event/dispatch.js
131 silly gunzTarPerm extractEntry src/event/drag.js
132 silly gunzTarPerm extractEntry src/event/event.js
133 silly gunzTarPerm extractEntry src/event/index.js
134 silly gunzTarPerm extractEntry src/event/mouse.js
135 silly gunzTarPerm extractEntry src/event/timer.js
136 silly gunzTarPerm extractEntry src/event/touch.js
137 silly gunzTarPerm extractEntry src/event/touches.js
138 silly gunzTarPerm extractEntry src/format/collapse.js
139 silly gunzTarPerm extractEntry src/format/format.js
140 silly gunzTarPerm extractEntry src/format/formatPrefix.js
141 silly gunzTarPerm extractEntry src/format/index.js
142 silly gunzTarPerm extractEntry src/format/precision.js
143 silly gunzTarPerm extractEntry src/format/requote.js
144 silly gunzTarPerm extractEntry src/format/round.js
145 silly gunzTarPerm extractEntry src/geo/albers-usa.js
146 silly gunzTarPerm extractEntry src/geo/conic.js
147 silly gunzTarPerm extractEntry src/geo/distance.js
148 silly gunzTarPerm extractEntry src/geo/equirectangular.js
149 silly gunzTarPerm extractEntry src/geo/geo.js
150 silly gunzTarPerm extractEntry src/geo/conic-equidistant.js
151 silly gunzTarPerm extractEntry src/geo/graticule.js
152 silly gunzTarPerm extractEntry src/geo/greatArc.js
153 silly gunzTarPerm extractEntry src/geo/index.js
154 silly gunzTarPerm extractEntry src/geo/interpolate.js
155 silly gunzTarPerm extractEntry src/geo/length.js
156 silly gunzTarPerm extractEntry src/geo/conic-equal-area.js
157 silly gunzTarPerm extractEntry src/geo/mercator.js
158 silly gunzTarPerm extractEntry src/geo/conic-conformal.js
159 silly gunzTarPerm extractEntry src/geo/orthographic.js
160 silly gunzTarPerm extractEntry src/geo/compose.js
161 silly gunzTarPerm extractEntry src/geo/path-area.js
162 silly gunzTarPerm extractEntry src/geo/clip.js
163 silly gunzTarPerm extractEntry src/geo/path-bounds.js
164 silly gunzTarPerm extractEntry src/geo/clip-polygon.js
165 silly gunzTarPerm extractEntry src/geo/path-buffer.js
166 silly gunzTarPerm extractEntry src/geo/clip-extent.js
167 silly gunzTarPerm extractEntry src/geo/path-centroid.js
168 silly gunzTarPerm extractEntry src/geo/clip-circle.js
169 silly gunzTarPerm extractEntry src/geo/path-context.js
170 silly gunzTarPerm extractEntry src/geo/clip-antimeridian.js
171 silly gunzTarPerm extractEntry src/geo/path.js
172 silly gunzTarPerm extractEntry src/geo/circle.js
173 silly gunzTarPerm extractEntry src/geo/point-in-polygon.js
174 silly gunzTarPerm extractEntry src/geo/centroid.js
175 silly gunzTarPerm extractEntry src/geo/projection.js
176 silly gunzTarPerm extractEntry src/geo/cartesian.js
177 silly gunzTarPerm extractEntry src/geo/resample.js
178 silly gunzTarPerm extractEntry src/geo/bounds.js
179 silly gunzTarPerm extractEntry src/geo/rotation.js
180 silly gunzTarPerm extractEntry src/geo/azimuthal.js
181 silly gunzTarPerm extractEntry src/geo/spherical.js
182 silly gunzTarPerm extractEntry src/geo/azimuthal-equidistant.js
183 silly gunzTarPerm extractEntry src/geo/stereographic.js
184 silly gunzTarPerm extractEntry src/geo/azimuthal-equal-area.js
185 silly gunzTarPerm extractEntry src/geo/stream.js
186 silly gunzTarPerm extractEntry src/geo/area.js
187 silly gunzTarPerm extractEntry src/geo/transform.js
188 silly gunzTarPerm extractEntry src/geo/albers.js
189 silly gunzTarPerm extractEntry src/geo/transverse-mercator.js
190 silly gunzTarPerm extractEntry src/geo/gnomonic.js
191 silly gunzTarPerm extractEntry src/behavior/behavior.js
192 silly gunzTarPerm extractEntry src/behavior/drag.js
193 silly gunzTarPerm extractEntry src/behavior/index.js
194 silly gunzTarPerm extractEntry src/behavior/zoom.js
195 silly gunzTarPerm extractEntry src/interpolate/array.js
196 silly gunzTarPerm extractEntry src/interpolate/index.js
197 silly gunzTarPerm extractEntry src/interpolate/interpolate.js
198 silly gunzTarPerm extractEntry src/interpolate/lab.js
199 silly gunzTarPerm extractEntry src/interpolate/hsl.js
200 silly gunzTarPerm extractEntry src/interpolate/object.js
201 silly gunzTarPerm extractEntry src/interpolate/rgb.js
202 silly gunzTarPerm extractEntry src/interpolate/round.js
203 silly gunzTarPerm extractEntry src/interpolate/string.js
204 silly gunzTarPerm extractEntry src/interpolate/transform.js
205 silly gunzTarPerm extractEntry src/interpolate/hcl.js
206 silly gunzTarPerm extractEntry src/interpolate/uninterpolate.js
207 silly gunzTarPerm extractEntry src/interpolate/ease.js
208 silly gunzTarPerm extractEntry src/interpolate/zoom.js
209 silly gunzTarPerm extractEntry src/interpolate/number.js
210 silly gunzTarPerm extractEntry src/layout/bundle.js
211 silly gunzTarPerm extractEntry src/layout/force.js
212 silly gunzTarPerm extractEntry src/layout/hierarchy.js
213 silly gunzTarPerm extractEntry src/layout/histogram.js
214 silly gunzTarPerm extractEntry src/layout/index.js
215 silly gunzTarPerm extractEntry src/layout/cluster.js
216 silly gunzTarPerm extractEntry src/layout/pack.js
217 silly gunzTarPerm extractEntry src/layout/partition.js
218 silly gunzTarPerm extractEntry src/layout/pie.js
219 silly gunzTarPerm extractEntry src/layout/stack.js
220 silly gunzTarPerm extractEntry src/layout/tree.js
221 silly gunzTarPerm extractEntry src/layout/chord.js
222 silly gunzTarPerm extractEntry src/layout/treemap.js
223 silly gunzTarPerm extractEntry src/layout/layout.js
224 silly gunzTarPerm extractEntry src/locale/ca-ES.js
225 silly gunzTarPerm extractEntry src/locale/en-US.js
226 silly gunzTarPerm extractEntry src/locale/fi-FI.js
227 silly gunzTarPerm extractEntry src/locale/locale.js
228 silly gunzTarPerm extractEntry src/locale/en-GB.js
229 silly gunzTarPerm extractEntry src/locale/pt-BR.js
230 silly gunzTarPerm extractEntry src/locale/ru-RU.js
231 silly gunzTarPerm extractEntry src/locale/time-format.js
232 silly gunzTarPerm extractEntry src/locale/time-scale.js
233 silly gunzTarPerm extractEntry src/locale/zh-CN.js
234 silly gunzTarPerm extractEntry src/locale/number-format.js
235 silly gunzTarPerm extractEntry src/math/abs.js
236 silly gunzTarPerm extractEntry src/math/adder.js
237 silly gunzTarPerm extractEntry src/math/index.js
238 silly gunzTarPerm extractEntry src/math/number.js
239 silly gunzTarPerm extractEntry src/math/random.js
240 silly gunzTarPerm extractEntry src/math/transform.js
241 silly gunzTarPerm extractEntry src/math/trigonometry.js
242 silly gunzTarPerm extractEntry src/scale/bilinear.js
243 silly gunzTarPerm extractEntry src/scale/linear.js
244 silly gunzTarPerm extractEntry src/scale/log.js
245 silly gunzTarPerm extractEntry src/scale/nice.js
246 silly gunzTarPerm extractEntry src/scale/index.js
247 silly gunzTarPerm extractEntry src/scale/polylinear.js
248 silly gunzTarPerm extractEntry src/scale/pow.js
249 silly gunzTarPerm extractEntry src/scale/quantile.js
250 silly gunzTarPerm extractEntry src/scale/quantize.js
251 silly gunzTarPerm extractEntry src/scale/scale.js
252 silly gunzTarPerm extractEntry src/scale/identity.js
253 silly gunzTarPerm extractEntry src/scale/sqrt.js
254 silly gunzTarPerm extractEntry src/scale/category.js
255 silly gunzTarPerm extractEntry src/scale/threshold.js
256 silly gunzTarPerm extractEntry src/scale/ordinal.js
257 silly gunzTarPerm extractEntry src/selection/append.js
258 silly gunzTarPerm extractEntry src/selection/filter.js
259 silly gunzTarPerm extractEntry src/selection/html.js
260 silly gunzTarPerm extractEntry src/selection/index.js
261 silly gunzTarPerm extractEntry src/selection/enter.js
262 silly gunzTarPerm extractEntry src/selection/interrupt.js
263 silly gunzTarPerm extractEntry src/selection/node.js
264 silly gunzTarPerm extractEntry src/selection/on.js
265 silly gunzTarPerm extractEntry src/selection/order.js
266 silly gunzTarPerm extractEntry src/selection/property.js
267 silly gunzTarPerm extractEntry src/selection/enter-select.js
268 silly gunzTarPerm extractEntry src/selection/remove.js
269 silly gunzTarPerm extractEntry src/selection/enter-insert.js
270 silly gunzTarPerm extractEntry src/selection/select.js
271 silly gunzTarPerm extractEntry src/selection/empty.js
272 silly gunzTarPerm extractEntry src/selection/selectAll.js
273 silly gunzTarPerm extractEntry src/selection/each.js
274 silly gunzTarPerm extractEntry src/selection/selection.js
275 silly gunzTarPerm extractEntry src/selection/datum.js
276 silly gunzTarPerm extractEntry src/selection/size.js
277 silly gunzTarPerm extractEntry src/selection/data.js
278 silly gunzTarPerm extractEntry src/selection/sort.js
279 silly gunzTarPerm extractEntry src/selection/classed.js
280 silly gunzTarPerm extractEntry src/selection/style.js
281 silly gunzTarPerm extractEntry src/selection/call.js
282 silly gunzTarPerm extractEntry src/selection/text.js
283 silly gunzTarPerm extractEntry src/selection/attr.js
284 silly gunzTarPerm extractEntry src/selection/transition.js
285 silly gunzTarPerm extractEntry src/selection/insert.js
286 silly gunzTarPerm extractEntry src/compat/date.js
287 silly gunzTarPerm extractEntry src/compat/index.js
288 silly gunzTarPerm extractEntry src/compat/style.js
289 silly gunzTarPerm extractEntry src/svg/arc.js
290 silly gunzTarPerm extractEntry src/svg/axis.js
291 silly gunzTarPerm extractEntry src/svg/brush.js
292 silly gunzTarPerm extractEntry src/svg/chord.js
293 silly gunzTarPerm extractEntry src/svg/area.js
294 silly gunzTarPerm extractEntry src/svg/diagonal.js
295 silly gunzTarPerm extractEntry src/svg/index.js
296 silly gunzTarPerm extractEntry src/svg/line-radial.js
297 silly gunzTarPerm extractEntry src/svg/line.js
298 silly gunzTarPerm extractEntry src/svg/svg.js
299 silly gunzTarPerm extractEntry src/svg/area-radial.js
300 silly gunzTarPerm extractEntry src/svg/symbol.js
301 silly gunzTarPerm extractEntry src/svg/diagonal-radial.js
302 silly gunzTarPerm extractEntry src/time/day.js
303 silly gunzTarPerm extractEntry src/time/hour.js
304 silly gunzTarPerm extractEntry src/time/index.js
305 silly gunzTarPerm extractEntry src/time/interval.js
306 silly gunzTarPerm extractEntry src/time/format.js
307 silly gunzTarPerm extractEntry src/time/month.js
308 silly gunzTarPerm extractEntry src/time/scale-utc.js
309 silly gunzTarPerm extractEntry src/time/scale.js
310 silly gunzTarPerm extractEntry src/time/second.js
311 silly gunzTarPerm extractEntry src/time/time.js
312 silly gunzTarPerm extractEntry src/time/format-utc.js
313 silly gunzTarPerm extractEntry src/time/week.js
314 silly gunzTarPerm extractEntry src/time/format-iso.js
315 silly gunzTarPerm extractEntry src/time/year.js
316 silly gunzTarPerm extractEntry src/time/minute.js
317 silly gunzTarPerm extractEntry src/transition/attr.js
318 silly gunzTarPerm extractEntry src/transition/ease.js
319 silly gunzTarPerm extractEntry src/transition/filter.js
320 silly gunzTarPerm extractEntry src/transition/index.js
321 silly gunzTarPerm extractEntry src/transition/each.js
322 silly gunzTarPerm extractEntry src/transition/select.js
323 silly gunzTarPerm extractEntry src/transition/selectAll.js
324 silly gunzTarPerm extractEntry src/transition/style.js
325 silly gunzTarPerm extractEntry src/transition/subtransition.js
326 silly gunzTarPerm extractEntry src/transition/text.js
327 silly gunzTarPerm extractEntry src/transition/duration.js
328 silly gunzTarPerm extractEntry src/transition/transition.js
329 silly gunzTarPerm extractEntry src/transition/delay.js
330 silly gunzTarPerm extractEntry src/transition/tween.js
331 silly gunzTarPerm extractEntry src/transition/remove.js
332 silly gunzTarPerm extractEntry src/xhr/html.js
333 silly gunzTarPerm extractEntry src/xhr/index.js
334 silly gunzTarPerm extractEntry src/xhr/json.js
335 silly gunzTarPerm extractEntry src/xhr/text.js
336 silly gunzTarPerm extractEntry src/xhr/xhr.js
337 silly gunzTarPerm extractEntry src/xhr/xml.js
338 silly gunzTarPerm extractEntry d3.zip
339 silly gunzTarPerm extractEntry Makefile
340 silly gunzTarPerm extractEntry .travis.yml
341 silly gunzTarPerm extractEntry bower.json
342 silly lockFile 40c2b546-packages-git-log-node-modules-d3 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3
343 silly lockFile 40c2b546-packages-git-log-node-modules-d3 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3
344 silly lockFile b1505507-yp-atom-apm-d3-3-4-9-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/d3/3.4.9/package.tgz
345 silly lockFile b1505507-yp-atom-apm-d3-3-4-9-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/d3/3.4.9/package.tgz
346 info preinstall d3@3.4.9
347 verbose readDependencies using package.json deps
348 verbose readDependencies using package.json deps
349 verbose cache add [ 'jsdom@0.5.7', null ]
350 verbose cache add name=undefined spec="jsdom@0.5.7" args=["jsdom@0.5.7",null]
351 verbose parsed url { protocol: null,
351 verbose parsed url slashes: null,
351 verbose parsed url auth: null,
351 verbose parsed url host: null,
351 verbose parsed url port: null,
351 verbose parsed url hostname: null,
351 verbose parsed url hash: null,
351 verbose parsed url search: null,
351 verbose parsed url query: null,
351 verbose parsed url pathname: 'jsdom@0.5.7',
351 verbose parsed url path: 'jsdom@0.5.7',
351 verbose parsed url href: 'jsdom@0.5.7' }
352 verbose cache add name="jsdom" spec="0.5.7" args=["jsdom","0.5.7"]
353 verbose parsed url { protocol: null,
353 verbose parsed url slashes: null,
353 verbose parsed url auth: null,
353 verbose parsed url host: null,
353 verbose parsed url port: null,
353 verbose parsed url hostname: null,
353 verbose parsed url hash: null,
353 verbose parsed url search: null,
353 verbose parsed url query: null,
353 verbose parsed url pathname: '0.5.7',
353 verbose parsed url path: '0.5.7',
353 verbose parsed url href: '0.5.7' }
354 verbose addNamed [ 'jsdom', '0.5.7' ]
355 verbose addNamed [ '0.5.7', '0.5.7' ]
356 silly lockFile 128cd670-jsdom-0-5-7 jsdom@0.5.7
357 verbose lock jsdom@0.5.7 /Users/cedric/.atom/.node-gyp/.atom/.apm/128cd670-jsdom-0-5-7.lock
358 verbose url raw jsdom/0.5.7
359 verbose url resolving [ 'https://registry.npmjs.org/', './jsdom/0.5.7' ]
360 verbose url resolved https://registry.npmjs.org/jsdom/0.5.7
361 info trying registry request attempt 1 at 10:15:13
362 verbose etag "A7QDUA4C37BAPIOWGLJ62V3Z"
363 http GET https://registry.npmjs.org/jsdom/0.5.7
364 http 304 https://registry.npmjs.org/jsdom/0.5.7
365 silly registry.get cb [ 304,
365 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:50 GMT',
365 silly registry.get server: 'Apache',
365 silly registry.get via: '1.1 varnish',
365 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
365 silly registry.get 'cache-control': 'max-age=30',
365 silly registry.get etag: '"A7QDUA4C37BAPIOWGLJ62V3Z"',
365 silly registry.get 'x-served-by': 'cache-fra1228-FRA',
365 silly registry.get 'x-cache': 'MISS',
365 silly registry.get 'x-cache-hits': '0',
365 silly registry.get 'x-timer': 'S1404807290.992843,VS0,VE106',
365 silly registry.get vary: 'Accept',
365 silly registry.get 'content-length': '0',
365 silly registry.get 'keep-alive': 'timeout=10, max=50',
365 silly registry.get connection: 'Keep-Alive' } ]
366 verbose etag jsdom/0.5.7 from cache
367 silly lockFile 128cd670-jsdom-0-5-7 jsdom@0.5.7
368 silly lockFile 128cd670-jsdom-0-5-7 jsdom@0.5.7
369 silly resolved [ { name: 'jsdom',
369 silly resolved version: '0.5.7',
369 silly resolved description: 'A JavaScript implementation of the W3C DOM',
369 silly resolved keywords: [ 'dom', 'w3c', 'html' ],
369 silly resolved maintainers: [ [Object], [Object] ],
369 silly resolved contributors:
369 silly resolved [ [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object],
369 silly resolved [Object] ],
369 silly resolved bugs:
369 silly resolved { url: 'http://github.com/tmpvar/jsdom/issues',
369 silly resolved email: 'tmpvar@gmail.com' },
369 silly resolved licenses: [ [Object] ],
369 silly resolved repositories: [ [Object] ],
369 silly resolved implements: [ 'http://www.w3.org/TR/REC-DOM-Level-1' ],
369 silly resolved dependencies:
369 silly resolved { htmlparser: '1.x',
369 silly resolved nwmatcher: '~1.3.1',
369 silly resolved request: '2.x',
369 silly resolved cssom: '~0.2.5',
369 silly resolved cssstyle: '~0.2.3',
369 silly resolved contextify: '~0.1.5' },
369 silly resolved devDependencies: { nodeunit: '~0.8.0', html5: '*', optimist: '*' },
369 silly resolved directories: { lib: './lib/jsdom' },
369 silly resolved scripts: { test: 'node ./test/runner' },
369 silly resolved main: './lib/jsdom',
369 silly resolved readme: '# jsdom\n\nA JavaScript implementation of the W3C DOM.\n\n## Install\n\n```bash\n$ npm install jsdom\n```\n\nIf this gives you trouble with errors about installing Contextify, especially on Windows, see [below](#contextify).\n\n## Human contact\n\nsee: [mailing list](http://groups.google.com/group/jsdom)\n\n## Easymode\n\nBootstrapping a DOM is generally a difficult process involving many error prone steps. We didn\'t want jsdom to fall into the same trap and that is why a new method, `jsdom.env()`, has been added in jsdom 0.2.0 which should make everyone\'s lives easier.\n\nwith URL\n\n```js\n// Count all of the links from the nodejs build page\nvar jsdom = require("jsdom");\n\njsdom.env(\n "http://nodejs.org/dist/",\n ["http://code.jquery.com/jquery.js"],\n function (errors, window) {\n console.log("there have been", window.$("a").length, "nodejs releases!");\n }\n);\n```\n\nor with raw HTML\n\n```js\n// Run some jQuery on a html fragment\nvar jsdom = require("jsdom");\n\njsdom.env(\n \'<p><a class="the-link" href="https://github.com/tmpvar/jsdom">jsdom\\\'s Homepage</a></p>\',\n ["http://code.jquery.com/jquery.js"],\n function(errors, window) {\n console.log("contents of a.the-link:", window.$("a.the-link").text());\n }\n);\n```\n\nor with a configuration object\n\n```js\n// Print all of the news items on hackernews\nvar jsdom = require("jsdom");\n\njsdom.env({\n html: "http://news.ycombinator.com/",\n scripts: ["http://code.jquery.com/jquery.js"],\n done: function (errors, window) {\n var $ = window.$;\n console.log("HN Links");\n $("td.title:not(:last) a").each(function() {\n console.log(" -", $(this).text());\n });\n }\n});\n```\n\nor with raw JavaScript source\n\n```js\n// Print all of the news items on hackernews\nvar jsdom = require("jsdom");\nvar fs = require("fs");\nvar jquery = fs.readFileSync("./jquery.js").toString();\n\njsdom.env({\n html: "http://news.ycombinator.com/",\n src: [jquery],\n done: function (errors, window) {\n var $ = window.$;\n console.log("HN Links");\n $("td.title:not(:last) a").each(function() {\n console.log(" -", $(this).text());\n });\n }\n});\n```\n\n### How it works\n`jsdom.env` is built for ease of use, which is rare in the world of the DOM! Since the web has some absolutely horrible JavaScript on it, as of jsdom 0.2.0 `jsdom.env` will not process external resources (scripts, images, etc). If you want to process the JavaScript use one of the methods below (`jsdom.jsdom` or `jsdom.jQueryify`)\n\n```js\njsdom.env(html, [scripts], [config], callback);\n```\n\n- `html` (**required**): may be a URL, HTML fragment, or file.\n- `scripts` (**optional**): may contain files or URLs.\n- `config` (**optional**): see below.\n- `callback` (**required**): takes two arguments:\n - `errors`: an array of errors\n - `window`: a brand new window\n\n_example:_\n\n```js\njsdom.env(html, function (errors, window) {\n // free memory associated with the window\n window.close();\n});\n```\n\nIf you would like to specify a configuration object only:\n\n```js\njsdom.env(config);\n```\n\n- `config.html`: see `html` above.\n- `config.scripts`: see `scripts` above.\n- `config.url`: the URL for `location.href` if `config.html` is not a file path or URL. (Relative `<a href>` and `<img src>` values are evaluated relative to this.)\n- `config.src`: an array of JavaScript strings that will be evaluated against the resulting document. Similar to `scripts`, but it accepts JavaScript instead of paths/URLs.\n- `config.done`: see `callback` above.\n- `config.document`:\n - `referer`: the new document will have this referer\n - `cookie`: manually set a cookie value, e.g. `\'key=value; expires=Wed, Sep 21 2011 12:00:00 GMT; path=/\'`\n- `config.features` : see `Flexibility` section below. **Note**: the default feature set for jsdom.env does _not_ include fetching remote JavaScript and executing it. This is something that you will need to **carefully** enable yourself.\n\n## For the hardcore\n\nIf you want to spawn a document/window and specify all sorts of options this is the section for you. This section covers the `jsdom.jsdom` method:\n\n```js\nvar jsdom = require("jsdom").jsdom;\nvar doc = jsdom(markup, level, options);\nvar window = doc.createWindow();\n```\n\n- `markup` is an HTML/XML document to be parsed. You can also pass `null` or an undefined value to get a basic document with empty `<head>` and `<body>` tags. Document fragments are also supported (including `""`), and will behave as sanely as possible (e.g. the resulting document will lack the `head`, `body` and `documentElement` properties if the corresponding elements aren\'t included).\n\n- `level` is `null` (which means level3) by default, but you can pass another level if you\'d like.\n\n ```js\n var jsdom = require("jsdom");\n var doc = jsdom.jsdom("<html><body></body></html>", jsdom.level(1, "core"));\n ```\n\n- `options` see the **Flexibility** section below.\n\n### Flexibility\n\nOne of the goals of jsdom is to be as minimal and light as possible. This section details how someone can change the behavior of `Document`s on the fly. These features are baked into the `DOMImplementation` that every `Document` has, and may be tweaked in two ways:\n\n1. When you create a new `Document` using the jsdom builder (`require("jsdom").jsdom()`)\n\n ```js\n var jsdom = require("jsdom").jsdom;\n var doc = jsdom("<html><body></body></html>", null, {\n features: {\n FetchExternalResources : ["img"]\n }\n });\n ```\n\n Do note, that this will only affect the document that is currently being created. All other documents will use the defaults specified below (see: Default Features).\n\n2. Before creating any documents, you can modify the defaults for all future documents:\n\n ```js\n require("jsdom").defaultDocumentFeatures = {\n FetchExternalResources: ["script"],\n ProcessExternalResources: false\n };\n ```\n\n#### Default Features\n\nDefault features are extremely important for jsdom as they lower the configuration requirement and present developers a set of consistent default behaviors. The following sections detail the available features, their defaults, and the values that jsdom uses.\n\n\n`FetchExternalResources`\n\n- _Default_: `["script"]`\n- _Allowed_: `["script", "img", "css", "frame", "iframe", "link"]` or `false`\n\nEnables/disables fetching files over the file system/HTTP.\n\n`ProcessExternalResources`\n\n- _Default_: `["script"]`\n- _Allowed_: `["script"]` or `false`\n\nDisabling this will disable script execution (currently only JavaScript).\n\n`SkipExternalResources`\n\n- _Default_: `false`\n- _Allowed_: `/url to be skipped/` or `false`\n- _Example_: `/http:\\/\\/example.org/js/bad\\.js/`\n\nDo not download and process resources with url matching a regular expression.\n\n### Canvas\n\njsdom includes support for using the [canvas](https://npmjs.org/package/canvas) package to extend any `<canvas>` elements with the canvas API. To make this work, you need to include canvas as a dependency in your project, as a peer of jsdom. If jsdom can find the canvas package, it will use it, but if it\'s not present, then `<canvas>` elements will behave like `<div>`s.\n\n## More Examples\n\n### Creating a document-less window\n\n```js\nvar jsdom = require("jsdom");\nvar window = jsdom.createWindow();\n\nconsole.log(window.document); // output: undefined\n```\n\n### Creating a document\n\n```js\nvar jsdom = require("jsdom");\nvar doc = new (jsdom.level(1, "core").Document)();\n\nconsole.log(doc.nodeName); // outputs: #document\n```\n\n### Creating a browser-like BOM/DOM/Window\n\n```js\nvar jsdom = require("jsdom").jsdom;\nvar document = jsdom("<html><head></head><body>hello world</body></html>");\nvar window = document.createWindow();\n\nconsole.log(window.document.innerHTML);\n// output: "<html><head></head><body>hello world</body></html>"\n\nconsole.log(window.innerWidth);\n// output: 1024\n\nconsole.log(typeof window.document.getElementsByClassName);\n// outputs: function\n```\n\n## jQueryify\n\n```js\nvar jsdom = require("jsdom");\nvar window = jsdom.jsdom().createWindow();\n\njsdom.jQueryify(window, "http://code.jquery.com/jquery.js", function () {\n window.$("body").append(\'<div class="testing">Hello World, It works</div>\');\n\n console.log(window.$(".testing").text());\n});\n```\n\n### Passing objects to scripts inside the page\n\n```js\nvar jsdom = require("jsdom").jsdom;\nvar window = jsdom().createWindow();\n\nwindow.__myObject = { foo: "bar" };\n\nvar scriptEl = window.document.createElement("script");\nscriptEl.src = "anotherScript.js";\nwindow.document.body.appendChild(scriptEl);\n\n// anotherScript.js will have the ability to read `window.__myObject`, even\n// though it originated in Node!\n```\n\n## Test Compliance:\n\n```\n level1/core 535/535 100%\n level1/html 238/238 100%\n level1/svg 527/527 100%\n level2/core 283/283 100%\n level2/html 705/705 100%\n level2/style 14/14 100%\n level2/extra 4/4 100%\n level2/events 24/24 100%\n level3/xpath 93/93 100%\n window/index 5/5 100%\n window/script 10/10 100%\n window/frame 14/14 100%\n sizzle/index 14/14 100%\n jsdom/index 88/88 100%\n jsonp/jsonp 1/1 100%\n browser/contextifyReplacement 4/4 100%\n browser/index 34/34 100%\n------------------------------------------------------\nTOTALS: 0/2593 failed; 100% success\n```\n\n### Running the tests\n\nFirst you\'ll want to `npm install`. To run all the tests, use `npm test`, which just calls `node test/runner`.\n\nUsing `test/runner` directly, you can slice and dice which tests your want to run from different levels. Usage is as follows:\n\n```\ntest/runner --help\nRun the jsdom test suite\n\nOptions:\n-s, --suites suites that you want to run. ie: -s level1/core,1/html,html [string]\n-f, --fail-fast stop on the first failed test\n-h, --help show the help\n-t, --tests choose the test cases to run. ie: -t jquery\n```\n\n## Contextify\n\n[Contextify](https://npmjs.org/package/contextify) is a dependency of jsdom, used for running `<script>` tags within the\npage. In other words, it allows jsdom, which is run in Node.js, to run strings of JavaScript in an isolated environment\nthat pretends to be a browser environment instead of a server. You can see how this is an important feature.\n\nUnfortunately, doing this kind of magic requires C++. And in Node.js, using C++ from JavaScript means using "native\nmodules." Native modules are compiled at installation time so that they work precisely for your machine; that is, you\ndon\'t download a contextify binary from npm, but instead build one locally after downloading the source from npm.\n\nFor Mac and Linux users, this is usually fine. Their systems come preinstalled with the necessaries for compiling C++.\nFor Windows users, however, things can be tricky. Thus, one of the most common problems with jsdom is trying to use it\non Windows without the proper compilation tools installed. Here\'s what you need to compile Contextify, and thus to\ninstall jsdom, on Windows:\n\n* A recent copy of the *x86* version of [Node.js for Windows](http://nodejs.org/download/), *not* the x64 version.\n* A copy of [Visual C++ 2010 Express](http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express).\n* A copy of [Python 2.7](http://www.python.org/download/), installed in the default location of `C:\\Python27`.\n\nThere are some slight modifications to this that can work; for example full versions of Visual Studio usually work, and\nsometimes you can even get an x64 version of Node.js working too. But it\'s tricky, so start with the basics!\n',
369 silly resolved readmeFilename: 'README.md',
369 silly resolved repository: { type: 'git', url: 'git://github.com/tmpvar/jsdom.git' },
369 silly resolved homepage: 'https://github.com/tmpvar/jsdom',
369 silly resolved _id: 'jsdom@0.5.7',
369 silly resolved _from: 'jsdom@0.5.7' } ]
370 info install jsdom@0.5.7 into /Users/cedric/.atom/packages/git-log/node_modules/d3
371 info installOne jsdom@0.5.7
372 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom unbuild
373 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/jsdom/0.5.7/package.tgz
374 silly lockFile 5ae53c0e-de-modules-d3-node-modules-jsdom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
375 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom /Users/cedric/.atom/.node-gyp/.atom/.apm/5ae53c0e-de-modules-d3-node-modules-jsdom.lock
376 silly lockFile de320bbe-atom-apm-jsdom-0-5-7-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/jsdom/0.5.7/package.tgz
377 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/jsdom/0.5.7/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/de320bbe-atom-apm-jsdom-0-5-7-package-tgz.lock
378 silly gunzTarPerm modes [ '755', '644' ]
379 silly gunzTarPerm extractEntry package.json
380 silly gunzTarPerm extractEntry README.md
381 silly gunzTarPerm extractEntry LICENSE.txt
382 silly gunzTarPerm extractEntry lib/jsdom.js
383 silly gunzTarPerm extractEntry lib/jsdom/utils.js
384 silly gunzTarPerm extractEntry lib/jsdom/browser/documentfeatures.js
385 silly gunzTarPerm extractEntry lib/jsdom/browser/domtohtml.js
386 silly gunzTarPerm extractEntry lib/jsdom/browser/htmlencoding.js
387 silly gunzTarPerm extractEntry lib/jsdom/browser/htmltodom.js
388 silly gunzTarPerm extractEntry lib/jsdom/browser/index.js
389 silly gunzTarPerm extractEntry lib/jsdom/level1/core.js
390 silly gunzTarPerm extractEntry lib/jsdom/level2/core.js
391 silly gunzTarPerm extractEntry lib/jsdom/level2/events.js
392 silly gunzTarPerm extractEntry lib/jsdom/level2/html.js
393 silly gunzTarPerm extractEntry lib/jsdom/level2/index.js
394 silly gunzTarPerm extractEntry lib/jsdom/level2/style.js
395 silly gunzTarPerm extractEntry lib/jsdom/level2/languages/javascript.js
396 silly gunzTarPerm extractEntry lib/jsdom/level3/core.js
397 silly gunzTarPerm extractEntry lib/jsdom/level3/events.js
398 silly gunzTarPerm extractEntry lib/jsdom/level3/html.js
399 silly gunzTarPerm extractEntry lib/jsdom/level3/index.js
400 silly gunzTarPerm extractEntry lib/jsdom/level3/ls.js
401 silly gunzTarPerm extractEntry lib/jsdom/level3/xpath.js
402 silly gunzTarPerm extractEntry lib/jsdom/selectors/index.js
403 silly lockFile 5ae53c0e-de-modules-d3-node-modules-jsdom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
404 silly lockFile 5ae53c0e-de-modules-d3-node-modules-jsdom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
405 silly lockFile de320bbe-atom-apm-jsdom-0-5-7-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/jsdom/0.5.7/package.tgz
406 silly lockFile de320bbe-atom-apm-jsdom-0-5-7-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/jsdom/0.5.7/package.tgz
407 info preinstall jsdom@0.5.7
408 verbose readDependencies using package.json deps
409 verbose readDependencies using package.json deps
410 verbose cache add [ 'htmlparser@1.x', null ]
411 verbose cache add name=undefined spec="htmlparser@1.x" args=["htmlparser@1.x",null]
412 verbose parsed url { protocol: null,
412 verbose parsed url slashes: null,
412 verbose parsed url auth: null,
412 verbose parsed url host: null,
412 verbose parsed url port: null,
412 verbose parsed url hostname: null,
412 verbose parsed url hash: null,
412 verbose parsed url search: null,
412 verbose parsed url query: null,
412 verbose parsed url pathname: 'htmlparser@1.x',
412 verbose parsed url path: 'htmlparser@1.x',
412 verbose parsed url href: 'htmlparser@1.x' }
413 verbose cache add name="htmlparser" spec="1.x" args=["htmlparser","1.x"]
414 verbose parsed url { protocol: null,
414 verbose parsed url slashes: null,
414 verbose parsed url auth: null,
414 verbose parsed url host: null,
414 verbose parsed url port: null,
414 verbose parsed url hostname: null,
414 verbose parsed url hash: null,
414 verbose parsed url search: null,
414 verbose parsed url query: null,
414 verbose parsed url pathname: '1.x',
414 verbose parsed url path: '1.x',
414 verbose parsed url href: '1.x' }
415 verbose addNamed [ 'htmlparser', '1.x' ]
416 verbose addNamed [ null, '>=1.0.0-0 <2.0.0-0' ]
417 silly lockFile 4d163ec2-htmlparser-1-x htmlparser@1.x
418 verbose lock htmlparser@1.x /Users/cedric/.atom/.node-gyp/.atom/.apm/4d163ec2-htmlparser-1-x.lock
419 verbose cache add [ 'nwmatcher@~1.3.1', null ]
420 verbose cache add name=undefined spec="nwmatcher@~1.3.1" args=["nwmatcher@~1.3.1",null]
421 verbose parsed url { protocol: null,
421 verbose parsed url slashes: null,
421 verbose parsed url auth: null,
421 verbose parsed url host: null,
421 verbose parsed url port: null,
421 verbose parsed url hostname: null,
421 verbose parsed url hash: null,
421 verbose parsed url search: null,
421 verbose parsed url query: null,
421 verbose parsed url pathname: 'nwmatcher@~1.3.1',
421 verbose parsed url path: 'nwmatcher@~1.3.1',
421 verbose parsed url href: 'nwmatcher@~1.3.1' }
422 verbose cache add name="nwmatcher" spec="~1.3.1" args=["nwmatcher","~1.3.1"]
423 verbose parsed url { protocol: null,
423 verbose parsed url slashes: null,
423 verbose parsed url auth: null,
423 verbose parsed url host: null,
423 verbose parsed url port: null,
423 verbose parsed url hostname: null,
423 verbose parsed url hash: null,
423 verbose parsed url search: null,
423 verbose parsed url query: null,
423 verbose parsed url pathname: '~1.3.1',
423 verbose parsed url path: '~1.3.1',
423 verbose parsed url href: '~1.3.1' }
424 verbose addNamed [ 'nwmatcher', '~1.3.1' ]
425 verbose addNamed [ null, '>=1.3.1-0 <1.4.0-0' ]
426 silly lockFile 315a8aad-nwmatcher-1-3-1 nwmatcher@~1.3.1
427 verbose lock nwmatcher@~1.3.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/315a8aad-nwmatcher-1-3-1.lock
428 verbose cache add [ 'request@2.x', null ]
429 verbose cache add name=undefined spec="request@2.x" args=["request@2.x",null]
430 verbose parsed url { protocol: null,
430 verbose parsed url slashes: null,
430 verbose parsed url auth: null,
430 verbose parsed url host: null,
430 verbose parsed url port: null,
430 verbose parsed url hostname: null,
430 verbose parsed url hash: null,
430 verbose parsed url search: null,
430 verbose parsed url query: null,
430 verbose parsed url pathname: 'request@2.x',
430 verbose parsed url path: 'request@2.x',
430 verbose parsed url href: 'request@2.x' }
431 verbose cache add name="request" spec="2.x" args=["request","2.x"]
432 verbose parsed url { protocol: null,
432 verbose parsed url slashes: null,
432 verbose parsed url auth: null,
432 verbose parsed url host: null,
432 verbose parsed url port: null,
432 verbose parsed url hostname: null,
432 verbose parsed url hash: null,
432 verbose parsed url search: null,
432 verbose parsed url query: null,
432 verbose parsed url pathname: '2.x',
432 verbose parsed url path: '2.x',
432 verbose parsed url href: '2.x' }
433 verbose addNamed [ 'request', '2.x' ]
434 verbose addNamed [ null, '>=2.0.0-0 <3.0.0-0' ]
435 silly lockFile c23ecae0-request-2-x request@2.x
436 verbose lock request@2.x /Users/cedric/.atom/.node-gyp/.atom/.apm/c23ecae0-request-2-x.lock
437 silly addNameRange { name: 'htmlparser',
437 silly addNameRange range: '>=1.0.0-0 <2.0.0-0',
437 silly addNameRange hasData: false }
438 silly addNameRange { name: 'nwmatcher',
438 silly addNameRange range: '>=1.3.1-0 <1.4.0-0',
438 silly addNameRange hasData: false }
439 verbose cache add [ 'cssom@~0.2.5', null ]
440 verbose cache add name=undefined spec="cssom@~0.2.5" args=["cssom@~0.2.5",null]
441 verbose parsed url { protocol: null,
441 verbose parsed url slashes: null,
441 verbose parsed url auth: null,
441 verbose parsed url host: null,
441 verbose parsed url port: null,
441 verbose parsed url hostname: null,
441 verbose parsed url hash: null,
441 verbose parsed url search: null,
441 verbose parsed url query: null,
441 verbose parsed url pathname: 'cssom@~0.2.5',
441 verbose parsed url path: 'cssom@~0.2.5',
441 verbose parsed url href: 'cssom@~0.2.5' }
442 verbose cache add name="cssom" spec="~0.2.5" args=["cssom","~0.2.5"]
443 verbose parsed url { protocol: null,
443 verbose parsed url slashes: null,
443 verbose parsed url auth: null,
443 verbose parsed url host: null,
443 verbose parsed url port: null,
443 verbose parsed url hostname: null,
443 verbose parsed url hash: null,
443 verbose parsed url search: null,
443 verbose parsed url query: null,
443 verbose parsed url pathname: '~0.2.5',
443 verbose parsed url path: '~0.2.5',
443 verbose parsed url href: '~0.2.5' }
444 verbose addNamed [ 'cssom', '~0.2.5' ]
445 verbose addNamed [ null, '>=0.2.5-0 <0.3.0-0' ]
446 silly lockFile ff3f1f9f-cssom-0-2-5 cssom@~0.2.5
447 verbose lock cssom@~0.2.5 /Users/cedric/.atom/.node-gyp/.atom/.apm/ff3f1f9f-cssom-0-2-5.lock
448 silly addNameRange { name: 'request', range: '>=2.0.0-0 <3.0.0-0', hasData: false }
449 verbose cache add [ 'contextify@~0.1.5', null ]
450 verbose cache add name=undefined spec="contextify@~0.1.5" args=["contextify@~0.1.5",null]
451 verbose parsed url { protocol: null,
451 verbose parsed url slashes: null,
451 verbose parsed url auth: null,
451 verbose parsed url host: null,
451 verbose parsed url port: null,
451 verbose parsed url hostname: null,
451 verbose parsed url hash: null,
451 verbose parsed url search: null,
451 verbose parsed url query: null,
451 verbose parsed url pathname: 'contextify@~0.1.5',
451 verbose parsed url path: 'contextify@~0.1.5',
451 verbose parsed url href: 'contextify@~0.1.5' }
452 verbose cache add name="contextify" spec="~0.1.5" args=["contextify","~0.1.5"]
453 verbose parsed url { protocol: null,
453 verbose parsed url slashes: null,
453 verbose parsed url auth: null,
453 verbose parsed url host: null,
453 verbose parsed url port: null,
453 verbose parsed url hostname: null,
453 verbose parsed url hash: null,
453 verbose parsed url search: null,
453 verbose parsed url query: null,
453 verbose parsed url pathname: '~0.1.5',
453 verbose parsed url path: '~0.1.5',
453 verbose parsed url href: '~0.1.5' }
454 verbose addNamed [ 'contextify', '~0.1.5' ]
455 verbose addNamed [ null, '>=0.1.5-0 <0.2.0-0' ]
456 silly lockFile 39127fdc-contextify-0-1-5 contextify@~0.1.5
457 verbose lock contextify@~0.1.5 /Users/cedric/.atom/.node-gyp/.atom/.apm/39127fdc-contextify-0-1-5.lock
458 verbose cache add [ 'cssstyle@~0.2.3', null ]
459 verbose cache add name=undefined spec="cssstyle@~0.2.3" args=["cssstyle@~0.2.3",null]
460 verbose parsed url { protocol: null,
460 verbose parsed url slashes: null,
460 verbose parsed url auth: null,
460 verbose parsed url host: null,
460 verbose parsed url port: null,
460 verbose parsed url hostname: null,
460 verbose parsed url hash: null,
460 verbose parsed url search: null,
460 verbose parsed url query: null,
460 verbose parsed url pathname: 'cssstyle@~0.2.3',
460 verbose parsed url path: 'cssstyle@~0.2.3',
460 verbose parsed url href: 'cssstyle@~0.2.3' }
461 verbose cache add name="cssstyle" spec="~0.2.3" args=["cssstyle","~0.2.3"]
462 verbose parsed url { protocol: null,
462 verbose parsed url slashes: null,
462 verbose parsed url auth: null,
462 verbose parsed url host: null,
462 verbose parsed url port: null,
462 verbose parsed url hostname: null,
462 verbose parsed url hash: null,
462 verbose parsed url search: null,
462 verbose parsed url query: null,
462 verbose parsed url pathname: '~0.2.3',
462 verbose parsed url path: '~0.2.3',
462 verbose parsed url href: '~0.2.3' }
463 verbose addNamed [ 'cssstyle', '~0.2.3' ]
464 verbose addNamed [ null, '>=0.2.3-0 <0.3.0-0' ]
465 silly lockFile 4c95b135-cssstyle-0-2-3 cssstyle@~0.2.3
466 verbose lock cssstyle@~0.2.3 /Users/cedric/.atom/.node-gyp/.atom/.apm/4c95b135-cssstyle-0-2-3.lock
467 verbose url raw htmlparser
468 verbose url resolving [ 'https://registry.npmjs.org/', './htmlparser' ]
469 verbose url resolved https://registry.npmjs.org/htmlparser
470 info trying registry request attempt 1 at 10:15:14
471 verbose etag "204GEZ9AMOQW9DYGG4CHFSKBP"
472 http GET https://registry.npmjs.org/htmlparser
473 verbose url raw nwmatcher
474 verbose url resolving [ 'https://registry.npmjs.org/', './nwmatcher' ]
475 verbose url resolved https://registry.npmjs.org/nwmatcher
476 info trying registry request attempt 1 at 10:15:14
477 verbose etag "D4MSGVODX7DOY2YU4BVZRLYE1"
478 http GET https://registry.npmjs.org/nwmatcher
479 silly addNameRange { name: 'cssom', range: '>=0.2.5-0 <0.3.0-0', hasData: false }
480 silly addNameRange { name: 'contextify',
480 silly addNameRange range: '>=0.1.5-0 <0.2.0-0',
480 silly addNameRange hasData: false }
481 silly addNameRange { name: 'cssstyle', range: '>=0.2.3-0 <0.3.0-0', hasData: false }
482 verbose url raw request
483 verbose url resolving [ 'https://registry.npmjs.org/', './request' ]
484 verbose url resolved https://registry.npmjs.org/request
485 info trying registry request attempt 1 at 10:15:14
486 verbose etag "9Y5IYE8VT7ZCSZI80K00WPLCO"
487 http GET https://registry.npmjs.org/request
488 verbose url raw cssom
489 verbose url resolving [ 'https://registry.npmjs.org/', './cssom' ]
490 verbose url resolved https://registry.npmjs.org/cssom
491 info trying registry request attempt 1 at 10:15:14
492 verbose etag "7TUXRYV62WJY3BY8XJ9N9LC5P"
493 http GET https://registry.npmjs.org/cssom
494 verbose url raw cssstyle
495 verbose url resolving [ 'https://registry.npmjs.org/', './cssstyle' ]
496 verbose url resolved https://registry.npmjs.org/cssstyle
497 info trying registry request attempt 1 at 10:15:14
498 verbose etag "BCY3BHEW5WWJ0G0A5T7G5SI86"
499 http GET https://registry.npmjs.org/cssstyle
500 verbose url raw contextify
501 verbose url resolving [ 'https://registry.npmjs.org/', './contextify' ]
502 verbose url resolved https://registry.npmjs.org/contextify
503 info trying registry request attempt 1 at 10:15:14
504 verbose etag "533MUG4QQFQ1WNRGFBVFLRSEZ"
505 http GET https://registry.npmjs.org/contextify
506 http 304 https://registry.npmjs.org/nwmatcher
507 silly registry.get cb [ 304,
507 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
507 silly registry.get server: 'Apache',
507 silly registry.get via: '1.1 varnish',
507 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
507 silly registry.get 'cache-control': 'max-age=30',
507 silly registry.get etag: '"D4MSGVODX7DOY2YU4BVZRLYE1"',
507 silly registry.get 'x-served-by': 'cache-fra1224-FRA',
507 silly registry.get 'x-cache': 'HIT',
507 silly registry.get 'x-cache-hits': '1',
507 silly registry.get 'x-timer': 'S1404807291.505548,VS0,VE0',
507 silly registry.get vary: 'Accept',
507 silly registry.get 'content-length': '0',
507 silly registry.get 'keep-alive': 'timeout=10, max=50',
507 silly registry.get connection: 'Keep-Alive' } ]
508 verbose etag nwmatcher from cache
509 silly addNameRange number 2 { name: 'nwmatcher', range: '>=1.3.1-0 <1.4.0-0', hasData: true }
510 silly addNameRange versions [ 'nwmatcher', [ '1.2.5', '1.3.0', '1.3.1', '1.3.2', '1.3.3' ] ]
511 verbose addNamed [ 'nwmatcher', '1.3.3' ]
512 verbose addNamed [ '1.3.3', '1.3.3' ]
513 silly lockFile 4cb63834-nwmatcher-1-3-3 nwmatcher@1.3.3
514 verbose lock nwmatcher@1.3.3 /Users/cedric/.atom/.node-gyp/.atom/.apm/4cb63834-nwmatcher-1-3-3.lock
515 http 304 https://registry.npmjs.org/htmlparser
516 silly registry.get cb [ 304,
516 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
516 silly registry.get server: 'Apache',
516 silly registry.get via: '1.1 varnish',
516 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
516 silly registry.get 'cache-control': 'max-age=30',
516 silly registry.get etag: '"204GEZ9AMOQW9DYGG4CHFSKBP"',
516 silly registry.get 'x-served-by': 'cache-fra1228-FRA',
516 silly registry.get 'x-cache': 'HIT',
516 silly registry.get 'x-cache-hits': '1',
516 silly registry.get 'x-timer': 'S1404807291.510362,VS0,VE0',
516 silly registry.get vary: 'Accept',
516 silly registry.get 'content-length': '0',
516 silly registry.get 'keep-alive': 'timeout=10, max=50',
516 silly registry.get connection: 'Keep-Alive' } ]
517 verbose etag htmlparser from cache
518 silly addNameRange number 2 { name: 'htmlparser',
518 silly addNameRange range: '>=1.0.0-0 <2.0.0-0',
518 silly addNameRange hasData: true }
519 silly addNameRange versions [ 'htmlparser',
519 silly addNameRange [ '1.6.2',
519 silly addNameRange '1.7.0',
519 silly addNameRange '1.7.1',
519 silly addNameRange '1.7.2',
519 silly addNameRange '1.7.3',
519 silly addNameRange '1.7.4',
519 silly addNameRange '1.7.5',
519 silly addNameRange '1.7.6',
519 silly addNameRange '1.7.7' ] ]
520 verbose addNamed [ 'htmlparser', '1.7.7' ]
521 verbose addNamed [ '1.7.7', '1.7.7' ]
522 silly lockFile 75a5fc3c-htmlparser-1-7-7 htmlparser@1.7.7
523 verbose lock htmlparser@1.7.7 /Users/cedric/.atom/.node-gyp/.atom/.apm/75a5fc3c-htmlparser-1-7-7.lock
524 http 304 https://registry.npmjs.org/request
525 silly registry.get cb [ 304,
525 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
525 silly registry.get server: 'Apache',
525 silly registry.get via: '1.1 varnish',
525 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:06:48 GMT',
525 silly registry.get 'cache-control': 'max-age=30',
525 silly registry.get etag: '"9Y5IYE8VT7ZCSZI80K00WPLCO"',
525 silly registry.get 'x-served-by': 'cache-fra1224-FRA',
525 silly registry.get 'x-cache': 'HIT',
525 silly registry.get 'x-cache-hits': '212',
525 silly registry.get 'x-timer': 'S1404807291.513689,VS0,VE0',
525 silly registry.get vary: 'Accept',
525 silly registry.get 'content-length': '0',
525 silly registry.get 'keep-alive': 'timeout=10, max=50',
525 silly registry.get connection: 'Keep-Alive' } ]
526 verbose etag request from cache
527 silly addNameRange number 2 { name: 'request', range: '>=2.0.0-0 <3.0.0-0', hasData: true }
528 silly addNameRange versions [ 'request',
528 silly addNameRange [ '0.10.0',
528 silly addNameRange '0.8.3',
528 silly addNameRange '0.9.0',
528 silly addNameRange '0.9.1',
528 silly addNameRange '0.9.5',
528 silly addNameRange '1.0.0',
528 silly addNameRange '1.1.0',
528 silly addNameRange '1.1.1',
528 silly addNameRange '1.2.0',
528 silly addNameRange '1.9.0',
528 silly addNameRange '1.9.1',
528 silly addNameRange '1.9.2',
528 silly addNameRange '1.9.3',
528 silly addNameRange '1.9.5',
528 silly addNameRange '1.9.7',
528 silly addNameRange '1.9.8',
528 silly addNameRange '1.9.9',
528 silly addNameRange '2.0.0',
528 silly addNameRange '2.0.1',
528 silly addNameRange '2.0.2',
528 silly addNameRange '2.0.3',
528 silly addNameRange '2.0.4',
528 silly addNameRange '2.0.5',
528 silly addNameRange '2.1.0',
528 silly addNameRange '2.1.1',
528 silly addNameRange '2.2.0',
528 silly addNameRange '2.2.5',
528 silly addNameRange '2.2.6',
528 silly addNameRange '2.2.9',
528 silly addNameRange '2.9.0',
528 silly addNameRange '2.9.1',
528 silly addNameRange '2.9.2',
528 silly addNameRange '2.9.3',
528 silly addNameRange '2.9.100',
528 silly addNameRange '2.9.150',
528 silly addNameRange '2.9.151',
528 silly addNameRange '2.9.152',
528 silly addNameRange '2.9.153',
528 silly addNameRange '2.9.200',
528 silly addNameRange '2.9.201',
528 silly addNameRange '2.9.202',
528 silly addNameRange '2.9.203',
528 silly addNameRange '2.10.0',
528 silly addNameRange '2.11.0',
528 silly addNameRange '2.11.1',
528 silly addNameRange '2.11.2',
528 silly addNameRange '2.11.3',
528 silly addNameRange '2.11.4',
528 silly addNameRange '2.12.0',
528 silly addNameRange '2.14.0',
528 silly addNameRange '2.16.0',
528 silly addNameRange '2.16.2',
528 silly addNameRange '2.16.4',
528 silly addNameRange '2.16.6',
528 silly addNameRange '2.18.0',
528 silly addNameRange '2.19.0',
528 silly addNameRange '2.20.0',
528 silly addNameRange '2.21.0',
528 silly addNameRange '2.22.0',
528 silly addNameRange '2.23.0',
528 silly addNameRange '2.24.0',
528 silly addNameRange '2.25.0',
528 silly addNameRange '2.26.0',
528 silly addNameRange '2.27.0',
528 silly addNameRange '2.28.0',
528 silly addNameRange '2.29.0',
528 silly addNameRange '2.30.0',
528 silly addNameRange '2.31.0',
528 silly addNameRange '2.32.0',
528 silly addNameRange '2.33.0',
528 silly addNameRange '2.34.0',
528 silly addNameRange '2.35.0',
528 silly addNameRange '2.36.0',
528 silly addNameRange '2.37.0' ] ]
529 verbose addNamed [ 'request', '2.37.0' ]
530 verbose addNamed [ '2.37.0', '2.37.0' ]
531 silly lockFile e3e929b1-request-2-37-0 request@2.37.0
532 verbose lock request@2.37.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/e3e929b1-request-2-37-0.lock
533 silly lockFile 75a5fc3c-htmlparser-1-7-7 htmlparser@1.7.7
534 silly lockFile 75a5fc3c-htmlparser-1-7-7 htmlparser@1.7.7
535 silly lockFile 4cb63834-nwmatcher-1-3-3 nwmatcher@1.3.3
536 silly lockFile 4cb63834-nwmatcher-1-3-3 nwmatcher@1.3.3
537 silly lockFile 4d163ec2-htmlparser-1-x htmlparser@1.x
538 silly lockFile 4d163ec2-htmlparser-1-x htmlparser@1.x
539 silly lockFile 315a8aad-nwmatcher-1-3-1 nwmatcher@~1.3.1
540 silly lockFile 315a8aad-nwmatcher-1-3-1 nwmatcher@~1.3.1
541 http 304 https://registry.npmjs.org/cssstyle
542 silly registry.get cb [ 304,
542 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
542 silly registry.get server: 'Apache',
542 silly registry.get via: '1.1 varnish',
542 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:44 GMT',
542 silly registry.get 'cache-control': 'max-age=30',
542 silly registry.get etag: '"BCY3BHEW5WWJ0G0A5T7G5SI86"',
542 silly registry.get 'x-served-by': 'cache-fra1233-FRA',
542 silly registry.get 'x-cache': 'HIT',
542 silly registry.get 'x-cache-hits': '1',
542 silly registry.get 'x-timer': 'S1404807291.532154,VS0,VE0',
542 silly registry.get vary: 'Accept',
542 silly registry.get 'content-length': '0',
542 silly registry.get 'keep-alive': 'timeout=10, max=50',
542 silly registry.get connection: 'Keep-Alive' } ]
543 verbose etag cssstyle from cache
544 silly addNameRange number 2 { name: 'cssstyle', range: '>=0.2.3-0 <0.3.0-0', hasData: true }
545 silly addNameRange versions [ 'cssstyle',
545 silly addNameRange [ '0.1.0',
545 silly addNameRange '0.2.0',
545 silly addNameRange '0.2.1',
545 silly addNameRange '0.2.2',
545 silly addNameRange '0.2.3',
545 silly addNameRange '0.2.4',
545 silly addNameRange '0.2.5',
545 silly addNameRange '0.2.6',
545 silly addNameRange '0.2.7',
545 silly addNameRange '0.2.8',
545 silly addNameRange '0.2.9',
545 silly addNameRange '0.2.10',
545 silly addNameRange '0.2.11',
545 silly addNameRange '0.2.12',
545 silly addNameRange '0.2.13',
545 silly addNameRange '0.2.14' ] ]
546 verbose addNamed [ 'cssstyle', '0.2.14' ]
547 verbose addNamed [ '0.2.14', '0.2.14' ]
548 silly lockFile b6ebad18-cssstyle-0-2-14 cssstyle@0.2.14
549 verbose lock cssstyle@0.2.14 /Users/cedric/.atom/.node-gyp/.atom/.apm/b6ebad18-cssstyle-0-2-14.lock
550 http 304 https://registry.npmjs.org/cssom
551 silly registry.get cb [ 304,
551 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
551 silly registry.get server: 'Apache',
551 silly registry.get via: '1.1 varnish',
551 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
551 silly registry.get 'cache-control': 'max-age=30',
551 silly registry.get etag: '"7TUXRYV62WJY3BY8XJ9N9LC5P"',
551 silly registry.get 'x-served-by': 'cache-fra1221-FRA',
551 silly registry.get 'x-cache': 'HIT',
551 silly registry.get 'x-cache-hits': '1',
551 silly registry.get 'x-timer': 'S1404807291.532917,VS0,VE0',
551 silly registry.get vary: 'Accept',
551 silly registry.get 'content-length': '0',
551 silly registry.get 'keep-alive': 'timeout=10, max=50',
551 silly registry.get connection: 'Keep-Alive' } ]
552 verbose etag cssom from cache
553 silly addNameRange number 2 { name: 'cssom', range: '>=0.2.5-0 <0.3.0-0', hasData: true }
554 silly addNameRange versions [ 'cssom',
554 silly addNameRange [ '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.3.0' ] ]
555 verbose addNamed [ 'cssom', '0.2.5' ]
556 verbose addNamed [ '0.2.5', '0.2.5' ]
557 silly lockFile 452affd3-cssom-0-2-5 cssom@0.2.5
558 verbose lock cssom@0.2.5 /Users/cedric/.atom/.node-gyp/.atom/.apm/452affd3-cssom-0-2-5.lock
559 silly lockFile b6ebad18-cssstyle-0-2-14 cssstyle@0.2.14
560 silly lockFile b6ebad18-cssstyle-0-2-14 cssstyle@0.2.14
561 silly lockFile 4c95b135-cssstyle-0-2-3 cssstyle@~0.2.3
562 silly lockFile 4c95b135-cssstyle-0-2-3 cssstyle@~0.2.3
563 silly lockFile e3e929b1-request-2-37-0 request@2.37.0
564 silly lockFile e3e929b1-request-2-37-0 request@2.37.0
565 silly lockFile c23ecae0-request-2-x request@2.x
566 silly lockFile c23ecae0-request-2-x request@2.x
567 silly lockFile 452affd3-cssom-0-2-5 cssom@0.2.5
568 silly lockFile 452affd3-cssom-0-2-5 cssom@0.2.5
569 silly lockFile ff3f1f9f-cssom-0-2-5 cssom@~0.2.5
570 silly lockFile ff3f1f9f-cssom-0-2-5 cssom@~0.2.5
571 http 304 https://registry.npmjs.org/contextify
572 silly registry.get cb [ 304,
572 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
572 silly registry.get server: 'Apache',
572 silly registry.get via: '1.1 varnish',
572 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
572 silly registry.get 'cache-control': 'max-age=30',
572 silly registry.get etag: '"533MUG4QQFQ1WNRGFBVFLRSEZ"',
572 silly registry.get 'x-served-by': 'cache-fra1224-FRA',
572 silly registry.get 'x-cache': 'HIT',
572 silly registry.get 'x-cache-hits': '1',
572 silly registry.get 'x-timer': 'S1404807291.581022,VS0,VE0',
572 silly registry.get vary: 'Accept',
572 silly registry.get 'content-length': '0',
572 silly registry.get 'keep-alive': 'timeout=10, max=49',
572 silly registry.get connection: 'Keep-Alive' } ]
573 verbose etag contextify from cache
574 silly addNameRange number 2 { name: 'contextify',
574 silly addNameRange range: '>=0.1.5-0 <0.2.0-0',
574 silly addNameRange hasData: true }
575 silly addNameRange versions [ 'contextify',
575 silly addNameRange [ '0.0.2',
575 silly addNameRange '0.0.3',
575 silly addNameRange '0.0.4',
575 silly addNameRange '0.0.5',
575 silly addNameRange '0.0.6',
575 silly addNameRange '0.0.7',
575 silly addNameRange '0.1.0',
575 silly addNameRange '0.1.1',
575 silly addNameRange '0.1.2',
575 silly addNameRange '0.1.3',
575 silly addNameRange '0.1.4',
575 silly addNameRange '0.1.5',
575 silly addNameRange '0.1.6',
575 silly addNameRange '0.1.7',
575 silly addNameRange '0.1.8' ] ]
576 verbose addNamed [ 'contextify', '0.1.8' ]
577 verbose addNamed [ '0.1.8', '0.1.8' ]
578 silly lockFile c5acf7e8-contextify-0-1-8 contextify@0.1.8
579 verbose lock contextify@0.1.8 /Users/cedric/.atom/.node-gyp/.atom/.apm/c5acf7e8-contextify-0-1-8.lock
580 silly lockFile c5acf7e8-contextify-0-1-8 contextify@0.1.8
581 silly lockFile c5acf7e8-contextify-0-1-8 contextify@0.1.8
582 silly lockFile 39127fdc-contextify-0-1-5 contextify@~0.1.5
583 silly lockFile 39127fdc-contextify-0-1-5 contextify@~0.1.5
584 silly resolved [ { name: 'htmlparser',
584 silly resolved description: 'Forgiving HTML/XML/RSS Parser in JS for *both* Node and Browsers',
584 silly resolved version: '1.7.7',
584 silly resolved author: { name: 'Chris Winberry', email: 'chris@winberry.net' },
584 silly resolved contributors: [],
584 silly resolved repository:
584 silly resolved { type: 'git',
584 silly resolved url: 'https://github.com/tautologistics/node-htmlparser' },
584 silly resolved keywords: [ 'html', 'xml', 'rss', 'parser' ],
584 silly resolved directories: { lib: './lib/' },
584 silly resolved main: './lib/htmlparser',
584 silly resolved homepage: 'http://github.com/tautologistics/node-htmlparser',
584 silly resolved bugs: { url: 'http://github.com/tautologistics/node-htmlparser/issues' },
584 silly resolved engines: { node: '>=0.1.33' },
584 silly resolved licenses: [ [Object] ],
584 silly resolved readme: '#NodeHtmlParser\nA forgiving HTML/XML/RSS parser written in JS for both the browser and NodeJS (yes, despite the name it works just fine in any modern browser). The parser can handle streams (chunked data) and supports custom handlers for writing custom DOMs/output.\n\n##Installing\n\n\tnpm install htmlparser\n\n##Running Tests\n\n###Run tests under node:\n\tnode runtests.js\n\n###Run tests in browser:\nView runtests.html in any browser\n\n##Usage In Node\n\n```javascript\nvar htmlparser = require("htmlparser");\nvar rawHtml = "Xyz <script language= javascript>var foo = \'<<bar>>\';< / script><!--<!-- Waah! -- -->";\nvar handler = new htmlparser.DefaultHandler(function (error, dom) {\n\tif (error)\n\t\t[...do something for errors...]\n\telse\n\t\t[...parsing done, do something...]\n});\nvar parser = new htmlparser.Parser(handler);\nparser.parseComplete(rawHtml);\nsys.puts(sys.inspect(handler.dom, false, null));\n```\n\n##Usage In Browser\n\n```javascript\nvar handler = new Tautologistics.NodeHtmlParser.DefaultHandler(function (error, dom) {\n\tif (error)\n\t\t[...do something for errors...]\n\telse\n\t\t[...parsing done, do something...]\n});\nvar parser = new Tautologistics.NodeHtmlParser.Parser(handler);\nparser.parseComplete(document.body.innerHTML);\nalert(JSON.stringify(handler.dom, null, 2));\n```\n\n##Example output\n\n```javascript\n[ { raw: \'Xyz \', data: \'Xyz \', type: \'text\' }\n , { raw: \'script language= javascript\'\n , data: \'script language= javascript\'\n , type: \'script\'\n , name: \'script\'\n , attribs: { language: \'javascript\' }\n , children: \n [ { raw: \'var foo = \\\'<bar>\\\';<\'\n , data: \'var foo = \\\'<bar>\\\';<\'\n , type: \'text\'\n }\n ]\n }\n, { raw: \'<!-- Waah! -- \'\n , data: \'<!-- Waah! -- \'\n , type: \'comment\'\n }\n]\n```\n\n##Streaming To Parser\n\n```javascript\nwhile (...) {\n\t...\n\tparser.parseChunk(chunk);\n}\nparser.done();\t\n```\n\n##Parsing RSS/Atom Feeds\n\n```javascript\nnew htmlparser.RssHandler(function (error, dom) {\n\t...\n});\n```\n\n##DefaultHandler Options\n\n###Usage\n\n```javascript\nvar handler = new htmlparser.DefaultHandler(\n\t function (error) { ... }\n\t, { verbose: false, ignoreWhitespace: true }\n\t);\n```\n\n###Option: ignoreWhitespace\nIndicates whether the DOM should exclude text nodes that consists solely of whitespace. The default value is "false".\n\n####Example: true\n\nThe following HTML:\n\n```html\n<font>\n\t<br>this is the text\n<font>\n```\n\nbecomes:\n\n```javascript\n[ { raw: \'font\'\n , data: \'font\'\n , type: \'tag\'\n , name: \'font\'\n , children: \n [ { raw: \'br\', data: \'br\', type: \'tag\', name: \'br\' }\n , { raw: \'this is the text\\n\'\n , data: \'this is the text\\n\'\n , type: \'text\'\n }\n , { raw: \'font\', data: \'font\', type: \'tag\', name: \'font\' }\n ]\n }\n]\n```\n\n####Example: false\n\nThe following HTML:\n\n```html\n<font>\n\t<br>this is the text\n<font>\n```\n\nbecomes:\n\n```javascript\n[ { raw: \'font\'\n , data: \'font\'\n , type: \'tag\'\n , name: \'font\'\n , children: \n [ { raw: \'\\n\\t\', data: \'\\n\\t\', type: \'text\' }\n , { raw: \'br\', data: \'br\', type: \'tag\', name: \'br\' }\n , { raw: \'this is the text\\n\'\n , data: \'this is the text\\n\'\n , type: \'text\'\n }\n , { raw: \'font\', data: \'font\', type: \'tag\', name: \'font\' }\n ]\n }\n]\n```\n\n###Option: verbose\nIndicates whether to include extra information on each node in the DOM. This information consists of the "raw" attribute (original, unparsed text found between "<" and ">") and the "data" attribute on "tag", "script", and "comment" nodes. The default value is "true". \n\n####Example: true\nThe following HTML:\n\n```html\n<a href="test.html">xxx</a>\n```\n\nbecomes:\n\n```javascript\n[ { raw: \'a href="test.html"\'\n , data: \'a href="test.html"\'\n , type: \'tag\'\n , name: \'a\'\n , attribs: { href: \'test.html\' }\n , children: [ { raw: \'xxx\', data: \'xxx\', type: \'text\' } ]\n }\n]\n```\n\n####Example: false\nThe following HTML:\n\n```javascript\n<a href="test.html">xxx</a>\n```\n\nbecomes:\n\n```javascript\n[ { type: \'tag\'\n , name: \'a\'\n , attribs: { href: \'test.html\' }\n , children: [ { data: \'xxx\', type: \'text\' } ]\n }\n]\n```\n\n###Option: enforceEmptyTags\nIndicates whether the DOM should prevent children on tags marked as empty in the HTML spec. Typically this should be set to "true" HTML parsing and "false" for XML parsing. The default value is "true".\n\n####Example: true\nThe following HTML:\n\n```html\n<link>text</link>\n```\n\nbecomes:\n\n```javascript\n[ { raw: \'link\', data: \'link\', type: \'tag\', name: \'link\' }\n, { raw: \'text\', data: \'text\', type: \'text\' }\n]\n```\n\n####Example: false\nThe following HTML:\n\n```html\n<link>text</link>\n```\n\nbecomes:\n\n```javascript\n[ { raw: \'link\'\n , data: \'link\'\n , type: \'tag\'\n , name: \'link\'\n , children: [ { raw: \'text\', data: \'text\', type: \'text\' } ]\n }\n]\n```\n\n##DomUtils\n\n###TBD (see utils_example.js for now)\n\n##Related Projects\n\nLooking for CSS selectors to search the DOM? Try Node-SoupSelect, a port of SoupSelect to NodeJS: http://github.com/harryf/node-soupselect\n\nThere\'s also a port of hpricot to NodeJS that uses HtmlParser for HTML parsing: http://github.com/silentrob/Apricot\n\n',
584 silly resolved readmeFilename: 'README.md',
584 silly resolved _id: 'htmlparser@1.7.7',
584 silly resolved _from: 'htmlparser@1.x' },
584 silly resolved { name: 'nwmatcher',
584 silly resolved version: '1.3.3',
584 silly resolved description: 'A CSS3-compliant JavaScript selector engine.',
584 silly resolved homepage: 'http://javascript.nwbox.com/NWMatcher/',
584 silly resolved main: './src/nwmatcher',
584 silly resolved keywords: [ 'css', 'matcher', 'selector', 'ender' ],
584 silly resolved licenses: [ [Object] ],
584 silly resolved author:
584 silly resolved { name: 'Diego Perini',
584 silly resolved email: 'diego.perini@gmail.com',
584 silly resolved url: 'http://www.iport.it/' },
584 silly resolved maintainers: [ [Object] ],
584 silly resolved bugs: { url: 'http://github.com/dperini/nwmatcher/issues' },
584 silly resolved repository: { type: 'git', url: 'git://github.com/dperini/nwmatcher.git' },
584 silly resolved ender: './lib/ender/bridge.js',
584 silly resolved readme: '# [NWMatcher](http://dperini.github.io/nwmatcher/)\n\nA fast CSS selector engine and matcher.\n\n\n## Installation\n\nTo include NWMatcher in a standard web page:\n\n```html\n<script type="text/javascript" src="nwmatcher.js"></script>\n```\n\nTo use it with Node.js:\n\n```\n$ npm install nwmatcher.js\n```\n\nNWMatcher currently supports browsers (as a global, `NW.Dom`) and headless environments (as a CommonJS module).\n\n\n## Supported Selectors\n\nHere is a list of all the CSS2/CSS3 [Supported selectors](https://github.com/dperini/nwmatcher/wiki/CSS-supported-selectors).\n\n\n## Features and Compliance\n\nYou can read more about NWMatcher [features and compliance](https://github.com/dperini/nwmatcher/wiki/Features-and-compliance) on the wiki.\n\n\n## API\n\n### DOM Selection\n\n#### `first( selector, context )`\n\nReturns a reference to the first element matching `selector`, starting at `context`.\n\n#### `match( element, selector, context )`\n\nReturns `true` if `element` matches `selector`, starting at `context`; returns `false` otherwise.\n\n#### `select( selector, context, callback )`\n\nReturns an array of all the elements matching `selector`, starting at `context`. If `callback` is provided, it is invoked for each matching element.\n\n\n### DOM Helpers\n\n#### `byId( id, from )`\n\nReturns a reference to the first element with ID `id`, optionally filtered to descendants of the element `from`.\n\n#### `byTag( tag, from )`\n\nReturns an array of elements having the specified tag name `tag`, optionally filtered to descendants of the element `from`.\n\n#### `byClass( class, from )`\n\nReturns an array of elements having the specified class name `class`, optionally filtered to descendants of the element `from`.\n\n#### `byName( name, from )`\n\nReturns an array of elements having the specified value `name` for their name attribute, optionally filtered to descendants of the element `from`.\n\n#### `getAttribute( element, attribute )`\n\nReturn the value read from the attribute of `element` with name `attribute`, as a string.\n\n#### `hasAttribute( element, attribute )`\n\nReturns true `element` has an attribute with name `attribute` set; returns `false` otherwise.\n\n\n### Engine Configuration\n\n#### `configure( options )`\n\nThe following options exist and can be set to `true` or `false`:\n\n* `CACHING`: enable caching of results\n* `SHORTCUTS`: allow accepting mangled selectors\n* `SIMPLENOT`: disallow nested complex `:not()` selectors\n* `UNIQUE_ID`: disallow multiple elements with same ID\n* `USE_QSAPI`: enable native `querySelectorAll` if available\n* `USE_HTML5`: enable special HTML5 rules, related to the relationship between `:checked` and `:selected`\n* `VERBOSITY`: choose between throwing errors or just console warnings\n\nExample:\n\n```js\nNW.Dom.configure( { USE_QSAPI: false, VERBOSITY: false } );\n```\n\n#### `registerOperator( symbol, resolver )`\n\nRegisters a new symbol and its matching resolver in the operators table. Example:\n\n```js\nNW.Dom.registerOperator( \'!=\', \'n!="%m"\' );\n```\n\n#### `registerSelector( name, rexp, func )`\n\nRegisters a new selector, with the matching regular expression and the appropriate resolver function, in the selectors table.\n',
584 silly resolved readmeFilename: 'README.md',
584 silly resolved _id: 'nwmatcher@1.3.3',
584 silly resolved _from: 'nwmatcher@~1.3.1' },
584 silly resolved { name: 'cssstyle',
584 silly resolved description: 'CSSStyleDeclaration Object Model implementation',
584 silly resolved keywords: [ 'CSS', 'CSSStyleDeclaration', 'StyleSheet' ],
584 silly resolved version: '0.2.14',
584 silly resolved homepage: 'https://github.com/chad3814/CSSStyleDeclaration',
584 silly resolved maintainers: [ [Object] ],
584 silly resolved contributors: [ [Object] ],
584 silly resolved repository:
584 silly resolved { type: 'git',
584 silly resolved url: 'git://github.com/chad3814/CSSStyleDeclaration.git' },
584 silly resolved bugs: { url: 'https://github.com/chad3814/CSSStyleDeclaration/issues' },
584 silly resolved directories: { lib: './lib' },
584 silly resolved main: './lib/CSSStyleDeclaration.js',
584 silly resolved dependencies: { cssom: '0.3.x' },
584 silly resolved devDependencies: { nodeunit: '~0.8.0' },
584 silly resolved scripts: { test: 'nodeunit tests' },
584 silly resolved licenses: [ [Object] ],
584 silly resolved readme: 'CSSStyleDeclaration\n===================\n\nCSSStyleDeclaration is a work-a-like to the CSSStyleDeclaration class in Nikita Vasilyev\'s [CSSOM](https://github.com/NV/CSSOM). I made it so that when using [jQuery in node](https://github.com/tmtk75/node-jquery) setting css attributes via $.fn.css() would work. node-jquery uses [jsdom](https://github.com/tmpvar/jsdom) to create a DOM to use in node. jsdom uses CSSOM for styling, and CSSOM\'s implementation of the [CSSStyleDeclaration](http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration) doesn\'t support [CSS2Properties](http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSS2Properties), which is how jQuery\'s [$.fn.css()](http://api.jquery.com/css/) operates.\n\n\nWhy not just issue a pull request?\n----\nWell, NV wants to keep CSSOM fast (which I can appreciate) and CSS2Properties aren\'t required by the standard (though every browser has the interface). So I figured the path of least resistence would be to just modify this one class, publish it as a node module (that requires CSSOM) and then make a pull request of jsdom to use it.\n\nHow do I test this code?\n---\n`npm test` should do the trick, assuming you have the dev dependencies installed:\n> ```\n> $ npm test\n>\n> tests\n> ✔ Verify Has Properties\n> ✔ Verify Has Functions\n> ✔ Verify Has Special Properties\n> ✔ Test From Style String\n> ✔ Test From Properties\n> ✔ Test Shorthand Properties\n> ✔ Test width and height Properties and null and empty strings\n> ✔ Test Implicit Properties\n> ```\n\n',
584 silly resolved readmeFilename: 'README.md',
584 silly resolved _id: 'cssstyle@0.2.14',
584 silly resolved _from: 'cssstyle@~0.2.3' },
584 silly resolved { name: 'request',
584 silly resolved description: 'Simplified HTTP request client.',
584 silly resolved tags: [ 'http', 'simple', 'util', 'utility' ],
584 silly resolved version: '2.37.0',
584 silly resolved author: { name: 'Mikeal Rogers', email: 'mikeal.rogers@gmail.com' },
584 silly resolved repository: { type: 'git', url: 'http://github.com/mikeal/request.git' },
584 silly resolved bugs: { url: 'http://github.com/mikeal/request/issues' },
584 silly resolved license: 'Apache-2.0',
584 silly resolved engines: [ 'node >= 0.8.0' ],
584 silly resolved main: 'index.js',
584 silly resolved dependencies:
584 silly resolved { qs: '~0.6.0',
584 silly resolved 'json-stringify-safe': '~5.0.0',
584 silly resolved 'mime-types': '~1.0.1',
584 silly resolved 'forever-agent': '~0.5.0',
584 silly resolved 'node-uuid': '~1.4.0',
584 silly resolved 'tough-cookie': '>=0.12.0',
584 silly resolved 'form-data': '~0.1.0',
584 silly resolved 'tunnel-agent': '~0.4.0',
584 silly resolved 'http-signature': '~0.10.0',
584 silly resolved 'oauth-sign': '~0.3.0',
584 silly resolved hawk: '1.1.1',
584 silly resolved 'aws-sign2': '~0.5.0' },
584 silly resolved optionalDependencies:
584 silly resolved { 'tough-cookie': '>=0.12.0',
584 silly resolved 'form-data': '~0.1.0',
584 silly resolved 'tunnel-agent': '~0.4.0',
584 silly resolved 'http-signature': '~0.10.0',
584 silly resolved 'oauth-sign': '~0.3.0',
584 silly resolved hawk: '1.1.1',
584 silly resolved 'aws-sign2': '~0.5.0' },
584 silly resolved scripts: { test: 'node tests/run.js' },
584 silly resolved readme: '# Request -- Simplified HTTP client\n\n[![NPM](https://nodei.co/npm/request.png)](https://nodei.co/npm/request/)\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require(\'request\');\nrequest(\'http://www.google.com\', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Print the google web page.\n }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest(\'http://google.com/doodle.png\').pipe(fs.createWriteStream(\'doodle.png\'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one).\n\n```javascript\nfs.createReadStream(\'file.json\').pipe(request.put(\'http://mysite.com/obj.json\'))\n```\n\nRequest can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers.\n\n```javascript\nrequest.get(\'http://google.com/img.png\').pipe(request.put(\'http://mysite.com/img.png\'))\n```\n\nNow let’s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n if (req.method === \'PUT\') {\n req.pipe(request.put(\'http://mysite.com/doodle.png\'))\n } else if (req.method === \'GET\' || req.method === \'HEAD\') {\n request.get(\'http://mysite.com/doodle.png\').pipe(resp)\n }\n }\n})\n```\n\nYou can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don\'t really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n var x = request(\'http://mysite.com/doodle.png\')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :)\n\n```javascript\nreq.pipe(request(\'http://mysite.com/doodle.png\')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({\'proxy\':\'http://localproxy.com\'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n r.get(\'http://google.com/doodle.png\').pipe(resp)\n }\n})\n```\n\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## UNIX Socket \n\n`request` supports the `unix://` protocol for all requests. The path is assumed to be absolute to the root of the host file system. \n\nHTTP paths are extracted from the supplied URL by testing each level of the full URL against net.connect for a socket response.\n\nThus the following request will GET `/httppath` from the HTTP server listening on `/tmp/unix.socket`\n\n```javascript\nrequest.get(\'unix://tmp/unix.socket/httppath\')\n```\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nURL-encoded forms are simple.\n\n```javascript\nrequest.post(\'http://service.com/upload\', {form:{key:\'value\'}})\n// or\nrequest.post(\'http://service.com/upload\').form({key:\'value\'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don’t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post(\'http://service.com/upload\', function optionalCallback (err, httpResponse, body) {\n if (err) {\n return console.error(\'upload failed:\', err);\n }\n console.log(\'Upload successful! Server responded with:\', body);\n})\nvar form = r.form()\nform.append(\'my_field\', \'my_value\')\nform.append(\'my_buffer\', new Buffer([1, 2, 3]))\nform.append(\'my_file\', fs.createReadStream(path.join(__dirname, \'doodle.png\')))\nform.append(\'remote_file\', request(\'http://google.com/doodle.png\'))\n\n// Just like always, `r` is a writable stream, and can be used as such (you have until nextTick to pipe it, etc.)\n// Alternatively, you can provide a callback (that\'s what this example does-- see `optionalCallback` above).\n```\n\n## HTTP Authentication\n\n```javascript\nrequest.get(\'http://some.server.com/\').auth(\'username\', \'password\', false);\n// or\nrequest.get(\'http://some.server.com/\', {\n \'auth\': {\n \'user\': \'username\',\n \'pass\': \'password\',\n \'sendImmediately\': false\n }\n});\n// or\nrequest.get(\'http://some.server.com/\').auth(null, null, true, \'bearerToken\');\n// or\nrequest.get(\'http://some.server.com/\', {\n \'auth\': {\n \'bearer\': \'bearerToken\'\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values `user` || `username`, `pass` || `password`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`.\n\n`sendImmediately` defaults to `true`, which causes a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a `401` response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method).\n\nDigest authentication is supported, but it only works with `sendImmediately` set to `false`; otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail.\n\nBearer authentication is supported, and is activated when the `bearer` value is available. The value may be either a `String` or a `Function` returning a `String`. Using a function to supply the bearer token is particularly useful if used in conjuction with `defaults` to allow a single function to supply the last known token at the time or sending a request or to compute one on the fly.\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require(\'querystring\')\n , oauth =\n { callback: \'http://mysite.com/callback/\'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = \'https://api.twitter.com/oauth/request_token\'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has\n // verified with twitter that they are authorizing your app.\n var access_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: access_token.oauth_token\n , verifier: access_token.oauth_verifier\n }\n , url = \'https://api.twitter.com/oauth/access_token\'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n var perm_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_token.oauth_token\n , token_secret: perm_token.oauth_token_secret\n }\n , url = \'https://api.twitter.com/1.1/users/show.json?\'\n , params =\n { screen_name: perm_token.screen_name\n , user_id: perm_token.user_id\n }\n ;\n url += qs.stringify(params)\n request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\n### Custom HTTP Headers\n\nHTTP Headers, such as `User-Agent`, can be set in the `options` object.\nIn the example below, we call the github API to find out the number\nof stars and forks for the request repository. This requires a\ncustom `User-Agent` header as well as https.\n\n```javascript\nvar request = require(\'request\');\n\nvar options = {\n\turl: \'https://api.github.com/repos/mikeal/request\',\n\theaders: {\n\t\t\'User-Agent\': \'request\'\n\t}\n};\n\nfunction callback(error, response, body) {\n\tif (!error && response.statusCode == 200) {\n\t\tvar info = JSON.parse(body);\n\t\tconsole.log(info.stargazers_count + " Stars");\n\t\tconsole.log(info.forks_count + " Forks");\n\t}\n}\n\nrequest(options, callback);\n```\n\n### request(options, callback)\n\nThe first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n* `qs` - object containing querystring values to be appended to the `uri`\n* `method` - http method (default: `"GET"`)\n* `headers` - http headers (default: `{}`)\n* `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer` or `String`.\n* `form` - when passed an object or a querystring, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no options, a `FormData` instance is returned (and is piped to request).\n* `auth` - A hash containing values `user` || `username`, `pass` || `password`, and `sendImmediately` (optional). See documentation above.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`)\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`)\n* `maxRedirects` - the maximum number of redirects to follow (default: `10`)\n* `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`.\n* `pool` - A hash object containing the agents for these requests. If omitted, the request will use the global pool (which is set to node\'s default `maxSockets`)\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\n* `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`)\n* `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above.\n* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n* `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option.\n* `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section)\n* `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services)\n* `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent\'s library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n* `localAddress` - Local interface to bind for network connections.\n* `gzip` - If `true`, add an `Accept-Encoding` header to request compressed content encodings from the server (if not already present) and decode supported content encodings in the response.\n\n\nThe callback argument gets 3 arguments: \n\n1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object)\n2. An [`http.IncomingMessage`](http://nodejs.org/api/http.html#http_http_incomingmessage) object\n3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied)\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options)\n\nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as `request()`, but defaults to `method: "PUT"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.patch\n\nSame as `request()`, but defaults to `method: "PATCH"`.\n\n```javascript\nrequest.patch(url)\n```\n\n### request.post\n\nSame as `request()`, but defaults to `method: "POST"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: "HEAD"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as `request()`, but defaults to `method: "DELETE"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nSame as `request()` (for uniformity).\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie(\'cookie_string_here\')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n var request = require(\'request\')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: \'PUT\'\n , uri: \'http://mikeal.iriscouch.com/testjs/\' + rand\n , multipart:\n [ { \'content-type\': \'application/json\'\n , body: JSON.stringify({foo: \'bar\', _attachments: {\'message.txt\': {follows: true, length: 18, \'content_type\': \'text/plain\' }}})\n }\n , { body: \'I am an attachment\' }\n ]\n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log(\'document saved as: http://mikeal.iriscouch.com/testjs/\'+ rand)\n } else {\n console.log(\'error: \'+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\n\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`).\n\n```javascript\nvar request = request.defaults({jar: true})\nrequest(\'http://www.google.com\', function () {\n request(\'http://images.google.com\')\n})\n```\n\nTo use a custom cookie jar (instead of `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`)\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest(\'http://www.google.com\', function () {\n request(\'http://images.google.com\')\n})\n```\n\nOR\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie(\'your_cookie_here\')\nj.setCookie(cookie, uri);\nrequest({url: \'http://www.google.com\', jar: j}, function () {\n request(\'http://images.google.com\')\n})\n```\n\nTo inspect your cookie jar after a request\n\n```javascript\nvar j = request.jar() \nrequest({url: \'http://www.google.com\', jar: j}, function () {\n var cookie_string = j.getCookieString(uri); // "key1=value1; key2=value2; ..."\n var cookies = j.getCookies(uri); \n // [{key: \'key1\', value: \'value1\', domain: "www.google.com", ...}, ...]\n})\n```\n',
584 silly resolved readmeFilename: 'README.md',
584 silly resolved homepage: 'https://github.com/mikeal/request',
584 silly resolved _id: 'request@2.37.0',
584 silly resolved _from: 'request@2.x' },
584 silly resolved { name: 'cssom',
584 silly resolved description: 'CSS Object Model implementation and CSS parser',
584 silly resolved keywords: [ 'CSS', 'CSSOM', 'parser', 'styleSheet' ],
584 silly resolved version: '0.2.5',
584 silly resolved homepage: 'https://github.com/NV/CSSOM',
584 silly resolved author: { name: 'Nikita Vasilyev', email: 'me@elv1s.ru' },
584 silly resolved repository: { type: 'git', url: 'git://github.com/NV/CSSOM.git' },
584 silly resolved bugs: { url: 'https://github.com/NV/CSSOM/issues' },
584 silly resolved directories: { lib: './lib' },
584 silly resolved main: './lib/index.js',
584 silly resolved engines: { node: '>=0.2.0' },
584 silly resolved devDependencies: { jake: '0.2.x' },
584 silly resolved licenses: [ [Object] ],
584 silly resolved scripts: { prepublish: 'jake lib/index.js' },
584 silly resolved readme: '# CSSOM\n\nCSSOM.js is a CSS parser written in pure JavaScript. It also a partial implementation of [CSS Object Model](http://dev.w3.org/csswg/cssom/). \n\n CSSOM.parse("body {color: black}")\n -> {\n cssRules: [\n {\n selectorText: "body",\n style: {\n 0: "color",\n color: "black",\n length: 1\n }\n }\n ]\n }\n\n\n## [Parser demo](http://nv.github.com/CSSOM/docs/parse.html)\n\nWorks well in Google Chrome 6+, Safari 5+, Firefox 3.6+, Opera 10.63+.\nDoesn\'t work in IE < 9 because of unsupported getters/setters.\n\nTo use CSSOM.js in the browser you might want to build a one-file version with [Jake](http://github.com/mde/node-jake):\n\n ➤ jake\n build/CSSOM.js is done\n\nTo use it with Node.js:\n\n npm install cssom\n\n## [Specs](http://nv.github.com/CSSOM/spec/)\n',
584 silly resolved readmeFilename: 'README.mdown',
584 silly resolved _id: 'cssom@0.2.5',
584 silly resolved _from: 'cssom@~0.2.5' },
584 silly resolved { name: 'contextify',
584 silly resolved version: '0.1.8',
584 silly resolved description: 'Turn an object into a persistent execution context.',
584 silly resolved author: { name: 'Brian McDaniel', email: 'brianmcd05@gmail.com' },
584 silly resolved contributors:
584 silly resolved [ [Object],
584 silly resolved [Object],
584 silly resolved [Object],
584 silly resolved [Object],
584 silly resolved [Object],
584 silly resolved [Object],
584 silly resolved [Object],
584 silly resolved [Object] ],
584 silly resolved keywords: [ 'context', 'vm' ],
584 silly resolved repository:
584 silly resolved { type: 'git',
584 silly resolved url: 'https://github.com/brianmcd/contextify.git' },
584 silly resolved main: './lib/contextify',
584 silly resolved scripts: { test: 'nodeunit test/', install: 'node-gyp rebuild' },
584 silly resolved engines: { node: '>=0.4.0' },
584 silly resolved licenses: [ [Object] ],
584 silly resolved dependencies: { bindings: '*', nan: '~1.0.0' },
584 silly resolved devDependencies: { nodeunit: '>=0.5.x' },
584 silly resolved gypfile: true,
584 silly resolved readme: '# Contextify\n\nFor Windows issues, see here: https://github.com/brianmcd/contextify/wiki/Windows-Installation-Guide\n\nPlease add to the wiki if you find new issues/solutions.\n\nTurn an object into a V8 execution context. A contextified object acts as the global \'this\' when executing scripts in its context. Contextify adds 3 methods to the contextified object: run(code, filename), getGlobal(), and dispose(). The main difference between Contextify and Node\'s vm methods is that Contextify allows asynchronous functions to continue executing in the Contextified object\'s context. See vm vs. Contextify below for more discussion.\n\n## Examples\n```javascript\nvar Contextify = require(\'contextify\');\nvar sandbox = { console : console, prop1 : \'prop1\'};\nContextify(sandbox);\nsandbox.run(\'console.log(prop1);\');\nsandbox.dispose(); // free the resources allocated for the context.\n```\n\n```javascript\nvar sandbox = Contextify(); // returns an empty contextified object.\nsandbox.run(\'var x = 3;\');\nconsole.log(sandbox.x); // prints 3\nsandbox.dispose();\n```\n\n```javascript\nvar sandbox = Contextify({setTimeout : setTimeout});\nsandbox.run("setTimeout(function () { x = 3; }, 5);");\nconsole.log(sandbox.x); // prints undefined\nsetTimeout(function () {\n console.log(sandbox.x); // prints 3\n sandbox.dispose();\n}, 10);\n```\n## Details\n\n**Contextify([sandbox])**\n\n sandbox - The object to contextify, which will be modified as described below\n If no sandbox is specified, an empty object will be allocated and used instead.\n\n Returns the contextified object. It doesn\'t make a copy, so if you already have a reference\n to the sandbox, you don\'t need to catch the return value.\n\nA Contextified object has 2 methods added to it:\n\n**run(code, [filename])**\n\n code - string containing JavaScript to execute\n filename - an optional filename for debugging.\n\n Runs the code in the Contextified object\'s context.\n\n**getGlobal()**\n\nReturns the actual global object for the V8 context. The global object is initialized with interceptors (discussed below) which forward accesses on it to the contextified object. This means the contextified object acts like the global object in most cases. Sometimes, though, you need to make a reference to the actual global object.\n\nFor example:\n\n```javascript\nvar window = Contextify({console : console});\nwindow.window = window;\nwindow.run("console.log(window === this);");\n// prints false.\n```\n\n```javascript\nvar window = Contextify({console : console});\nwindow.window = window.getGlobal();\nwindow.run("console.log(window === this);");\n// prints true\n```\n\nThe global object returned by getGlobal() can be treated like the contextified sandbox object, except that defining getters/setters will not work on it. Define getters and setters on the actual sandbox object instead.\n\n**dispose()**\n\nFrees the memory allocated for the underlying V8 context. If you don\'t call this when you\'re done, the V8 context memory will leak, as will the sandbox memory, since the context\'s global stores a strong reference to the sandbox object. You can still use your sandbox object after calling dispose(), but it\'s unsafe to use a global previously returned from getGlobal(). run, getGlobal, and dispose will be removed from the sandbox object.\n\n## Install\n\n npm install contextify\n\n## require(\'vm\') vs. Contextify\n\nNode\'s vm functions (runInContext etc) work by copying the values from the sandbox object onto a context\'s global object, executing the passed in script, then copying the results back. This means that scripts that create asynchronous functions (using mechanisms like setTimeout) won\'t have see the results of executing those functions, since the copying in/out only occurs during an explicit call to runInContext and friends. \n\nContextify creates a V8 context, and uses interceptors (see: http://code.google.com/apis/v8/embed.html#interceptors) to forward global object accesses to the sandbox object. This means there is no copying in or out, so asynchronous functions have the expected effect on the sandbox object. \n\n## Tests\n\nTesting is done with nodeunit. Run the tests with\n\n nodeunit test/\n\nOutput: \n\n OK: 92 assertions (27ms)\n\n\n## Building\n\n node-gyp rebuild\n\n## Acknowledgments\n\nInspiration taken from Assaf\'s Zombie.js context solution: https://github.com/assaf/zombie\n',
584 silly resolved readmeFilename: 'README.md',
584 silly resolved bugs: { url: 'https://github.com/brianmcd/contextify/issues' },
584 silly resolved homepage: 'https://github.com/brianmcd/contextify',
584 silly resolved _id: 'contextify@0.1.8',
584 silly resolved _from: 'contextify@~0.1.5' } ]
585 info install htmlparser@1.7.7 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
586 info install nwmatcher@1.3.3 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
587 info install cssstyle@0.2.14 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
588 info install request@2.37.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
589 info install cssom@0.2.5 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
590 info install contextify@0.1.8 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
591 info installOne htmlparser@1.7.7
592 info installOne nwmatcher@1.3.3
593 info installOne cssstyle@0.2.14
594 info installOne request@2.37.0
595 info installOne cssom@0.2.5
596 info installOne contextify@0.1.8
597 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser unbuild
598 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher unbuild
599 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle unbuild
600 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request unbuild
601 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom unbuild
602 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify unbuild
603 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/htmlparser/1.7.7/package.tgz
604 silly lockFile 223a4fdd-es-jsdom-node-modules-htmlparser tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser
605 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser /Users/cedric/.atom/.node-gyp/.atom/.apm/223a4fdd-es-jsdom-node-modules-htmlparser.lock
606 silly lockFile b7e92ea8-apm-htmlparser-1-7-7-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/htmlparser/1.7.7/package.tgz
607 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/htmlparser/1.7.7/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/b7e92ea8-apm-htmlparser-1-7-7-package-tgz.lock
608 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/nwmatcher/1.3.3/package.tgz
609 silly lockFile f447a0df-les-jsdom-node-modules-nwmatcher tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher
610 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher /Users/cedric/.atom/.node-gyp/.atom/.apm/f447a0df-les-jsdom-node-modules-nwmatcher.lock
611 silly lockFile 7abe26e3--apm-nwmatcher-1-3-3-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nwmatcher/1.3.3/package.tgz
612 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nwmatcher/1.3.3/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/7abe26e3--apm-nwmatcher-1-3-3-package-tgz.lock
613 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/cssstyle/0.2.14/package.tgz
614 silly lockFile e759ad20-ules-jsdom-node-modules-cssstyle tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle
615 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle /Users/cedric/.atom/.node-gyp/.atom/.apm/e759ad20-ules-jsdom-node-modules-cssstyle.lock
616 silly lockFile a89be876--apm-cssstyle-0-2-14-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssstyle/0.2.14/package.tgz
617 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssstyle/0.2.14/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/a89be876--apm-cssstyle-0-2-14-package-tgz.lock
618 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/request/2.37.0/package.tgz
619 silly lockFile 6b17789b-dules-jsdom-node-modules-request tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
620 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request /Users/cedric/.atom/.node-gyp/.atom/.apm/6b17789b-dules-jsdom-node-modules-request.lock
621 silly lockFile ea5ef422-m-apm-request-2-37-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/request/2.37.0/package.tgz
622 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/request/2.37.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/ea5ef422-m-apm-request-2-37-0-package-tgz.lock
623 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.2.5/package.tgz
624 silly lockFile 0e9b3283-modules-jsdom-node-modules-cssom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom
625 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom /Users/cedric/.atom/.node-gyp/.atom/.apm/0e9b3283-modules-jsdom-node-modules-cssom.lock
626 silly lockFile d365bd88-atom-apm-cssom-0-2-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.2.5/package.tgz
627 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.2.5/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/d365bd88-atom-apm-cssom-0-2-5-package-tgz.lock
628 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/contextify/0.1.8/package.tgz
629 silly lockFile a39cf682-es-jsdom-node-modules-contextify tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
630 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify /Users/cedric/.atom/.node-gyp/.atom/.apm/a39cf682-es-jsdom-node-modules-contextify.lock
631 silly lockFile 3a8f8326-apm-contextify-0-1-8-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/contextify/0.1.8/package.tgz
632 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/contextify/0.1.8/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/3a8f8326-apm-contextify-0-1-8-package-tgz.lock
633 silly gunzTarPerm modes [ '755', '644' ]
634 silly gunzTarPerm modes [ '755', '644' ]
635 silly gunzTarPerm modes [ '755', '644' ]
636 silly gunzTarPerm modes [ '755', '644' ]
637 silly gunzTarPerm modes [ '755', '644' ]
638 silly gunzTarPerm modes [ '755', '644' ]
639 silly gunzTarPerm extractEntry package.json
640 silly gunzTarPerm extractEntry package.json
641 silly gunzTarPerm extractEntry package.json
642 silly gunzTarPerm extractEntry package.json
643 silly gunzTarPerm extractEntry package.json
644 silly gunzTarPerm extractEntry package.json
645 silly gunzTarPerm extractEntry README.md
646 silly gunzTarPerm extractEntry LICENSE
647 silly gunzTarPerm extractEntry README.md
648 silly gunzTarPerm extractEntry LICENSE
649 silly gunzTarPerm extractEntry .npmignore
650 silly gunzTarPerm extractEntry README.md
651 silly gunzTarPerm extractEntry .npmignore
652 silly gunzTarPerm extractEntry README.md
653 silly gunzTarPerm extractEntry .npmignore
654 silly gunzTarPerm extractEntry .gitmodules
655 silly gunzTarPerm extractEntry .npmignore
656 silly gunzTarPerm extractEntry README.md
657 silly gunzTarPerm extractEntry src/nwmatcher-base.js
658 silly gunzTarPerm extractEntry src/nwmatcher-noqsa.js
659 silly gunzTarPerm extractEntry src/nwmatcher.js
660 silly gunzTarPerm extractEntry src/modules/nwmatcher-cache.js
661 silly gunzTarPerm extractEntry src/modules/nwmatcher-jquery.js
662 silly gunzTarPerm extractEntry src/modules/nwmatcher-pseudos.js
663 silly gunzTarPerm extractEntry src/modules/nwmatcher-shortcuts.js
664 silly gunzTarPerm extractEntry src/modules/nwmatcher-traversal.js
665 silly gunzTarPerm extractEntry src/modules/nwmatcher-webforms.js
666 silly gunzTarPerm extractEntry LICENSE
667 silly gunzTarPerm extractEntry README.mdown
668 silly gunzTarPerm extractEntry lib/CSSFontFaceRule.js
669 silly gunzTarPerm extractEntry MIT-LICENSE.txt
670 silly gunzTarPerm extractEntry lib/CSSStyleDeclaration.js
671 silly gunzTarPerm extractEntry LICENSE.txt
672 silly gunzTarPerm extractEntry binding.gyp
673 silly gunzTarPerm extractEntry utils_example.js
674 silly gunzTarPerm extractEntry json2.js
675 silly gunzTarPerm extractEntry runtests.js
676 silly gunzTarPerm extractEntry runtests.min.js
677 silly gunzTarPerm extractEntry CHANGELOG
678 silly gunzTarPerm extractEntry runtests.min.html
679 silly gunzTarPerm extractEntry lib/htmlparser.js
680 silly gunzTarPerm extractEntry lib/htmlparser.min.js
681 silly gunzTarPerm extractEntry lib/node-htmlparser.js
682 silly gunzTarPerm extractEntry lib/node-htmlparser.min.js
683 silly gunzTarPerm extractEntry tests/01-basic.js
684 silly gunzTarPerm extractEntry tests/08-extra_spaces_in_tag.js
685 silly gunzTarPerm extractEntry tests/09-unquoted_attrib.js
686 silly gunzTarPerm extractEntry tests/10-singular_attribute.js
687 silly gunzTarPerm extractEntry tests/11-text_outside_tags.js
688 silly gunzTarPerm extractEntry tests/07-unescaped_in_style.js
689 silly gunzTarPerm extractEntry tests/13-comment_in_text.js
690 silly gunzTarPerm extractEntry tests/14-comment_in_text_in_script.js
691 silly gunzTarPerm extractEntry tests/15-non-verbose.js
692 silly gunzTarPerm extractEntry tests/16-ignore_whitespace.js
693 silly gunzTarPerm extractEntry tests/17-xml_namespace.js
694 silly gunzTarPerm extractEntry tests/06-comment_in_script.js
695 silly gunzTarPerm extractEntry tests/18-enforce_empty_tags.js
696 silly gunzTarPerm extractEntry tests/05-tags_in_comment.js
697 silly gunzTarPerm extractEntry tests/19-ignore_empty_tags.js
698 silly gunzTarPerm extractEntry tests/04-unescaped_in_script.js
699 silly gunzTarPerm extractEntry tests/20-rss.js
700 silly gunzTarPerm extractEntry tests/03-single_tag_2.js
701 silly gunzTarPerm extractEntry tests/21-atom.js
702 silly gunzTarPerm extractEntry tests/02-single_tag_1.js
703 silly gunzTarPerm extractEntry tests/22-position_data.js
704 silly gunzTarPerm extractEntry tests/12-text_only.js
705 silly gunzTarPerm extractEntry runtests.html
706 silly gunzTarPerm extractEntry index.js
707 silly gunzTarPerm extractEntry request.js
708 silly gunzTarPerm extractEntry lib/CSSKeyframesRule.js
709 silly gunzTarPerm extractEntry lib/CSSMediaRule.js
710 silly gunzTarPerm extractEntry lib/parsers.js
711 silly gunzTarPerm extractEntry lib/css3-properties/borderImage.js
712 silly gunzTarPerm extractEntry changelog
713 silly gunzTarPerm extractEntry lib/contextify.js
714 silly gunzTarPerm extractEntry lib/CSSRule.js
715 silly gunzTarPerm extractEntry lib/CSSStyleDeclaration.js
716 silly gunzTarPerm extractEntry lib/css3-properties/borderImageOutset.js
717 silly gunzTarPerm extractEntry lib/css3-properties/borderImageRepeat.js
718 silly gunzTarPerm extractEntry lib/CSSKeyframeRule.js
719 silly gunzTarPerm extractEntry src/contextify.cc
720 silly gunzTarPerm extractEntry test/contextify.js
721 silly gunzTarPerm extractEntry wscript
722 silly gunzTarPerm extractEntry lib/css3-properties/borderImageSlice.js
723 silly gunzTarPerm extractEntry lib/css3-properties/borderImageSource.js
724 silly gunzTarPerm extractEntry lib/CSSStyleSheet.js
725 silly gunzTarPerm extractEntry lib/MediaList.js
726 silly gunzTarPerm extractEntry .travis.yml
727 silly gunzTarPerm extractEntry CHANGELOG.md
728 silly gunzTarPerm extractEntry lib/StyleSheet.js
729 silly gunzTarPerm extractEntry lib/clone.js
730 silly gunzTarPerm extractEntry lib/css3-properties/borderImageWidth.js
731 silly gunzTarPerm extractEntry lib/properties/alignmentBaseline.js
732 silly gunzTarPerm extractEntry lib/index.js
733 silly gunzTarPerm extractEntry lib/CSSImportRule.js
734 silly gunzTarPerm extractEntry lib/parse.js
735 silly gunzTarPerm extractEntry lib/CSSStyleRule.js
736 silly gunzTarPerm extractEntry lib/cookies.js
737 silly gunzTarPerm extractEntry lib/copy.js
738 silly gunzTarPerm extractEntry lib/debug.js
739 silly gunzTarPerm extractEntry lib/getSafe.js
740 silly gunzTarPerm extractEntry lib/properties/unicodeBidi.js
741 silly gunzTarPerm extractEntry lib/properties/unicodeRange.js
742 silly gunzTarPerm extractEntry lib/properties/vectorEffect.js
743 silly gunzTarPerm extractEntry lib/properties/verticalAlign.js
744 silly gunzTarPerm extractEntry lib/properties/top.js
745 silly gunzTarPerm extractEntry lib/properties/voiceFamily.js
746 silly gunzTarPerm extractEntry lib/properties/volume.js
747 silly gunzTarPerm extractEntry lib/properties/webkitAnimation.js
748 silly gunzTarPerm extractEntry lib/properties/webkitAnimationDelay.js
749 silly gunzTarPerm extractEntry lib/properties/webkitAnimationDirection.js
750 silly gunzTarPerm extractEntry lib/properties/textUnderlineWidth.js
751 silly gunzTarPerm extractEntry lib/properties/webkitAnimationDuration.js
752 silly gunzTarPerm extractEntry lib/properties/textUnderlineStyle.js
753 silly gunzTarPerm extractEntry lib/properties/webkitAnimationFillMode.js
754 silly gunzTarPerm extractEntry lib/properties/textUnderlineMode.js
755 silly gunzTarPerm extractEntry lib/properties/webkitAnimationIterationCount.js
756 silly lockFile a39cf682-es-jsdom-node-modules-contextify tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
757 silly lockFile a39cf682-es-jsdom-node-modules-contextify tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
758 silly lockFile 3a8f8326-apm-contextify-0-1-8-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/contextify/0.1.8/package.tgz
759 silly lockFile 3a8f8326-apm-contextify-0-1-8-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/contextify/0.1.8/package.tgz
760 info preinstall contextify@0.1.8
761 silly gunzTarPerm extractEntry lib/properties/textUnderlineColor.js
762 silly gunzTarPerm extractEntry lib/properties/webkitAnimationName.js
763 verbose readDependencies using package.json deps
764 verbose readDependencies using package.json deps
765 silly gunzTarPerm extractEntry lib/properties/textUnderline.js
766 silly gunzTarPerm extractEntry lib/properties/webkitAnimationPlayState.js
767 verbose cache add [ 'bindings@*', null ]
768 verbose cache add name=undefined spec="bindings@*" args=["bindings@*",null]
769 verbose parsed url { protocol: null,
769 verbose parsed url slashes: null,
769 verbose parsed url auth: null,
769 verbose parsed url host: null,
769 verbose parsed url port: null,
769 verbose parsed url hostname: null,
769 verbose parsed url hash: null,
769 verbose parsed url search: null,
769 verbose parsed url query: null,
769 verbose parsed url pathname: 'bindings@*',
769 verbose parsed url path: 'bindings@*',
769 verbose parsed url href: 'bindings@*' }
770 verbose cache add name="bindings" spec="*" args=["bindings","*"]
771 verbose parsed url { protocol: null,
771 verbose parsed url slashes: null,
771 verbose parsed url auth: null,
771 verbose parsed url host: null,
771 verbose parsed url port: null,
771 verbose parsed url hostname: null,
771 verbose parsed url hash: null,
771 verbose parsed url search: null,
771 verbose parsed url query: null,
771 verbose parsed url pathname: '*',
771 verbose parsed url path: '*',
771 verbose parsed url href: '*' }
772 verbose addNamed [ 'bindings', '*' ]
773 verbose addNamed [ null, '*' ]
774 silly lockFile a3858fc2-bindings bindings@*
775 verbose lock bindings@* /Users/cedric/.atom/.node-gyp/.atom/.apm/a3858fc2-bindings.lock
776 verbose cache add [ 'nan@~1.0.0', null ]
777 verbose cache add name=undefined spec="nan@~1.0.0" args=["nan@~1.0.0",null]
778 verbose parsed url { protocol: null,
778 verbose parsed url slashes: null,
778 verbose parsed url auth: null,
778 verbose parsed url host: null,
778 verbose parsed url port: null,
778 verbose parsed url hostname: null,
778 verbose parsed url hash: null,
778 verbose parsed url search: null,
778 verbose parsed url query: null,
778 verbose parsed url pathname: 'nan@~1.0.0',
778 verbose parsed url path: 'nan@~1.0.0',
778 verbose parsed url href: 'nan@~1.0.0' }
779 verbose cache add name="nan" spec="~1.0.0" args=["nan","~1.0.0"]
780 verbose parsed url { protocol: null,
780 verbose parsed url slashes: null,
780 verbose parsed url auth: null,
780 verbose parsed url host: null,
780 verbose parsed url port: null,
780 verbose parsed url hostname: null,
780 verbose parsed url hash: null,
780 verbose parsed url search: null,
780 verbose parsed url query: null,
780 verbose parsed url pathname: '~1.0.0',
780 verbose parsed url path: '~1.0.0',
780 verbose parsed url href: '~1.0.0' }
781 verbose addNamed [ 'nan', '~1.0.0' ]
782 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
783 silly lockFile 66a60b03-nan-1-0-0 nan@~1.0.0
784 verbose lock nan@~1.0.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/66a60b03-nan-1-0-0.lock
785 silly gunzTarPerm extractEntry lib/optional.js
786 silly addNameRange { name: 'bindings', range: '*', hasData: false }
787 silly addNameRange { name: 'nan', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
788 silly gunzTarPerm extractEntry lib/properties/textTransform.js
789 silly gunzTarPerm extractEntry lib/properties/webkitAnimationTimingFunction.js
790 silly gunzTarPerm extractEntry lib/properties/textShadow.js
791 silly gunzTarPerm extractEntry lib/properties/webkitAppearance.js
792 silly gunzTarPerm extractEntry lib/properties/textRendering.js
793 silly gunzTarPerm extractEntry lib/properties/webkitAspectRatio.js
794 silly lockFile 0e9b3283-modules-jsdom-node-modules-cssom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom
795 silly lockFile 0e9b3283-modules-jsdom-node-modules-cssom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom
796 silly lockFile d365bd88-atom-apm-cssom-0-2-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.2.5/package.tgz
797 silly lockFile d365bd88-atom-apm-cssom-0-2-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.2.5/package.tgz
798 silly gunzTarPerm extractEntry lib/properties/textOverlineWidth.js
799 silly gunzTarPerm extractEntry lib/properties/webkitBackfaceVisibility.js
800 info preinstall cssom@0.2.5
801 verbose readDependencies using package.json deps
802 verbose readDependencies using package.json deps
803 silly resolved []
804 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom
805 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssom
806 verbose linkStuff [ false,
806 verbose linkStuff false,
806 verbose linkStuff false,
806 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules' ]
807 info linkStuff cssom@0.2.5
808 verbose linkBins cssom@0.2.5
809 verbose linkMans cssom@0.2.5
810 verbose rebuildBundles cssom@0.2.5
811 info install cssom@0.2.5
812 silly gunzTarPerm extractEntry lib/properties/textOverlineStyle.js
813 silly gunzTarPerm extractEntry lib/properties/webkitBackgroundClip.js
814 info postinstall cssom@0.2.5
815 silly gunzTarPerm extractEntry lib/properties/textOverlineMode.js
816 silly gunzTarPerm extractEntry lib/properties/webkitBackgroundComposite.js
817 silly gunzTarPerm extractEntry lib/properties/textOverlineColor.js
818 silly gunzTarPerm extractEntry lib/properties/webkitBackgroundOrigin.js
819 silly gunzTarPerm extractEntry lib/properties/textOverline.js
820 silly gunzTarPerm extractEntry lib/properties/webkitBackgroundSize.js
821 silly gunzTarPerm extractEntry lib/properties/textOverflow.js
822 silly gunzTarPerm extractEntry lib/properties/webkitBorderAfter.js
823 verbose url raw nan
824 verbose url resolving [ 'https://registry.npmjs.org/', './nan' ]
825 verbose url resolved https://registry.npmjs.org/nan
826 info trying registry request attempt 1 at 10:15:14
827 verbose etag "1X5FH8LHOK49XYDIGDRRML4G5"
828 http GET https://registry.npmjs.org/nan
829 silly gunzTarPerm extractEntry lib/properties/textLineThroughWidth.js
830 silly gunzTarPerm extractEntry lib/properties/webkitBorderAfterColor.js
831 verbose url raw bindings
832 verbose url resolving [ 'https://registry.npmjs.org/', './bindings' ]
833 verbose url resolved https://registry.npmjs.org/bindings
834 info trying registry request attempt 1 at 10:15:14
835 verbose etag "6S7UAGB717AD0Z8AQ1OJ61UW3"
836 http GET https://registry.npmjs.org/bindings
837 silly gunzTarPerm extractEntry lib/properties/textLineThroughStyle.js
838 silly gunzTarPerm extractEntry lib/properties/webkitBorderAfterStyle.js
839 silly gunzTarPerm extractEntry lib/properties/textLineThroughMode.js
840 silly gunzTarPerm extractEntry lib/properties/webkitBorderAfterWidth.js
841 silly lockFile 6b17789b-dules-jsdom-node-modules-request tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
842 silly lockFile 6b17789b-dules-jsdom-node-modules-request tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
843 silly lockFile ea5ef422-m-apm-request-2-37-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/request/2.37.0/package.tgz
844 silly lockFile ea5ef422-m-apm-request-2-37-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/request/2.37.0/package.tgz
845 silly gunzTarPerm extractEntry lib/properties/textLineThroughColor.js
846 silly gunzTarPerm extractEntry lib/properties/webkitBorderBefore.js
847 info preinstall request@2.37.0
848 verbose readDependencies using package.json deps
849 verbose readDependencies using package.json deps
850 silly gunzTarPerm extractEntry lib/properties/textLineThrough.js
851 silly gunzTarPerm extractEntry lib/properties/webkitBorderBeforeColor.js
852 verbose cache add [ 'qs@~0.6.0', null ]
853 verbose cache add name=undefined spec="qs@~0.6.0" args=["qs@~0.6.0",null]
854 verbose parsed url { protocol: null,
854 verbose parsed url slashes: null,
854 verbose parsed url auth: null,
854 verbose parsed url host: null,
854 verbose parsed url port: null,
854 verbose parsed url hostname: null,
854 verbose parsed url hash: null,
854 verbose parsed url search: null,
854 verbose parsed url query: null,
854 verbose parsed url pathname: 'qs@~0.6.0',
854 verbose parsed url path: 'qs@~0.6.0',
854 verbose parsed url href: 'qs@~0.6.0' }
855 verbose cache add name="qs" spec="~0.6.0" args=["qs","~0.6.0"]
856 verbose parsed url { protocol: null,
856 verbose parsed url slashes: null,
856 verbose parsed url auth: null,
856 verbose parsed url host: null,
856 verbose parsed url port: null,
856 verbose parsed url hostname: null,
856 verbose parsed url hash: null,
856 verbose parsed url search: null,
856 verbose parsed url query: null,
856 verbose parsed url pathname: '~0.6.0',
856 verbose parsed url path: '~0.6.0',
856 verbose parsed url href: '~0.6.0' }
857 verbose addNamed [ 'qs', '~0.6.0' ]
858 verbose addNamed [ null, '>=0.6.0-0 <0.7.0-0' ]
859 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
860 verbose lock qs@~0.6.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/222bee9e-qs-0-6-0.lock
861 verbose cache add [ 'json-stringify-safe@~5.0.0', null ]
862 verbose cache add name=undefined spec="json-stringify-safe@~5.0.0" args=["json-stringify-safe@~5.0.0",null]
863 verbose parsed url { protocol: null,
863 verbose parsed url slashes: null,
863 verbose parsed url auth: null,
863 verbose parsed url host: null,
863 verbose parsed url port: null,
863 verbose parsed url hostname: null,
863 verbose parsed url hash: null,
863 verbose parsed url search: null,
863 verbose parsed url query: null,
863 verbose parsed url pathname: 'json-stringify-safe@~5.0.0',
863 verbose parsed url path: 'json-stringify-safe@~5.0.0',
863 verbose parsed url href: 'json-stringify-safe@~5.0.0' }
864 verbose cache add name="json-stringify-safe" spec="~5.0.0" args=["json-stringify-safe","~5.0.0"]
865 verbose parsed url { protocol: null,
865 verbose parsed url slashes: null,
865 verbose parsed url auth: null,
865 verbose parsed url host: null,
865 verbose parsed url port: null,
865 verbose parsed url hostname: null,
865 verbose parsed url hash: null,
865 verbose parsed url search: null,
865 verbose parsed url query: null,
865 verbose parsed url pathname: '~5.0.0',
865 verbose parsed url path: '~5.0.0',
865 verbose parsed url href: '~5.0.0' }
866 verbose addNamed [ 'json-stringify-safe', '~5.0.0' ]
867 verbose addNamed [ null, '>=5.0.0-0 <5.1.0-0' ]
868 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
869 verbose lock json-stringify-safe@~5.0.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/063b1a01-json-stringify-safe-5-0-0.lock
870 verbose cache add [ 'mime-types@~1.0.1', null ]
871 verbose cache add name=undefined spec="mime-types@~1.0.1" args=["mime-types@~1.0.1",null]
872 verbose parsed url { protocol: null,
872 verbose parsed url slashes: null,
872 verbose parsed url auth: null,
872 verbose parsed url host: null,
872 verbose parsed url port: null,
872 verbose parsed url hostname: null,
872 verbose parsed url hash: null,
872 verbose parsed url search: null,
872 verbose parsed url query: null,
872 verbose parsed url pathname: 'mime-types@~1.0.1',
872 verbose parsed url path: 'mime-types@~1.0.1',
872 verbose parsed url href: 'mime-types@~1.0.1' }
873 verbose cache add name="mime-types" spec="~1.0.1" args=["mime-types","~1.0.1"]
874 verbose parsed url { protocol: null,
874 verbose parsed url slashes: null,
874 verbose parsed url auth: null,
874 verbose parsed url host: null,
874 verbose parsed url port: null,
874 verbose parsed url hostname: null,
874 verbose parsed url hash: null,
874 verbose parsed url search: null,
874 verbose parsed url query: null,
874 verbose parsed url pathname: '~1.0.1',
874 verbose parsed url path: '~1.0.1',
874 verbose parsed url href: '~1.0.1' }
875 verbose addNamed [ 'mime-types', '~1.0.1' ]
876 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ]
877 silly lockFile c0ad19ba-mime-types-1-0-1 mime-types@~1.0.1
878 verbose lock mime-types@~1.0.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/c0ad19ba-mime-types-1-0-1.lock
879 silly addNameRange { name: 'qs', range: '>=0.6.0-0 <0.7.0-0', hasData: false }
880 verbose cache add [ 'forever-agent@~0.5.0', null ]
881 verbose cache add name=undefined spec="forever-agent@~0.5.0" args=["forever-agent@~0.5.0",null]
882 verbose parsed url { protocol: null,
882 verbose parsed url slashes: null,
882 verbose parsed url auth: null,
882 verbose parsed url host: null,
882 verbose parsed url port: null,
882 verbose parsed url hostname: null,
882 verbose parsed url hash: null,
882 verbose parsed url search: null,
882 verbose parsed url query: null,
882 verbose parsed url pathname: 'forever-agent@~0.5.0',
882 verbose parsed url path: 'forever-agent@~0.5.0',
882 verbose parsed url href: 'forever-agent@~0.5.0' }
883 verbose cache add name="forever-agent" spec="~0.5.0" args=["forever-agent","~0.5.0"]
884 verbose parsed url { protocol: null,
884 verbose parsed url slashes: null,
884 verbose parsed url auth: null,
884 verbose parsed url host: null,
884 verbose parsed url port: null,
884 verbose parsed url hostname: null,
884 verbose parsed url hash: null,
884 verbose parsed url search: null,
884 verbose parsed url query: null,
884 verbose parsed url pathname: '~0.5.0',
884 verbose parsed url path: '~0.5.0',
884 verbose parsed url href: '~0.5.0' }
885 verbose addNamed [ 'forever-agent', '~0.5.0' ]
886 verbose addNamed [ null, '>=0.5.0-0 <0.6.0-0' ]
887 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
888 verbose lock forever-agent@~0.5.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/fa463915-forever-agent-0-5-0.lock
889 silly addNameRange { name: 'json-stringify-safe',
889 silly addNameRange range: '>=5.0.0-0 <5.1.0-0',
889 silly addNameRange hasData: false }
890 silly addNameRange { name: 'mime-types',
890 silly addNameRange range: '>=1.0.1-0 <1.1.0-0',
890 silly addNameRange hasData: false }
891 verbose cache add [ 'node-uuid@~1.4.0', null ]
892 verbose cache add name=undefined spec="node-uuid@~1.4.0" args=["node-uuid@~1.4.0",null]
893 verbose parsed url { protocol: null,
893 verbose parsed url slashes: null,
893 verbose parsed url auth: null,
893 verbose parsed url host: null,
893 verbose parsed url port: null,
893 verbose parsed url hostname: null,
893 verbose parsed url hash: null,
893 verbose parsed url search: null,
893 verbose parsed url query: null,
893 verbose parsed url pathname: 'node-uuid@~1.4.0',
893 verbose parsed url path: 'node-uuid@~1.4.0',
893 verbose parsed url href: 'node-uuid@~1.4.0' }
894 verbose cache add name="node-uuid" spec="~1.4.0" args=["node-uuid","~1.4.0"]
895 verbose parsed url { protocol: null,
895 verbose parsed url slashes: null,
895 verbose parsed url auth: null,
895 verbose parsed url host: null,
895 verbose parsed url port: null,
895 verbose parsed url hostname: null,
895 verbose parsed url hash: null,
895 verbose parsed url search: null,
895 verbose parsed url query: null,
895 verbose parsed url pathname: '~1.4.0',
895 verbose parsed url path: '~1.4.0',
895 verbose parsed url href: '~1.4.0' }
896 verbose addNamed [ 'node-uuid', '~1.4.0' ]
897 verbose addNamed [ null, '>=1.4.0-0 <1.5.0-0' ]
898 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
899 verbose lock node-uuid@~1.4.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/f662725f-node-uuid-1-4-0.lock
900 verbose cache add [ 'tough-cookie@>=0.12.0', null ]
901 verbose cache add name=undefined spec="tough-cookie@>=0.12.0" args=["tough-cookie@>=0.12.0",null]
902 verbose parsed url { protocol: null,
902 verbose parsed url slashes: null,
902 verbose parsed url auth: null,
902 verbose parsed url host: null,
902 verbose parsed url port: null,
902 verbose parsed url hostname: null,
902 verbose parsed url hash: null,
902 verbose parsed url search: null,
902 verbose parsed url query: null,
902 verbose parsed url pathname: 'tough-cookie@%3E=0.12.0',
902 verbose parsed url path: 'tough-cookie@%3E=0.12.0',
902 verbose parsed url href: 'tough-cookie@%3E=0.12.0' }
903 verbose cache add name="tough-cookie" spec=">=0.12.0" args=["tough-cookie",">=0.12.0"]
904 verbose parsed url { protocol: null,
904 verbose parsed url slashes: null,
904 verbose parsed url auth: null,
904 verbose parsed url host: null,
904 verbose parsed url port: null,
904 verbose parsed url hostname: null,
904 verbose parsed url hash: null,
904 verbose parsed url search: null,
904 verbose parsed url query: null,
904 verbose parsed url pathname: '%3E=0.12.0',
904 verbose parsed url path: '%3E=0.12.0',
904 verbose parsed url href: '%3E=0.12.0' }
905 verbose addNamed [ 'tough-cookie', '>=0.12.0' ]
906 verbose addNamed [ null, '>=0.12.0' ]
907 silly lockFile 66c18ba7-tough-cookie-0-12-0 tough-cookie@>=0.12.0
908 verbose lock tough-cookie@>=0.12.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/66c18ba7-tough-cookie-0-12-0.lock
909 verbose cache add [ 'form-data@~0.1.0', null ]
910 verbose cache add name=undefined spec="form-data@~0.1.0" args=["form-data@~0.1.0",null]
911 verbose parsed url { protocol: null,
911 verbose parsed url slashes: null,
911 verbose parsed url auth: null,
911 verbose parsed url host: null,
911 verbose parsed url port: null,
911 verbose parsed url hostname: null,
911 verbose parsed url hash: null,
911 verbose parsed url search: null,
911 verbose parsed url query: null,
911 verbose parsed url pathname: 'form-data@~0.1.0',
911 verbose parsed url path: 'form-data@~0.1.0',
911 verbose parsed url href: 'form-data@~0.1.0' }
912 verbose cache add name="form-data" spec="~0.1.0" args=["form-data","~0.1.0"]
913 verbose parsed url { protocol: null,
913 verbose parsed url slashes: null,
913 verbose parsed url auth: null,
913 verbose parsed url host: null,
913 verbose parsed url port: null,
913 verbose parsed url hostname: null,
913 verbose parsed url hash: null,
913 verbose parsed url search: null,
913 verbose parsed url query: null,
913 verbose parsed url pathname: '~0.1.0',
913 verbose parsed url path: '~0.1.0',
913 verbose parsed url href: '~0.1.0' }
914 verbose addNamed [ 'form-data', '~0.1.0' ]
915 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
916 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
917 verbose lock form-data@~0.1.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/26aa13f4-form-data-0-1-0.lock
918 verbose cache add [ 'tunnel-agent@~0.4.0', null ]
919 verbose cache add name=undefined spec="tunnel-agent@~0.4.0" args=["tunnel-agent@~0.4.0",null]
920 verbose parsed url { protocol: null,
920 verbose parsed url slashes: null,
920 verbose parsed url auth: null,
920 verbose parsed url host: null,
920 verbose parsed url port: null,
920 verbose parsed url hostname: null,
920 verbose parsed url hash: null,
920 verbose parsed url search: null,
920 verbose parsed url query: null,
920 verbose parsed url pathname: 'tunnel-agent@~0.4.0',
920 verbose parsed url path: 'tunnel-agent@~0.4.0',
920 verbose parsed url href: 'tunnel-agent@~0.4.0' }
921 verbose cache add name="tunnel-agent" spec="~0.4.0" args=["tunnel-agent","~0.4.0"]
922 verbose parsed url { protocol: null,
922 verbose parsed url slashes: null,
922 verbose parsed url auth: null,
922 verbose parsed url host: null,
922 verbose parsed url port: null,
922 verbose parsed url hostname: null,
922 verbose parsed url hash: null,
922 verbose parsed url search: null,
922 verbose parsed url query: null,
922 verbose parsed url pathname: '~0.4.0',
922 verbose parsed url path: '~0.4.0',
922 verbose parsed url href: '~0.4.0' }
923 verbose addNamed [ 'tunnel-agent', '~0.4.0' ]
924 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
925 silly lockFile 2550750e-tunnel-agent-0-4-0 tunnel-agent@~0.4.0
926 verbose lock tunnel-agent@~0.4.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/2550750e-tunnel-agent-0-4-0.lock
927 verbose cache add [ 'http-signature@~0.10.0', null ]
928 verbose cache add name=undefined spec="http-signature@~0.10.0" args=["http-signature@~0.10.0",null]
929 verbose parsed url { protocol: null,
929 verbose parsed url slashes: null,
929 verbose parsed url auth: null,
929 verbose parsed url host: null,
929 verbose parsed url port: null,
929 verbose parsed url hostname: null,
929 verbose parsed url hash: null,
929 verbose parsed url search: null,
929 verbose parsed url query: null,
929 verbose parsed url pathname: 'http-signature@~0.10.0',
929 verbose parsed url path: 'http-signature@~0.10.0',
929 verbose parsed url href: 'http-signature@~0.10.0' }
930 verbose cache add name="http-signature" spec="~0.10.0" args=["http-signature","~0.10.0"]
931 verbose parsed url { protocol: null,
931 verbose parsed url slashes: null,
931 verbose parsed url auth: null,
931 verbose parsed url host: null,
931 verbose parsed url port: null,
931 verbose parsed url hostname: null,
931 verbose parsed url hash: null,
931 verbose parsed url search: null,
931 verbose parsed url query: null,
931 verbose parsed url pathname: '~0.10.0',
931 verbose parsed url path: '~0.10.0',
931 verbose parsed url href: '~0.10.0' }
932 verbose addNamed [ 'http-signature', '~0.10.0' ]
933 verbose addNamed [ null, '>=0.10.0-0 <0.11.0-0' ]
934 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
935 verbose lock http-signature@~0.10.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/8170f292-http-signature-0-10-0.lock
936 verbose cache add [ 'oauth-sign@~0.3.0', null ]
937 verbose cache add name=undefined spec="oauth-sign@~0.3.0" args=["oauth-sign@~0.3.0",null]
938 verbose parsed url { protocol: null,
938 verbose parsed url slashes: null,
938 verbose parsed url auth: null,
938 verbose parsed url host: null,
938 verbose parsed url port: null,
938 verbose parsed url hostname: null,
938 verbose parsed url hash: null,
938 verbose parsed url search: null,
938 verbose parsed url query: null,
938 verbose parsed url pathname: 'oauth-sign@~0.3.0',
938 verbose parsed url path: 'oauth-sign@~0.3.0',
938 verbose parsed url href: 'oauth-sign@~0.3.0' }
939 verbose cache add name="oauth-sign" spec="~0.3.0" args=["oauth-sign","~0.3.0"]
940 verbose parsed url { protocol: null,
940 verbose parsed url slashes: null,
940 verbose parsed url auth: null,
940 verbose parsed url host: null,
940 verbose parsed url port: null,
940 verbose parsed url hostname: null,
940 verbose parsed url hash: null,
940 verbose parsed url search: null,
940 verbose parsed url query: null,
940 verbose parsed url pathname: '~0.3.0',
940 verbose parsed url path: '~0.3.0',
940 verbose parsed url href: '~0.3.0' }
941 verbose addNamed [ 'oauth-sign', '~0.3.0' ]
942 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
943 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
944 verbose lock oauth-sign@~0.3.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/7fb5c7f1-oauth-sign-0-3-0.lock
945 verbose cache add [ 'hawk@1.1.1', null ]
946 verbose cache add name=undefined spec="hawk@1.1.1" args=["hawk@1.1.1",null]
947 verbose parsed url { protocol: null,
947 verbose parsed url slashes: null,
947 verbose parsed url auth: null,
947 verbose parsed url host: null,
947 verbose parsed url port: null,
947 verbose parsed url hostname: null,
947 verbose parsed url hash: null,
947 verbose parsed url search: null,
947 verbose parsed url query: null,
947 verbose parsed url pathname: 'hawk@1.1.1',
947 verbose parsed url path: 'hawk@1.1.1',
947 verbose parsed url href: 'hawk@1.1.1' }
948 verbose cache add name="hawk" spec="1.1.1" args=["hawk","1.1.1"]
949 verbose parsed url { protocol: null,
949 verbose parsed url slashes: null,
949 verbose parsed url auth: null,
949 verbose parsed url host: null,
949 verbose parsed url port: null,
949 verbose parsed url hostname: null,
949 verbose parsed url hash: null,
949 verbose parsed url search: null,
949 verbose parsed url query: null,
949 verbose parsed url pathname: '1.1.1',
949 verbose parsed url path: '1.1.1',
949 verbose parsed url href: '1.1.1' }
950 verbose addNamed [ 'hawk', '1.1.1' ]
951 verbose addNamed [ '1.1.1', '1.1.1' ]
952 silly lockFile 61c917cf-hawk-1-1-1 hawk@1.1.1
953 verbose lock hawk@1.1.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/61c917cf-hawk-1-1-1.lock
954 verbose cache add [ 'aws-sign2@~0.5.0', null ]
955 verbose cache add name=undefined spec="aws-sign2@~0.5.0" args=["aws-sign2@~0.5.0",null]
956 verbose parsed url { protocol: null,
956 verbose parsed url slashes: null,
956 verbose parsed url auth: null,
956 verbose parsed url host: null,
956 verbose parsed url port: null,
956 verbose parsed url hostname: null,
956 verbose parsed url hash: null,
956 verbose parsed url search: null,
956 verbose parsed url query: null,
956 verbose parsed url pathname: 'aws-sign2@~0.5.0',
956 verbose parsed url path: 'aws-sign2@~0.5.0',
956 verbose parsed url href: 'aws-sign2@~0.5.0' }
957 verbose cache add name="aws-sign2" spec="~0.5.0" args=["aws-sign2","~0.5.0"]
958 verbose parsed url { protocol: null,
958 verbose parsed url slashes: null,
958 verbose parsed url auth: null,
958 verbose parsed url host: null,
958 verbose parsed url port: null,
958 verbose parsed url hostname: null,
958 verbose parsed url hash: null,
958 verbose parsed url search: null,
958 verbose parsed url query: null,
958 verbose parsed url pathname: '~0.5.0',
958 verbose parsed url path: '~0.5.0',
958 verbose parsed url href: '~0.5.0' }
959 verbose addNamed [ 'aws-sign2', '~0.5.0' ]
960 verbose addNamed [ null, '>=0.5.0-0 <0.6.0-0' ]
961 silly lockFile 82387911-aws-sign2-0-5-0 aws-sign2@~0.5.0
962 verbose lock aws-sign2@~0.5.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/82387911-aws-sign2-0-5-0.lock
963 silly gunzTarPerm extractEntry lib/properties/textIndent.js
964 silly gunzTarPerm extractEntry lib/properties/webkitBorderBeforeStyle.js
965 silly addNameRange { name: 'forever-agent',
965 silly addNameRange range: '>=0.5.0-0 <0.6.0-0',
965 silly addNameRange hasData: false }
966 silly addNameRange { name: 'node-uuid',
966 silly addNameRange range: '>=1.4.0-0 <1.5.0-0',
966 silly addNameRange hasData: false }
967 silly addNameRange { name: 'form-data',
967 silly addNameRange range: '>=0.1.0-0 <0.2.0-0',
967 silly addNameRange hasData: false }
968 silly addNameRange { name: 'http-signature',
968 silly addNameRange range: '>=0.10.0-0 <0.11.0-0',
968 silly addNameRange hasData: false }
969 silly addNameRange { name: 'oauth-sign',
969 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
969 silly addNameRange hasData: false }
970 silly addNameRange { name: 'tunnel-agent',
970 silly addNameRange range: '>=0.4.0-0 <0.5.0-0',
970 silly addNameRange hasData: false }
971 silly addNameRange { name: 'tough-cookie', range: '>=0.12.0', hasData: false }
972 silly addNameRange { name: 'aws-sign2',
972 silly addNameRange range: '>=0.5.0-0 <0.6.0-0',
972 silly addNameRange hasData: false }
973 verbose url raw qs
974 verbose url resolving [ 'https://registry.npmjs.org/', './qs' ]
975 verbose url resolved https://registry.npmjs.org/qs
976 info trying registry request attempt 1 at 10:15:14
977 verbose etag "ABZMBCCHKVIHUGZMR1AXD5HY8"
978 http GET https://registry.npmjs.org/qs
979 verbose url raw mime-types
980 verbose url resolving [ 'https://registry.npmjs.org/', './mime-types' ]
981 verbose url resolved https://registry.npmjs.org/mime-types
982 info trying registry request attempt 1 at 10:15:14
983 verbose etag "5QTXZZB7EV5DJ86M6R7UF9ER3"
984 http GET https://registry.npmjs.org/mime-types
985 verbose url raw json-stringify-safe
986 verbose url resolving [ 'https://registry.npmjs.org/', './json-stringify-safe' ]
987 verbose url resolved https://registry.npmjs.org/json-stringify-safe
988 info trying registry request attempt 1 at 10:15:14
989 verbose etag "DCHF000C6O2GP81GD95QO2ILB"
990 http GET https://registry.npmjs.org/json-stringify-safe
991 verbose url raw forever-agent
992 verbose url resolving [ 'https://registry.npmjs.org/', './forever-agent' ]
993 verbose url resolved https://registry.npmjs.org/forever-agent
994 info trying registry request attempt 1 at 10:15:14
995 verbose etag "CYWZJILR3M157HRX9R094YZJP"
996 http GET https://registry.npmjs.org/forever-agent
997 verbose url raw node-uuid
998 verbose url resolving [ 'https://registry.npmjs.org/', './node-uuid' ]
999 verbose url resolved https://registry.npmjs.org/node-uuid
1000 info trying registry request attempt 1 at 10:15:14
1001 verbose etag "1S3GCF9P64ZACPI5ITM3KIHA6"
1002 http GET https://registry.npmjs.org/node-uuid
1003 verbose url raw tunnel-agent
1004 verbose url resolving [ 'https://registry.npmjs.org/', './tunnel-agent' ]
1005 verbose url resolved https://registry.npmjs.org/tunnel-agent
1006 info trying registry request attempt 1 at 10:15:14
1007 verbose etag "4XEKZRB2KFYOS7X2FPWBM4UTK"
1008 http GET https://registry.npmjs.org/tunnel-agent
1009 verbose url raw oauth-sign
1010 verbose url resolving [ 'https://registry.npmjs.org/', './oauth-sign' ]
1011 verbose url resolved https://registry.npmjs.org/oauth-sign
1012 info trying registry request attempt 1 at 10:15:14
1013 verbose etag "BBEB5VBVQE0G0SOWKWBK6G3CH"
1014 http GET https://registry.npmjs.org/oauth-sign
1015 verbose url raw http-signature
1016 verbose url resolving [ 'https://registry.npmjs.org/', './http-signature' ]
1017 verbose url resolved https://registry.npmjs.org/http-signature
1018 info trying registry request attempt 1 at 10:15:14
1019 verbose etag "6ZB1ETGRW1IRSY4JIA0Y1E3B2"
1020 http GET https://registry.npmjs.org/http-signature
1021 verbose url raw hawk/1.1.1
1022 verbose url resolving [ 'https://registry.npmjs.org/', './hawk/1.1.1' ]
1023 verbose url resolved https://registry.npmjs.org/hawk/1.1.1
1024 info trying registry request attempt 1 at 10:15:14
1025 verbose etag "8OYGUWEVR2EN7SOD8YZ0D7VKB"
1026 http GET https://registry.npmjs.org/hawk/1.1.1
1027 verbose url raw aws-sign2
1028 verbose url resolving [ 'https://registry.npmjs.org/', './aws-sign2' ]
1029 verbose url resolved https://registry.npmjs.org/aws-sign2
1030 info trying registry request attempt 1 at 10:15:14
1031 verbose etag "5LQVIOJRE8YGQMQ2P04WCC67A"
1032 http GET https://registry.npmjs.org/aws-sign2
1033 verbose url raw form-data
1034 verbose url resolving [ 'https://registry.npmjs.org/', './form-data' ]
1035 verbose url resolved https://registry.npmjs.org/form-data
1036 info trying registry request attempt 1 at 10:15:14
1037 verbose etag "7DXTXSDCEIF071ZAQS7WN047R"
1038 http GET https://registry.npmjs.org/form-data
1039 silly gunzTarPerm extractEntry lib/properties/textDecoration.js
1040 silly gunzTarPerm extractEntry lib/properties/webkitBorderBeforeWidth.js
1041 silly gunzTarPerm extractEntry lib/properties/textAnchor.js
1042 silly gunzTarPerm extractEntry lib/properties/webkitBorderEnd.js
1043 silly gunzTarPerm extractEntry lib/properties/textAlign.js
1044 silly gunzTarPerm extractEntry lib/properties/webkitBorderEndColor.js
1045 silly gunzTarPerm extractEntry lib/properties/tableLayout.js
1046 silly gunzTarPerm extractEntry lib/properties/webkitBorderEndStyle.js
1047 silly gunzTarPerm extractEntry lib/properties/strokeWidth.js
1048 silly gunzTarPerm extractEntry lib/properties/webkitBorderEndWidth.js
1049 silly gunzTarPerm extractEntry lib/properties/strokeOpacity.js
1050 silly gunzTarPerm extractEntry lib/properties/webkitBorderFit.js
1051 silly lockFile f447a0df-les-jsdom-node-modules-nwmatcher tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher
1052 silly lockFile f447a0df-les-jsdom-node-modules-nwmatcher tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher
1053 silly lockFile 7abe26e3--apm-nwmatcher-1-3-3-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nwmatcher/1.3.3/package.tgz
1054 silly lockFile 7abe26e3--apm-nwmatcher-1-3-3-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nwmatcher/1.3.3/package.tgz
1055 silly gunzTarPerm extractEntry lib/properties/strokeMiterlimit.js
1056 silly gunzTarPerm extractEntry lib/properties/webkitBorderHorizontalSpacing.js
1057 info preinstall nwmatcher@1.3.3
1058 verbose readDependencies using package.json deps
1059 verbose readDependencies using package.json deps
1060 silly resolved []
1061 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher
1062 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/nwmatcher
1063 verbose linkStuff [ false,
1063 verbose linkStuff false,
1063 verbose linkStuff false,
1063 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules' ]
1064 info linkStuff nwmatcher@1.3.3
1065 verbose linkBins nwmatcher@1.3.3
1066 verbose linkMans nwmatcher@1.3.3
1067 verbose rebuildBundles nwmatcher@1.3.3
1068 info install nwmatcher@1.3.3
1069 info postinstall nwmatcher@1.3.3
1070 silly gunzTarPerm extractEntry lib/properties/strokeLinejoin.js
1071 silly gunzTarPerm extractEntry lib/properties/webkitBorderImage.js
1072 silly gunzTarPerm extractEntry lib/properties/strokeLinecap.js
1073 silly gunzTarPerm extractEntry lib/properties/webkitBorderRadius.js
1074 silly gunzTarPerm extractEntry lib/properties/strokeDashoffset.js
1075 silly gunzTarPerm extractEntry lib/properties/webkitBorderStart.js
1076 silly gunzTarPerm extractEntry lib/properties/strokeDasharray.js
1077 silly gunzTarPerm extractEntry lib/properties/webkitBorderStartColor.js
1078 silly gunzTarPerm extractEntry lib/properties/stroke.js
1079 silly gunzTarPerm extractEntry lib/properties/webkitBorderStartStyle.js
1080 verbose url raw tough-cookie
1081 verbose url resolving [ 'https://registry.npmjs.org/', './tough-cookie' ]
1082 verbose url resolved https://registry.npmjs.org/tough-cookie
1083 info trying registry request attempt 1 at 10:15:14
1084 verbose etag "1UPI10TCWUXXCJDOICISVEFTA"
1085 http GET https://registry.npmjs.org/tough-cookie
1086 silly gunzTarPerm extractEntry lib/properties/stress.js
1087 silly gunzTarPerm extractEntry lib/properties/webkitBorderStartWidth.js
1088 silly gunzTarPerm extractEntry lib/properties/stopOpacity.js
1089 silly gunzTarPerm extractEntry lib/properties/webkitBorderVerticalSpacing.js
1090 silly gunzTarPerm extractEntry lib/properties/stopColor.js
1091 silly gunzTarPerm extractEntry lib/properties/webkitBoxAlign.js
1092 silly gunzTarPerm extractEntry lib/properties/src.js
1093 silly gunzTarPerm extractEntry lib/properties/webkitBoxDirection.js
1094 silly gunzTarPerm extractEntry lib/properties/speechRate.js
1095 silly gunzTarPerm extractEntry lib/properties/webkitBoxFlex.js
1096 silly gunzTarPerm extractEntry lib/properties/speakPunctuation.js
1097 silly gunzTarPerm extractEntry lib/properties/webkitBoxFlexGroup.js
1098 silly gunzTarPerm extractEntry lib/properties/speakNumeral.js
1099 silly gunzTarPerm extractEntry lib/properties/webkitBoxLines.js
1100 silly gunzTarPerm extractEntry lib/properties/speakHeader.js
1101 silly gunzTarPerm extractEntry lib/properties/webkitBoxOrdinalGroup.js
1102 silly gunzTarPerm extractEntry lib/properties/speak.js
1103 silly gunzTarPerm extractEntry lib/properties/webkitBoxOrient.js
1104 silly gunzTarPerm extractEntry lib/properties/size.js
1105 silly gunzTarPerm extractEntry lib/properties/webkitBoxPack.js
1106 silly lockFile 223a4fdd-es-jsdom-node-modules-htmlparser tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser
1107 silly lockFile 223a4fdd-es-jsdom-node-modules-htmlparser tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser
1108 silly lockFile b7e92ea8-apm-htmlparser-1-7-7-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/htmlparser/1.7.7/package.tgz
1109 silly lockFile b7e92ea8-apm-htmlparser-1-7-7-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/htmlparser/1.7.7/package.tgz
1110 silly gunzTarPerm extractEntry lib/properties/shapeRendering.js
1111 silly gunzTarPerm extractEntry lib/properties/webkitBoxReflect.js
1112 info preinstall htmlparser@1.7.7
1113 verbose readDependencies using package.json deps
1114 verbose readDependencies using package.json deps
1115 silly resolved []
1116 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser
1117 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/htmlparser
1118 verbose linkStuff [ false,
1118 verbose linkStuff false,
1118 verbose linkStuff false,
1118 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules' ]
1119 info linkStuff htmlparser@1.7.7
1120 verbose linkBins htmlparser@1.7.7
1121 verbose linkMans htmlparser@1.7.7
1122 verbose rebuildBundles htmlparser@1.7.7
1123 info install htmlparser@1.7.7
1124 info postinstall htmlparser@1.7.7
1125 silly gunzTarPerm extractEntry lib/properties/right.js
1126 silly gunzTarPerm extractEntry lib/properties/webkitBoxShadow.js
1127 silly gunzTarPerm extractEntry lib/properties/richness.js
1128 silly gunzTarPerm extractEntry lib/properties/webkitColorCorrection.js
1129 silly gunzTarPerm extractEntry lib/properties/resize.js
1130 silly gunzTarPerm extractEntry lib/properties/webkitColumnAxis.js
1131 silly gunzTarPerm extractEntry lib/properties/quotes.js
1132 silly gunzTarPerm extractEntry lib/properties/webkitColumnBreakAfter.js
1133 silly gunzTarPerm extractEntry lib/properties/position.js
1134 silly gunzTarPerm extractEntry lib/properties/webkitColumnBreakBefore.js
1135 silly gunzTarPerm extractEntry lib/properties/pointerEvents.js
1136 silly gunzTarPerm extractEntry lib/properties/webkitColumnBreakInside.js
1137 silly gunzTarPerm extractEntry lib/properties/playDuring.js
1138 silly gunzTarPerm extractEntry lib/properties/webkitColumnCount.js
1139 silly gunzTarPerm extractEntry lib/properties/pitchRange.js
1140 silly gunzTarPerm extractEntry lib/properties/webkitColumnGap.js
1141 silly gunzTarPerm extractEntry lib/properties/pitch.js
1142 silly gunzTarPerm extractEntry lib/properties/webkitColumnRule.js
1143 silly gunzTarPerm extractEntry lib/properties/pauseBefore.js
1144 silly gunzTarPerm extractEntry lib/properties/webkitColumnRuleColor.js
1145 silly gunzTarPerm extractEntry lib/properties/pauseAfter.js
1146 silly gunzTarPerm extractEntry lib/properties/webkitColumnRuleStyle.js
1147 silly gunzTarPerm extractEntry lib/properties/pause.js
1148 silly gunzTarPerm extractEntry lib/properties/webkitColumnRuleWidth.js
1149 silly gunzTarPerm extractEntry lib/properties/pageBreakInside.js
1150 silly gunzTarPerm extractEntry lib/properties/webkitColumnSpan.js
1151 silly gunzTarPerm extractEntry lib/properties/pageBreakBefore.js
1152 silly gunzTarPerm extractEntry lib/properties/webkitColumnWidth.js
1153 silly gunzTarPerm extractEntry lib/properties/pageBreakAfter.js
1154 silly gunzTarPerm extractEntry lib/properties/webkitColumns.js
1155 silly gunzTarPerm extractEntry lib/properties/page.js
1156 silly gunzTarPerm extractEntry lib/properties/webkitFilter.js
1157 silly gunzTarPerm extractEntry lib/properties/paddingTop.js
1158 silly gunzTarPerm extractEntry lib/properties/webkitFlexAlign.js
1159 silly gunzTarPerm extractEntry lib/properties/paddingRight.js
1160 silly gunzTarPerm extractEntry lib/properties/webkitFlexDirection.js
1161 silly gunzTarPerm extractEntry lib/properties/paddingLeft.js
1162 silly gunzTarPerm extractEntry lib/properties/webkitFlexFlow.js
1163 silly gunzTarPerm extractEntry lib/properties/paddingBottom.js
1164 silly gunzTarPerm extractEntry lib/properties/webkitFlexItemAlign.js
1165 silly gunzTarPerm extractEntry lib/properties/padding.js
1166 silly gunzTarPerm extractEntry lib/properties/webkitFlexLinePack.js
1167 silly gunzTarPerm extractEntry lib/properties/overflowY.js
1168 silly gunzTarPerm extractEntry lib/properties/webkitFlexOrder.js
1169 silly gunzTarPerm extractEntry lib/properties/overflowX.js
1170 silly gunzTarPerm extractEntry lib/properties/webkitFlexPack.js
1171 silly gunzTarPerm extractEntry lib/properties/overflow.js
1172 silly gunzTarPerm extractEntry lib/properties/webkitFlexWrap.js
1173 silly gunzTarPerm extractEntry lib/properties/outlineWidth.js
1174 silly gunzTarPerm extractEntry lib/properties/webkitFlowFrom.js
1175 silly gunzTarPerm extractEntry lib/properties/outlineStyle.js
1176 silly gunzTarPerm extractEntry lib/properties/webkitFlowInto.js
1177 silly gunzTarPerm extractEntry lib/properties/outlineOffset.js
1178 silly gunzTarPerm extractEntry lib/properties/webkitFontFeatureSettings.js
1179 silly gunzTarPerm extractEntry lib/properties/outlineColor.js
1180 silly gunzTarPerm extractEntry lib/properties/webkitFontKerning.js
1181 silly gunzTarPerm extractEntry lib/properties/outline.js
1182 silly gunzTarPerm extractEntry lib/properties/webkitFontSizeDelta.js
1183 silly gunzTarPerm extractEntry lib/properties/orphans.js
1184 silly gunzTarPerm extractEntry lib/properties/webkitFontSmoothing.js
1185 silly gunzTarPerm extractEntry lib/properties/opacity.js
1186 silly gunzTarPerm extractEntry lib/properties/webkitFontVariantLigatures.js
1187 silly gunzTarPerm extractEntry lib/properties/minWidth.js
1188 silly gunzTarPerm extractEntry lib/properties/webkitHighlight.js
1189 silly gunzTarPerm extractEntry lib/properties/minHeight.js
1190 silly gunzTarPerm extractEntry lib/properties/webkitHyphenateCharacter.js
1191 silly gunzTarPerm extractEntry lib/properties/maxWidth.js
1192 silly gunzTarPerm extractEntry lib/properties/webkitHyphenateLimitAfter.js
1193 silly gunzTarPerm extractEntry lib/properties/maxHeight.js
1194 silly gunzTarPerm extractEntry lib/properties/webkitHyphenateLimitBefore.js
1195 silly gunzTarPerm extractEntry lib/properties/mask.js
1196 silly gunzTarPerm extractEntry lib/properties/webkitHyphenateLimitLines.js
1197 silly gunzTarPerm extractEntry lib/properties/marks.js
1198 silly gunzTarPerm extractEntry lib/properties/webkitHyphens.js
1199 silly gunzTarPerm extractEntry lib/properties/markerStart.js
1200 silly gunzTarPerm extractEntry lib/properties/webkitLineAlign.js
1201 silly gunzTarPerm extractEntry lib/properties/markerOffset.js
1202 silly gunzTarPerm extractEntry lib/properties/webkitLineBoxContain.js
1203 silly gunzTarPerm extractEntry lib/properties/markerMid.js
1204 silly gunzTarPerm extractEntry lib/properties/webkitLineBreak.js
1205 silly gunzTarPerm extractEntry lib/properties/markerEnd.js
1206 silly gunzTarPerm extractEntry lib/properties/webkitLineClamp.js
1207 silly gunzTarPerm extractEntry lib/properties/marker.js
1208 silly gunzTarPerm extractEntry lib/properties/webkitLineGrid.js
1209 silly gunzTarPerm extractEntry lib/properties/marginTop.js
1210 silly gunzTarPerm extractEntry lib/properties/webkitLineSnap.js
1211 silly gunzTarPerm extractEntry lib/properties/marginRight.js
1212 silly gunzTarPerm extractEntry lib/properties/webkitLocale.js
1213 silly gunzTarPerm extractEntry lib/properties/marginLeft.js
1214 silly gunzTarPerm extractEntry lib/properties/webkitLogicalHeight.js
1215 silly gunzTarPerm extractEntry lib/properties/marginBottom.js
1216 silly gunzTarPerm extractEntry lib/properties/webkitLogicalWidth.js
1217 silly gunzTarPerm extractEntry lib/properties/margin.js
1218 silly gunzTarPerm extractEntry lib/properties/webkitMarginAfter.js
1219 silly gunzTarPerm extractEntry lib/properties/listStyleType.js
1220 silly gunzTarPerm extractEntry lib/properties/webkitMarginAfterCollapse.js
1221 silly gunzTarPerm extractEntry lib/properties/listStylePosition.js
1222 silly gunzTarPerm extractEntry lib/properties/webkitMarginBefore.js
1223 silly gunzTarPerm extractEntry lib/properties/listStyleImage.js
1224 silly gunzTarPerm extractEntry lib/properties/webkitMarginBeforeCollapse.js
1225 silly gunzTarPerm extractEntry lib/properties/listStyle.js
1226 silly gunzTarPerm extractEntry lib/properties/webkitMarginBottomCollapse.js
1227 silly gunzTarPerm extractEntry lib/properties/lineHeight.js
1228 silly gunzTarPerm extractEntry lib/properties/webkitMarginCollapse.js
1229 silly gunzTarPerm extractEntry lib/properties/lightingColor.js
1230 silly gunzTarPerm extractEntry lib/properties/webkitMarginEnd.js
1231 silly gunzTarPerm extractEntry lib/properties/letterSpacing.js
1232 silly gunzTarPerm extractEntry lib/properties/webkitMarginStart.js
1233 silly gunzTarPerm extractEntry lib/properties/left.js
1234 silly gunzTarPerm extractEntry lib/properties/webkitMarginTopCollapse.js
1235 silly gunzTarPerm extractEntry lib/properties/kerning.js
1236 silly gunzTarPerm extractEntry lib/properties/webkitMarquee.js
1237 silly gunzTarPerm extractEntry lib/properties/imageRendering.js
1238 silly gunzTarPerm extractEntry lib/properties/webkitMarqueeDirection.js
1239 silly gunzTarPerm extractEntry lib/properties/height.js
1240 silly gunzTarPerm extractEntry lib/properties/webkitMarqueeIncrement.js
1241 silly gunzTarPerm extractEntry lib/properties/glyphOrientationVertical.js
1242 silly gunzTarPerm extractEntry lib/properties/webkitMarqueeRepetition.js
1243 silly gunzTarPerm extractEntry lib/properties/glyphOrientationHorizontal.js
1244 silly gunzTarPerm extractEntry lib/properties/webkitMarqueeSpeed.js
1245 silly gunzTarPerm extractEntry lib/properties/fontWeight.js
1246 silly gunzTarPerm extractEntry lib/properties/webkitMarqueeStyle.js
1247 silly gunzTarPerm extractEntry lib/properties/fontVariant.js
1248 silly gunzTarPerm extractEntry lib/properties/webkitMask.js
1249 silly gunzTarPerm extractEntry lib/properties/fontStyle.js
1250 silly gunzTarPerm extractEntry lib/properties/webkitMaskAttachment.js
1251 silly gunzTarPerm extractEntry lib/properties/fontStretch.js
1252 silly gunzTarPerm extractEntry lib/properties/webkitMaskBoxImage.js
1253 silly gunzTarPerm extractEntry lib/properties/fontSizeAdjust.js
1254 silly gunzTarPerm extractEntry lib/properties/webkitMaskBoxImageOutset.js
1255 silly gunzTarPerm extractEntry lib/properties/fontSize.js
1256 silly gunzTarPerm extractEntry lib/properties/webkitMaskBoxImageRepeat.js
1257 silly gunzTarPerm extractEntry lib/properties/fontFamily.js
1258 silly gunzTarPerm extractEntry lib/properties/webkitMaskBoxImageSlice.js
1259 silly gunzTarPerm extractEntry lib/properties/font.js
1260 silly gunzTarPerm extractEntry lib/properties/webkitMaskBoxImageSource.js
1261 silly gunzTarPerm extractEntry lib/properties/floodOpacity.js
1262 silly gunzTarPerm extractEntry lib/properties/webkitMaskBoxImageWidth.js
1263 silly gunzTarPerm extractEntry lib/properties/floodColor.js
1264 silly gunzTarPerm extractEntry lib/properties/webkitMaskClip.js
1265 silly gunzTarPerm extractEntry lib/properties/filter.js
1266 silly gunzTarPerm extractEntry lib/properties/webkitMaskComposite.js
1267 silly gunzTarPerm extractEntry lib/properties/fillRule.js
1268 silly gunzTarPerm extractEntry lib/properties/webkitMaskImage.js
1269 silly gunzTarPerm extractEntry lib/properties/fillOpacity.js
1270 silly gunzTarPerm extractEntry lib/properties/webkitMaskOrigin.js
1271 silly gunzTarPerm extractEntry lib/properties/fill.js
1272 silly gunzTarPerm extractEntry lib/properties/webkitMaskPosition.js
1273 silly gunzTarPerm extractEntry lib/properties/enableBackground.js
1274 silly gunzTarPerm extractEntry lib/properties/webkitMaskPositionX.js
1275 silly gunzTarPerm extractEntry lib/properties/emptyCells.js
1276 silly gunzTarPerm extractEntry lib/properties/webkitMaskPositionY.js
1277 silly gunzTarPerm extractEntry lib/properties/elevation.js
1278 silly gunzTarPerm extractEntry lib/properties/webkitMaskRepeat.js
1279 silly gunzTarPerm extractEntry lib/properties/dominantBaseline.js
1280 silly gunzTarPerm extractEntry lib/properties/webkitMaskRepeatX.js
1281 silly gunzTarPerm extractEntry lib/properties/display.js
1282 silly gunzTarPerm extractEntry lib/properties/webkitMaskRepeatY.js
1283 silly gunzTarPerm extractEntry lib/properties/direction.js
1284 silly gunzTarPerm extractEntry lib/properties/webkitMaskSize.js
1285 silly gunzTarPerm extractEntry lib/properties/cursor.js
1286 silly gunzTarPerm extractEntry lib/properties/webkitMatchNearestMailBlockquoteColor.js
1287 silly gunzTarPerm extractEntry lib/properties/cueBefore.js
1288 silly gunzTarPerm extractEntry lib/properties/webkitMaxLogicalHeight.js
1289 silly gunzTarPerm extractEntry lib/properties/cueAfter.js
1290 silly gunzTarPerm extractEntry lib/properties/webkitMaxLogicalWidth.js
1291 silly gunzTarPerm extractEntry lib/properties/cue.js
1292 silly gunzTarPerm extractEntry lib/properties/webkitMinLogicalHeight.js
1293 silly gunzTarPerm extractEntry lib/properties/cssFloat.js
1294 silly gunzTarPerm extractEntry lib/properties/webkitMinLogicalWidth.js
1295 silly gunzTarPerm extractEntry lib/properties/counterReset.js
1296 silly gunzTarPerm extractEntry lib/properties/webkitNbspMode.js
1297 silly gunzTarPerm extractEntry lib/properties/counterIncrement.js
1298 silly gunzTarPerm extractEntry lib/properties/webkitOverflowScrolling.js
1299 silly gunzTarPerm extractEntry lib/properties/content.js
1300 silly gunzTarPerm extractEntry lib/properties/webkitPaddingAfter.js
1301 silly gunzTarPerm extractEntry lib/properties/colorRendering.js
1302 silly gunzTarPerm extractEntry lib/properties/webkitPaddingBefore.js
1303 silly gunzTarPerm extractEntry lib/properties/colorProfile.js
1304 silly gunzTarPerm extractEntry lib/properties/webkitPaddingEnd.js
1305 silly gunzTarPerm extractEntry lib/properties/colorInterpolationFilters.js
1306 silly gunzTarPerm extractEntry lib/properties/webkitPaddingStart.js
1307 silly gunzTarPerm extractEntry lib/properties/colorInterpolation.js
1308 silly gunzTarPerm extractEntry lib/properties/webkitPerspective.js
1309 silly gunzTarPerm extractEntry lib/properties/color.js
1310 silly gunzTarPerm extractEntry lib/properties/webkitPerspectiveOrigin.js
1311 silly gunzTarPerm extractEntry lib/properties/clip.js
1312 silly gunzTarPerm extractEntry lib/properties/webkitPerspectiveOriginX.js
1313 silly gunzTarPerm extractEntry lib/properties/clear.js
1314 silly gunzTarPerm extractEntry lib/properties/webkitPerspectiveOriginY.js
1315 silly gunzTarPerm extractEntry lib/properties/captionSide.js
1316 silly gunzTarPerm extractEntry lib/properties/webkitPrintColorAdjust.js
1317 silly gunzTarPerm extractEntry lib/properties/boxSizing.js
1318 silly gunzTarPerm extractEntry lib/properties/webkitRegionBreakAfter.js
1319 silly gunzTarPerm extractEntry lib/properties/boxShadow.js
1320 silly gunzTarPerm extractEntry lib/properties/webkitRegionBreakBefore.js
1321 silly gunzTarPerm extractEntry lib/properties/bottom.js
1322 silly gunzTarPerm extractEntry lib/properties/webkitRegionBreakInside.js
1323 silly gunzTarPerm extractEntry lib/properties/borderWidth.js
1324 silly gunzTarPerm extractEntry lib/properties/webkitRegionOverflow.js
1325 silly gunzTarPerm extractEntry lib/properties/borderTopWidth.js
1326 silly gunzTarPerm extractEntry lib/properties/webkitRtlOrdering.js
1327 silly gunzTarPerm extractEntry lib/properties/borderTopStyle.js
1328 silly gunzTarPerm extractEntry lib/properties/webkitSvgShadow.js
1329 silly gunzTarPerm extractEntry lib/properties/borderTopRightRadius.js
1330 silly gunzTarPerm extractEntry lib/properties/webkitTapHighlightColor.js
1331 silly gunzTarPerm extractEntry lib/properties/borderTopLeftRadius.js
1332 silly gunzTarPerm extractEntry lib/properties/webkitTextCombine.js
1333 silly gunzTarPerm extractEntry lib/properties/borderTopColor.js
1334 silly gunzTarPerm extractEntry lib/properties/webkitTextDecorationsInEffect.js
1335 silly gunzTarPerm extractEntry lib/properties/borderTop.js
1336 silly gunzTarPerm extractEntry lib/properties/webkitTextEmphasis.js
1337 silly gunzTarPerm extractEntry lib/properties/borderStyle.js
1338 silly gunzTarPerm extractEntry lib/properties/webkitTextEmphasisColor.js
1339 silly gunzTarPerm extractEntry lib/properties/borderSpacing.js
1340 silly gunzTarPerm extractEntry lib/properties/webkitTextEmphasisPosition.js
1341 silly gunzTarPerm extractEntry lib/properties/borderRightWidth.js
1342 silly gunzTarPerm extractEntry lib/properties/webkitTextEmphasisStyle.js
1343 silly gunzTarPerm extractEntry lib/properties/borderRightStyle.js
1344 silly gunzTarPerm extractEntry lib/properties/webkitTextFillColor.js
1345 silly gunzTarPerm extractEntry lib/properties/borderRightColor.js
1346 silly gunzTarPerm extractEntry lib/properties/webkitTextOrientation.js
1347 silly gunzTarPerm extractEntry lib/properties/borderRight.js
1348 silly gunzTarPerm extractEntry lib/properties/webkitTextSecurity.js
1349 silly gunzTarPerm extractEntry lib/properties/borderRadius.js
1350 silly gunzTarPerm extractEntry lib/properties/webkitTextSizeAdjust.js
1351 silly gunzTarPerm extractEntry lib/properties/borderLeftWidth.js
1352 silly gunzTarPerm extractEntry lib/properties/webkitTextStroke.js
1353 silly gunzTarPerm extractEntry lib/properties/borderLeftStyle.js
1354 silly gunzTarPerm extractEntry lib/properties/webkitTextStrokeColor.js
1355 silly gunzTarPerm extractEntry lib/properties/borderLeftColor.js
1356 silly gunzTarPerm extractEntry lib/properties/webkitTextStrokeWidth.js
1357 silly gunzTarPerm extractEntry lib/properties/borderLeft.js
1358 silly gunzTarPerm extractEntry lib/properties/webkitTransform.js
1359 silly gunzTarPerm extractEntry lib/properties/borderImageWidth.js
1360 silly gunzTarPerm extractEntry lib/properties/webkitTransformOrigin.js
1361 silly gunzTarPerm extractEntry lib/properties/borderImageSource.js
1362 silly gunzTarPerm extractEntry lib/properties/webkitTransformOriginX.js
1363 silly gunzTarPerm extractEntry lib/properties/borderImageSlice.js
1364 silly gunzTarPerm extractEntry lib/properties/webkitTransformOriginY.js
1365 silly gunzTarPerm extractEntry lib/properties/borderImageRepeat.js
1366 silly gunzTarPerm extractEntry lib/properties/webkitTransformOriginZ.js
1367 silly gunzTarPerm extractEntry lib/properties/borderImageOutset.js
1368 silly gunzTarPerm extractEntry lib/properties/webkitTransformStyle.js
1369 silly gunzTarPerm extractEntry lib/properties/borderImage.js
1370 silly gunzTarPerm extractEntry lib/properties/webkitTransition.js
1371 http 304 https://registry.npmjs.org/bindings
1372 silly registry.get cb [ 304,
1372 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
1372 silly registry.get server: 'Apache',
1372 silly registry.get via: '1.1 varnish',
1372 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
1372 silly registry.get 'cache-control': 'max-age=30',
1372 silly registry.get etag: '"6S7UAGB717AD0Z8AQ1OJ61UW3"',
1372 silly registry.get 'x-served-by': 'cache-fra1233-FRA',
1372 silly registry.get 'x-cache': 'HIT',
1372 silly registry.get 'x-cache-hits': '1',
1372 silly registry.get 'x-timer': 'S1404807291.942379,VS0,VE0',
1372 silly registry.get vary: 'Accept',
1372 silly registry.get 'content-length': '0',
1372 silly registry.get 'keep-alive': 'timeout=10, max=50',
1372 silly registry.get connection: 'Keep-Alive' } ]
1373 verbose etag bindings from cache
1374 silly gunzTarPerm extractEntry lib/properties/borderColor.js
1375 silly gunzTarPerm extractEntry lib/properties/webkitTransitionDelay.js
1376 http 304 https://registry.npmjs.org/nan
1377 silly registry.get cb [ 304,
1377 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:51 GMT',
1377 silly registry.get server: 'Apache',
1377 silly registry.get via: '1.1 varnish',
1377 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:51 GMT',
1377 silly registry.get 'cache-control': 'max-age=30',
1377 silly registry.get etag: '"1X5FH8LHOK49XYDIGDRRML4G5"',
1377 silly registry.get 'x-served-by': 'cache-fra1231-FRA',
1377 silly registry.get 'x-cache': 'HIT',
1377 silly registry.get 'x-cache-hits': '1',
1377 silly registry.get 'x-timer': 'S1404807291.941915,VS0,VE0',
1377 silly registry.get vary: 'Accept',
1377 silly registry.get 'content-length': '0',
1377 silly registry.get 'keep-alive': 'timeout=10, max=50',
1377 silly registry.get connection: 'Keep-Alive' } ]
1378 verbose etag nan from cache
1379 silly addNameRange number 2 { name: 'bindings', range: '*', hasData: true }
1380 silly addNameRange versions [ 'bindings',
1380 silly addNameRange [ '0.0.1',
1380 silly addNameRange '0.1.0',
1380 silly addNameRange '0.1.1',
1380 silly addNameRange '0.2.0',
1380 silly addNameRange '0.2.1',
1380 silly addNameRange '0.2.2',
1380 silly addNameRange '0.2.3',
1380 silly addNameRange '0.2.4',
1380 silly addNameRange '0.3.0',
1380 silly addNameRange '0.4.0',
1380 silly addNameRange '1.0.0',
1380 silly addNameRange '1.1.0',
1380 silly addNameRange '1.1.1',
1380 silly addNameRange '1.2.0',
1380 silly addNameRange '1.2.1' ] ]
1381 verbose addNamed [ 'bindings', '1.2.1' ]
1382 verbose addNamed [ '1.2.1', '1.2.1' ]
1383 silly lockFile e9060511-bindings-1-2-1 bindings@1.2.1
1384 verbose lock bindings@1.2.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/e9060511-bindings-1-2-1.lock
1385 silly addNameRange number 2 { name: 'nan', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
1386 silly addNameRange versions [ 'nan',
1386 silly addNameRange [ '0.3.0-wip',
1386 silly addNameRange '0.3.0-wip2',
1386 silly addNameRange '0.3.0',
1386 silly addNameRange '0.3.1',
1386 silly addNameRange '0.3.2',
1386 silly addNameRange '0.4.0',
1386 silly addNameRange '0.4.1',
1386 silly addNameRange '0.4.2',
1386 silly addNameRange '0.4.3',
1386 silly addNameRange '0.4.4',
1386 silly addNameRange '0.5.0',
1386 silly addNameRange '0.5.1',
1386 silly addNameRange '0.5.2',
1386 silly addNameRange '0.6.0',
1386 silly addNameRange '0.7.0',
1386 silly addNameRange '0.7.1',
1386 silly addNameRange '0.8.0',
1386 silly addNameRange '1.0.0',
1386 silly addNameRange '1.1.0',
1386 silly addNameRange '1.1.1',
1386 silly addNameRange '1.1.2',
1386 silly addNameRange '1.2.0' ] ]
1387 verbose addNamed [ 'nan', '1.0.0' ]
1388 verbose addNamed [ '1.0.0', '1.0.0' ]
1389 silly lockFile cc7fa090-nan-1-0-0 nan@1.0.0
1390 verbose lock nan@1.0.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/cc7fa090-nan-1-0-0.lock
1391 silly gunzTarPerm extractEntry lib/properties/borderCollapse.js
1392 silly gunzTarPerm extractEntry lib/properties/webkitTransitionDuration.js
1393 silly gunzTarPerm extractEntry lib/properties/borderBottomWidth.js
1394 silly gunzTarPerm extractEntry lib/properties/webkitTransitionProperty.js
1395 silly lockFile cc7fa090-nan-1-0-0 nan@1.0.0
1396 silly lockFile cc7fa090-nan-1-0-0 nan@1.0.0
1397 silly gunzTarPerm extractEntry lib/properties/borderBottomStyle.js
1398 silly gunzTarPerm extractEntry lib/properties/webkitTransitionTimingFunction.js
1399 silly lockFile 66a60b03-nan-1-0-0 nan@~1.0.0
1400 silly lockFile 66a60b03-nan-1-0-0 nan@~1.0.0
1401 silly gunzTarPerm extractEntry lib/properties/borderBottomRightRadius.js
1402 silly gunzTarPerm extractEntry lib/properties/webkitUserDrag.js
1403 silly gunzTarPerm extractEntry lib/properties/borderBottomLeftRadius.js
1404 silly gunzTarPerm extractEntry lib/properties/webkitUserModify.js
1405 silly gunzTarPerm extractEntry lib/properties/borderBottomColor.js
1406 silly gunzTarPerm extractEntry lib/properties/webkitUserSelect.js
1407 silly gunzTarPerm extractEntry lib/properties/borderBottom.js
1408 silly gunzTarPerm extractEntry lib/properties/webkitWrap.js
1409 silly gunzTarPerm extractEntry lib/properties/border.js
1410 silly gunzTarPerm extractEntry lib/properties/webkitWrapFlow.js
1411 silly gunzTarPerm extractEntry lib/properties/baselineShift.js
1412 silly gunzTarPerm extractEntry lib/properties/webkitWrapMargin.js
1413 silly gunzTarPerm extractEntry lib/properties/backgroundSize.js
1414 silly gunzTarPerm extractEntry lib/properties/webkitWrapPadding.js
1415 silly gunzTarPerm extractEntry lib/properties/backgroundRepeatY.js
1416 silly gunzTarPerm extractEntry lib/properties/webkitWrapShapeInside.js
1417 silly gunzTarPerm extractEntry lib/properties/backgroundRepeatX.js
1418 silly gunzTarPerm extractEntry lib/properties/webkitWrapShapeOutside.js
1419 silly gunzTarPerm extractEntry lib/properties/backgroundRepeat.js
1420 silly gunzTarPerm extractEntry lib/properties/webkitWrapThrough.js
1421 silly gunzTarPerm extractEntry lib/properties/backgroundPositionY.js
1422 silly gunzTarPerm extractEntry lib/properties/webkitWritingMode.js
1423 silly gunzTarPerm extractEntry lib/properties/backgroundPositionX.js
1424 silly gunzTarPerm extractEntry lib/properties/whiteSpace.js
1425 silly gunzTarPerm extractEntry lib/properties/backgroundPosition.js
1426 silly gunzTarPerm extractEntry lib/properties/widows.js
1427 silly gunzTarPerm extractEntry lib/properties/backgroundOrigin.js
1428 silly gunzTarPerm extractEntry lib/properties/width.js
1429 silly gunzTarPerm extractEntry lib/properties/backgroundImage.js
1430 silly gunzTarPerm extractEntry lib/properties/wordBreak.js
1431 silly gunzTarPerm extractEntry lib/properties/backgroundColor.js
1432 silly gunzTarPerm extractEntry lib/properties/wordSpacing.js
1433 silly gunzTarPerm extractEntry lib/properties/backgroundClip.js
1434 silly gunzTarPerm extractEntry lib/properties/wordWrap.js
1435 silly gunzTarPerm extractEntry lib/properties/backgroundAttachment.js
1436 silly gunzTarPerm extractEntry lib/properties/writingMode.js
1437 silly gunzTarPerm extractEntry lib/properties/background.js
1438 silly gunzTarPerm extractEntry lib/properties/zIndex.js
1439 silly gunzTarPerm extractEntry lib/properties/azimuth.js
1440 silly gunzTarPerm extractEntry lib/properties/zoom.js
1441 silly gunzTarPerm extractEntry lib/properties/visibility.js
1442 silly gunzTarPerm extractEntry tests/tests.js
1443 silly lockFile e9060511-bindings-1-2-1 bindings@1.2.1
1444 silly lockFile e9060511-bindings-1-2-1 bindings@1.2.1
1445 silly lockFile a3858fc2-bindings bindings@*
1446 silly lockFile a3858fc2-bindings bindings@*
1447 silly resolved [ { name: 'nan',
1447 silly resolved version: '1.0.0',
1447 silly resolved description: 'Native Abstractions for Node.js: C++ header for Node 0.8->0.12 compatibility',
1447 silly resolved main: 'include_dirs.js',
1447 silly resolved repository: { type: 'git', url: 'git://github.com/rvagg/nan.git' },
1447 silly resolved contributors: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
1447 silly resolved license: 'MIT',
1447 silly resolved readme: 'Native Abstractions for Node.js\n===============================\n\n**A header file filled with macro and utility goodness for making add-on development for Node.js easier across versions 0.8, 0.10 and 0.11, and eventually 0.12.**\n\n***Current version: 1.0.0*** *(See [nan.h](https://github.com/rvagg/nan/blob/master/nan.h) for complete ChangeLog)*\n\n[![NPM](https://nodei.co/npm/nan.png?downloads=true)](https://nodei.co/npm/nan/) [![NPM](https://nodei.co/npm-dl/nan.png?months=6)](https://nodei.co/npm/nan/)\n\nThanks to the crazy changes in V8 (and some in Node core), keeping native addons compiling happily across versions, particularly 0.10 to 0.11/0.12, is a minor nightmare. The goal of this project is to store all logic necessary to develop native Node.js addons without having to inspect `NODE_MODULE_VERSION` and get yourself into a macro-tangle.\n\nThis project also contains some helper utilities that make addon development a bit more pleasant.\n\n * **[News & Updates](#news)**\n * **[Usage](#usage)**\n * **[Example](#example)**\n * **[API](#api)**\n\n<a name="news"></a>\n## News & Updates\n\n### May-2013: Major changes for V8 3.25 / Node 0.11.13\n\nNode 0.11.11 and 0.11.12 were both broken releases for native add-ons, you simply can\'t properly compile against either of them for different reasons. But we now have a 0.11.13 release that jumps a couple of versions of V8 ahead and includes some more, major (traumatic) API changes.\n\nBecause we are now nearing Node 0.12 and estimate that the version of V8 we are using in Node 0.11.13 will be close to the API we get for 0.12, we have taken the opportunity to not only *fix* NAN for 0.11.13 but make some major changes to improve the NAN API.\n\nWe have **removed support for Node 0.11 versions prior to 0.11.13**, (although our tests are still passing for 0.11.10). As usual, our tests are run against (and pass) the last 5 versions of Node 0.8 and Node 0.10. We also include Node 0.11.13 obviously.\n\nThe major change is something that [Benjamin Byholm](kkoopa) has put many hours in to. We now have a fantastic new `NanNew<T>(args)` interface for creating new `Local`s, this replaces `NanNewLocal()` and much more. If you look in [./nan.h](nan.h) you\'ll see a large number of overloaded versions of this method. In general you should be able to `NanNew<Type>(arguments)` for any type you want to make a `Local` from. This includes `Persistent` types, so we now have a `Local<T> NanNew(const Persistent<T> arg)` to replace `NanPersistentToLocal()`.\n\nWe also now have `NanUndefined()`, `NanNull()`, `NanTrue()` and `NanFalse()`. Mainly because of the new requirement for an `Isolate` argument for each of the native V8 versions of this.\n\nV8 has now introduced an `EscapableHandleScope` from which you `scope.Escape(Local<T> value)` to *return* a value from a one scope to another. This replaces the standard `HandleScope` and `scope.Close(Local<T> value)`, although `HandleScope` still exists for when you don\'t need to return a handle to the caller. For NAN we are exposing it as `NanEscapableScope()` and `NanEscapeScope()`, while `NanScope()` is still how you create a new scope that doesn\'t need to return handles. For older versions of Node/V8, it\'ll still map to the older `HandleScope` functionality.\n\n`NanFromV8String()` was deprecated and has now been removed. You should use `NanCString()` or `NanRawString()` instead.\n\nBecause `node::MakeCallback()` now takes an `Isolate`, and because it doesn\'t exist in older versions of Node, we\'ve introduced `NanMakeCallabck()`. You should *always* use this when calling a JavaScript function from C++.\n\nThere\'s lots more, check out the Changelog in nan.h or look through [#86](https://github.com/rvagg/nan/pull/86) for all the gory details.\n\n### Dec-2013: NanCString and NanRawString\n\nTwo new functions have been introduced to replace the functionality that\'s been provided by `NanFromV8String` until now. NanCString has sensible defaults so it\'s super easy to fetch a null-terminated c-style string out of a `v8::String`. `NanFromV8String` is still around and has defaults that allow you to pass a single handle to fetch a `char*` while `NanRawString` requires a little more attention to arguments.\n\n### Nov-2013: Node 0.11.9+ breaking V8 change\n\nThe version of V8 that\'s shipping with Node 0.11.9+ has changed the signature for new `Local`s to: `v8::Local<T>::New(isolate, value)`, i.e. introducing the `isolate` argument and therefore breaking all new `Local` declarations for previous versions. NAN 0.6+ now includes a `NanNewLocal<T>(value)` that can be used in place to work around this incompatibility and maintain compatibility with 0.8->0.11.9+ (minus a few early 0.11 releases).\n\nFor example, if you wanted to return a `null` on a callback you will have to change the argument from `v8::Local<v8::Value>::New(v8::Null())` to `NanNewLocal<v8::Value>(v8::Null())`.\n\n### Nov-2013: Change to binding.gyp `"include_dirs"` for NAN\n\nInclusion of NAN in a project\'s binding.gyp is now greatly simplified. You can now just use `"<!(node -e \\"require(\'nan\')\\")"` in your `"include_dirs"`, see example below (note Windows needs the quoting around `require` to be just right: `"require(\'nan\')"` with appropriate `\\` escaping).\n\n<a name="usage"></a>\n## Usage\n\nSimply add **NAN** as a dependency in the *package.json* of your Node addon:\n\n``` bash\n$ npm install --save nan\n```\n\nPull in the path to **NAN** in your *binding.gyp* so that you can use `#include <nan.h>` in your *.cpp* files:\n\n``` python\n"include_dirs" : [\n "<!(node -e \\"require(\'nan\')\\")"\n]\n```\n\nThis works like a `-I<path-to-NAN>` when compiling your addon.\n\n<a name="example"></a>\n## Example\n\nSee **[LevelDOWN](https://github.com/rvagg/node-leveldown/pull/48)** for a full example of **NAN** in use.\n\nFor a simpler example, see the **[async pi estimation example](https://github.com/rvagg/nan/tree/master/examples/async_pi_estimate)** in the examples directory for full code and an explanation of what this Monte Carlo Pi estimation example does. Below are just some parts of the full example that illustrate the use of **NAN**.\n\nCompare to the current 0.10 version of this example, found in the [node-addon-examples](https://github.com/rvagg/node-addon-examples/tree/master/9_async_work) repository and also a 0.11 version of the same found [here](https://github.com/kkoopa/node-addon-examples/tree/5c01f58fc993377a567812597e54a83af69686d7/9_async_work).\n\nNote that there is no embedded version sniffing going on here and also the async work is made much simpler, see below for details on the `NanAsyncWorker` class.\n\n```c++\n// addon.cc\n#include <node.h>\n#include <nan.h>\n// ...\n\nusing v8::FunctionTemplate;\nusing v8::Handle;\nusing v8::Object;\n\nvoid InitAll(Handle<Object> exports) {\n exports->Set(NanSymbol("calculateSync"),\n NanNew<FunctionTemplate>(CalculateSync)->GetFunction());\n\n exports->Set(NanSymbol("calculateAsync"),\n NanNew<FunctionTemplate>(CalculateAsync)->GetFunction());\n}\n\nNODE_MODULE(addon, InitAll)\n```\n\n```c++\n// sync.h\n#include <node.h>\n#include <nan.h>\n\nNAN_METHOD(CalculateSync);\n```\n\n```c++\n// sync.cc\n#include <node.h>\n#include <nan.h>\n#include "./sync.h"\n// ...\n\nusing v8::Number;\n\n// Simple synchronous access to the `Estimate()` function\nNAN_METHOD(CalculateSync) {\n NanScope();\n\n // expect a number as the first argument\n int points = args[0]->Uint32Value();\n double est = Estimate(points);\n\n NanReturnValue(NanNew<Number>(est));\n}\n```\n\n```c++\n// async.cc\n#include <node.h>\n#include <nan.h>\n#include "./async.h"\n\n// ...\n\nusing v8::Function;\nusing v8::Local;\nusing v8::Null;\nusing v8::Number;\nusing v8::Value;\n\nclass PiWorker : public NanAsyncWorker {\n public:\n PiWorker(NanCallback *callback, int points)\n : NanAsyncWorker(callback), points(points) {}\n ~PiWorker() {}\n\n // Executed inside the worker-thread.\n // It is not safe to access V8, or V8 data structures\n // here, so everything we need for input and output\n // should go on `this`.\n void Execute () {\n estimate = Estimate(points);\n }\n\n // Executed when the async work is complete\n // this function will be run inside the main event loop\n // so it is safe to use V8 again\n void HandleOKCallback () {\n NanScope();\n\n Local<Value> argv[] = {\n NanNew(NanNull())\n , NanNew<Number>(estimate)\n };\n\n callback->Call(2, argv);\n };\n\n private:\n int points;\n double estimate;\n};\n\n// Asynchronous access to the `Estimate()` function\nNAN_METHOD(CalculateAsync) {\n NanScope();\n\n int points = args[0]->Uint32Value();\n NanCallback *callback = new NanCallback(args[1].As<Function>());\n\n NanAsyncQueueWorker(new PiWorker(callback, points));\n NanReturnUndefined();\n}\n```\n\n<a name="api"></a>\n## API\n\n * <a href="#api_nan_method"><b><code>NAN_METHOD</code></b></a>\n * <a href="#api_nan_getter"><b><code>NAN_GETTER</code></b></a>\n * <a href="#api_nan_setter"><b><code>NAN_SETTER</code></b></a>\n * <a href="#api_nan_property_getter"><b><code>NAN_PROPERTY_GETTER</code></b></a>\n * <a href="#api_nan_property_setter"><b><code>NAN_PROPERTY_SETTER</code></b></a>\n * <a href="#api_nan_property_enumerator"><b><code>NAN_PROPERTY_ENUMERATOR</code></b></a>\n * <a href="#api_nan_property_deleter"><b><code>NAN_PROPERTY_DELETER</code></b></a>\n * <a href="#api_nan_property_query"><b><code>NAN_PROPERTY_QUERY</code></b></a>\n * <a href="#api_nan_index_getter"><b><code>NAN_INDEX_GETTER</code></b></a>\n * <a href="#api_nan_index_setter"><b><code>NAN_INDEX_SETTER</code></b></a>\n * <a href="#api_nan_index_enumerator"><b><code>NAN_INDEX_ENUMERATOR</code></b></a>\n * <a href="#api_nan_index_deleter"><b><code>NAN_INDEX_DELETER</code></b></a>\n * <a href="#api_nan_index_query"><b><code>NAN_INDEX_QUERY</code></b></a>\n * <a href="#api_nan_weak_callback"><b><code>NAN_WEAK_CALLBACK</code></b></a>\n * <a href="#api_nan_deprecated"><b><code>NAN_DEPRECATED</code></b></a>\n * <a href="#api_nan_inline"><b><code>NAN_INLINE</code></b></a>\n * <a href="#api_nan_new"><b><code>NanNew</code></b></a>\n * <a href="#api_nan_undefined"><b><code>NanUndefined</code></b></a>\n * <a href="#api_nan_null"><b><code>NanNull</code></b></a>\n * <a href="#api_nan_true"><b><code>NanTrue</code></b></a>\n * <a href="#api_nan_false"><b><code>NanFalse</code></b></a>\n * <a href="#api_nan_return_value"><b><code>NanReturnValue</code></b></a>\n * <a href="#api_nan_return_undefined"><b><code>NanReturnUndefined</code></b></a>\n * <a href="#api_nan_return_null"><b><code>NanReturnNull</code></b></a>\n * <a href="#api_nan_return_empty_string"><b><code>NanReturnEmptyString</code></b></a>\n * <a href="#api_nan_scope"><b><code>NanScope</code></b></a>\n * <a href="#api_nan_escapable_scope"><b><code>NanEscapableScope</code></b></a>\n * <a href="#api_nan_escape_scope"><b><code>NanEscapeScope</code></b></a>\n * <a href="#api_nan_locker"><b><code>NanLocker</code></b></a>\n * <a href="#api_nan_unlocker"><b><code>NanUnlocker</code></b></a>\n * <a href="#api_nan_get_internal_field_pointer"><b><code>NanGetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_set_internal_field_pointer"><b><code>NanSetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_object_wrap_handle"><b><code>NanObjectWrapHandle</code></b></a>\n * <a href="#api_nan_symbol"><b><code>NanSymbol</code></b></a>\n * <a href="#api_nan_get_pointer_safe"><b><code>NanGetPointerSafe</code></b></a>\n * <a href="#api_nan_set_pointer_safe"><b><code>NanSetPointerSafe</code></b></a>\n * <a href="#api_nan_raw_string"><b><code>NanRawString</code></b></a>\n * <a href="#api_nan_c_string"><b><code>NanCString</code></b></a>\n * <a href="#api_nan_boolean_option_value"><b><code>NanBooleanOptionValue</code></b></a>\n * <a href="#api_nan_uint32_option_value"><b><code>NanUInt32OptionValue</code></b></a>\n * <a href="#api_nan_error"><b><code>NanError</code></b>, <b><code>NanTypeError</code></b>, <b><code>NanRangeError</code></b></a>\n * <a href="#api_nan_throw_error"><b><code>NanThrowError</code></b>, <b><code>NanThrowTypeError</code></b>, <b><code>NanThrowRangeError</code></b>, <b><code>NanThrowError(Handle<Value>)</code></b>, <b><code>NanThrowError(Handle<Value>, int)</code></b></a>\n * <a href="#api_nan_new_buffer_handle"><b><code>NanNewBufferHandle(char *, size_t, FreeCallback, void *)</code></b>, <b><code>NanNewBufferHandle(char *, uint32_t)</code></b>, <b><code>NanNewBufferHandle(uint32_t)</code></b></a>\n * <a href="#api_nan_buffer_use"><b><code>NanBufferUse(char *, uint32_t)</code></b></a>\n * <a href="#api_nan_new_context_handle"><b><code>NanNewContextHandle</code></b></a>\n * <a href="#api_nan_get_current_context"><b><code>NanGetCurrentContext</code></b></a>\n * <a href="#api_nan_has_instance"><b><code>NanHasInstance</code></b></a>\n * <a href="#api_nan_dispose_persistent"><b><code>NanDisposePersistent</code></b></a>\n * <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a>\n * <a href="#api_nan_make_weak_persistent"><b><code>NanMakeWeakPersistent</code></b></a>\n * <a href="#api_nan_set_template"><b><code>NanSetTemplate</code></b></a>\n * <a href="#api_nan_make_callback"><b><code>NanMakeCallback</code></b></a>\n * <a href="#api_nan_compile_script"><b><code>NanCompileScript</code></b></a>\n * <a href="#api_nan_run_script"><b><code>NanRunScript</code></b></a>\n * <a href="#api_nan_adjust_external_memory"><b><code>NanAdjustExternalMemory</code></b></a>\n * <a href="#api_nan_add_gc_epilogue_callback"><b><code>NanAddGCEpilogueCallback</code></b></a>\n * <a href="#api_nan_add_gc_prologue_callback"><b><code>NanAddGCPrologueCallback</code></b></a>\n * <a href="#api_nan_remove_gc_epilogue_callback"><b><code>NanRemoveGCEpilogueCallback</code></b></a>\n * <a href="#api_nan_remove_gc_prologue_callback"><b><code>NanRemoveGCPrologueCallback</code></b></a>\n * <a href="#api_nan_get_heap_statistics"><b><code>NanGetHeapStatistics</code></b></a>\n * <a href="#api_nan_callback"><b><code>NanCallback</code></b></a>\n * <a href="#api_nan_async_worker"><b><code>NanAsyncWorker</code></b></a>\n * <a href="#api_nan_async_queue_worker"><b><code>NanAsyncQueueWorker</code></b></a>\n\n<a name="api_nan_method"></a>\n### NAN_METHOD(methodname)\n\nUse `NAN_METHOD` to define your V8 accessible methods:\n\n```c++\n// .h:\nclass Foo : public node::ObjectWrap {\n ...\n\n static NAN_METHOD(Bar);\n static NAN_METHOD(Baz);\n}\n\n\n// .cc:\nNAN_METHOD(Foo::Bar) {\n ...\n}\n\nNAN_METHOD(Foo::Baz) {\n ...\n}\n```\n\nThe reason for this macro is because of the method signature change in 0.11:\n\n```c++\n// 0.10 and below:\nHandle<Value> name(const Arguments& args)\n\n// 0.11 and above\nvoid name(const FunctionCallbackInfo<Value>& args)\n```\n\nThe introduction of `FunctionCallbackInfo` brings additional complications:\n\n<a name="api_nan_getter"></a>\n### NAN_GETTER(methodname)\n\nUse `NAN_GETTER` to declare your V8 accessible getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act like the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_GETTER`.\n\n<a name="api_nan_setter"></a>\n### NAN_SETTER(methodname)\n\nUse `NAN_SETTER` to declare your V8 accessible setters. Same as `NAN_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_property_getter"></a>\n### NAN_PROPERTY_GETTER(cbname)\nUse `NAN_PROPERTY_GETTER` to declare your V8 accessible property getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_GETTER`.\n\n<a name="api_nan_property_setter"></a>\n### NAN_PROPERTY_SETTER(cbname)\nUse `NAN_PROPERTY_SETTER` to declare your V8 accessible property setters. Same as `NAN_PROPERTY_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_property_enumerator"></a>\n### NAN_PROPERTY_ENUMERATOR(cbname)\nUse `NAN_PROPERTY_ENUMERATOR` to declare your V8 accessible property enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_PROPERTY_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_ENUMERATOR`.\n\n<a name="api_nan_property_deleter"></a>\n### NAN_PROPERTY_DELETER(cbname)\nUse `NAN_PROPERTY_DELETER` to declare your V8 accessible property deleters. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_DELETER`.\n\n<a name="api_nan_property_query"></a>\n### NAN_PROPERTY_QUERY(cbname)\nUse `NAN_PROPERTY_QUERY` to declare your V8 accessible property queries. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_QUERY`.\n\n<a name="api_nan_index_getter"></a>\n### NAN_INDEX_GETTER(cbname)\nUse `NAN_INDEX_GETTER` to declare your V8 accessible index getters. You get a `uint32_t` `index` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_GETTER`.\n\n<a name="api_nan_index_setter"></a>\n### NAN_INDEX_SETTER(cbname)\nUse `NAN_INDEX_SETTER` to declare your V8 accessible index setters. Same as `NAN_INDEX_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_index_enumerator"></a>\n### NAN_INDEX_ENUMERATOR(cbname)\nUse `NAN_INDEX_ENUMERATOR` to declare your V8 accessible index enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_INDEX_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_ENUMERATOR`.\n\n<a name="api_nan_index_deleter"></a>\n### NAN_INDEX_DELETER(cbname)\nUse `NAN_INDEX_DELETER` to declare your V8 accessible index deleters. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_DELETER`.\n\n<a name="api_nan_index_query"></a>\n### NAN_INDEX_QUERY(cbname)\nUse `NAN_INDEX_QUERY` to declare your V8 accessible index queries. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_QUERY`.\n\n<a name="api_nan_weak_callback"></a>\n### NAN_WEAK_CALLBACK(cbname)\n\nUse `NAN_WEAK_CALLBACK` to define your V8 WeakReference callbacks. Do not use for declaration. There is an argument object `const _NanWeakCallbackData<T, P> &data` allowing access to the weak object and the supplied parameter through its `GetValue` and `GetParameter` methods.\n\n```c++\nNAN_WEAK_CALLBACK(weakCallback) {\n int *parameter = data.GetParameter();\n NanMakeCallback(NanGetCurrentContext()->Global(), data.GetValue(), 0, NULL);\n if ((*parameter)++ == 0) {\n data.Revive();\n } else {\n delete parameter;\n data.Dispose();\n }\n}\n```\n\n<a name="api_nan_deprecated"></a>\n### NAN_DEPRECATED\nDeclares a function as deprecated.\n\n```c++\nstatic NAN_DEPRECATED NAN_METHOD(foo) {\n ...\n}\n```\n\n<a name="api_nan_inline"></a>\n### NAN_INLINE\nInlines a function.\n\n```c++\nNAN_INLINE int foo(int bar) {\n ...\n}\n```\n\n<a name="api_nan_new"></a>\n### Local&lt;T&gt; NanNew&lt;T&gt;( ... )\n\nUse `NanNew` to construct almost all v8 objects and make new local handles.\n\n```c++\nLocal<String> s = NanNew<String>("value");\n\n...\n\nPersistent<Object> o;\n\n...\n\nLocal<Object> lo = NanNew(o);\n\n```\n\n<a name="api_nan_undefined"></a>\n### Handle&lt;Primitive&gt; NanUndefined()\n\nUse instead of `Undefined()`\n\n<a name="api_nan_null"></a>\n### Handle&lt;Primitive&gt; NanNull()\n\nUse instead of `Null()`\n\n<a name="api_nan_true"></a>\n### Handle&lt;Primitive&gt; NanTrue()\n\nUse instead of `True()`\n\n<a name="api_nan_false"></a>\n### Handle&lt;Primitive&gt; NanFalse()\n\nUse instead of `False()`\n\n<a name="api_nan_return_value"></a>\n### NanReturnValue(Handle&lt;Value&gt;)\n\nUse `NanReturnValue` when you want to return a value from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n ...\n\n NanReturnValue(NanNew<String>("FooBar!"));\n}\n```\n\nNo `return` statement required.\n\n<a name="api_nan_return_undefined"></a>\n### NanReturnUndefined()\n\nUse `NanReturnUndefined` when you don\'t want to return anything from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnUndefined();\n}\n```\n\n<a name="api_nan_return_null"></a>\n### NanReturnNull()\n\nUse `NanReturnNull` when you want to return `Null` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnNull();\n}\n```\n\n<a name="api_nan_return_empty_string"></a>\n### NanReturnEmptyString()\n\nUse `NanReturnEmptyString` when you want to return an empty `String` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnEmptyString();\n}\n```\n\n<a name="api_nan_scope"></a>\n### NanScope()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanScope()` necessary, use it in place of `HandleScope scope`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanScope();\n\n NanReturnValue(NanNew<String>("FooBar!"));\n}\n```\n\n<a name="api_nan_escapable_scope"></a>\n### NanEscapableScope()\n\nThe separation of handle scopes into escapable and inescapable scopes makes `NanEscapableScope()` necessary, use it in place of `HandleScope scope` when you later wish to `Close()` the scope:\n\n```c++\nHandle<String> Foo::Bar() {\n NanEscapableScope();\n\n return NanEscapeScope(NanNew<String>("FooBar!"));\n}\n```\n\n<a name="api_nan_esacpe_scope"></a>\n### Local&lt;T&gt; NanEscapeScope(Handle&lt;T&gt; value);\nUse together with `NanEscapableScope` to escape the scope. Corresponds to `HandleScope::Close` or `EscapableHandleScope::Escape`.\n\n<a name="api_nan_locker"></a>\n### NanLocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanLocker()` necessary, use it in place of `Locker locker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_unlocker"></a>\n### NanUnlocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanUnlocker()` necessary, use it in place of `Unlocker unlocker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_get_internal_field_pointer"></a>\n### void * NanGetInternalFieldPointer(Handle&lt;Object&gt;, int)\n\nGets a pointer to the internal field with at `index` from a V8 `Object` handle.\n\n```c++\nLocal<Object> obj;\n...\nNanGetInternalFieldPointer(obj, 0);\n```\n<a name="api_nan_set_internal_field_pointer"></a>\n### void NanSetInternalFieldPointer(Handle&lt;Object&gt;, int, void *)\n\nSets the value of the internal field at `index` on a V8 `Object` handle.\n\n```c++\nstatic Persistent<Function> dataWrapperCtor;\n...\nLocal<Object> wrapper = NanPersistentToLocal(dataWrapperCtor)->NewInstance();\nNanSetInternalFieldPointer(wrapper, 0, this);\n```\n\n<a name="api_nan_object_wrap_handle"></a>\n### Local&lt;Object&gt; NanObjectWrapHandle(Object)\n\nWhen you want to fetch the V8 object handle from a native object you\'ve wrapped with Node\'s `ObjectWrap`, you should use `NanObjectWrapHandle`:\n\n```c++\nNanObjectWrapHandle(iterator)->Get(NanSymbol("end"))\n```\n\n<a name="api_nan_symbol"></a>\n### String NanSymbol(char *)\n\nUse to create string symbol objects (i.e. `v8::String::NewSymbol(x)`), for getting and setting object properties, or names of objects.\n\n```c++\nbool foo = false;\nif (obj->Has(NanSymbol("foo")))\n foo = optionsObj->Get(NanSymbol("foo"))->BooleanValue()\n```\n\n<a name="api_nan_get_pointer_safe"></a>\n### Type NanGetPointerSafe(Type *[, Type])\n\nA helper for getting values from optional pointers. If the pointer is `NULL`, the function returns the optional default value, which defaults to `0`. Otherwise, the function returns the value the pointer points to.\n\n```c++\nchar *plugh(uint32_t *optional) {\n char res[] = "xyzzy";\n uint32_t param = NanGetPointerSafe<uint32_t>(optional, 0x1337);\n switch (param) {\n ...\n }\n NanSetPointerSafe<uint32_t>(optional, 0xDEADBEEF);\n} \n```\n\n<a name="api_nan_set_pointer_safe"></a>\n### bool NanSetPointerSafe(Type *, Type)\n\nA helper for setting optional argument pointers. If the pointer is `NULL`, the function simply returns `false`. Otherwise, the value is assigned to the variable the pointer points to.\n\n```c++\nconst char *plugh(size_t *outputsize) {\n char res[] = "xyzzy";\n if !(NanSetPointerSafe<size_t>(outputsize, strlen(res) + 1)) {\n ...\n }\n\n ...\n}\n```\n\n<a name="api_nan_raw_string"></a>\n### void* NanRawString(Handle&lt;Value&gt;, enum Nan::Encoding, size_t *, void *, size_t, int)\n\nWhen you want to convert a V8 `String` to a `char*` buffer, use `NanRawString`. You have to supply an encoding as well as a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows setting `String::WriteOptions`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nvoid* decoded = NanRawString(args[1], Nan::BASE64, &count, NULL, 0, String::HINT_MANY_WRITES_EXPECTED);\nchar param_copy[count];\nmemcpy(param_copy, decoded, count);\ndelete[] decoded;\n```\n\n<a name="api_nan_c_string"></a>\n### char* NanCString(Handle&lt;Value&gt;, size_t *[, char *, size_t, int])\n\nWhen you want to convert a V8 `String` to a null-terminated C `char*` use `NanCString`. The resulting `char*` will be UTF-8-encoded, and you need to supply a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows optionally setting `String::WriteOptions`, which default to `v8::String::NO_OPTIONS`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nchar* name = NanCString(args[0], &count);\n```\n\n<a name="api_nan_boolean_option_value"></a>\n### bool NanBooleanOptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;[, bool])\n\nWhen you have an "options" object that you need to fetch properties from, boolean options can be fetched with this pair. They check first if the object exists (`IsEmpty`), then if the object has the given property (`Has`) then they get and convert/coerce the property to a `bool`.\n\nThe optional last parameter is the *default* value, which is `false` if left off:\n\n```c++\n// `foo` is false unless the user supplies a truthy value for it\nbool foo = NanBooleanOptionValue(optionsObj, NanSymbol("foo"));\n// `bar` is true unless the user supplies a falsy value for it\nbool bar = NanBooleanOptionValueDefTrue(optionsObj, NanSymbol("bar"), true);\n```\n\n<a name="api_nan_uint32_option_value"></a>\n### uint32_t NanUInt32OptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;, uint32_t)\n\nSimilar to `NanBooleanOptionValue`, use `NanUInt32OptionValue` to fetch an integer option from your options object. Can be any kind of JavaScript `Number` and it will be coerced to an unsigned 32-bit integer.\n\nRequires all 3 arguments as a default is not optional:\n\n```c++\nuint32_t count = NanUInt32OptionValue(optionsObj, NanSymbol("count"), 1024);\n```\n\n<a name="api_nan_error"></a>\n### NanError(message), NanTypeError(message), NanRangeError(message)\n\nFor making `Error`, `TypeError` and `RangeError` objects.\n\n```c++\nLocal<Value> res = NanError("you must supply a callback argument");\n```\n\n<a name="api_nan_throw_error"></a>\n### NanThrowError(message), NanThrowTypeError(message), NanThrowRangeError(message), NanThrowError(Local&lt;Value&gt;), NanThrowError(Local&lt;Value&gt;, int)\n\nFor throwing `Error`, `TypeError` and `RangeError` objects. You should `return` this call:\n\n```c++\nreturn NanThrowError("you must supply a callback argument");\n```\n\nCan also handle any custom object you may want to throw. If used with the error code argument, it will add the supplied error code to the error object as a property called `code`.\n\n<a name="api_nan_new_buffer_handle"></a>\n### Local&lt;Object&gt; NanNewBufferHandle(char *, uint32_t), Local&lt;Object&gt; NanNewBufferHandle(uint32_t)\n\nThe `Buffer` API has changed a little in Node 0.11, this helper provides consistent access to `Buffer` creation:\n\n```c++\nNanNewBufferHandle((char*)value.data(), value.size());\n```\n\nCan also be used to initialize a `Buffer` with just a `size` argument.\n\nCan also be supplied with a `NanFreeCallback` and a hint for the garbage collector.\n\n<a name="api_nan_buffer_use"></a>\n### Local&lt;Object&gt; NanBufferUse(char*, uint32_t)\n\n`Buffer::New(char*, uint32_t)` prior to 0.11 would make a copy of the data.\nWhile it was possible to get around this, it required a shim by passing a\ncallback. So the new API `Buffer::Use(char*, uint32_t)` was introduced to remove\nneeding to use this shim.\n\n`NanBufferUse` uses the `char*` passed as the backing data, and will free the\nmemory automatically when the weak callback is called. Keep this in mind, as\ncareless use can lead to "double free or corruption" and other cryptic failures.\n\n<a name="api_nan_has_instance"></a>\n### bool NanHasInstance(Persistent&lt;FunctionTemplate&gt;&, Handle&lt;Value&gt;)\n\nCan be used to check the type of an object to determine it is of a particular class you have already defined and have a `Persistent<FunctionTemplate>` handle for.\n\n<a href="#api_nan_new_context_handle">\n### Local&lt;Context&gt; NanNewContextHandle([ExtensionConfiguration*, Handle&lt;ObjectTemplate&gt;, Handle&lt;Value&gt;])\nCreates a new `Local<Context>` handle.\n\n```c++\nLocal<FunctionTemplate> ftmpl = NanNew<FunctionTemplate>();\nLocal<ObjectTemplate> otmpl = ftmpl->InstanceTemplate();\nLocal<Context> ctx = NanNewContextHandle(NULL, otmpl);\n```\n\n<a href="#api_nan_get_current_context">\n### Local<Context> NanGetCurrentContext()\n\nGets the current context.\n\n```c++\nLocal<Context> ctx = NanGetCurrentContext();\n```\n\n<a name="api_nan_dispose_persistent"></a>\n### void NanDisposePersistent(Persistent&lt;T&gt; &)\n\nUse `NanDisposePersistent` to dispose a `Persistent` handle.\n\n```c++\nNanDisposePersistent(persistentHandle);\n```\n\n<a name="api_nan_assign_persistent"></a>\n### NanAssignPersistent(type, handle, object)\n\nUse `NanAssignPersistent` to assign a non-`Persistent` handle to a `Persistent` one. You can no longer just declare a `Persistent` handle and assign directly to it later, you have to `Reset` it in Node 0.11, so this makes it easier.\n\nIn general it is now better to place anything you want to protect from V8\'s garbage collector as properties of a generic `Object` and then assign that to a `Persistent`. This works in older versions of Node also if you use `NanAssignPersistent`:\n\n```c++\nPersistent<Object> persistentHandle;\n\n...\n\nLocal<Object> obj = NanNew<Object>();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanAssignPersistent(Object, persistentHandle, obj)\n```\n\n<a name="api_nan_make_weak_persistent"></a>\n### NanMakeWeakPersistent(Handle&lt;T&gt; handle, P* parameter, _NanWeakCallbackInfo&lt;T, P&gt;::Callback callback)\n\nCreates a weak persistent handle with the supplied parameter and `NAN_WEAK_CALLBACK`. The callback has to be fully specialized to work on all versions of Node.\n\n```c++\nNAN_WEAK_CALLBACK(weakCallback) {\n\n...\n\n}\n\nLocal<Function> func;\n\n...\n\nint *parameter = new int(0);\nNanMakeWeakPersistent(func, parameter, &weakCallback<Function, int>);\n```\n\n<a name="api_nan_set_template"></a>\n### NanSetTemplate(templ, name, value)\n\nUse to add properties on object and function templates.\n\n<a name="api_nan_make_callback"></a>\n### NanMakeCallback(target, func, argc, argv)\n\nUse instead of `node::MakeCallback` to call javascript functions. This is the only proper way of calling functions.\n\n<a name="api_nan_compile_script"></a>\n### NanCompileScript(Handle<String> s [, const ScriptOrigin&amp; origin])\n\nUse to create new scripts bound to the current context.\n\n<a name="api_nan_run_script"></a>\n### NanRunScript(script)\n\nUse to run both bound and unbound scripts.\n\n<a name="api_nan_adjust_external_memory"></a>\n### NanAdjustExternalMemory(int change_in_bytes)\n\nSimply does `AdjustAmountOfExternalAllocatedMemory`\n\n<a name="api_nan_add_gc_epilogue_callback"></a>\n### NanAddGCEpilogueCallback(GCEpilogueCallback callback, GCType gc_type_filter=kGCTypeAll)\n\nSimply does `AddGCEpilogueCallback`\n\n<a name="api_nan_add_gc_prologue_callback"></a>\n### NanAddGCPrologueCallback(GCPrologueCallback callback, GCType gc_type_filter=kGCTypeAll)\n\nSimply does `AddGCPrologueCallback`\n\n<a name="api_nan_remove_gc_epilogue_callback"></a>\n### NanRemoveGCEpilogueCallback(GCEpilogueCallback callback)\n\nSimply does `RemoveGCEpilogueCallback`\n\n<a name="api_nan_add_gc_prologue_callback"></a>\n### NanRemoveGCPrologueCallback(GCPrologueCallback callback)\n\nSimply does `RemoveGCPrologueCallback`\n\n<a name="api_nan_get_heap_statistics"></a>\n### NanGetHeapStatistics(HeapStatistics *heap_statistics)\n\nSimply does `GetHeapStatistics`\n\n<a name="api_nan_callback"></a>\n### NanCallback\n\nBecause of the difficulties imposed by the changes to `Persistent` handles in V8 in Node 0.11, creating `Persistent` versions of your `Handle<Function>` is annoyingly tricky. `NanCallback` makes it easier by taking your handle, making it persistent until the `NanCallback` is deleted and even providing a handy `Call()` method to fetch and execute the callback `Function`.\n\n```c++\nLocal<Function> callbackHandle = args[0].As<Function>();\nNanCallback *callback = new NanCallback(callbackHandle);\n// pass `callback` around and it\'s safe from GC until you:\ndelete callback;\n```\n\nYou can execute the callback like so:\n\n```c++\n// no arguments:\ncallback->Call(0, NULL);\n\n// an error argument:\nHandle<Value> argv[] = {\n NanError(NanNew<String>("fail!"))\n};\ncallback->Call(1, argv);\n\n// a success argument:\nHandle<Value> argv[] = {\n NanNull(),\n NanNew<String>("w00t!")\n};\ncallback->Call(2, argv);\n```\n\n`NanCallback` also has a `Local<Function> GetCallback()` method that you can use\nto fetch a local handle to the underlying callback function, as well as a\n`void SetFunction(Handle<Function>)` for setting the callback on the\n`NanCallback`. Additionally a generic constructor is available for using\n`NanCallback` without performing heap allocations.\n\n<a name="api_nan_async_worker"></a>\n### NanAsyncWorker\n\n`NanAsyncWorker` is an abstract class that you can subclass to have much of the annoying async queuing and handling taken care of for you. It can even store arbitrary V8 objects for you and have them persist while the async work is in progress.\n\nSee a rough outline of the implementation:\n\n```c++\nclass NanAsyncWorker {\npublic:\n NanAsyncWorker (NanCallback *callback);\n\n // Clean up persistent handles and delete the *callback\n virtual ~NanAsyncWorker ();\n\n // Check the `char *errmsg` property and call HandleOKCallback()\n // or HandleErrorCallback depending on whether it has been set or not\n virtual void WorkComplete ();\n\n // You must implement this to do some async work. If there is an\n // error then allocate `errmsg` to a message and the callback will\n // be passed that string in an Error object\n virtual void Execute ();\n\n // Save a V8 object in a Persistent handle to protect it from GC\n void SavePersistent(const char *key, Local<Object> &obj);\n\n // Fetch a stored V8 object (don\'t call from within `Execute()`)\n Local<Object> GetFromPersistent(const char *key);\n\nprotected:\n // Set this if there is an error, otherwise it\'s NULL\n const char *errmsg;\n\n // Default implementation calls the callback function with no arguments.\n // Override this to return meaningful data\n virtual void HandleOKCallback ();\n\n // Default implementation calls the callback function with an Error object\n // wrapping the `errmsg` string\n virtual void HandleErrorCallback ();\n};\n```\n\n<a name="api_nan_async_queue_worker"></a>\n### NanAsyncQueueWorker(NanAsyncWorker *)\n\n`NanAsyncQueueWorker` will run a `NanAsyncWorker` asynchronously via libuv. Both the *execute* and *after_work* steps are taken care of for you&mdash;most of the logic for this is embedded in `NanAsyncWorker`.\n\n### Contributors\n\nNAN is only possible due to the excellent work of the following contributors:\n\n<table><tbody>\n<tr><th align="left">Rod Vagg</th><td><a href="https://github.com/rvagg">GitHub/rvagg</a></td><td><a href="http://twitter.com/rvagg">Twitter/@rvagg</a></td></tr>\n<tr><th align="left">Benjamin Byholm</th><td><a href="https://github.com/kkoopa/">GitHub/kkoopa</a></td></tr>\n<tr><th align="left">Trevor Norris</th><td><a href="https://github.com/trevnorris">GitHub/trevnorris</a></td><td><a href="http://twitter.com/trevnorris">Twitter/@trevnorris</a></td></tr>\n<tr><th align="left">Nathan Rajlich</th><td><a href="https://github.com/TooTallNate">GitHub/TooTallNate</a></td><td><a href="http://twitter.com/TooTallNate">Twitter/@TooTallNate</a></td></tr>\n<tr><th align="left">Brett Lawson</th><td><a href="https://github.com/brett19">GitHub/brett19</a></td><td><a href="http://twitter.com/brett19x">Twitter/@brett19x</a></td></tr>\n<tr><th align="left">Ben Noordhuis</th><td><a href="https://github.com/bnoordhuis">GitHub/bnoordhuis</a></td><td><a href="http://twitter.com/bnoordhuis">Twitter/@bnoordhuis</a></td></tr>\n</tbody></table>\n\nLicence &amp; copyright\n-----------------------\n\nCopyright (c) 2014 NAN contributors (listed above).\n\nNative Abstractions for Node.js is licensed under an MIT +no-false-attribs license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n',
1447 silly resolved readmeFilename: 'README.md',
1447 silly resolved bugs: { url: 'https://github.com/rvagg/nan/issues' },
1447 silly resolved homepage: 'https://github.com/rvagg/nan',
1447 silly resolved _id: 'nan@1.0.0',
1447 silly resolved _from: 'nan@~1.0.0' },
1447 silly resolved { name: 'bindings',
1447 silly resolved description: 'Helper module for loading your native module\'s .node file',
1447 silly resolved keywords: [ 'native', 'addon', 'bindings', 'gyp', 'waf', 'c', 'c++' ],
1447 silly resolved version: '1.2.1',
1447 silly resolved author:
1447 silly resolved { name: 'Nathan Rajlich',
1447 silly resolved email: 'nathan@tootallnate.net',
1447 silly resolved url: 'http://tootallnate.net' },
1447 silly resolved repository:
1447 silly resolved { type: 'git',
1447 silly resolved url: 'git://github.com/TooTallNate/node-bindings.git' },
1447 silly resolved main: './bindings.js',
1447 silly resolved bugs: { url: 'https://github.com/TooTallNate/node-bindings/issues' },
1447 silly resolved homepage: 'https://github.com/TooTallNate/node-bindings',
1447 silly resolved license: 'MIT',
1447 silly resolved readme: 'node-bindings\n=============\n### Helper module for loading your native module\'s .node file\n\nThis is a helper module for authors of Node.js native addon modules.\nIt is basically the "swiss army knife" of `require()`ing your native module\'s\n`.node` file.\n\nThroughout the course of Node\'s native addon history, addons have ended up being\ncompiled in a variety of different places, depending on which build tool and which\nversion of node was used. To make matters worse, now the _gyp_ build tool can\nproduce either a _Release_ or _Debug_ build, each being built into different\nlocations.\n\nThis module checks _all_ the possible locations that a native addon would be built\nat, and returns the first one that loads successfully.\n\n\nInstallation\n------------\n\nInstall with `npm`:\n\n``` bash\n$ npm install bindings\n```\n\nOr add it to the `"dependencies"` section of your _package.json_ file.\n\n\nExample\n-------\n\n`require()`ing the proper bindings file for the current node version, platform\nand architecture is as simple as:\n\n``` js\nvar bindings = require(\'bindings\')(\'binding.node\')\n\n// Use your bindings defined in your C files\nbindings.your_c_function()\n```\n\n\nNice Error Output\n-----------------\n\nWhen the `.node` file could not be loaded, `node-bindings` throws an Error with\na nice error message telling you exactly what was tried. You can also check the\n`err.tries` Array property.\n\n```\nError: Could not load the bindings file. Tried:\n → /Users/nrajlich/ref/build/binding.node\n → /Users/nrajlich/ref/build/Debug/binding.node\n → /Users/nrajlich/ref/build/Release/binding.node\n → /Users/nrajlich/ref/out/Debug/binding.node\n → /Users/nrajlich/ref/Debug/binding.node\n → /Users/nrajlich/ref/out/Release/binding.node\n → /Users/nrajlich/ref/Release/binding.node\n → /Users/nrajlich/ref/build/default/binding.node\n → /Users/nrajlich/ref/compiled/0.8.2/darwin/x64/binding.node\n at bindings (/Users/nrajlich/ref/node_modules/bindings/bindings.js:84:13)\n at Object.<anonymous> (/Users/nrajlich/ref/lib/ref.js:5:47)\n at Module._compile (module.js:449:26)\n at Object.Module._extensions..js (module.js:467:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n ...\n```\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
1447 silly resolved readmeFilename: 'README.md',
1447 silly resolved _id: 'bindings@1.2.1',
1447 silly resolved _from: 'bindings@*' } ]
1448 info install nan@1.0.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
1449 info install bindings@1.2.1 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
1450 info installOne nan@1.0.0
1451 info installOne bindings@1.2.1
1452 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan unbuild
1453 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings unbuild
1454 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/nan/1.0.0/package.tgz
1455 silly lockFile 176da693-ules-contextify-node-modules-nan tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan
1456 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan /Users/cedric/.atom/.node-gyp/.atom/.apm/176da693-ules-contextify-node-modules-nan.lock
1457 silly lockFile 4eb20155-p-atom-apm-nan-1-0-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nan/1.0.0/package.tgz
1458 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nan/1.0.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/4eb20155-p-atom-apm-nan-1-0-0-package-tgz.lock
1459 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/bindings/1.2.1/package.tgz
1460 silly lockFile ed30ffbe-contextify-node-modules-bindings tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings
1461 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings /Users/cedric/.atom/.node-gyp/.atom/.apm/ed30ffbe-contextify-node-modules-bindings.lock
1462 silly lockFile b859b89a-m-apm-bindings-1-2-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/bindings/1.2.1/package.tgz
1463 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/bindings/1.2.1/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/b859b89a-m-apm-bindings-1-2-1-package-tgz.lock
1464 silly gunzTarPerm modes [ '755', '644' ]
1465 silly gunzTarPerm modes [ '755', '644' ]
1466 silly gunzTarPerm extractEntry package.json
1467 silly gunzTarPerm extractEntry README.md
1468 silly gunzTarPerm extractEntry LICENSE
1469 silly gunzTarPerm extractEntry package.json
1470 silly gunzTarPerm extractEntry README.md
1471 silly gunzTarPerm extractEntry bindings.js
1472 silly gunzTarPerm extractEntry include_dirs.js
1473 silly gunzTarPerm extractEntry .dntrc
1474 silly lockFile ed30ffbe-contextify-node-modules-bindings tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings
1475 silly lockFile ed30ffbe-contextify-node-modules-bindings tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings
1476 silly lockFile b859b89a-m-apm-bindings-1-2-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/bindings/1.2.1/package.tgz
1477 silly lockFile b859b89a-m-apm-bindings-1-2-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/bindings/1.2.1/package.tgz
1478 info preinstall bindings@1.2.1
1479 verbose readDependencies using package.json deps
1480 verbose readDependencies using package.json deps
1481 silly resolved []
1482 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings
1483 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/bindings
1484 verbose linkStuff [ false,
1484 verbose linkStuff false,
1484 verbose linkStuff false,
1484 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules' ]
1485 info linkStuff bindings@1.2.1
1486 verbose linkBins bindings@1.2.1
1487 verbose linkMans bindings@1.2.1
1488 verbose rebuildBundles bindings@1.2.1
1489 info install bindings@1.2.1
1490 info postinstall bindings@1.2.1
1491 silly gunzTarPerm extractEntry build/config.gypi
1492 silly gunzTarPerm extractEntry nan.h
1493 silly lockFile 176da693-ules-contextify-node-modules-nan tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan
1494 silly lockFile 176da693-ules-contextify-node-modules-nan tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan
1495 silly lockFile 4eb20155-p-atom-apm-nan-1-0-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nan/1.0.0/package.tgz
1496 silly lockFile 4eb20155-p-atom-apm-nan-1-0-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/nan/1.0.0/package.tgz
1497 info preinstall nan@1.0.0
1498 verbose readDependencies using package.json deps
1499 verbose readDependencies using package.json deps
1500 silly resolved []
1501 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan
1502 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules/nan
1503 verbose linkStuff [ false,
1503 verbose linkStuff false,
1503 verbose linkStuff false,
1503 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify/node_modules' ]
1504 info linkStuff nan@1.0.0
1505 verbose linkBins nan@1.0.0
1506 verbose linkMans nan@1.0.0
1507 verbose rebuildBundles nan@1.0.0
1508 info install nan@1.0.0
1509 info postinstall nan@1.0.0
1510 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
1511 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify
1512 verbose linkStuff [ false,
1512 verbose linkStuff false,
1512 verbose linkStuff false,
1512 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules' ]
1513 info linkStuff contextify@0.1.8
1514 verbose linkBins contextify@0.1.8
1515 verbose linkMans contextify@0.1.8
1516 verbose rebuildBundles contextify@0.1.8
1517 verbose rebuildBundles [ 'bindings', 'nan' ]
1518 info install contextify@0.1.8
1519 verbose unsafe-perm in lifecycle true
1520 http 304 https://registry.npmjs.org/node-uuid
1521 silly registry.get cb [ 304,
1521 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1521 silly registry.get server: 'Apache',
1521 silly registry.get via: '1.1 varnish',
1521 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1521 silly registry.get 'cache-control': 'max-age=30',
1521 silly registry.get etag: '"1S3GCF9P64ZACPI5ITM3KIHA6"',
1521 silly registry.get 'x-served-by': 'cache-fra1231-FRA',
1521 silly registry.get 'x-cache': 'HIT',
1521 silly registry.get 'x-cache-hits': '1',
1521 silly registry.get 'x-timer': 'S1404807292.066970,VS0,VE0',
1521 silly registry.get vary: 'Accept',
1521 silly registry.get 'content-length': '0',
1521 silly registry.get 'keep-alive': 'timeout=10, max=49',
1521 silly registry.get connection: 'Keep-Alive' } ]
1522 verbose etag node-uuid from cache
1523 http 304 https://registry.npmjs.org/forever-agent
1524 silly registry.get cb [ 304,
1524 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1524 silly registry.get server: 'Apache',
1524 silly registry.get via: '1.1 varnish',
1524 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1524 silly registry.get 'cache-control': 'max-age=30',
1524 silly registry.get etag: '"CYWZJILR3M157HRX9R094YZJP"',
1524 silly registry.get 'x-served-by': 'cache-fra1233-FRA',
1524 silly registry.get 'x-cache': 'HIT',
1524 silly registry.get 'x-cache-hits': '1',
1524 silly registry.get 'x-timer': 'S1404807292.065788,VS0,VE0',
1524 silly registry.get vary: 'Accept',
1524 silly registry.get 'content-length': '0',
1524 silly registry.get 'keep-alive': 'timeout=10, max=49',
1524 silly registry.get connection: 'Keep-Alive' } ]
1525 verbose etag forever-agent from cache
1526 silly addNameRange number 2 { name: 'node-uuid', range: '>=1.4.0-0 <1.5.0-0', hasData: true }
1527 silly addNameRange versions [ 'node-uuid',
1527 silly addNameRange [ '1.2.0',
1527 silly addNameRange '1.3.0',
1527 silly addNameRange '1.3.1',
1527 silly addNameRange '1.3.2',
1527 silly addNameRange '1.1.0',
1527 silly addNameRange '1.0.0',
1527 silly addNameRange '1.3.3',
1527 silly addNameRange '1.4.0',
1527 silly addNameRange '1.4.1' ] ]
1528 verbose addNamed [ 'node-uuid', '1.4.1' ]
1529 verbose addNamed [ '1.4.1', '1.4.1' ]
1530 silly lockFile 7c2028cd-node-uuid-1-4-1 node-uuid@1.4.1
1531 verbose lock node-uuid@1.4.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/7c2028cd-node-uuid-1-4-1.lock
1532 silly addNameRange number 2 { name: 'forever-agent',
1532 silly addNameRange range: '>=0.5.0-0 <0.6.0-0',
1532 silly addNameRange hasData: true }
1533 silly addNameRange versions [ 'forever-agent',
1533 silly addNameRange [ '0.2.0', '0.3.0', '0.4.0', '0.5.0', '0.5.2' ] ]
1534 verbose addNamed [ 'forever-agent', '0.5.2' ]
1535 verbose addNamed [ '0.5.2', '0.5.2' ]
1536 silly lockFile 20c7a74d-forever-agent-0-5-2 forever-agent@0.5.2
1537 verbose lock forever-agent@0.5.2 /Users/cedric/.atom/.node-gyp/.atom/.apm/20c7a74d-forever-agent-0-5-2.lock
1538 http 304 https://registry.npmjs.org/tunnel-agent
1539 silly registry.get cb [ 304,
1539 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1539 silly registry.get server: 'Apache',
1539 silly registry.get via: '1.1 varnish',
1539 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:13:23 GMT',
1539 silly registry.get 'cache-control': 'max-age=30',
1539 silly registry.get etag: '"4XEKZRB2KFYOS7X2FPWBM4UTK"',
1539 silly registry.get 'x-served-by': 'cache-fra1231-FRA',
1539 silly registry.get 'x-cache': 'HIT',
1539 silly registry.get 'x-cache-hits': '38',
1539 silly registry.get 'x-timer': 'S1404807292.164918,VS0,VE0',
1539 silly registry.get vary: 'Accept',
1539 silly registry.get 'content-length': '0',
1539 silly registry.get 'keep-alive': 'timeout=10, max=48',
1539 silly registry.get connection: 'Keep-Alive' } ]
1540 verbose etag tunnel-agent from cache
1541 http 304 https://registry.npmjs.org/oauth-sign
1542 silly registry.get cb [ 304,
1542 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1542 silly registry.get server: 'Apache',
1542 silly registry.get via: '1.1 varnish',
1542 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:42 GMT',
1542 silly registry.get 'cache-control': 'max-age=30',
1542 silly registry.get etag: '"BBEB5VBVQE0G0SOWKWBK6G3CH"',
1542 silly registry.get 'x-served-by': 'cache-fra1233-FRA',
1542 silly registry.get 'x-cache': 'HIT',
1542 silly registry.get 'x-cache-hits': '3',
1542 silly registry.get 'x-timer': 'S1404807292.165794,VS0,VE0',
1542 silly registry.get vary: 'Accept',
1542 silly registry.get 'content-length': '0',
1542 silly registry.get 'keep-alive': 'timeout=10, max=48',
1542 silly registry.get connection: 'Keep-Alive' } ]
1543 verbose etag oauth-sign from cache
1544 http 304 https://registry.npmjs.org/qs
1545 silly registry.get cb [ 304,
1545 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1545 silly registry.get server: 'Apache',
1545 silly registry.get via: '1.1 varnish',
1545 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1545 silly registry.get 'cache-control': 'max-age=30',
1545 silly registry.get etag: '"ABZMBCCHKVIHUGZMR1AXD5HY8"',
1545 silly registry.get 'x-served-by': 'cache-fra1220-FRA',
1545 silly registry.get 'x-cache': 'HIT',
1545 silly registry.get 'x-cache-hits': '1',
1545 silly registry.get 'x-timer': 'S1404807292.166740,VS0,VE0',
1545 silly registry.get vary: 'Accept',
1545 silly registry.get 'content-length': '0',
1545 silly registry.get 'keep-alive': 'timeout=10, max=50',
1545 silly registry.get connection: 'Keep-Alive' } ]
1546 verbose etag qs from cache
1547 silly lockFile 20c7a74d-forever-agent-0-5-2 forever-agent@0.5.2
1548 silly lockFile 20c7a74d-forever-agent-0-5-2 forever-agent@0.5.2
1549 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
1550 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
1551 silly addNameRange number 2 { name: 'tunnel-agent',
1551 silly addNameRange range: '>=0.4.0-0 <0.5.0-0',
1551 silly addNameRange hasData: true }
1552 silly addNameRange versions [ 'tunnel-agent', [ '0.2.0', '0.3.0', '0.4.0' ] ]
1553 verbose addNamed [ 'tunnel-agent', '0.4.0' ]
1554 verbose addNamed [ '0.4.0', '0.4.0' ]
1555 silly lockFile d3ccfadd-tunnel-agent-0-4-0 tunnel-agent@0.4.0
1556 verbose lock tunnel-agent@0.4.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/d3ccfadd-tunnel-agent-0-4-0.lock
1557 silly addNameRange number 2 { name: 'oauth-sign',
1557 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
1557 silly addNameRange hasData: true }
1558 silly addNameRange versions [ 'oauth-sign', [ '0.2.0', '0.3.0', '0.4.0' ] ]
1559 verbose addNamed [ 'oauth-sign', '0.3.0' ]
1560 verbose addNamed [ '0.3.0', '0.3.0' ]
1561 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
1562 verbose lock oauth-sign@0.3.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/ae61e7c5-oauth-sign-0-3-0.lock
1563 silly addNameRange number 2 { name: 'qs', range: '>=0.6.0-0 <0.7.0-0', hasData: true }
1564 silly addNameRange versions [ 'qs',
1564 silly addNameRange [ '0.0.1',
1564 silly addNameRange '0.0.2',
1564 silly addNameRange '0.0.3',
1564 silly addNameRange '0.0.4',
1564 silly addNameRange '0.0.5',
1564 silly addNameRange '0.0.6',
1564 silly addNameRange '0.0.7',
1564 silly addNameRange '0.1.0',
1564 silly addNameRange '0.2.0',
1564 silly addNameRange '0.3.0',
1564 silly addNameRange '0.3.1',
1564 silly addNameRange '0.3.2',
1564 silly addNameRange '0.4.0',
1564 silly addNameRange '0.4.1',
1564 silly addNameRange '0.4.2',
1564 silly addNameRange '0.5.0',
1564 silly addNameRange '0.5.1',
1564 silly addNameRange '0.5.2',
1564 silly addNameRange '0.5.3',
1564 silly addNameRange '0.5.4',
1564 silly addNameRange '0.5.5',
1564 silly addNameRange '0.5.6',
1564 silly addNameRange '0.6.0',
1564 silly addNameRange '0.6.1',
1564 silly addNameRange '0.6.2',
1564 silly addNameRange '0.6.3',
1564 silly addNameRange '0.6.4',
1564 silly addNameRange '0.6.5',
1564 silly addNameRange '0.6.6' ] ]
1565 verbose addNamed [ 'qs', '0.6.6' ]
1566 verbose addNamed [ '0.6.6', '0.6.6' ]
1567 silly lockFile b8bccda2-qs-0-6-6 qs@0.6.6
1568 verbose lock qs@0.6.6 /Users/cedric/.atom/.node-gyp/.atom/.apm/b8bccda2-qs-0-6-6.lock
1569 silly lockFile 7c2028cd-node-uuid-1-4-1 node-uuid@1.4.1
1570 silly lockFile 7c2028cd-node-uuid-1-4-1 node-uuid@1.4.1
1571 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1572 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1573 silly lockFile d3ccfadd-tunnel-agent-0-4-0 tunnel-agent@0.4.0
1574 silly lockFile d3ccfadd-tunnel-agent-0-4-0 tunnel-agent@0.4.0
1575 silly lockFile 2550750e-tunnel-agent-0-4-0 tunnel-agent@~0.4.0
1576 silly lockFile 2550750e-tunnel-agent-0-4-0 tunnel-agent@~0.4.0
1577 http 304 https://registry.npmjs.org/mime-types
1578 silly registry.get cb [ 304,
1578 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1578 silly registry.get server: 'Apache',
1578 silly registry.get via: '1.1 varnish',
1578 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1578 silly registry.get 'cache-control': 'max-age=30',
1578 silly registry.get etag: '"5QTXZZB7EV5DJ86M6R7UF9ER3"',
1578 silly registry.get 'x-served-by': 'cache-fra1222-FRA',
1578 silly registry.get 'x-cache': 'HIT',
1578 silly registry.get 'x-cache-hits': '1',
1578 silly registry.get 'x-timer': 'S1404807292.183341,VS0,VE0',
1578 silly registry.get vary: 'Accept',
1578 silly registry.get 'content-length': '0',
1578 silly registry.get 'keep-alive': 'timeout=10, max=50',
1578 silly registry.get connection: 'Keep-Alive' } ]
1579 verbose etag mime-types from cache
1580 silly addNameRange number 2 { name: 'mime-types',
1580 silly addNameRange range: '>=1.0.1-0 <1.1.0-0',
1580 silly addNameRange hasData: true }
1581 silly addNameRange versions [ 'mime-types', [ '0.1.0', '1.0.0', '1.0.1' ] ]
1582 verbose addNamed [ 'mime-types', '1.0.1' ]
1583 verbose addNamed [ '1.0.1', '1.0.1' ]
1584 silly lockFile 06567ba2-mime-types-1-0-1 mime-types@1.0.1
1585 verbose lock mime-types@1.0.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/06567ba2-mime-types-1-0-1.lock
1586 http 304 https://registry.npmjs.org/json-stringify-safe
1587 silly registry.get cb [ 304,
1587 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1587 silly registry.get server: 'Apache',
1587 silly registry.get via: '1.1 varnish',
1587 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1587 silly registry.get 'cache-control': 'max-age=30',
1587 silly registry.get etag: '"DCHF000C6O2GP81GD95QO2ILB"',
1587 silly registry.get 'x-served-by': 'cache-fra1220-FRA',
1587 silly registry.get 'x-cache': 'HIT',
1587 silly registry.get 'x-cache-hits': '1',
1587 silly registry.get 'x-timer': 'S1404807292.194631,VS0,VE0',
1587 silly registry.get vary: 'Accept',
1587 silly registry.get 'content-length': '0',
1587 silly registry.get 'keep-alive': 'timeout=10, max=50',
1587 silly registry.get connection: 'Keep-Alive' } ]
1588 verbose etag json-stringify-safe from cache
1589 silly lockFile b8bccda2-qs-0-6-6 qs@0.6.6
1590 silly lockFile b8bccda2-qs-0-6-6 qs@0.6.6
1591 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
1592 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
1593 silly addNameRange number 2 { name: 'json-stringify-safe',
1593 silly addNameRange range: '>=5.0.0-0 <5.1.0-0',
1593 silly addNameRange hasData: true }
1594 silly addNameRange versions [ 'json-stringify-safe',
1594 silly addNameRange [ '2.0.0', '3.0.0', '4.0.0', '5.0.0' ] ]
1595 verbose addNamed [ 'json-stringify-safe', '5.0.0' ]
1596 verbose addNamed [ '5.0.0', '5.0.0' ]
1597 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
1598 verbose lock json-stringify-safe@5.0.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/1d9ebe76-json-stringify-safe-5-0-0.lock
1599 silly lockFile 06567ba2-mime-types-1-0-1 mime-types@1.0.1
1600 silly lockFile 06567ba2-mime-types-1-0-1 mime-types@1.0.1
1601 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
1602 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
1603 silly lockFile c0ad19ba-mime-types-1-0-1 mime-types@~1.0.1
1604 silly lockFile c0ad19ba-mime-types-1-0-1 mime-types@~1.0.1
1605 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
1606 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
1607 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
1608 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
1609 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
1610 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
1611 http 304 https://registry.npmjs.org/hawk/1.1.1
1612 silly registry.get cb [ 304,
1612 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1612 silly registry.get server: 'Apache',
1612 silly registry.get via: '1.1 varnish',
1612 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1612 silly registry.get 'cache-control': 'max-age=30',
1612 silly registry.get etag: '"8OYGUWEVR2EN7SOD8YZ0D7VKB"',
1612 silly registry.get 'x-served-by': 'cache-fra1233-FRA',
1612 silly registry.get 'x-cache': 'HIT',
1612 silly registry.get 'x-cache-hits': '1',
1612 silly registry.get 'x-timer': 'S1404807292.250804,VS0,VE0',
1612 silly registry.get vary: 'Accept',
1612 silly registry.get 'content-length': '0',
1612 silly registry.get 'keep-alive': 'timeout=10, max=47',
1612 silly registry.get connection: 'Keep-Alive' } ]
1613 verbose etag hawk/1.1.1 from cache
1614 http 304 https://registry.npmjs.org/aws-sign2
1615 silly registry.get cb [ 304,
1615 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1615 silly registry.get server: 'Apache',
1615 silly registry.get via: '1.1 varnish',
1615 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:50 GMT',
1615 silly registry.get 'cache-control': 'max-age=30',
1615 silly registry.get etag: '"5LQVIOJRE8YGQMQ2P04WCC67A"',
1615 silly registry.get 'x-served-by': 'cache-fra1220-FRA',
1615 silly registry.get 'x-cache': 'HIT',
1615 silly registry.get 'x-cache-hits': '2',
1615 silly registry.get 'x-timer': 'S1404807292.252161,VS0,VE0',
1615 silly registry.get vary: 'Accept',
1615 silly registry.get 'content-length': '0',
1615 silly registry.get 'keep-alive': 'timeout=10, max=49',
1615 silly registry.get connection: 'Keep-Alive' } ]
1616 verbose etag aws-sign2 from cache
1617 http 304 https://registry.npmjs.org/http-signature
1618 silly registry.get cb [ 304,
1618 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1618 silly registry.get server: 'Apache',
1618 silly registry.get via: '1.1 varnish',
1618 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1618 silly registry.get 'cache-control': 'max-age=30',
1618 silly registry.get etag: '"6ZB1ETGRW1IRSY4JIA0Y1E3B2"',
1618 silly registry.get 'x-served-by': 'cache-fra1231-FRA',
1618 silly registry.get 'x-cache': 'HIT',
1618 silly registry.get 'x-cache-hits': '1',
1618 silly registry.get 'x-timer': 'S1404807292.249931,VS0,VE0',
1618 silly registry.get vary: 'Accept',
1618 silly registry.get 'content-length': '0',
1618 silly registry.get 'keep-alive': 'timeout=10, max=47',
1618 silly registry.get connection: 'Keep-Alive' } ]
1619 verbose etag http-signature from cache
1620 silly addNameRange number 2 { name: 'aws-sign2', range: '>=0.5.0-0 <0.6.0-0', hasData: true }
1621 silly addNameRange versions [ 'aws-sign2', [ '0.4.0', '0.5.0' ] ]
1622 verbose addNamed [ 'aws-sign2', '0.5.0' ]
1623 verbose addNamed [ '0.5.0', '0.5.0' ]
1624 silly lockFile 5a1dbd9b-aws-sign2-0-5-0 aws-sign2@0.5.0
1625 verbose lock aws-sign2@0.5.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/5a1dbd9b-aws-sign2-0-5-0.lock
1626 silly addNameRange number 2 { name: 'http-signature',
1626 silly addNameRange range: '>=0.10.0-0 <0.11.0-0',
1626 silly addNameRange hasData: true }
1627 silly addNameRange versions [ 'http-signature',
1627 silly addNameRange [ '0.9.0',
1627 silly addNameRange '0.9.2',
1627 silly addNameRange '0.9.3',
1627 silly addNameRange '0.9.4',
1627 silly addNameRange '0.9.5',
1627 silly addNameRange '0.9.6',
1627 silly addNameRange '0.9.7',
1627 silly addNameRange '0.9.8',
1627 silly addNameRange '0.9.9',
1627 silly addNameRange '0.9.10',
1627 silly addNameRange '0.9.11',
1627 silly addNameRange '0.10.0' ] ]
1628 verbose addNamed [ 'http-signature', '0.10.0' ]
1629 verbose addNamed [ '0.10.0', '0.10.0' ]
1630 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
1631 verbose lock http-signature@0.10.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/f628681c-http-signature-0-10-0.lock
1632 http 304 https://registry.npmjs.org/form-data
1633 silly registry.get cb [ 304,
1633 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1633 silly registry.get server: 'Apache',
1633 silly registry.get via: '1.1 varnish',
1633 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
1633 silly registry.get 'cache-control': 'max-age=30',
1633 silly registry.get etag: '"7DXTXSDCEIF071ZAQS7WN047R"',
1633 silly registry.get 'x-served-by': 'cache-fra1222-FRA',
1633 silly registry.get 'x-cache': 'HIT',
1633 silly registry.get 'x-cache-hits': '1',
1633 silly registry.get 'x-timer': 'S1404807292.263825,VS0,VE0',
1633 silly registry.get vary: 'Accept',
1633 silly registry.get 'content-length': '0',
1633 silly registry.get 'keep-alive': 'timeout=10, max=49',
1633 silly registry.get connection: 'Keep-Alive' } ]
1634 verbose etag form-data from cache
1635 http 304 https://registry.npmjs.org/tough-cookie
1636 silly registry.get cb [ 304,
1636 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
1636 silly registry.get server: 'Apache',
1636 silly registry.get via: '1.1 varnish',
1636 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:49 GMT',
1636 silly registry.get 'cache-control': 'max-age=30',
1636 silly registry.get etag: '"1UPI10TCWUXXCJDOICISVEFTA"',
1636 silly registry.get 'x-served-by': 'cache-fra1220-FRA',
1636 silly registry.get 'x-cache': 'HIT',
1636 silly registry.get 'x-cache-hits': '2',
1636 silly registry.get 'x-timer': 'S1404807292.272720,VS0,VE0',
1636 silly registry.get vary: 'Accept',
1636 silly registry.get 'content-length': '0',
1636 silly registry.get 'keep-alive': 'timeout=10, max=49',
1636 silly registry.get connection: 'Keep-Alive' } ]
1637 verbose etag tough-cookie from cache
1638 silly addNameRange number 2 { name: 'tough-cookie', range: '>=0.12.0', hasData: true }
1639 silly addNameRange versions [ 'tough-cookie',
1639 silly addNameRange [ '0.9.0',
1639 silly addNameRange '0.9.1',
1639 silly addNameRange '0.9.3',
1639 silly addNameRange '0.9.4',
1639 silly addNameRange '0.9.5',
1639 silly addNameRange '0.9.6',
1639 silly addNameRange '0.9.7',
1639 silly addNameRange '0.9.8',
1639 silly addNameRange '0.9.9',
1639 silly addNameRange '0.9.11',
1639 silly addNameRange '0.9.12',
1639 silly addNameRange '0.9.13',
1639 silly addNameRange '0.9.14',
1639 silly addNameRange '0.9.15',
1639 silly addNameRange '0.10.0',
1639 silly addNameRange '0.11.0',
1639 silly addNameRange '0.12.0',
1639 silly addNameRange '0.12.1' ] ]
1640 verbose addNamed [ 'tough-cookie', '0.12.1' ]
1641 verbose addNamed [ '0.12.1', '0.12.1' ]
1642 silly lockFile 9dd6163b-tough-cookie-0-12-1 tough-cookie@0.12.1
1643 verbose lock tough-cookie@0.12.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/9dd6163b-tough-cookie-0-12-1.lock
1644 silly addNameRange number 2 { name: 'form-data', range: '>=0.1.0-0 <0.2.0-0', hasData: true }
1645 silly addNameRange versions [ 'form-data',
1645 silly addNameRange [ '0.0.0',
1645 silly addNameRange '0.0.2',
1645 silly addNameRange '0.0.3',
1645 silly addNameRange '0.0.4',
1645 silly addNameRange '0.0.5',
1645 silly addNameRange '0.0.6',
1645 silly addNameRange '0.0.7',
1645 silly addNameRange '0.0.8',
1645 silly addNameRange '0.0.9',
1645 silly addNameRange '0.0.10',
1645 silly addNameRange '0.1.0',
1645 silly addNameRange '0.1.1',
1645 silly addNameRange '0.1.2',
1645 silly addNameRange '0.1.3',
1645 silly addNameRange '0.1.4' ] ]
1646 verbose addNamed [ 'form-data', '0.1.4' ]
1647 verbose addNamed [ '0.1.4', '0.1.4' ]
1648 silly lockFile 3912a592-form-data-0-1-4 form-data@0.1.4
1649 verbose lock form-data@0.1.4 /Users/cedric/.atom/.node-gyp/.atom/.apm/3912a592-form-data-0-1-4.lock
1650 silly lockFile 5a1dbd9b-aws-sign2-0-5-0 aws-sign2@0.5.0
1651 silly lockFile 5a1dbd9b-aws-sign2-0-5-0 aws-sign2@0.5.0
1652 silly lockFile 82387911-aws-sign2-0-5-0 aws-sign2@~0.5.0
1653 silly lockFile 82387911-aws-sign2-0-5-0 aws-sign2@~0.5.0
1654 silly lockFile 3912a592-form-data-0-1-4 form-data@0.1.4
1655 silly lockFile 3912a592-form-data-0-1-4 form-data@0.1.4
1656 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
1657 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
1658 silly lockFile 9dd6163b-tough-cookie-0-12-1 tough-cookie@0.12.1
1659 silly lockFile 9dd6163b-tough-cookie-0-12-1 tough-cookie@0.12.1
1660 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
1661 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
1662 silly lockFile 66c18ba7-tough-cookie-0-12-0 tough-cookie@>=0.12.0
1663 silly lockFile 66c18ba7-tough-cookie-0-12-0 tough-cookie@>=0.12.0
1664 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
1665 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
1666 silly lockFile 61c917cf-hawk-1-1-1 hawk@1.1.1
1667 silly lockFile 61c917cf-hawk-1-1-1 hawk@1.1.1
1668 silly resolved [ { author:
1668 silly resolved { name: 'Mikeal Rogers',
1668 silly resolved email: 'mikeal.rogers@gmail.com',
1668 silly resolved url: 'http://www.futurealoof.com' },
1668 silly resolved name: 'forever-agent',
1668 silly resolved description: 'HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.',
1668 silly resolved version: '0.5.2',
1668 silly resolved repository: { url: 'https://github.com/mikeal/forever-agent' },
1668 silly resolved main: 'index.js',
1668 silly resolved dependencies: {},
1668 silly resolved devDependencies: {},
1668 silly resolved optionalDependencies: {},
1668 silly resolved engines: { node: '*' },
1668 silly resolved readme: 'forever-agent\n=============\n\nHTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/mikeal/forever-agent/issues' },
1668 silly resolved homepage: 'https://github.com/mikeal/forever-agent',
1668 silly resolved _id: 'forever-agent@0.5.2',
1668 silly resolved _from: 'forever-agent@~0.5.0' },
1668 silly resolved { name: 'node-uuid',
1668 silly resolved description: 'Rigorous implementation of RFC4122 (v1 and v4) UUIDs.',
1668 silly resolved url: 'http://github.com/broofa/node-uuid',
1668 silly resolved keywords: [ 'uuid', 'guid', 'rfc4122' ],
1668 silly resolved author: { name: 'Robert Kieffer', email: 'robert@broofa.com' },
1668 silly resolved contributors: [ [Object] ],
1668 silly resolved lib: '.',
1668 silly resolved main: './uuid.js',
1668 silly resolved repository: { type: 'git', url: 'https://github.com/broofa/node-uuid.git' },
1668 silly resolved version: '1.4.1',
1668 silly resolved readme: '# node-uuid\n\nSimple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.\n\nFeatures:\n\n* Generate RFC4122 version 1 or version 4 UUIDs\n* Runs in node.js and all browsers.\n* Registered as a [ComponentJS](https://github.com/component/component) [component](https://github.com/component/component/wiki/Components) (\'broofa/node-uuid\').\n* Cryptographically strong random # generation on supporting platforms\n* 1.1K minified and gzip\'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! )\n* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)\n\n## Getting Started\n\nInstall it in your browser:\n\n```html\n<script src="uuid.js"></script>\n```\n\nOr in node.js:\n\n```\nnpm install node-uuid\n```\n\n```javascript\nvar uuid = require(\'node-uuid\');\n```\n\nThen create some ids ...\n\n```javascript\n// Generate a v1 (time-based) id\nuuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n\n// Generate a v4 (random) id\nuuid.v4(); // -> \'110ec58a-a0f2-4ac4-8393-c866d813b8d1\'\n```\n\n## API\n\n### uuid.v1([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v1 (timestamp-based) UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.\n * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.\n * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.\n * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nNotes:\n\n1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v1({\n node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],\n clockseq: 0x1234,\n msecs: new Date(\'2011-11-01\').getTime(),\n nsecs: 5678\n}); // -> "710b962e-041c-11e1-9234-0123456789ab"\n```\n\nExample: In-place generation of two binary IDs\n\n```javascript\n// Generate two ids in an array\nvar arr = new Array(32); // -> []\nuuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\nuuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\n\n// Optionally use uuid.unparse() to get stringify the ids\nuuid.unparse(buffer); // -> \'02a2ce90-1432-11e1-8558-0b488e4fc115\'\nuuid.unparse(buffer, 16) // -> \'02a31cb0-1432-11e1-8558-0b488e4fc115\'\n```\n\n### uuid.v4([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v4 UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values\n * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v4({\n random: [\n 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,\n 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36\n ]\n});\n// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"\n```\n\nExample: Generate two IDs in a single buffer\n\n```javascript\nvar buffer = new Array(32); // (or \'new Buffer\' in node.js)\nuuid.v4(null, buffer, 0);\nuuid.v4(null, buffer, 16);\n```\n\n### uuid.parse(id[, buffer[, offset]])\n### uuid.unparse(buffer[, offset])\n\nParse and unparse UUIDs\n\n * `id` - (String) UUID(-like) string\n * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used\n * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0\n\nExample parsing and unparsing a UUID string\n\n```javascript\nvar bytes = uuid.parse(\'797ff043-11eb-11e1-80d6-510998755d10\'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>\nvar string = uuid.unparse(bytes); // -> \'797ff043-11eb-11e1-80d6-510998755d10\'\n```\n\n### uuid.noConflict()\n\n(Browsers only) Set `uuid` property back to it\'s previous value.\n\nReturns the node-uuid object.\n\nExample:\n\n```javascript\nvar myUuid = uuid.noConflict();\nmyUuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n```\n\n## Deprecated APIs\n\nSupport for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.\n\n### uuid([format [, buffer [, offset]]])\n\nuuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).\n\n### uuid.BufferClass\n\nThe class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API.\n\n## Testing\n\nIn node.js\n\n```\n> cd test\n> node test.js\n```\n\nIn Browser\n\n```\nopen test/test.html\n```\n\n### Benchmarking\n\nRequires node.js\n\n```\nnpm install uuid uuid-js\nnode benchmark/benchmark.js\n```\n\nFor a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)\n\nFor browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).\n\n## Release notes\n\n### 1.4.0\n\n* Improved module context detection\n* Removed public RNG functions\n\n### 1.3.2\n\n* Improve tests and handling of v1() options (Issue #24)\n* Expose RNG option to allow for perf testing with different generators\n\n### 1.3.0\n\n* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!\n* Support for node.js crypto API\n* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/broofa/node-uuid/issues' },
1668 silly resolved homepage: 'https://github.com/broofa/node-uuid',
1668 silly resolved _id: 'node-uuid@1.4.1',
1668 silly resolved _from: 'node-uuid@~1.4.0' },
1668 silly resolved { author:
1668 silly resolved { name: 'Mikeal Rogers',
1668 silly resolved email: 'mikeal.rogers@gmail.com',
1668 silly resolved url: 'http://www.futurealoof.com' },
1668 silly resolved name: 'tunnel-agent',
1668 silly resolved description: 'HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.',
1668 silly resolved version: '0.4.0',
1668 silly resolved repository: { url: 'https://github.com/mikeal/tunnel-agent' },
1668 silly resolved main: 'index.js',
1668 silly resolved dependencies: {},
1668 silly resolved devDependencies: {},
1668 silly resolved optionalDependencies: {},
1668 silly resolved engines: { node: '*' },
1668 silly resolved readme: 'tunnel-agent\n============\n\nHTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/mikeal/tunnel-agent/issues' },
1668 silly resolved homepage: 'https://github.com/mikeal/tunnel-agent',
1668 silly resolved _id: 'tunnel-agent@0.4.0',
1668 silly resolved _from: 'tunnel-agent@~0.4.0' },
1668 silly resolved { name: 'qs',
1668 silly resolved description: 'querystring parser',
1668 silly resolved version: '0.6.6',
1668 silly resolved keywords: [ 'query string', 'parser', 'component' ],
1668 silly resolved repository:
1668 silly resolved { type: 'git',
1668 silly resolved url: 'git://github.com/visionmedia/node-querystring.git' },
1668 silly resolved devDependencies: { mocha: '*', 'expect.js': '*' },
1668 silly resolved scripts: { test: 'make test' },
1668 silly resolved author:
1668 silly resolved { name: 'TJ Holowaychuk',
1668 silly resolved email: 'tj@vision-media.ca',
1668 silly resolved url: 'http://tjholowaychuk.com' },
1668 silly resolved main: 'index',
1668 silly resolved engines: { node: '*' },
1668 silly resolved readme: '# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require(\'qs\');\n\nqs.parse(\'user[name][first]=Tobi&user[email]=tobi@learnboost.com\');\n// => { user: { name: { first: \'Tobi\' }, email: \'tobi@learnboost.com\' } }\n\nqs.stringify({ user: { name: \'Tobi\', email: \'tobi@learnboost.com\' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 TJ Holowaychuk &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
1668 silly resolved readmeFilename: 'Readme.md',
1668 silly resolved bugs: { url: 'https://github.com/visionmedia/node-querystring/issues' },
1668 silly resolved homepage: 'https://github.com/visionmedia/node-querystring',
1668 silly resolved _id: 'qs@0.6.6',
1668 silly resolved _from: 'qs@~0.6.0' },
1668 silly resolved { name: 'mime-types',
1668 silly resolved description: 'The ultimate javascript content-type utility.',
1668 silly resolved version: '1.0.1',
1668 silly resolved author:
1668 silly resolved { name: 'Jonathan Ong',
1668 silly resolved email: 'me@jongleberry.com',
1668 silly resolved url: 'http://jongleberry.com' },
1668 silly resolved contributors: [ [Object] ],
1668 silly resolved repository: { type: 'git', url: 'git://github.com/expressjs/mime-types' },
1668 silly resolved license: 'MIT',
1668 silly resolved main: 'lib',
1668 silly resolved devDependencies: { co: '3', cogent: '0', mocha: '1', should: '3' },
1668 silly resolved engines: { node: '>= 0.8.0' },
1668 silly resolved scripts: { test: 'make test' },
1668 silly resolved readme: '# mime-types\n[![NPM version](https://badge.fury.io/js/mime-types.svg)](https://badge.fury.io/js/mime-types) [![Build Status](https://travis-ci.org/expressjs/mime-types.svg?branch=master)](https://travis-ci.org/expressjs/mime-types)\n\nThe ultimate javascript content-type utility.\n\n### Install\n\n```sh\n$ npm install mime-types\n```\n\n#### Similar to [node-mime](https://github.com/broofa/node-mime), except:\n\n- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`, so do `var type = mime.lookup(\'unrecognized\') || \'application/octet-stream\'`.\n- No `new Mime()` business, so you could do `var lookup = require(\'mime-types\').lookup`.\n- Additional mime types are added such as jade and stylus. Feel free to add more!\n- Browser support via Browserify and Component by converting lists to JSON files.\n\nOtherwise, the API is compatible.\n\n### Adding Types\n\nIf you\'d like to add additional types,\nsimply create a PR adding the type to `custom.json` and\na reference link to the [sources](SOURCES.md).\n\nDo __NOT__ edit `mime.json` or `node.json`.\nThose are pulled using `build.js`.\nYou should only touch `custom.json`.\n\n## API\n\n```js\nvar mime = require(\'mime-types\')\n```\n\nAll functions return `false` if input is invalid or not found.\n\n### mime.lookup(path)\n\nLookup the content-type associated with a file.\n\n```js\nmime.lookup(\'json\') // \'application/json\'\nmime.lookup(\'.md\') // \'text/x-markdown\'\nmime.lookup(\'file.html\') // \'text/html\'\nmime.lookup(\'folder/file.js\') // \'application/javascript\'\n\nmime.lookup(\'cats\') // false\n```\n\n### mime.contentType(type)\n\nCreate a full content-type header given a content-type or extension.\n\n```js\nmime.contentType(\'markdown\') // \'text/x-markdown; charset=utf-8\'\nmime.contentType(\'file.json\') // \'application/json; charset=utf-8\'\n```\n\n### mime.extension(type)\n\nGet the default extension for a content-type.\n\n```js\nmime.extension(\'application/octet-stream\') // \'bin\'\n```\n\n### mime.charset(type)\n\nLookup the implied default charset of a content-type.\n\n```js\nmime.charset(\'text/x-markdown\') // \'UTF-8\'\n```\n\n### mime.types[extension] = type\n\nA map of content-types by extension.\n\n### mime.extensions[type] = [extensions]\n\nA map of extensions by content-type.\n\n### mime.define(types)\n\nGlobally add definitions.\n`types` must be an object of the form:\n\n```js\n{\n "<content-type>": [extensions...],\n "<content-type>": [extensions...]\n}\n```\n\nSee the `.json` files in `lib/` for examples.\n\n## License\n\n[MIT](LICENSE)\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/expressjs/mime-types/issues' },
1668 silly resolved homepage: 'https://github.com/expressjs/mime-types',
1668 silly resolved _id: 'mime-types@1.0.1',
1668 silly resolved _from: 'mime-types@~1.0.1' },
1668 silly resolved { author:
1668 silly resolved { name: 'Mikeal Rogers',
1668 silly resolved email: 'mikeal.rogers@gmail.com',
1668 silly resolved url: 'http://www.futurealoof.com' },
1668 silly resolved name: 'oauth-sign',
1668 silly resolved description: 'OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.',
1668 silly resolved version: '0.3.0',
1668 silly resolved repository: { url: 'https://github.com/mikeal/oauth-sign' },
1668 silly resolved main: 'index.js',
1668 silly resolved dependencies: {},
1668 silly resolved devDependencies: {},
1668 silly resolved optionalDependencies: {},
1668 silly resolved engines: { node: '*' },
1668 silly resolved scripts: { test: 'node test.js' },
1668 silly resolved readme: 'oauth-sign\n==========\n\nOAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. \n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/mikeal/oauth-sign/issues' },
1668 silly resolved homepage: 'https://github.com/mikeal/oauth-sign',
1668 silly resolved _id: 'oauth-sign@0.3.0',
1668 silly resolved _from: 'oauth-sign@~0.3.0' },
1668 silly resolved { name: 'json-stringify-safe',
1668 silly resolved version: '5.0.0',
1668 silly resolved description: 'Like JSON.stringify, but doesn\'t blow up on circular refs',
1668 silly resolved main: 'stringify.js',
1668 silly resolved scripts: { test: 'node test.js' },
1668 silly resolved repository:
1668 silly resolved { type: 'git',
1668 silly resolved url: 'git://github.com/isaacs/json-stringify-safe' },
1668 silly resolved keywords: [ 'json', 'stringify', 'circular', 'safe' ],
1668 silly resolved author:
1668 silly resolved { name: 'Isaac Z. Schlueter',
1668 silly resolved email: 'i@izs.me',
1668 silly resolved url: 'http://blog.izs.me' },
1668 silly resolved license: 'BSD',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved readme: '# json-stringify-safe\n\nLike JSON.stringify, but doesn\'t throw on circular references.\n\n## Usage\n\nTakes the same arguments as `JSON.stringify`.\n\n```javascript\nvar stringify = require(\'json-stringify-safe\');\nvar circularObj = {};\ncircularObj.circularRef = circularObj;\ncircularObj.list = [ circularObj, circularObj ];\nconsole.log(stringify(circularObj, null, 2));\n```\n\nOutput:\n\n```json\n{\n "circularRef": "[Circular]",\n "list": [\n "[Circular]",\n "[Circular]"\n ]\n}\n```\n\n## Details\n\n```\nstringify(obj, serializer, indent, decycler)\n```\n\nThe first three arguments are the same as to JSON.stringify. The last\nis an argument that\'s only used when the object has been seen already.\n\nThe default `decycler` function returns the string `\'[Circular]\'`.\nIf, for example, you pass in `function(k,v){}` (return nothing) then it\nwill prune cycles. If you pass in `function(k,v){ return {foo: \'bar\'}}`,\nthen cyclical objects will always be represented as `{"foo":"bar"}` in\nthe result.\n\n```\nstringify.getSerialize(serializer, decycler)\n```\n\nReturns a serializer that can be used elsewhere. This is the actual\nfunction that\'s passed to JSON.stringify.\n',
1668 silly resolved bugs: { url: 'https://github.com/isaacs/json-stringify-safe/issues' },
1668 silly resolved homepage: 'https://github.com/isaacs/json-stringify-safe',
1668 silly resolved _id: 'json-stringify-safe@5.0.0',
1668 silly resolved _from: 'json-stringify-safe@~5.0.0' },
1668 silly resolved { author:
1668 silly resolved { name: 'Mikeal Rogers',
1668 silly resolved email: 'mikeal.rogers@gmail.com',
1668 silly resolved url: 'http://www.futurealoof.com' },
1668 silly resolved name: 'aws-sign2',
1668 silly resolved description: 'AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.',
1668 silly resolved version: '0.5.0',
1668 silly resolved repository: { url: 'https://github.com/mikeal/aws-sign' },
1668 silly resolved main: 'index.js',
1668 silly resolved dependencies: {},
1668 silly resolved devDependencies: {},
1668 silly resolved optionalDependencies: {},
1668 silly resolved engines: { node: '*' },
1668 silly resolved readme: 'aws-sign\n========\n\nAWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/mikeal/aws-sign/issues' },
1668 silly resolved homepage: 'https://github.com/mikeal/aws-sign',
1668 silly resolved _id: 'aws-sign2@0.5.0',
1668 silly resolved _from: 'aws-sign2@~0.5.0' },
1668 silly resolved { author:
1668 silly resolved { name: 'Felix Geisendörfer',
1668 silly resolved email: 'felix@debuggable.com',
1668 silly resolved url: 'http://debuggable.com/' },
1668 silly resolved name: 'form-data',
1668 silly resolved description: 'A module to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications.',
1668 silly resolved version: '0.1.4',
1668 silly resolved repository:
1668 silly resolved { type: 'git',
1668 silly resolved url: 'git://github.com/felixge/node-form-data.git' },
1668 silly resolved main: './lib/form_data',
1668 silly resolved scripts: { test: 'node test/run.js' },
1668 silly resolved engines: { node: '>= 0.8' },
1668 silly resolved dependencies: { 'combined-stream': '~0.0.4', mime: '~1.2.11', async: '~0.9.0' },
1668 silly resolved licenses: [ [Object] ],
1668 silly resolved devDependencies:
1668 silly resolved { fake: '~0.2.2',
1668 silly resolved far: '~0.0.7',
1668 silly resolved formidable: '~1.0.14',
1668 silly resolved request: '~2.36.0' },
1668 silly resolved readme: '# Form-Data [![Build Status](https://travis-ci.org/felixge/node-form-data.png?branch=master)](https://travis-ci.org/felixge/node-form-data) [![Dependency Status](https://gemnasium.com/felixge/node-form-data.png)](https://gemnasium.com/felixge/node-form-data)\n\nA module to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.\n\nThe API of this module is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].\n\n[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface\n[streams2-thing]: http://nodejs.org/api/stream.html#stream_compatibility_with_older_node_versions\n\n## Install\n\n```\nnpm install form-data\n```\n\n## Usage\n\nIn this example we are constructing a form with 3 fields that contain a string,\na buffer and a file stream.\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar fs = require(\'fs\');\n\nvar form = new FormData();\nform.append(\'my_field\', \'my value\');\nform.append(\'my_buffer\', new Buffer(10));\nform.append(\'my_file\', fs.createReadStream(\'/foo/bar.jpg\'));\n```\n\nAlso you can use http-response stream:\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar http = require(\'http\');\n\nvar form = new FormData();\n\nhttp.request(\'http://nodejs.org/images/logo.png\', function(response) {\n form.append(\'my_field\', \'my value\');\n form.append(\'my_buffer\', new Buffer(10));\n form.append(\'my_logo\', response);\n});\n```\n\nOr @mikeal\'s request stream:\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar request = require(\'request\');\n\nvar form = new FormData();\n\nform.append(\'my_field\', \'my value\');\nform.append(\'my_buffer\', new Buffer(10));\nform.append(\'my_logo\', request(\'http://nodejs.org/images/logo.png\'));\n```\n\nIn order to submit this form to a web application, call ```submit(url, [callback])``` method:\n\n``` javascript\nform.submit(\'http://example.org/\', function(err, res) {\n // res – response object (http.IncomingMessage) //\n res.resume(); // for node-0.10.x\n});\n\n```\n\nFor more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.\n\n### Alternative submission methods\n\nYou can use node\'s http client interface:\n\n``` javascript\nvar http = require(\'http\');\n\nvar request = http.request({\n method: \'post\',\n host: \'example.org\',\n path: \'/upload\',\n headers: form.getHeaders()\n});\n\nform.pipe(request);\n\nrequest.on(\'response\', function(res) {\n console.log(res.statusCode);\n});\n```\n\nOr if you would prefer the `\'Content-Length\'` header to be set for you:\n\n``` javascript\nform.submit(\'example.org/upload\', function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nTo use custom headers and pre-known length in parts:\n\n``` javascript\nvar CRLF = \'\\r\\n\';\nvar form = new FormData();\n\nvar options = {\n header: CRLF + \'--\' + form.getBoundary() + CRLF + \'X-Custom-Header: 123\' + CRLF + CRLF,\n knownLength: 1\n};\n\nform.append(\'my_buffer\', buffer, options);\n\nform.submit(\'http://example.com/\', function(err, res) {\n if (err) throw err;\n console.log(\'Done\');\n});\n```\n\nForm-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal\'s request```), for some other types of streams you\'d need to provide "file"-related information manually:\n\n``` javascript\nsomeModule.stream(function(err, stdout, stderr) {\n if (err) throw err;\n\n var form = new FormData();\n\n form.append(\'file\', stdout, {\n filename: \'unicycle.jpg\',\n contentType: \'image/jpg\',\n knownLength: 19806\n });\n\n form.submit(\'http://example.com/\', function(err, res) {\n if (err) throw err;\n console.log(\'Done\');\n });\n});\n```\n\nFor edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:\n\n``` javascript\nform.submit({\n host: \'example.com\',\n path: \'/probably.php?extra=params\',\n auth: \'username:password\'\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nIn case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:\n\n``` javascript\nform.submit({\n host: \'example.com\',\n path: \'/surelynot.php\',\n headers: {\'x-test-header\': \'test-header-value\'}\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\n## Notes\n\n- ```getLengthSync()``` method DOESN\'T calculate length for streams, use ```knownLength``` options as workaround.\n- If it feels like FormData hangs after submit and you\'re on ```node-0.10```, please check [Compatibility with Older Node Versions][streams2-thing]\n\n## TODO\n\n- Add new streams (0.10) support and try really hard not to break it for 0.8.x.\n\n## License\n\nForm-Data is licensed under the MIT license.\n',
1668 silly resolved readmeFilename: 'Readme.md',
1668 silly resolved bugs: { url: 'https://github.com/felixge/node-form-data/issues' },
1668 silly resolved homepage: 'https://github.com/felixge/node-form-data',
1668 silly resolved _id: 'form-data@0.1.4',
1668 silly resolved _from: 'form-data@~0.1.0' },
1668 silly resolved { author: { name: 'GoInstant Inc., a salesforce.com company' },
1668 silly resolved license: 'MIT',
1668 silly resolved name: 'tough-cookie',
1668 silly resolved description: 'RFC6265 Cookies and Cookie Jar for node.js',
1668 silly resolved keywords:
1668 silly resolved [ 'HTTP',
1668 silly resolved 'cookie',
1668 silly resolved 'cookies',
1668 silly resolved 'set-cookie',
1668 silly resolved 'cookiejar',
1668 silly resolved 'jar',
1668 silly resolved 'RFC6265',
1668 silly resolved 'RFC2965' ],
1668 silly resolved version: '0.12.1',
1668 silly resolved homepage: 'https://github.com/goinstant/tough-cookie',
1668 silly resolved repository:
1668 silly resolved { type: 'git',
1668 silly resolved url: 'git://github.com/goinstant/tough-cookie.git' },
1668 silly resolved bugs: { url: 'https://github.com/goinstant/tough-cookie/issues' },
1668 silly resolved main: './lib/cookie',
1668 silly resolved scripts: { test: 'vows test.js' },
1668 silly resolved engines: { node: '>=0.4.12' },
1668 silly resolved dependencies: { punycode: '>=0.2.0' },
1668 silly resolved devDependencies: { vows: '0.7.0', async: '>=0.1.12' },
1668 silly resolved readme: '[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js\n\n![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg)\n\n[![Build Status](https://travis-ci.org/goinstant/node-cookie.png?branch=master)](https://travis-ci.org/goinstant/node-cookie)\n\n[![NPM Stats](https://nodei.co/npm/tough-cookie.png?downloads=true&stars=true)](https://npmjs.org/package/tough-cookie)\n![NPM Downloads](https://nodei.co/npm-dl/tough-cookie.png?months=9)\n\n# Synopsis\n\n``` javascript\nvar tough = require(\'tough-cookie\'); // note: not \'cookie\', \'cookies\' or \'node-cookie\'\nvar Cookie = tough.Cookie;\nvar cookie = Cookie.parse(header);\ncookie.value = \'somethingdifferent\';\nheader = cookie.toString();\n\nvar cookiejar = new tough.CookieJar();\ncookiejar.setCookie(cookie, \'http://currentdomain.example.com/path\', cb);\n// ...\ncookiejar.getCookies(\'http://example.com/otherpath\',function(err,cookies) {\n res.headers[\'cookie\'] = cookies.join(\'; \');\n});\n```\n\n# Installation\n\nIt\'s _so_ easy!\n\n`npm install tough-cookie`\n\nRequires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default.\n\nWhy the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.\n\n# API\n\ntough\n=====\n\nFunctions on the module you get from `require(\'tough-cookie\')`. All can be used as pure functions and don\'t need to be "bound".\n\nparseDate(string[,strict])\n-----------------\n\nParse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. "Thu, 01 Jan 1970 00:00:010 GMT" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid).\n\nformatDate(date)\n----------------\n\nFormat a Date into a RFC1123 string (the RFC6265-recommended format).\n\ncanonicalDomain(str)\n--------------------\n\nTransforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).\n\ndomainMatch(str,domStr[,canonicalize=true])\n-------------------------------------------\n\nAnswers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".\n\nThe `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.\n\ndefaultPath(path)\n-----------------\n\nGiven a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC.\n\nThe `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node\'s `uri.parse()` output.\n\npathMatch(reqPath,cookiePath)\n-----------------------------\n\nAnswers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean.\n\nThis is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.\n\nparse(header[,strict=false])\n----------------------------\n\nalias for `Cookie.parse(header[,strict])`\n\nfromJSON(string)\n----------------\n\nalias for `Cookie.fromJSON(string)`\n\ngetPublicSuffix(hostname)\n-------------------------\n\nReturns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.\n\nFor example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.\n\nFor further information, see http://publicsuffix.org/. This module derives its list from that site.\n\ncookieCompare(a,b)\n------------------\n\nFor use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest.\n\n``` javascript\nvar cookies = [ /* unsorted array of Cookie objects */ ];\ncookies = cookies.sort(cookieCompare);\n```\n\npermuteDomain(domain)\n---------------------\n\nGenerates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.\n\n\npermutePath(path)\n-----------------\n\nGenerates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.\n\nCookie\n======\n\nCookie.parse(header[,strict=false])\n-----------------------------------\n\nParses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can\'t be parsed. If in strict mode, returns `undefined` if the cookie doesn\'t follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off.\n\nHere\'s how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:\n\n``` javascript\nif (res.headers[\'set-cookie\'] instanceof Array)\n cookies = res.headers[\'set-cookie\'].map(function (c) { return (Cookie.parse(c)); });\nelse\n cookies = [Cookie.parse(res.headers[\'set-cookie\'])];\n```\n\nCookie.fromJSON(string)\n-----------------------\n\nConvert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects.\n\nProperties\n==========\n\n * _key_ - string - the name or key of the cookie (default "")\n * _value_ - string - the value of the cookie (default "")\n * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()`\n * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`\n * _domain_ - string - the `Domain=` attribute of the cookie\n * _path_ - string - the `Path=` of the cookie\n * _secure_ - boolean - the `Secure` cookie flag\n * _httpOnly_ - boolean - the `HttpOnly` cookie flag\n * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)\n\nAfter a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:\n\n * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)\n * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.\n * _created_ - `Date` - when this cookie was added to the jar\n * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.\n\nConstruction([{options}])\n------------\n\nReceives an options object that can contain any Cookie properties, uses the default for unspecified properties.\n\n.toString()\n-----------\n\nencode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.\n\n.cookieString()\n---------------\n\nencode to a Cookie header value (i.e. the `.key` and `.value` properties joined with \'=\').\n\n.setExpires(String)\n-------------------\n\nsets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can\'t parse this date string), `.expires` is set to `"Infinity"` (a string) is set.\n\n.setMaxAge(number)\n-------------------\n\nsets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly.\n\n.expiryTime([now=Date.now()])\n-----------------------------\n\n.expiryDate([now=Date.now()])\n-----------------------------\n\nexpiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.\n\nMax-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.\n\nIf Expires (`.expires`) is set, that\'s returned.\n\nOtherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).\n\n.TTL([now=Date.now()])\n---------\n\ncompute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.\n\nThe "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.\n\n.canonicalizedDoman()\n---------------------\n\n.cdomain()\n----------\n\nreturn the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.\n\n.validate()\n-----------\n\nStatus: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.\n\nvalidates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:\n\n``` javascript\nif (cookie.validate() === true) {\n // it\'s tasty\n} else {\n // yuck!\n}\n```\n\nCookieJar\n=========\n\nConstruction([store = new MemoryCookieStore()][, rejectPublicSuffixes])\n------------\n\nSimply use `new CookieJar()`. If you\'d like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.\n\n\nAttributes\n----------\n\n * _rejectPublicSuffixes_ - boolean - reject cookies with domains like "com" and "co.uk" (default: `true`)\n\nSince eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.\n\n.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))\n-------------------------------------------------------------------\n\nAttempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _strict_ - boolean - default `false` - perform extra checks\n * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren\'t ignored by this option.\n\nAs per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).\n\n.setCookieSync(cookieOrString, currentUrl, [{options}])\n-------------------------------------------------------\n\nSynchronous version of `setCookie`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).\n\n.storeCookie(cookie, [{options},] cb(err,cookie))\n-------------------------------------------------\n\n__REMOVED__ removed in lieu of the CookieStore API below\n\n.getCookies(currentUrl, [{options},] cb(err,cookies))\n-----------------------------------------------------\n\nRetrieve the list of cookies that can be sent in a Cookie header for the current url.\n\nIf an error is encountered, that\'s passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).\n * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it).\n\nThe `.lastAccessed` property of the returned cookies will have been updated.\n\n.getCookiesSync(currentUrl, [{options}])\n----------------------------------------\n\nSynchronous version of `getCookies`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).\n\n.getCookieString(...)\n---------------------\n\nAccepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.\n\n.getCookieStringSync(...)\n-------------------------\n\nSynchronous version of `getCookieString`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).\n\n.getSetCookieStrings(...)\n-------------------------\n\nReturns an array of strings suitable for **Set-Cookie** headers. Accepts the same options as `.getCookies()`. Simply maps the cookie array via `.toString()`.\n\n.getSetCookieStringsSync(...)\n-----------------------------\n\nSynchronous version of `getSetCookieStrings`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).\n\nStore\n=====\n\nBase class for CookieJar stores.\n\n# CookieStore API\n\nThe storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.\n\nStores should inherit from the base `Store` class, which is available as `require(\'tough-cookie\').Store`. Stores are asynchronous by default, but if `store.synchronous` is set, then the `*Sync` methods on the CookieJar can be used.\n\nAll `domain` parameters will have been normalized before calling.\n\nThe Cookie store must have all of the following methods.\n\nstore.findCookie(domain, path, key, cb(err,cookie))\n---------------------------------------------------\n\nRetrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.\n\nCallback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).\n\nstore.findCookies(domain, path, cb(err,cookies))\n------------------------------------------------\n\nLocates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.\n\nIf no cookies are found, the callback MUST be passed an empty array.\n\nThe resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it\'s OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.\n\nAs of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).\n\nstore.putCookie(cookie, cb(err))\n--------------------------------\n\nAdds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it\'s possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.\n\nThe `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.\n\nPass an error if the cookie cannot be stored.\n\nstore.updateCookie(oldCookie, newCookie, cb(err))\n-------------------------------------------------\n\nUpdate an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.\n\nThe `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion).\n\nStores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn\'t define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.\n\nThe `newCookie` and `oldCookie` objects MUST NOT be modified.\n\nPass an error if the newCookie cannot be stored.\n\nstore.removeCookie(domain, path, key, cb(err))\n----------------------------------------------\n\nRemove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).\n\nThe implementation MUST NOT pass an error if the cookie doesn\'t exist; only pass an error due to the failure to remove an existing cookie.\n\nstore.removeCookies(domain, path, cb(err))\n------------------------------------------\n\nRemoves matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed.\n\nPass an error ONLY if removing any existing cookies failed.\n\n# TODO\n\n * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()`\n * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891\n * better tests for `validate()`?\n\n# Copyright and License\n\n(tl;dr: MIT with some MPL/1.1)\n\nCopyright 2012- GoInstant, Inc. and other contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\nPortions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details.\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved _id: 'tough-cookie@0.12.1',
1668 silly resolved _from: 'tough-cookie@>=0.12.0' },
1668 silly resolved { author: { name: 'Joyent, Inc' },
1668 silly resolved name: 'http-signature',
1668 silly resolved description: 'Reference implementation of Joyent\'s HTTP Signature Scheme',
1668 silly resolved version: '0.10.0',
1668 silly resolved repository:
1668 silly resolved { type: 'git',
1668 silly resolved url: 'git://github.com/joyent/node-http-signature.git' },
1668 silly resolved engines: { node: '>=0.8' },
1668 silly resolved main: 'lib/index.js',
1668 silly resolved scripts: { test: 'tap tst/*.js' },
1668 silly resolved dependencies: { 'assert-plus': '0.1.2', asn1: '0.1.11', ctype: '0.5.2' },
1668 silly resolved devDependencies: { 'node-uuid': '1.4.0', tap: '0.4.2' },
1668 silly resolved readme: '# node-http-signature\n\nnode-http-signature is a node.js library that has client and server components\nfor Joyent\'s [HTTP Signature Scheme](http_signing.md).\n\n## Usage\n\nNote the example below signs a request with the same key/cert used to start an\nHTTP server. This is almost certainly not what you actaully want, but is just\nused to illustrate the API calls; you will need to provide your own key\nmanagement in addition to this library.\n\n### Client\n\n var fs = require(\'fs\');\n var https = require(\'https\');\n var httpSignature = require(\'http-signature\');\n\n var key = fs.readFileSync(\'./key.pem\', \'ascii\');\n\n var options = {\n host: \'localhost\',\n port: 8443,\n path: \'/\',\n method: \'GET\',\n headers: {}\n };\n\n // Adds a \'Date\' header in, signs it, and adds the\n // \'Authorization\' header in.\n var req = https.request(options, function(res) {\n console.log(res.statusCode);\n });\n\n\n httpSignature.sign(req, {\n key: key,\n keyId: \'./cert.pem\'\n });\n\n req.end();\n\n### Server\n\n var fs = require(\'fs\');\n var https = require(\'https\');\n var httpSignature = require(\'http-signature\');\n\n var options = {\n key: fs.readFileSync(\'./key.pem\'),\n cert: fs.readFileSync(\'./cert.pem\')\n };\n\n https.createServer(options, function (req, res) {\n var rc = 200;\n var parsed = httpSignature.parseRequest(req);\n var pub = fs.readFileSync(parsed.keyId, \'ascii\');\n if (!httpSignature.verifySignature(parsed, pub))\n rc = 401;\n\n res.writeHead(rc);\n res.end();\n }).listen(8443);\n\n## Installation\n\n npm install http-signature\n\n## License\n\nMIT.\n\n## Bugs\n\nSee <https://github.com/joyent/node-http-signature/issues>.\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/joyent/node-http-signature/issues' },
1668 silly resolved homepage: 'https://github.com/joyent/node-http-signature',
1668 silly resolved _id: 'http-signature@0.10.0',
1668 silly resolved _from: 'http-signature@~0.10.0' },
1668 silly resolved { name: 'hawk',
1668 silly resolved description: 'HTTP Hawk Authentication Scheme',
1668 silly resolved version: '1.1.1',
1668 silly resolved author:
1668 silly resolved { name: 'Eran Hammer',
1668 silly resolved email: 'eran@hueniverse.com',
1668 silly resolved url: 'http://hueniverse.com' },
1668 silly resolved contributors: [],
1668 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/hawk' },
1668 silly resolved main: 'index',
1668 silly resolved keywords: [ 'http', 'authentication', 'scheme', 'hawk' ],
1668 silly resolved engines: { node: '>=0.8.0' },
1668 silly resolved dependencies:
1668 silly resolved { hoek: '0.9.x',
1668 silly resolved boom: '0.4.x',
1668 silly resolved cryptiles: '0.2.x',
1668 silly resolved sntp: '0.2.x' },
1668 silly resolved devDependencies:
1668 silly resolved { lab: '0.1.x',
1668 silly resolved 'complexity-report': '0.x.x',
1668 silly resolved localStorage: '1.0.x' },
1668 silly resolved scripts: { test: 'make test-cov' },
1668 silly resolved licenses: [ [Object] ],
1668 silly resolved readme: '![hawk Logo](https://raw.github.com/hueniverse/hawk/master/images/hawk.png)\n\n<img align="right" src="https://raw.github.com/hueniverse/hawk/master/images/logo.png" /> **Hawk** is an HTTP authentication scheme using a message authentication code (MAC) algorithm to provide partial\nHTTP request cryptographic verification. For more complex use cases such as access delegation, see [Oz](https://github.com/hueniverse/oz).\n\nCurrent version: **1.0**\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/hawk.png)](http://travis-ci.org/hueniverse/hawk)\n\n# Table of Content\n\n- [**Introduction**](#introduction)\n - [Replay Protection](#replay-protection)\n - [Usage Example](#usage-example)\n - [Protocol Example](#protocol-example)\n - [Payload Validation](#payload-validation)\n - [Response Payload Validation](#response-payload-validation)\n - [Browser Support and Considerations](#browser-support-and-considerations)\n<p></p>\n- [**Single URI Authorization**](#single-uri-authorization)\n - [Usage Example](#bewit-usage-example)\n<p></p>\n- [**Security Considerations**](#security-considerations)\n - [MAC Keys Transmission](#mac-keys-transmission)\n - [Confidentiality of Requests](#confidentiality-of-requests)\n - [Spoofing by Counterfeit Servers](#spoofing-by-counterfeit-servers)\n - [Plaintext Storage of Credentials](#plaintext-storage-of-credentials)\n - [Entropy of Keys](#entropy-of-keys)\n - [Coverage Limitations](#coverage-limitations)\n - [Future Time Manipulation](#future-time-manipulation)\n - [Client Clock Poisoning](#client-clock-poisoning)\n - [Bewit Limitations](#bewit-limitations)\n - [Host Header Forgery](#host-header-forgery)\n<p></p>\n- [**Frequently Asked Questions**](#frequently-asked-questions)\n<p></p>\n- [**Acknowledgements**](#acknowledgements)\n\n# Introduction\n\n**Hawk** is an HTTP authentication scheme providing mechanisms for making authenticated HTTP requests with\npartial cryptographic verification of the request and response, covering the HTTP method, request URI, host,\nand optionally the request payload.\n\nSimilar to the HTTP [Digest access authentication schemes](http://www.ietf.org/rfc/rfc2617.txt), **Hawk** uses a set of\nclient credentials which include an identifier (e.g. username) and key (e.g. password). Likewise, just as with the Digest scheme,\nthe key is never included in authenticated requests. Instead, it is used to calculate a request MAC value which is\nincluded in its place.\n\nHowever, **Hawk** has several differences from Digest. In particular, while both use a nonce to limit the possibility of\nreplay attacks, in **Hawk** the client generates the nonce and uses it in combination with a timestamp, leading to less\n"chattiness" (interaction with the server).\n\nAlso unlike Digest, this scheme is not intended to protect the key itself (the password in Digest) because\nthe client and server must both have access to the key material in the clear.\n\nThe primary design goals of this scheme are to:\n* simplify and improve HTTP authentication for services that are unwilling or unable to deploy TLS for all resources,\n* secure credentials against leakage (e.g., when the client uses some form of dynamic configuration to determine where\n to send an authenticated request), and\n* avoid the exposure of credentials sent to a malicious server over an unauthenticated secure channel due to client\n failure to validate the server\'s identity as part of its TLS handshake.\n\nIn addition, **Hawk** supports a method for granting third-parties temporary access to individual resources using\na query parameter called _bewit_ (in falconry, a leather strap used to attach a tracking device to the leg of a hawk).\n\nThe **Hawk** scheme requires the establishment of a shared symmetric key between the client and the server,\nwhich is beyond the scope of this module. Typically, the shared credentials are established via an initial\nTLS-protected phase or derived from some other shared confidential information available to both the client\nand the server.\n\n\n## Replay Protection\n\nWithout replay protection, an attacker can use a compromised (but otherwise valid and authenticated) request more \nthan once, gaining access to a protected resource. To mitigate this, clients include both a nonce and a timestamp when \nmaking requests. This gives the server enough information to prevent replay attacks.\n\nThe nonce is generated by the client, and is a string unique across all requests with the same timestamp and\nkey identifier combination. \n\nThe timestamp enables the server to restrict the validity period of the credentials where requests occuring afterwards\nare rejected. It also removes the need for the server to retain an unbounded number of nonce values for future checks.\nBy default, **Hawk** uses a time window of 1 minute to allow for time skew between the client and server (which in\npractice translates to a maximum of 2 minutes as the skew can be positive or negative).\n\nUsing a timestamp requires the client\'s clock to be in sync with the server\'s clock. **Hawk** requires both the client\nclock and the server clock to use NTP to ensure synchronization. However, given the limitations of some client types\n(e.g. browsers) to deploy NTP, the server provides the client with its current time (in seconds precision) in response\nto a bad timestamp.\n\nThere is no expectation that the client will adjust its system clock to match the server (in fact, this would be a\npotential attack vector). Instead, the client only uses the server\'s time to calculate an offset used only\nfor communications with that particular server. The protocol rewards clients with synchronized clocks by reducing\nthe number of round trips required to authenticate the first request.\n\n\n## Usage Example\n\nServer code:\n\n```javascript\nvar Http = require(\'http\');\nvar Hawk = require(\'hawk\');\n\n\n// Credentials lookup function\n\nvar credentialsFunc = function (id, callback) {\n\n var credentials = {\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\',\n user: \'Steve\'\n };\n\n return callback(null, credentials);\n};\n\n// Create HTTP server\n\nvar handler = function (req, res) {\n\n // Authenticate incoming request\n\n Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials, artifacts) {\n\n // Prepare response\n\n var payload = (!err ? \'Hello \' + credentials.user + \' \' + artifacts.ext : \'Shoosh!\');\n var headers = { \'Content-Type\': \'text/plain\' };\n\n // Generate Server-Authorization response header\n\n var header = Hawk.server.header(credentials, artifacts, { payload: payload, contentType: headers[\'Content-Type\'] });\n headers[\'Server-Authorization\'] = header;\n\n // Send the response back\n\n res.writeHead(!err ? 200 : 401, headers);\n res.end(payload);\n });\n};\n\n// Start server\n\nHttp.createServer(handler).listen(8000, \'example.com\');\n```\n\nClient code:\n\n```javascript\nvar Request = require(\'request\');\nvar Hawk = require(\'hawk\');\n\n\n// Client credentials\n\nvar credentials = {\n id: \'dh37fgj492je\',\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n}\n\n// Request options\n\nvar requestOptions = {\n uri: \'http://example.com:8000/resource/1?b=1&a=2\',\n method: \'GET\',\n headers: {}\n};\n\n// Generate Authorization request header\n\nvar header = Hawk.client.header(\'http://example.com:8000/resource/1?b=1&a=2\', \'GET\', { credentials: credentials, ext: \'some-app-data\' });\nrequestOptions.headers.Authorization = header.field;\n\n// Send authenticated request\n\nRequest(requestOptions, function (error, response, body) {\n\n // Authenticate the server\'s response\n\n var isValid = Hawk.client.authenticate(response, credentials, header.artifacts, { payload: body });\n\n // Output results\n\n console.log(response.statusCode + \': \' + body + (isValid ? \' (valid)\' : \' (invalid)\'));\n});\n```\n\n**Hawk** utilized the [**SNTP**](https://github.com/hueniverse/sntp) module for time sync management. By default, the local\nmachine time is used. To automatically retrieve and synchronice the clock within the application, use the SNTP \'start()\' method.\n\n```javascript\nHawk.sntp.start();\n```\n\n\n## Protocol Example\n\nThe client attempts to access a protected resource without authentication, sending the following HTTP request to\nthe resource server:\n\n```\nGET /resource/1?b=1&a=2 HTTP/1.1\nHost: example.com:8000\n```\n\nThe resource server returns an authentication challenge.\n\n```\nHTTP/1.1 401 Unauthorized\nWWW-Authenticate: Hawk\n```\n\nThe client has previously obtained a set of **Hawk** credentials for accessing resources on the "http://example.com/"\nserver. The **Hawk** credentials issued to the client include the following attributes:\n\n* Key identifier: dh37fgj492je\n* Key: werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\n* Algorithm: sha256\n\nThe client generates the authentication header by calculating a timestamp (e.g. the number of seconds since January 1,\n1970 00:00:00 GMT), generating a nonce, and constructing the normalized request string (each value followed by a newline\ncharacter):\n\n```\nhawk.1.header\n1353832234\nj4h3g2\nGET\n/resource/1?b=1&a=2\nexample.com\n8000\n\nsome-app-ext-data\n\n```\n\nThe request MAC is calculated using HMAC with the specified hash algorithm "sha256" and the key over the normalized request string.\nThe result is base64-encoded to produce the request MAC:\n\n```\n6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE=\n```\n\nThe client includes the **Hawk** key identifier, timestamp, nonce, application specific data, and request MAC with the request using\nthe HTTP `Authorization` request header field:\n\n```\nGET /resource/1?b=1&a=2 HTTP/1.1\nHost: example.com:8000\nAuthorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", ext="some-app-ext-data", mac="6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE="\n```\n\nThe server validates the request by calculating the request MAC again based on the request received and verifies the validity\nand scope of the **Hawk** credentials. If valid, the server responds with the requested resource.\n\n\n### Payload Validation\n\n**Hawk** provides optional payload validation. When generating the authentication header, the client calculates a payload hash\nusing the specified hash algorithm. The hash is calculated over the concatenated value of (each followed by a newline character):\n* `hawk.1.payload`\n* the content-type in lowercase, without any parameters (e.g. `application/json`)\n* the request payload prior to any content encoding (the exact representation requirements should be specified by the server for payloads other than simple single-part ascii to ensure interoperability)\n\nFor example:\n\n* Payload: `Thank you for flying Hawk`\n* Content Type: `text/plain`\n* Hash (sha256): `Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=`\n\nResults in the following input to the payload hash function (newline terminated values):\n\n```\nhawk.1.payload\ntext/plain\nThank you for flying Hawk\n\n```\n\nWhich produces the following hash value:\n\n```\nYi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=\n```\n\nThe client constructs the normalized request string (newline terminated values):\n\n```\nhawk.1.header\n1353832234\nj4h3g2\nPOST\n/resource/1?a=1&b=2\nexample.com\n8000\nYi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=\nsome-app-ext-data\n\n```\n\nThen calculates the request MAC and includes the **Hawk** key identifier, timestamp, nonce, payload hash, application specific data,\nand request MAC, with the request using the HTTP `Authorization` request header field:\n\n```\nPOST /resource/1?a=1&b=2 HTTP/1.1\nHost: example.com:8000\nAuthorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", hash="Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=", ext="some-app-ext-data", mac="aSe1DERmZuRl3pI36/9BdZmnErTw3sNzOOAUlfeKjVw="\n```\n\nIt is up to the server if and when it validates the payload for any given request, based solely on it\'s security policy\nand the nature of the data included.\n\nIf the payload is available at the time of authentication, the server uses the hash value provided by the client to construct\nthe normalized string and validates the MAC. If the MAC is valid, the server calculates the payload hash and compares the value\nwith the provided payload hash in the header. In many cases, checking the MAC first is faster than calculating the payload hash.\n\nHowever, if the payload is not available at authentication time (e.g. too large to fit in memory, streamed elsewhere, or processed\nat a different stage in the application), the server may choose to defer payload validation for later by retaining the hash value\nprovided by the client after validating the MAC.\n\nIt is important to note that MAC validation does not mean the hash value provided by the client is valid, only that the value\nincluded in the header was not modified. Without calculating the payload hash on the server and comparing it to the value provided\nby the client, the payload may be modified by an attacker.\n\n\n## Response Payload Validation\n\n**Hawk** provides partial response payload validation. The server includes the `Server-Authorization` response header which enables the\nclient to authenticate the response and ensure it is talking to the right server. **Hawk** defines the HTTP `Server-Authorization` header\nas a response header using the exact same syntax as the `Authorization` request header field.\n\nThe header is contructed using the same process as the client\'s request header. The server uses the same credentials and other\nartifacts provided by the client to constructs the normalized request string. The `ext` and `hash` values are replaced with\nnew values based on the server response. The rest as identical to those used by the client.\n\nThe result MAC digest is included with the optional `hash` and `ext` values:\n\n```\nServer-Authorization: Hawk mac="XIJRsMl/4oL+nn+vKoeVZPdCHXB4yJkNnBbTbHFZUYE=", hash="f9cDF/TDm7TkYRLnGwRMfeDzT6LixQVLvrIKhh0vgmM=", ext="response-specific"\n```\n\n\n## Browser Support and Considerations\n\nA browser script is provided for including using a `<script>` tag in [lib/browser.js](/lib/browser.js).\n\n**Hawk** relies on the _Server-Authorization_ and _WWW-Authenticate_ headers in its response to communicate with the client.\nTherefore, in case of CORS requests, it is important to consider sending _Access-Control-Expose-Headers_ with the value\n_"WWW-Authenticate, Server-Authorization"_ on each response from your server. As explained in the\n[specifications](http://www.w3.org/TR/cors/#access-control-expose-headers-response-header), it will indicate that these headers\ncan safely be accessed by the client (using getResponseHeader() on the XmlHttpRequest object). Otherwise you will be met with a\n["simple response header"](http://www.w3.org/TR/cors/#simple-response-header) which excludes these fields and would prevent the\nHawk client from authenticating the requests.You can read more about the why and how in this\n[article](http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server)\n\n\n# Single URI Authorization\n\nThere are cases in which limited and short-term access to a protected resource is granted to a third party which does not\nhave access to the shared credentials. For example, displaying a protected image on a web page accessed by anyone. **Hawk**\nprovides limited support for such URIs in the form of a _bewit_ - a URI query parameter appended to the request URI which contains\nthe necessary credentials to authenticate the request.\n\nBecause of the significant security risks involved in issuing such access, bewit usage is purposely limited only to GET requests\nand for a finite period of time. Both the client and server can issue bewit credentials, however, the server should not use the same\ncredentials as the client to maintain clear traceability as to who issued which credentials.\n\nIn order to simplify implementation, bewit credentials do not support single-use policy and can be replayed multiple times within\nthe granted access timeframe. \n\n\n## Bewit Usage Example\n\nServer code:\n\n```javascript\nvar Http = require(\'http\');\nvar Hawk = require(\'hawk\');\n\n\n// Credentials lookup function\n\nvar credentialsFunc = function (id, callback) {\n\n var credentials = {\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n };\n\n return callback(null, credentials);\n};\n\n// Create HTTP server\n\nvar handler = function (req, res) {\n\n Hawk.uri.authenticate(req, credentialsFunc, {}, function (err, credentials, attributes) {\n\n res.writeHead(!err ? 200 : 401, { \'Content-Type\': \'text/plain\' });\n res.end(!err ? \'Access granted\' : \'Shoosh!\');\n });\n};\n\nHttp.createServer(handler).listen(8000, \'example.com\');\n```\n\nBewit code generation:\n\n```javascript\nvar Request = require(\'request\');\nvar Hawk = require(\'hawk\');\n\n\n// Client credentials\n\nvar credentials = {\n id: \'dh37fgj492je\',\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n}\n\n// Generate bewit\n\nvar duration = 60 * 5; // 5 Minutes\nvar bewit = Hawk.uri.getBewit(\'http://example.com:8080/resource/1?b=1&a=2\', { credentials: credentials, ttlSec: duration, ext: \'some-app-data\' });\nvar uri = \'http://example.com:8000/resource/1?b=1&a=2\' + \'&bewit=\' + bewit;\n```\n\n\n# Security Considerations\n\nThe greatest sources of security risks are usually found not in **Hawk** but in the policies and procedures surrounding its use.\nImplementers are strongly encouraged to assess how this module addresses their security requirements. This section includes\nan incomplete list of security considerations that must be reviewed and understood before deploying **Hawk** on the server.\nMany of the protections provided in **Hawk** depends on whether and how they are used.\n\n### MAC Keys Transmission\n\n**Hawk** does not provide any mechanism for obtaining or transmitting the set of shared credentials required. Any mechanism used\nto obtain **Hawk** credentials must ensure that these transmissions are protected using transport-layer mechanisms such as TLS.\n\n### Confidentiality of Requests\n\nWhile **Hawk** provides a mechanism for verifying the integrity of HTTP requests, it provides no guarantee of request\nconfidentiality. Unless other precautions are taken, eavesdroppers will have full access to the request content. Servers should\ncarefully consider the types of data likely to be sent as part of such requests, and employ transport-layer security mechanisms\nto protect sensitive resources.\n\n### Spoofing by Counterfeit Servers\n\n**Hawk** provides limited verification of the server authenticity. When receiving a response back from the server, the server\nmay choose to include a response `Server-Authorization` header which the client can use to verify the response. However, it is up to\nthe server to determine when such measure is included, to up to the client to enforce that policy.\n\nA hostile party could take advantage of this by intercepting the client\'s requests and returning misleading or otherwise\nincorrect responses. Service providers should consider such attacks when developing services using this protocol, and should\nrequire transport-layer security for any requests where the authenticity of the resource server or of server responses is an issue.\n\n### Plaintext Storage of Credentials\n\nThe **Hawk** key functions the same way passwords do in traditional authentication systems. In order to compute the request MAC,\nthe server must have access to the key in plaintext form. This is in contrast, for example, to modern operating systems, which\nstore only a one-way hash of user credentials.\n\nIf an attacker were to gain access to these keys - or worse, to the server\'s database of all such keys - he or she would be able\nto perform any action on behalf of any resource owner. Accordingly, it is critical that servers protect these keys from unauthorized\naccess.\n\n### Entropy of Keys\n\nUnless a transport-layer security protocol is used, eavesdroppers will have full access to authenticated requests and request\nMAC values, and will thus be able to mount offline brute-force attacks to recover the key used. Servers should be careful to\nassign keys which are long enough, and random enough, to resist such attacks for at least the length of time that the **Hawk**\ncredentials are valid.\n\nFor example, if the credentials are valid for two weeks, servers should ensure that it is not possible to mount a brute force\nattack that recovers the key in less than two weeks. Of course, servers are urged to err on the side of caution, and use the\nlongest key reasonable.\n\nIt is equally important that the pseudo-random number generator (PRNG) used to generate these keys be of sufficiently high\nquality. Many PRNG implementations generate number sequences that may appear to be random, but which nevertheless exhibit\npatterns or other weaknesses which make cryptanalysis or brute force attacks easier. Implementers should be careful to use\ncryptographically secure PRNGs to avoid these problems.\n\n### Coverage Limitations\n\nThe request MAC only covers the HTTP `Host` header and optionally the `Content-Type` header. It does not cover any other headers\nwhich can often affect how the request body is interpreted by the server. If the server behavior is influenced by the presence\nor value of such headers, an attacker can manipulate the request headers without being detected. Implementers should use the\n`ext` feature to pass application-specific information via the `Authorization` header which is protected by the request MAC.\n\nThe response authentication, when performed, only covers the response payload, content-type, and the request information \nprovided by the client in it\'s request (method, resource, timestamp, nonce, etc.). It does not cover the HTTP status code or\nany other response header field (e.g. Location) which can affect the client\'s behaviour.\n\n### Future Time Manipulation\n\nThe protocol relies on a clock sync between the client and server. To accomplish this, the server informs the client of its\ncurrent time when an invalid timestamp is received.\n\nIf an attacker is able to manipulate this information and cause the client to use an incorrect time, it would be able to cause\nthe client to generate authenticated requests using time in the future. Such requests will fail when sent by the client, and will\nnot likely leave a trace on the server (given the common implementation of nonce, if at all enforced). The attacker will then\nbe able to replay the request at the correct time without detection.\n\nThe client must only use the time information provided by the server if:\n* it was delivered over a TLS connection and the server identity has been verified, or\n* the `tsm` MAC digest calculated using the same client credentials over the timestamp has been verified.\n\n### Client Clock Poisoning\n\nWhen receiving a request with a bad timestamp, the server provides the client with its current time. The client must never use\nthe time received from the server to adjust its own clock, and must only use it to calculate an offset for communicating with\nthat particular server.\n\n### Bewit Limitations\n\nSpecial care must be taken when issuing bewit credentials to third parties. Bewit credentials are valid until expiration and cannot\nbe revoked or limited without using other means. Whatever resource they grant access to will be completely exposed to anyone with\naccess to the bewit credentials which act as bearer credentials for that particular resource. While bewit usage is limited to GET\nrequests only and therefore cannot be used to perform transactions or change server state, it can still be used to expose private\nand sensitive information.\n\n### Host Header Forgery\n\nHawk validates the incoming request MAC against the incoming HTTP Host header. However, unless the optional `host` and `port`\noptions are used with `server.authenticate()`, a malicous client can mint new host names pointing to the server\'s IP address and\nuse that to craft an attack by sending a valid request that\'s meant for another hostname than the one used by the server. Server\nimplementors must manually verify that the host header received matches their expectation (or use the options mentioned above).\n\n# Frequently Asked Questions\n\n### Where is the protocol specification?\n\nIf you are looking for some prose explaining how all this works, **this is it**. **Hawk** is being developed as an open source\nproject instead of a standard. In other words, the [code](/hueniverse/hawk/tree/master/lib) is the specification. Not sure about\nsomething? Open an issue!\n\n### Is it done?\n\nAt if version 0.10.0, **Hawk** is feature-complete. However, until this module reaches version 1.0.0 it is considered experimental\nand is likely to change. This also means your feedback and contribution are very welcome. Feel free to open issues with questions\nand suggestions.\n\n### Where can I find **Hawk** implementations in other languages?\n\n**Hawk**\'s only reference implementation is provided in JavaScript as a node.js module. However, it has been ported to other languages.\nThe full list is maintained [here](https://github.com/hueniverse/hawk/issues?labels=port&state=closed). Please add an issue if you are\nworking on another port. A cross-platform test-suite is in the works.\n\n### Why isn\'t the algorithm part of the challenge or dynamically negotiated?\n\nThe algorithm used is closely related to the key issued as different algorithms require different key sizes (and other\nrequirements). While some keys can be used for multiple algorithm, the protocol is designed to closely bind the key and algorithm\ntogether as part of the issued credentials.\n\n### Why is Host and Content-Type the only headers covered by the request MAC?\n\nIt is really hard to include other headers. Headers can be changed by proxies and other intermediaries and there is no\nwell-established way to normalize them. Many platforms change the case of header field names and values. The only\nstraight-forward solution is to include the headers in some blob (say, base64 encoded JSON) and include that with the request,\nan approach taken by JWT and other such formats. However, that design violates the HTTP header boundaries, repeats information,\nand introduces other security issues because firewalls will not be aware of these "hidden" headers. In addition, any information\nrepeated must be compared to the duplicated information in the header and therefore only moves the problem elsewhere.\n\n### Why not just use HTTP Digest?\n\nDigest requires pre-negotiation to establish a nonce. This means you can\'t just make a request - you must first send\na protocol handshake to the server. This pattern has become unacceptable for most web services, especially mobile\nwhere extra round-trip are costly.\n\n### Why bother with all this nonce and timestamp business?\n\n**Hawk** is an attempt to find a reasonable, practical compromise between security and usability. OAuth 1.0 got timestamp\nand nonces halfway right but failed when it came to scalability and consistent developer experience. **Hawk** addresses\nit by requiring the client to sync its clock, but provides it with tools to accomplish it.\n\nIn general, replay protection is a matter of application-specific threat model. It is less of an issue on a TLS-protected\nsystem where the clients are implemented using best practices and are under the control of the server. Instead of dropping\nreplay protection, **Hawk** offers a required time window and an optional nonce verification. Together, it provides developers\nwith the ability to decide how to enforce their security policy without impacting the client\'s implementation.\n\n### What are `app` and `dlg` in the authorization header and normalized mac string?\n\nThe original motivation for **Hawk** was to replace the OAuth 1.0 use cases. This included both a simple client-server mode which\nthis module is specifically designed for, and a delegated access mode which is being developed separately in\n[Oz](https://github.com/hueniverse/oz). In addition to the **Hawk** use cases, Oz requires another attribute: the application id `app`.\nThis provides binding between the credentials and the application in a way that prevents an attacker from tricking an application\nto use credentials issued to someone else. It also has an optional \'delegated-by\' attribute `dlg` which is the application id of the\napplication the credentials were directly issued to. The goal of these two additions is to allow Oz to utilize **Hawk** directly,\nbut with the additional security of delegated credentials.\n\n### What is the purpose of the static strings used in each normalized MAC input?\n\nWhen calculating a hash or MAC, a static prefix (tag) is added. The prefix is used to prevent MAC values from being\nused or reused for a purpose other than what they were created for (i.e. prevents switching MAC values between a request,\nresponse, and a bewit use cases). It also protects against expliots created after a potential change in how the protocol\ncreates the normalized string. For example, if a future version would switch the order of nonce and timestamp, it\ncan create an exploit opportunity for cases where the nonce is similar in format to a timestamp.\n\n### Does **Hawk** have anything to do with OAuth?\n\nShort answer: no.\n\n**Hawk** was originally proposed as the OAuth MAC Token specification. However, the OAuth working group in its consistent\nincompetence failed to produce a final, usable solution to address one of the most popular use cases of OAuth 1.0 - using it\nto authenticate simple client-server transactions (i.e. two-legged). As you can guess, the OAuth working group is still hard\nat work to produce more garbage.\n\n**Hawk** provides a simple HTTP authentication scheme for making client-server requests. It does not address the OAuth use case\nof delegating access to a third party. If you are looking for an OAuth alternative, check out [Oz](https://github.com/hueniverse/oz).\n\n\n# Acknowledgements\n\n**Hawk** is a derivative work of the [HTTP MAC Authentication Scheme](http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-05) proposal\nco-authored by Ben Adida, Adam Barth, and Eran Hammer, which in turn was based on the OAuth 1.0 community specification.\n\nSpecial thanks to Ben Laurie for his always insightful feedback and advice.\n\nThe **Hawk** logo was created by [Chris Carrasco](http://chriscarrasco.com).\n',
1668 silly resolved readmeFilename: 'README.md',
1668 silly resolved bugs: { url: 'https://github.com/hueniverse/hawk/issues' },
1668 silly resolved homepage: 'https://github.com/hueniverse/hawk',
1668 silly resolved _id: 'hawk@1.1.1',
1668 silly resolved _from: 'hawk@1.1.1' } ]
1669 info install forever-agent@0.5.2 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1670 info install node-uuid@1.4.1 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1671 info install tunnel-agent@0.4.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1672 info install qs@0.6.6 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1673 info install mime-types@1.0.1 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1674 info install oauth-sign@0.3.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1675 info install json-stringify-safe@5.0.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1676 info install aws-sign2@0.5.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1677 info install form-data@0.1.4 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1678 info install tough-cookie@0.12.1 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1679 info install http-signature@0.10.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1680 info install hawk@1.1.1 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
1681 info installOne forever-agent@0.5.2
1682 info installOne node-uuid@1.4.1
1683 info installOne tunnel-agent@0.4.0
1684 info installOne qs@0.6.6
1685 info installOne mime-types@1.0.1
1686 info installOne oauth-sign@0.3.0
1687 info installOne json-stringify-safe@5.0.0
1688 info installOne aws-sign2@0.5.0
1689 info installOne form-data@0.1.4
1690 info installOne tough-cookie@0.12.1
1691 info installOne http-signature@0.10.0
1692 info installOne hawk@1.1.1
1693 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent unbuild
1694 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid unbuild
1695 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent unbuild
1696 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs unbuild
1697 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types unbuild
1698 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign unbuild
1699 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe unbuild
1700 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2 unbuild
1701 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data unbuild
1702 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie unbuild
1703 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature unbuild
1704 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk unbuild
1705 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/forever-agent/0.5.2/package.tgz
1706 silly lockFile 529392a2-quest-node-modules-forever-agent tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent
1707 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent /Users/cedric/.atom/.node-gyp/.atom/.apm/529392a2-quest-node-modules-forever-agent.lock
1708 silly lockFile b8d17432--forever-agent-0-5-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/forever-agent/0.5.2/package.tgz
1709 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/forever-agent/0.5.2/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/b8d17432--forever-agent-0-5-2-package-tgz.lock
1710 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/node-uuid/1.4.1/package.tgz
1711 silly lockFile 1f8ee5f4-s-request-node-modules-node-uuid tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid
1712 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid /Users/cedric/.atom/.node-gyp/.atom/.apm/1f8ee5f4-s-request-node-modules-node-uuid.lock
1713 silly lockFile f1cde295--apm-node-uuid-1-4-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/node-uuid/1.4.1/package.tgz
1714 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/node-uuid/1.4.1/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/f1cde295--apm-node-uuid-1-4-1-package-tgz.lock
1715 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/tunnel-agent/0.4.0/package.tgz
1716 silly lockFile 6dd1da38-equest-node-modules-tunnel-agent tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent
1717 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent /Users/cedric/.atom/.node-gyp/.atom/.apm/6dd1da38-equest-node-modules-tunnel-agent.lock
1718 silly lockFile 8fdc8c1d-m-tunnel-agent-0-4-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tunnel-agent/0.4.0/package.tgz
1719 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tunnel-agent/0.4.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/8fdc8c1d-m-tunnel-agent-0-4-0-package-tgz.lock
1720 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/qs/0.6.6/package.tgz
1721 silly lockFile 0ec3f491--modules-request-node-modules-qs tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs
1722 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs /Users/cedric/.atom/.node-gyp/.atom/.apm/0ec3f491--modules-request-node-modules-qs.lock
1723 silly lockFile 92947b42-yp-atom-apm-qs-0-6-6-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/qs/0.6.6/package.tgz
1724 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/qs/0.6.6/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/92947b42-yp-atom-apm-qs-0-6-6-package-tgz.lock
1725 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/mime-types/1.0.1/package.tgz
1726 silly lockFile b28bc2f9--request-node-modules-mime-types tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types
1727 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types /Users/cedric/.atom/.node-gyp/.atom/.apm/b28bc2f9--request-node-modules-mime-types.lock
1728 silly lockFile 4f4bc150-apm-mime-types-1-0-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime-types/1.0.1/package.tgz
1729 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime-types/1.0.1/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/4f4bc150-apm-mime-types-1-0-1-package-tgz.lock
1730 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/oauth-sign/0.3.0/package.tgz
1731 silly lockFile 7db48c80--request-node-modules-oauth-sign tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign
1732 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign /Users/cedric/.atom/.node-gyp/.atom/.apm/7db48c80--request-node-modules-oauth-sign.lock
1733 silly lockFile 4d1e9dc0-apm-oauth-sign-0-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/oauth-sign/0.3.0/package.tgz
1734 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/oauth-sign/0.3.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/4d1e9dc0-apm-oauth-sign-0-3-0-package-tgz.lock
1735 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/json-stringify-safe/5.0.0/package.tgz
1736 silly lockFile 47cf98ff-node-modules-json-stringify-safe tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe
1737 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe /Users/cedric/.atom/.node-gyp/.atom/.apm/47cf98ff-node-modules-json-stringify-safe.lock
1738 silly lockFile 87d55940-stringify-safe-5-0-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/json-stringify-safe/5.0.0/package.tgz
1739 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/json-stringify-safe/5.0.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/87d55940-stringify-safe-5-0-0-package-tgz.lock
1740 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/aws-sign2/0.5.0/package.tgz
1741 silly lockFile 1e0773c6-s-request-node-modules-aws-sign2 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2
1742 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2 /Users/cedric/.atom/.node-gyp/.atom/.apm/1e0773c6-s-request-node-modules-aws-sign2.lock
1743 silly lockFile 80abb1d2--apm-aws-sign2-0-5-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/aws-sign2/0.5.0/package.tgz
1744 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/aws-sign2/0.5.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/80abb1d2--apm-aws-sign2-0-5-0-package-tgz.lock
1745 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/form-data/0.1.4/package.tgz
1746 silly lockFile 91d7edc2-s-request-node-modules-form-data tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
1747 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data /Users/cedric/.atom/.node-gyp/.atom/.apm/91d7edc2-s-request-node-modules-form-data.lock
1748 silly lockFile 70dfa134--apm-form-data-0-1-4-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/form-data/0.1.4/package.tgz
1749 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/form-data/0.1.4/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/70dfa134--apm-form-data-0-1-4-package-tgz.lock
1750 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/tough-cookie/0.12.1/package.tgz
1751 silly lockFile e0b655c9-equest-node-modules-tough-cookie tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie
1752 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie /Users/cedric/.atom/.node-gyp/.atom/.apm/e0b655c9-equest-node-modules-tough-cookie.lock
1753 silly lockFile e23f8e99--tough-cookie-0-12-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tough-cookie/0.12.1/package.tgz
1754 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tough-cookie/0.12.1/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/e23f8e99--tough-cookie-0-12-1-package-tgz.lock
1755 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/http-signature/0.10.0/package.tgz
1756 silly lockFile b3553ea9-uest-node-modules-http-signature tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
1757 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature /Users/cedric/.atom/.node-gyp/.atom/.apm/b3553ea9-uest-node-modules-http-signature.lock
1758 silly lockFile d3e3bce2-ttp-signature-0-10-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/http-signature/0.10.0/package.tgz
1759 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/http-signature/0.10.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/d3e3bce2-ttp-signature-0-10-0-package-tgz.lock
1760 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/hawk/1.1.1/package.tgz
1761 silly lockFile c471ad88-odules-request-node-modules-hawk tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
1762 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk /Users/cedric/.atom/.node-gyp/.atom/.apm/c471ad88-odules-request-node-modules-hawk.lock
1763 silly lockFile 77ee470b--atom-apm-hawk-1-1-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hawk/1.1.1/package.tgz
1764 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hawk/1.1.1/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/77ee470b--atom-apm-hawk-1-1-1-package-tgz.lock
1765 silly gunzTarPerm modes [ '755', '644' ]
1766 silly gunzTarPerm modes [ '755', '644' ]
1767 silly gunzTarPerm modes [ '755', '644' ]
1768 silly gunzTarPerm modes [ '755', '644' ]
1769 silly gunzTarPerm modes [ '755', '644' ]
1770 silly gunzTarPerm modes [ '755', '644' ]
1771 silly gunzTarPerm modes [ '755', '644' ]
1772 silly gunzTarPerm modes [ '755', '644' ]
1773 silly gunzTarPerm modes [ '755', '644' ]
1774 silly gunzTarPerm modes [ '755', '644' ]
1775 silly gunzTarPerm modes [ '755', '644' ]
1776 silly gunzTarPerm modes [ '755', '644' ]
1777 silly gunzTarPerm extractEntry package.json
1778 silly gunzTarPerm extractEntry package.json
1779 silly gunzTarPerm extractEntry package.json
1780 silly gunzTarPerm extractEntry package.json
1781 silly gunzTarPerm extractEntry package.json
1782 silly gunzTarPerm extractEntry package.json
1783 silly gunzTarPerm extractEntry package.json
1784 silly gunzTarPerm extractEntry package.json
1785 silly gunzTarPerm extractEntry package.json
1786 silly gunzTarPerm extractEntry package.json
1787 silly gunzTarPerm extractEntry .npmignore
1788 silly gunzTarPerm extractEntry README.md
1789 silly gunzTarPerm extractEntry README.md
1790 silly gunzTarPerm extractEntry LICENSE
1791 silly gunzTarPerm extractEntry .npmignore
1792 silly gunzTarPerm extractEntry index.js
1793 silly gunzTarPerm extractEntry .npmignore
1794 silly gunzTarPerm extractEntry README.md
1795 silly gunzTarPerm extractEntry README.md
1796 silly gunzTarPerm extractEntry LICENSE
1797 silly gunzTarPerm extractEntry README.md
1798 silly gunzTarPerm extractEntry LICENSE
1799 silly gunzTarPerm extractEntry README.md
1800 silly gunzTarPerm extractEntry LICENSE
1801 silly gunzTarPerm extractEntry package.json
1802 silly gunzTarPerm extractEntry package.json
1803 silly gunzTarPerm extractEntry License
1804 silly gunzTarPerm extractEntry Readme.md
1805 silly gunzTarPerm extractEntry .npmignore
1806 silly gunzTarPerm extractEntry README.md
1807 silly gunzTarPerm extractEntry .npmignore
1808 silly gunzTarPerm extractEntry README.md
1809 silly gunzTarPerm extractEntry .npmignore
1810 silly gunzTarPerm extractEntry README.md
1811 silly gunzTarPerm extractEntry README.md
1812 silly gunzTarPerm extractEntry LICENSE
1813 silly gunzTarPerm extractEntry index.js
1814 silly gunzTarPerm extractEntry .jshintrc
1815 silly gunzTarPerm extractEntry .gitmodules
1816 silly gunzTarPerm extractEntry Readme.md
1817 silly gunzTarPerm extractEntry index.js
1818 silly gunzTarPerm extractEntry test.js
1819 silly gunzTarPerm extractEntry stringify.js
1820 silly gunzTarPerm extractEntry test.js
1821 silly gunzTarPerm extractEntry index.js
1822 silly gunzTarPerm extractEntry uuid.js
1823 silly gunzTarPerm extractEntry LICENSE.md
1824 silly gunzTarPerm extractEntry benchmark/README.md
1825 silly gunzTarPerm extractEntry benchmark/benchmark.js
1826 silly gunzTarPerm extractEntry benchmark/bench.gnu
1827 silly gunzTarPerm extractEntry benchmark/bench.sh
1828 silly gunzTarPerm extractEntry benchmark/benchmark-native.c
1829 silly gunzTarPerm extractEntry component.json
1830 silly gunzTarPerm extractEntry test/compare_v1.js
1831 silly gunzTarPerm extractEntry test/test.js
1832 silly gunzTarPerm extractEntry test/test.html
1833 silly gunzTarPerm extractEntry LICENSE
1834 silly gunzTarPerm extractEntry .travis.yml
1835 silly gunzTarPerm extractEntry lib/form_data.js
1836 silly gunzTarPerm extractEntry LICENSE
1837 silly gunzTarPerm extractEntry LICENSE
1838 silly gunzTarPerm extractEntry .dir-locals.el
1839 silly gunzTarPerm extractEntry index.js
1840 silly gunzTarPerm extractEntry LICENSE
1841 silly gunzTarPerm extractEntry Makefile
1842 silly gunzTarPerm extractEntry SOURCES.md
1843 silly gunzTarPerm extractEntry generate-pubsuffix.js
1844 silly gunzTarPerm extractEntry test.js
1845 silly gunzTarPerm extractEntry http_signing.md
1846 silly gunzTarPerm extractEntry lib/index.js
1847 silly gunzTarPerm extractEntry lib/parser.js
1848 silly gunzTarPerm extractEntry lib/signer.js
1849 silly gunzTarPerm extractEntry lib/util.js
1850 silly gunzTarPerm extractEntry lib/verify.js
1851 silly gunzTarPerm extractEntry index.js
1852 silly gunzTarPerm extractEntry .travis.yml
1853 silly gunzTarPerm extractEntry component.json
1854 silly gunzTarPerm extractEntry lib/index.js
1855 silly gunzTarPerm extractEntry lib/custom.json
1856 silly gunzTarPerm extractEntry lib/mime.json
1857 silly gunzTarPerm extractEntry lib/node.json
1858 silly lockFile 47cf98ff-node-modules-json-stringify-safe tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe
1859 silly lockFile 47cf98ff-node-modules-json-stringify-safe tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe
1860 silly lockFile 87d55940-stringify-safe-5-0-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/json-stringify-safe/5.0.0/package.tgz
1861 silly lockFile 87d55940-stringify-safe-5-0-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/json-stringify-safe/5.0.0/package.tgz
1862 info preinstall json-stringify-safe@5.0.0
1863 silly lockFile 1e0773c6-s-request-node-modules-aws-sign2 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2
1864 silly lockFile 1e0773c6-s-request-node-modules-aws-sign2 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2
1865 silly lockFile 0ec3f491--modules-request-node-modules-qs tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs
1866 silly lockFile 0ec3f491--modules-request-node-modules-qs tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs
1867 verbose readDependencies using package.json deps
1868 silly lockFile 80abb1d2--apm-aws-sign2-0-5-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/aws-sign2/0.5.0/package.tgz
1869 silly lockFile 80abb1d2--apm-aws-sign2-0-5-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/aws-sign2/0.5.0/package.tgz
1870 silly lockFile 92947b42-yp-atom-apm-qs-0-6-6-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/qs/0.6.6/package.tgz
1871 silly lockFile 92947b42-yp-atom-apm-qs-0-6-6-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/qs/0.6.6/package.tgz
1872 verbose readDependencies using package.json deps
1873 silly resolved []
1874 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe
1875 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/json-stringify-safe
1876 verbose linkStuff [ false,
1876 verbose linkStuff false,
1876 verbose linkStuff false,
1876 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
1877 info linkStuff json-stringify-safe@5.0.0
1878 verbose linkBins json-stringify-safe@5.0.0
1879 verbose linkMans json-stringify-safe@5.0.0
1880 verbose rebuildBundles json-stringify-safe@5.0.0
1881 silly gunzTarPerm extractEntry .jshintrc
1882 silly gunzTarPerm extractEntry .travis.yml
1883 info install json-stringify-safe@5.0.0
1884 silly lockFile 529392a2-quest-node-modules-forever-agent tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent
1885 silly lockFile 529392a2-quest-node-modules-forever-agent tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent
1886 info postinstall json-stringify-safe@5.0.0
1887 silly lockFile b8d17432--forever-agent-0-5-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/forever-agent/0.5.2/package.tgz
1888 silly lockFile b8d17432--forever-agent-0-5-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/forever-agent/0.5.2/package.tgz
1889 info preinstall aws-sign2@0.5.0
1890 info preinstall qs@0.6.6
1891 silly lockFile 7db48c80--request-node-modules-oauth-sign tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign
1892 silly lockFile 7db48c80--request-node-modules-oauth-sign tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign
1893 silly lockFile 4d1e9dc0-apm-oauth-sign-0-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/oauth-sign/0.3.0/package.tgz
1894 silly lockFile 4d1e9dc0-apm-oauth-sign-0-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/oauth-sign/0.3.0/package.tgz
1895 silly lockFile 91d7edc2-s-request-node-modules-form-data tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
1896 silly lockFile 91d7edc2-s-request-node-modules-form-data tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
1897 verbose readDependencies using package.json deps
1898 verbose readDependencies using package.json deps
1899 silly lockFile 70dfa134--apm-form-data-0-1-4-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/form-data/0.1.4/package.tgz
1900 silly lockFile 70dfa134--apm-form-data-0-1-4-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/form-data/0.1.4/package.tgz
1901 info preinstall forever-agent@0.5.2
1902 verbose readDependencies using package.json deps
1903 silly resolved []
1904 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2
1905 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/aws-sign2
1906 verbose linkStuff [ false,
1906 verbose linkStuff false,
1906 verbose linkStuff false,
1906 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
1907 info linkStuff aws-sign2@0.5.0
1908 verbose linkBins aws-sign2@0.5.0
1909 verbose linkMans aws-sign2@0.5.0
1910 verbose rebuildBundles aws-sign2@0.5.0
1911 verbose readDependencies using package.json deps
1912 silly resolved []
1913 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs
1914 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/qs
1915 verbose linkStuff [ false,
1915 verbose linkStuff false,
1915 verbose linkStuff false,
1915 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
1916 info linkStuff qs@0.6.6
1917 verbose linkBins qs@0.6.6
1918 verbose linkMans qs@0.6.6
1919 verbose rebuildBundles qs@0.6.6
1920 info install aws-sign2@0.5.0
1921 info install qs@0.6.6
1922 info preinstall oauth-sign@0.3.0
1923 silly lockFile 6dd1da38-equest-node-modules-tunnel-agent tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent
1924 silly lockFile 6dd1da38-equest-node-modules-tunnel-agent tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent
1925 verbose readDependencies using package.json deps
1926 info postinstall aws-sign2@0.5.0
1927 info postinstall qs@0.6.6
1928 silly lockFile 8fdc8c1d-m-tunnel-agent-0-4-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tunnel-agent/0.4.0/package.tgz
1929 silly lockFile 8fdc8c1d-m-tunnel-agent-0-4-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tunnel-agent/0.4.0/package.tgz
1930 info preinstall form-data@0.1.4
1931 verbose readDependencies using package.json deps
1932 silly resolved []
1933 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent
1934 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/forever-agent
1935 verbose linkStuff [ false,
1935 verbose linkStuff false,
1935 verbose linkStuff false,
1935 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
1936 info linkStuff forever-agent@0.5.2
1937 verbose linkBins forever-agent@0.5.2
1938 verbose linkMans forever-agent@0.5.2
1939 verbose rebuildBundles forever-agent@0.5.2
1940 verbose readDependencies using package.json deps
1941 info install forever-agent@0.5.2
1942 verbose readDependencies using package.json deps
1943 silly resolved []
1944 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign
1945 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/oauth-sign
1946 verbose linkStuff [ false,
1946 verbose linkStuff false,
1946 verbose linkStuff false,
1946 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
1947 info linkStuff oauth-sign@0.3.0
1948 verbose linkBins oauth-sign@0.3.0
1949 verbose linkMans oauth-sign@0.3.0
1950 verbose rebuildBundles oauth-sign@0.3.0
1951 info install oauth-sign@0.3.0
1952 verbose readDependencies using package.json deps
1953 info postinstall forever-agent@0.5.2
1954 silly gunzTarPerm extractEntry lib/cookie.js
1955 silly gunzTarPerm extractEntry lib/memstore.js
1956 info preinstall tunnel-agent@0.4.0
1957 verbose readDependencies using package.json deps
1958 info postinstall oauth-sign@0.3.0
1959 verbose cache add [ 'async@~0.9.0', null ]
1960 verbose cache add name=undefined spec="async@~0.9.0" args=["async@~0.9.0",null]
1961 verbose parsed url { protocol: null,
1961 verbose parsed url slashes: null,
1961 verbose parsed url auth: null,
1961 verbose parsed url host: null,
1961 verbose parsed url port: null,
1961 verbose parsed url hostname: null,
1961 verbose parsed url hash: null,
1961 verbose parsed url search: null,
1961 verbose parsed url query: null,
1961 verbose parsed url pathname: 'async@~0.9.0',
1961 verbose parsed url path: 'async@~0.9.0',
1961 verbose parsed url href: 'async@~0.9.0' }
1962 verbose cache add name="async" spec="~0.9.0" args=["async","~0.9.0"]
1963 verbose parsed url { protocol: null,
1963 verbose parsed url slashes: null,
1963 verbose parsed url auth: null,
1963 verbose parsed url host: null,
1963 verbose parsed url port: null,
1963 verbose parsed url hostname: null,
1963 verbose parsed url hash: null,
1963 verbose parsed url search: null,
1963 verbose parsed url query: null,
1963 verbose parsed url pathname: '~0.9.0',
1963 verbose parsed url path: '~0.9.0',
1963 verbose parsed url href: '~0.9.0' }
1964 verbose addNamed [ 'async', '~0.9.0' ]
1965 verbose addNamed [ null, '>=0.9.0-0 <0.10.0-0' ]
1966 silly lockFile 38be4a8c-async-0-9-0 async@~0.9.0
1967 verbose lock async@~0.9.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/38be4a8c-async-0-9-0.lock
1968 verbose readDependencies using package.json deps
1969 silly addNameRange { name: 'async', range: '>=0.9.0-0 <0.10.0-0', hasData: false }
1970 verbose readDependencies using package.json deps
1971 silly resolved []
1972 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent
1973 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tunnel-agent
1974 verbose linkStuff [ false,
1974 verbose linkStuff false,
1974 verbose linkStuff false,
1974 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
1975 info linkStuff tunnel-agent@0.4.0
1976 verbose linkBins tunnel-agent@0.4.0
1977 verbose linkMans tunnel-agent@0.4.0
1978 verbose rebuildBundles tunnel-agent@0.4.0
1979 verbose cache add [ 'combined-stream@~0.0.4', null ]
1980 verbose cache add name=undefined spec="combined-stream@~0.0.4" args=["combined-stream@~0.0.4",null]
1981 verbose parsed url { protocol: null,
1981 verbose parsed url slashes: null,
1981 verbose parsed url auth: null,
1981 verbose parsed url host: null,
1981 verbose parsed url port: null,
1981 verbose parsed url hostname: null,
1981 verbose parsed url hash: null,
1981 verbose parsed url search: null,
1981 verbose parsed url query: null,
1981 verbose parsed url pathname: 'combined-stream@~0.0.4',
1981 verbose parsed url path: 'combined-stream@~0.0.4',
1981 verbose parsed url href: 'combined-stream@~0.0.4' }
1982 verbose cache add name="combined-stream" spec="~0.0.4" args=["combined-stream","~0.0.4"]
1983 verbose parsed url { protocol: null,
1983 verbose parsed url slashes: null,
1983 verbose parsed url auth: null,
1983 verbose parsed url host: null,
1983 verbose parsed url port: null,
1983 verbose parsed url hostname: null,
1983 verbose parsed url hash: null,
1983 verbose parsed url search: null,
1983 verbose parsed url query: null,
1983 verbose parsed url pathname: '~0.0.4',
1983 verbose parsed url path: '~0.0.4',
1983 verbose parsed url href: '~0.0.4' }
1984 verbose addNamed [ 'combined-stream', '~0.0.4' ]
1985 verbose addNamed [ null, '>=0.0.4-0 <0.1.0-0' ]
1986 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
1987 verbose lock combined-stream@~0.0.4 /Users/cedric/.atom/.node-gyp/.atom/.apm/97e270a8-combined-stream-0-0-4.lock
1988 verbose cache add [ 'mime@~1.2.11', null ]
1989 verbose cache add name=undefined spec="mime@~1.2.11" args=["mime@~1.2.11",null]
1990 verbose parsed url { protocol: null,
1990 verbose parsed url slashes: null,
1990 verbose parsed url auth: null,
1990 verbose parsed url host: null,
1990 verbose parsed url port: null,
1990 verbose parsed url hostname: null,
1990 verbose parsed url hash: null,
1990 verbose parsed url search: null,
1990 verbose parsed url query: null,
1990 verbose parsed url pathname: 'mime@~1.2.11',
1990 verbose parsed url path: 'mime@~1.2.11',
1990 verbose parsed url href: 'mime@~1.2.11' }
1991 verbose cache add name="mime" spec="~1.2.11" args=["mime","~1.2.11"]
1992 verbose parsed url { protocol: null,
1992 verbose parsed url slashes: null,
1992 verbose parsed url auth: null,
1992 verbose parsed url host: null,
1992 verbose parsed url port: null,
1992 verbose parsed url hostname: null,
1992 verbose parsed url hash: null,
1992 verbose parsed url search: null,
1992 verbose parsed url query: null,
1992 verbose parsed url pathname: '~1.2.11',
1992 verbose parsed url path: '~1.2.11',
1992 verbose parsed url href: '~1.2.11' }
1993 verbose addNamed [ 'mime', '~1.2.11' ]
1994 verbose addNamed [ null, '>=1.2.11-0 <1.3.0-0' ]
1995 silly lockFile be28297f-mime-1-2-11 mime@~1.2.11
1996 verbose lock mime@~1.2.11 /Users/cedric/.atom/.node-gyp/.atom/.apm/be28297f-mime-1-2-11.lock
1997 info install tunnel-agent@0.4.0
1998 silly addNameRange { name: 'combined-stream',
1998 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
1998 silly addNameRange hasData: false }
1999 silly addNameRange { name: 'mime', range: '>=1.2.11-0 <1.3.0-0', hasData: false }
2000 silly gunzTarPerm extractEntry images/hawk.png
2001 silly gunzTarPerm extractEntry images/logo.png
2002 info postinstall tunnel-agent@0.4.0
2003 silly gunzTarPerm extractEntry Makefile
2004 silly gunzTarPerm extractEntry lib/pubsuffix.js
2005 silly gunzTarPerm extractEntry lib/store.js
2006 silly gunzTarPerm extractEntry lib/browser.js
2007 silly gunzTarPerm extractEntry lib/client.js
2008 verbose url raw async
2009 verbose url resolving [ 'https://registry.npmjs.org/', './async' ]
2010 verbose url resolved https://registry.npmjs.org/async
2011 info trying registry request attempt 1 at 10:15:15
2012 verbose etag "CX1Z0N8YXJPDHDWVXPXGT56H8"
2013 http GET https://registry.npmjs.org/async
2014 silly gunzTarPerm extractEntry lib/crypto.js
2015 silly gunzTarPerm extractEntry lib/index.js
2016 verbose url raw mime
2017 verbose url resolving [ 'https://registry.npmjs.org/', './mime' ]
2018 verbose url resolved https://registry.npmjs.org/mime
2019 info trying registry request attempt 1 at 10:15:15
2020 verbose etag "8EWBPIZYEGKT0NQQ4QN0JIWR9"
2021 http GET https://registry.npmjs.org/mime
2022 verbose url raw combined-stream
2023 verbose url resolving [ 'https://registry.npmjs.org/', './combined-stream' ]
2024 verbose url resolved https://registry.npmjs.org/combined-stream
2025 info trying registry request attempt 1 at 10:15:15
2026 verbose etag "DF6FBBDZJQ0PZNF9UXRDPDCYA"
2027 http GET https://registry.npmjs.org/combined-stream
2028 silly gunzTarPerm extractEntry lib/server.js
2029 silly gunzTarPerm extractEntry lib/utils.js
2030 silly lockFile b3553ea9-uest-node-modules-http-signature tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2031 silly lockFile b3553ea9-uest-node-modules-http-signature tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2032 silly lockFile d3e3bce2-ttp-signature-0-10-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/http-signature/0.10.0/package.tgz
2033 silly lockFile d3e3bce2-ttp-signature-0-10-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/http-signature/0.10.0/package.tgz
2034 info preinstall http-signature@0.10.0
2035 verbose readDependencies using package.json deps
2036 verbose readDependencies using package.json deps
2037 verbose cache add [ 'assert-plus@0.1.2', null ]
2038 verbose cache add name=undefined spec="assert-plus@0.1.2" args=["assert-plus@0.1.2",null]
2039 verbose parsed url { protocol: null,
2039 verbose parsed url slashes: null,
2039 verbose parsed url auth: null,
2039 verbose parsed url host: null,
2039 verbose parsed url port: null,
2039 verbose parsed url hostname: null,
2039 verbose parsed url hash: null,
2039 verbose parsed url search: null,
2039 verbose parsed url query: null,
2039 verbose parsed url pathname: 'assert-plus@0.1.2',
2039 verbose parsed url path: 'assert-plus@0.1.2',
2039 verbose parsed url href: 'assert-plus@0.1.2' }
2040 verbose cache add name="assert-plus" spec="0.1.2" args=["assert-plus","0.1.2"]
2041 verbose parsed url { protocol: null,
2041 verbose parsed url slashes: null,
2041 verbose parsed url auth: null,
2041 verbose parsed url host: null,
2041 verbose parsed url port: null,
2041 verbose parsed url hostname: null,
2041 verbose parsed url hash: null,
2041 verbose parsed url search: null,
2041 verbose parsed url query: null,
2041 verbose parsed url pathname: '0.1.2',
2041 verbose parsed url path: '0.1.2',
2041 verbose parsed url href: '0.1.2' }
2042 verbose addNamed [ 'assert-plus', '0.1.2' ]
2043 verbose addNamed [ '0.1.2', '0.1.2' ]
2044 silly lockFile 46222085-assert-plus-0-1-2 assert-plus@0.1.2
2045 verbose lock assert-plus@0.1.2 /Users/cedric/.atom/.node-gyp/.atom/.apm/46222085-assert-plus-0-1-2.lock
2046 verbose cache add [ 'asn1@0.1.11', null ]
2047 verbose cache add name=undefined spec="asn1@0.1.11" args=["asn1@0.1.11",null]
2048 verbose parsed url { protocol: null,
2048 verbose parsed url slashes: null,
2048 verbose parsed url auth: null,
2048 verbose parsed url host: null,
2048 verbose parsed url port: null,
2048 verbose parsed url hostname: null,
2048 verbose parsed url hash: null,
2048 verbose parsed url search: null,
2048 verbose parsed url query: null,
2048 verbose parsed url pathname: 'asn1@0.1.11',
2048 verbose parsed url path: 'asn1@0.1.11',
2048 verbose parsed url href: 'asn1@0.1.11' }
2049 verbose cache add name="asn1" spec="0.1.11" args=["asn1","0.1.11"]
2050 verbose parsed url { protocol: null,
2050 verbose parsed url slashes: null,
2050 verbose parsed url auth: null,
2050 verbose parsed url host: null,
2050 verbose parsed url port: null,
2050 verbose parsed url hostname: null,
2050 verbose parsed url hash: null,
2050 verbose parsed url search: null,
2050 verbose parsed url query: null,
2050 verbose parsed url pathname: '0.1.11',
2050 verbose parsed url path: '0.1.11',
2050 verbose parsed url href: '0.1.11' }
2051 verbose addNamed [ 'asn1', '0.1.11' ]
2052 verbose addNamed [ '0.1.11', '0.1.11' ]
2053 silly lockFile 41ecb821-asn1-0-1-11 asn1@0.1.11
2054 verbose lock asn1@0.1.11 /Users/cedric/.atom/.node-gyp/.atom/.apm/41ecb821-asn1-0-1-11.lock
2055 verbose cache add [ 'ctype@0.5.2', null ]
2056 verbose cache add name=undefined spec="ctype@0.5.2" args=["ctype@0.5.2",null]
2057 verbose parsed url { protocol: null,
2057 verbose parsed url slashes: null,
2057 verbose parsed url auth: null,
2057 verbose parsed url host: null,
2057 verbose parsed url port: null,
2057 verbose parsed url hostname: null,
2057 verbose parsed url hash: null,
2057 verbose parsed url search: null,
2057 verbose parsed url query: null,
2057 verbose parsed url pathname: 'ctype@0.5.2',
2057 verbose parsed url path: 'ctype@0.5.2',
2057 verbose parsed url href: 'ctype@0.5.2' }
2058 verbose cache add name="ctype" spec="0.5.2" args=["ctype","0.5.2"]
2059 verbose parsed url { protocol: null,
2059 verbose parsed url slashes: null,
2059 verbose parsed url auth: null,
2059 verbose parsed url host: null,
2059 verbose parsed url port: null,
2059 verbose parsed url hostname: null,
2059 verbose parsed url hash: null,
2059 verbose parsed url search: null,
2059 verbose parsed url query: null,
2059 verbose parsed url pathname: '0.5.2',
2059 verbose parsed url path: '0.5.2',
2059 verbose parsed url href: '0.5.2' }
2060 verbose addNamed [ 'ctype', '0.5.2' ]
2061 verbose addNamed [ '0.5.2', '0.5.2' ]
2062 silly lockFile c556016e-ctype-0-5-2 ctype@0.5.2
2063 verbose lock ctype@0.5.2 /Users/cedric/.atom/.node-gyp/.atom/.apm/c556016e-ctype-0-5-2.lock
2064 silly lockFile 1f8ee5f4-s-request-node-modules-node-uuid tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid
2065 silly lockFile 1f8ee5f4-s-request-node-modules-node-uuid tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid
2066 silly lockFile f1cde295--apm-node-uuid-1-4-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/node-uuid/1.4.1/package.tgz
2067 silly lockFile f1cde295--apm-node-uuid-1-4-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/node-uuid/1.4.1/package.tgz
2068 verbose url raw assert-plus/0.1.2
2069 verbose url resolving [ 'https://registry.npmjs.org/', './assert-plus/0.1.2' ]
2070 verbose url resolved https://registry.npmjs.org/assert-plus/0.1.2
2071 info trying registry request attempt 1 at 10:15:15
2072 verbose etag "BR3DQ2N6CAQXDSWT9PCBE4XQY"
2073 http GET https://registry.npmjs.org/assert-plus/0.1.2
2074 verbose url raw ctype/0.5.2
2075 verbose url resolving [ 'https://registry.npmjs.org/', './ctype/0.5.2' ]
2076 verbose url resolved https://registry.npmjs.org/ctype/0.5.2
2077 info trying registry request attempt 1 at 10:15:15
2078 verbose etag "7JSK85P68BN5WY8Q8VR0JQKXU"
2079 http GET https://registry.npmjs.org/ctype/0.5.2
2080 verbose url raw asn1/0.1.11
2081 verbose url resolving [ 'https://registry.npmjs.org/', './asn1/0.1.11' ]
2082 verbose url resolved https://registry.npmjs.org/asn1/0.1.11
2083 info trying registry request attempt 1 at 10:15:15
2084 verbose etag "65BEHEHHZ8F3RWXQS4KMBKS8A"
2085 http GET https://registry.npmjs.org/asn1/0.1.11
2086 info preinstall node-uuid@1.4.1
2087 verbose readDependencies using package.json deps
2088 verbose readDependencies using package.json deps
2089 silly resolved []
2090 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid
2091 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/node-uuid
2092 verbose linkStuff [ false,
2092 verbose linkStuff false,
2092 verbose linkStuff false,
2092 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
2093 info linkStuff node-uuid@1.4.1
2094 verbose linkBins node-uuid@1.4.1
2095 verbose linkMans node-uuid@1.4.1
2096 verbose rebuildBundles node-uuid@1.4.1
2097 info install node-uuid@1.4.1
2098 info postinstall node-uuid@1.4.1
2099 silly gunzTarPerm extractEntry public-suffix.txt
2100 silly lockFile b28bc2f9--request-node-modules-mime-types tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types
2101 silly lockFile b28bc2f9--request-node-modules-mime-types tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types
2102 silly lockFile 4f4bc150-apm-mime-types-1-0-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime-types/1.0.1/package.tgz
2103 silly lockFile 4f4bc150-apm-mime-types-1-0-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime-types/1.0.1/package.tgz
2104 info preinstall mime-types@1.0.1
2105 verbose readDependencies using package.json deps
2106 verbose readDependencies using package.json deps
2107 silly resolved []
2108 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types
2109 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/mime-types
2110 verbose linkStuff [ false,
2110 verbose linkStuff false,
2110 verbose linkStuff false,
2110 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
2111 info linkStuff mime-types@1.0.1
2112 verbose linkBins mime-types@1.0.1
2113 verbose linkMans mime-types@1.0.1
2114 verbose rebuildBundles mime-types@1.0.1
2115 info install mime-types@1.0.1
2116 info postinstall mime-types@1.0.1
2117 silly gunzTarPerm extractEntry test/browser.js
2118 silly gunzTarPerm extractEntry test/client.js
2119 silly gunzTarPerm extractEntry test/crypto.js
2120 silly gunzTarPerm extractEntry test/index.js
2121 silly gunzTarPerm extractEntry test/message.js
2122 silly gunzTarPerm extractEntry test/readme.js
2123 silly gunzTarPerm extractEntry test/server.js
2124 silly gunzTarPerm extractEntry test/uri.js
2125 silly gunzTarPerm extractEntry test/utils.js
2126 silly gunzTarPerm extractEntry example/usage.js
2127 silly lockFile e759ad20-ules-jsdom-node-modules-cssstyle tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle
2128 silly lockFile e759ad20-ules-jsdom-node-modules-cssstyle tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle
2129 silly lockFile a89be876--apm-cssstyle-0-2-14-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssstyle/0.2.14/package.tgz
2130 silly lockFile a89be876--apm-cssstyle-0-2-14-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssstyle/0.2.14/package.tgz
2131 info preinstall cssstyle@0.2.14
2132 verbose readDependencies using package.json deps
2133 verbose readDependencies using package.json deps
2134 verbose cache add [ 'cssom@0.3.x', null ]
2135 verbose cache add name=undefined spec="cssom@0.3.x" args=["cssom@0.3.x",null]
2136 verbose parsed url { protocol: null,
2136 verbose parsed url slashes: null,
2136 verbose parsed url auth: null,
2136 verbose parsed url host: null,
2136 verbose parsed url port: null,
2136 verbose parsed url hostname: null,
2136 verbose parsed url hash: null,
2136 verbose parsed url search: null,
2136 verbose parsed url query: null,
2136 verbose parsed url pathname: 'cssom@0.3.x',
2136 verbose parsed url path: 'cssom@0.3.x',
2136 verbose parsed url href: 'cssom@0.3.x' }
2137 verbose cache add name="cssom" spec="0.3.x" args=["cssom","0.3.x"]
2138 verbose parsed url { protocol: null,
2138 verbose parsed url slashes: null,
2138 verbose parsed url auth: null,
2138 verbose parsed url host: null,
2138 verbose parsed url port: null,
2138 verbose parsed url hostname: null,
2138 verbose parsed url hash: null,
2138 verbose parsed url search: null,
2138 verbose parsed url query: null,
2138 verbose parsed url pathname: '0.3.x',
2138 verbose parsed url path: '0.3.x',
2138 verbose parsed url href: '0.3.x' }
2139 verbose addNamed [ 'cssom', '0.3.x' ]
2140 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
2141 silly lockFile 32550613-cssom-0-3-x cssom@0.3.x
2142 verbose lock cssom@0.3.x /Users/cedric/.atom/.node-gyp/.atom/.apm/32550613-cssom-0-3-x.lock
2143 silly addNameRange { name: 'cssom', range: '>=0.3.0-0 <0.4.0-0', hasData: false }
2144 silly lockFile e0b655c9-equest-node-modules-tough-cookie tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie
2145 silly lockFile e0b655c9-equest-node-modules-tough-cookie tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie
2146 verbose registry.get cssom not expired, no request
2147 silly addNameRange number 2 { name: 'cssom', range: '>=0.3.0-0 <0.4.0-0', hasData: true }
2148 silly addNameRange versions [ 'cssom',
2148 silly addNameRange [ '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.3.0' ] ]
2149 verbose addNamed [ 'cssom', '0.3.0' ]
2150 verbose addNamed [ '0.3.0', '0.3.0' ]
2151 silly lockFile 1f828fab-cssom-0-3-0 cssom@0.3.0
2152 verbose lock cssom@0.3.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/1f828fab-cssom-0-3-0.lock
2153 silly lockFile e23f8e99--tough-cookie-0-12-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tough-cookie/0.12.1/package.tgz
2154 silly lockFile e23f8e99--tough-cookie-0-12-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/tough-cookie/0.12.1/package.tgz
2155 info preinstall tough-cookie@0.12.1
2156 verbose readDependencies using package.json deps
2157 verbose readDependencies using package.json deps
2158 verbose cache add [ 'punycode@>=0.2.0', null ]
2159 verbose cache add name=undefined spec="punycode@>=0.2.0" args=["punycode@>=0.2.0",null]
2160 verbose parsed url { protocol: null,
2160 verbose parsed url slashes: null,
2160 verbose parsed url auth: null,
2160 verbose parsed url host: null,
2160 verbose parsed url port: null,
2160 verbose parsed url hostname: null,
2160 verbose parsed url hash: null,
2160 verbose parsed url search: null,
2160 verbose parsed url query: null,
2160 verbose parsed url pathname: 'punycode@%3E=0.2.0',
2160 verbose parsed url path: 'punycode@%3E=0.2.0',
2160 verbose parsed url href: 'punycode@%3E=0.2.0' }
2161 verbose cache add name="punycode" spec=">=0.2.0" args=["punycode",">=0.2.0"]
2162 verbose parsed url { protocol: null,
2162 verbose parsed url slashes: null,
2162 verbose parsed url auth: null,
2162 verbose parsed url host: null,
2162 verbose parsed url port: null,
2162 verbose parsed url hostname: null,
2162 verbose parsed url hash: null,
2162 verbose parsed url search: null,
2162 verbose parsed url query: null,
2162 verbose parsed url pathname: '%3E=0.2.0',
2162 verbose parsed url path: '%3E=0.2.0',
2162 verbose parsed url href: '%3E=0.2.0' }
2163 verbose addNamed [ 'punycode', '>=0.2.0' ]
2164 verbose addNamed [ null, '>=0.2.0' ]
2165 silly lockFile a6886041-punycode-0-2-0 punycode@>=0.2.0
2166 verbose lock punycode@>=0.2.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/a6886041-punycode-0-2-0.lock
2167 silly addNameRange { name: 'punycode', range: '>=0.2.0', hasData: false }
2168 verbose url raw punycode
2169 verbose url resolving [ 'https://registry.npmjs.org/', './punycode' ]
2170 verbose url resolved https://registry.npmjs.org/punycode
2171 info trying registry request attempt 1 at 10:15:15
2172 verbose etag "7XS5KRQCKQGXZAL4N9C3W41BU"
2173 http GET https://registry.npmjs.org/punycode
2174 silly lockFile 1f828fab-cssom-0-3-0 cssom@0.3.0
2175 silly lockFile 1f828fab-cssom-0-3-0 cssom@0.3.0
2176 silly lockFile 32550613-cssom-0-3-x cssom@0.3.x
2177 silly lockFile 32550613-cssom-0-3-x cssom@0.3.x
2178 silly resolved [ { name: 'cssom',
2178 silly resolved description: 'CSS Object Model implementation and CSS parser',
2178 silly resolved keywords: [ 'CSS', 'CSSOM', 'parser', 'styleSheet' ],
2178 silly resolved version: '0.3.0',
2178 silly resolved homepage: 'https://github.com/NV/CSSOM',
2178 silly resolved author: { name: 'Nikita Vasilyev', email: 'me@elv1s.ru' },
2178 silly resolved repository: { type: 'git', url: 'git://github.com/NV/CSSOM.git' },
2178 silly resolved bugs: { url: 'https://github.com/NV/CSSOM/issues' },
2178 silly resolved main: './lib/index.js',
2178 silly resolved devDependencies: { jake: '~0.7.3' },
2178 silly resolved license: { type: 'MIT', url: 'http://creativecommons.org/licenses/MIT/' },
2178 silly resolved scripts: { prepublish: 'jake lib/index.js' },
2178 silly resolved readme: '# CSSOM\n\nCSSOM.js is a CSS parser written in pure JavaScript. It also a partial implementation of [CSS Object Model](http://dev.w3.org/csswg/cssom/). \n\n CSSOM.parse("body {color: black}")\n -> {\n cssRules: [\n {\n selectorText: "body",\n style: {\n 0: "color",\n color: "black",\n length: 1\n }\n }\n ]\n }\n\n\n## [Parser demo](http://nv.github.com/CSSOM/docs/parse.html)\n\nWorks well in Google Chrome 6+, Safari 5+, Firefox 3.6+, Opera 10.63+.\nDoesn\'t work in IE < 9 because of unsupported getters/setters.\n\nTo use CSSOM.js in the browser you might want to build a one-file version with [Jake](http://github.com/mde/jake):\n\n ➤ jake\n build/CSSOM.js is done\n\nTo use it with Node.js:\n\n npm install cssom\n\n## [Specs](http://nv.github.com/CSSOM/spec/)\n\n## [Who uses CSSOM.js](https://github.com/NV/CSSOM/wiki/Who-uses-CSSOM.js)\n',
2178 silly resolved readmeFilename: 'README.mdown',
2178 silly resolved _id: 'cssom@0.3.0',
2178 silly resolved _from: 'cssom@0.3.x' } ]
2179 info install cssom@0.3.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle
2180 info installOne cssom@0.3.0
2181 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom unbuild
2182 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.3.0/package.tgz
2183 silly lockFile 461905b4-ules-cssstyle-node-modules-cssom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom
2184 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom /Users/cedric/.atom/.node-gyp/.atom/.apm/461905b4-ules-cssstyle-node-modules-cssom.lock
2185 silly lockFile a730e5dc-atom-apm-cssom-0-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.3.0/package.tgz
2186 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.3.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/a730e5dc-atom-apm-cssom-0-3-0-package-tgz.lock
2187 silly gunzTarPerm modes [ '755', '644' ]
2188 silly lockFile c471ad88-odules-request-node-modules-hawk tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2189 silly lockFile c471ad88-odules-request-node-modules-hawk tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2190 silly lockFile 77ee470b--atom-apm-hawk-1-1-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hawk/1.1.1/package.tgz
2191 silly lockFile 77ee470b--atom-apm-hawk-1-1-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hawk/1.1.1/package.tgz
2192 info preinstall hawk@1.1.1
2193 verbose readDependencies using package.json deps
2194 verbose readDependencies using package.json deps
2195 verbose cache add [ 'hoek@0.9.x', null ]
2196 verbose cache add name=undefined spec="hoek@0.9.x" args=["hoek@0.9.x",null]
2197 verbose parsed url { protocol: null,
2197 verbose parsed url slashes: null,
2197 verbose parsed url auth: null,
2197 verbose parsed url host: null,
2197 verbose parsed url port: null,
2197 verbose parsed url hostname: null,
2197 verbose parsed url hash: null,
2197 verbose parsed url search: null,
2197 verbose parsed url query: null,
2197 verbose parsed url pathname: 'hoek@0.9.x',
2197 verbose parsed url path: 'hoek@0.9.x',
2197 verbose parsed url href: 'hoek@0.9.x' }
2198 verbose cache add name="hoek" spec="0.9.x" args=["hoek","0.9.x"]
2199 verbose parsed url { protocol: null,
2199 verbose parsed url slashes: null,
2199 verbose parsed url auth: null,
2199 verbose parsed url host: null,
2199 verbose parsed url port: null,
2199 verbose parsed url hostname: null,
2199 verbose parsed url hash: null,
2199 verbose parsed url search: null,
2199 verbose parsed url query: null,
2199 verbose parsed url pathname: '0.9.x',
2199 verbose parsed url path: '0.9.x',
2199 verbose parsed url href: '0.9.x' }
2200 verbose addNamed [ 'hoek', '0.9.x' ]
2201 verbose addNamed [ null, '>=0.9.0-0 <0.10.0-0' ]
2202 silly lockFile 58ccaf9a-hoek-0-9-x hoek@0.9.x
2203 verbose lock hoek@0.9.x /Users/cedric/.atom/.node-gyp/.atom/.apm/58ccaf9a-hoek-0-9-x.lock
2204 verbose cache add [ 'boom@0.4.x', null ]
2205 verbose cache add name=undefined spec="boom@0.4.x" args=["boom@0.4.x",null]
2206 verbose parsed url { protocol: null,
2206 verbose parsed url slashes: null,
2206 verbose parsed url auth: null,
2206 verbose parsed url host: null,
2206 verbose parsed url port: null,
2206 verbose parsed url hostname: null,
2206 verbose parsed url hash: null,
2206 verbose parsed url search: null,
2206 verbose parsed url query: null,
2206 verbose parsed url pathname: 'boom@0.4.x',
2206 verbose parsed url path: 'boom@0.4.x',
2206 verbose parsed url href: 'boom@0.4.x' }
2207 verbose cache add name="boom" spec="0.4.x" args=["boom","0.4.x"]
2208 verbose parsed url { protocol: null,
2208 verbose parsed url slashes: null,
2208 verbose parsed url auth: null,
2208 verbose parsed url host: null,
2208 verbose parsed url port: null,
2208 verbose parsed url hostname: null,
2208 verbose parsed url hash: null,
2208 verbose parsed url search: null,
2208 verbose parsed url query: null,
2208 verbose parsed url pathname: '0.4.x',
2208 verbose parsed url path: '0.4.x',
2208 verbose parsed url href: '0.4.x' }
2209 verbose addNamed [ 'boom', '0.4.x' ]
2210 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
2211 silly lockFile 225d04ea-boom-0-4-x boom@0.4.x
2212 verbose lock boom@0.4.x /Users/cedric/.atom/.node-gyp/.atom/.apm/225d04ea-boom-0-4-x.lock
2213 verbose cache add [ 'cryptiles@0.2.x', null ]
2214 verbose cache add name=undefined spec="cryptiles@0.2.x" args=["cryptiles@0.2.x",null]
2215 verbose parsed url { protocol: null,
2215 verbose parsed url slashes: null,
2215 verbose parsed url auth: null,
2215 verbose parsed url host: null,
2215 verbose parsed url port: null,
2215 verbose parsed url hostname: null,
2215 verbose parsed url hash: null,
2215 verbose parsed url search: null,
2215 verbose parsed url query: null,
2215 verbose parsed url pathname: 'cryptiles@0.2.x',
2215 verbose parsed url path: 'cryptiles@0.2.x',
2215 verbose parsed url href: 'cryptiles@0.2.x' }
2216 verbose cache add name="cryptiles" spec="0.2.x" args=["cryptiles","0.2.x"]
2217 verbose parsed url { protocol: null,
2217 verbose parsed url slashes: null,
2217 verbose parsed url auth: null,
2217 verbose parsed url host: null,
2217 verbose parsed url port: null,
2217 verbose parsed url hostname: null,
2217 verbose parsed url hash: null,
2217 verbose parsed url search: null,
2217 verbose parsed url query: null,
2217 verbose parsed url pathname: '0.2.x',
2217 verbose parsed url path: '0.2.x',
2217 verbose parsed url href: '0.2.x' }
2218 verbose addNamed [ 'cryptiles', '0.2.x' ]
2219 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
2220 silly lockFile 75d7e584-cryptiles-0-2-x cryptiles@0.2.x
2221 verbose lock cryptiles@0.2.x /Users/cedric/.atom/.node-gyp/.atom/.apm/75d7e584-cryptiles-0-2-x.lock
2222 silly addNameRange { name: 'hoek', range: '>=0.9.0-0 <0.10.0-0', hasData: false }
2223 verbose cache add [ 'sntp@0.2.x', null ]
2224 verbose cache add name=undefined spec="sntp@0.2.x" args=["sntp@0.2.x",null]
2225 verbose parsed url { protocol: null,
2225 verbose parsed url slashes: null,
2225 verbose parsed url auth: null,
2225 verbose parsed url host: null,
2225 verbose parsed url port: null,
2225 verbose parsed url hostname: null,
2225 verbose parsed url hash: null,
2225 verbose parsed url search: null,
2225 verbose parsed url query: null,
2225 verbose parsed url pathname: 'sntp@0.2.x',
2225 verbose parsed url path: 'sntp@0.2.x',
2225 verbose parsed url href: 'sntp@0.2.x' }
2226 verbose cache add name="sntp" spec="0.2.x" args=["sntp","0.2.x"]
2227 verbose parsed url { protocol: null,
2227 verbose parsed url slashes: null,
2227 verbose parsed url auth: null,
2227 verbose parsed url host: null,
2227 verbose parsed url port: null,
2227 verbose parsed url hostname: null,
2227 verbose parsed url hash: null,
2227 verbose parsed url search: null,
2227 verbose parsed url query: null,
2227 verbose parsed url pathname: '0.2.x',
2227 verbose parsed url path: '0.2.x',
2227 verbose parsed url href: '0.2.x' }
2228 verbose addNamed [ 'sntp', '0.2.x' ]
2229 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
2230 silly lockFile b35a0361-sntp-0-2-x sntp@0.2.x
2231 verbose lock sntp@0.2.x /Users/cedric/.atom/.node-gyp/.atom/.apm/b35a0361-sntp-0-2-x.lock
2232 silly addNameRange { name: 'boom', range: '>=0.4.0-0 <0.5.0-0', hasData: false }
2233 silly addNameRange { name: 'cryptiles',
2233 silly addNameRange range: '>=0.2.0-0 <0.3.0-0',
2233 silly addNameRange hasData: false }
2234 silly addNameRange { name: 'sntp', range: '>=0.2.0-0 <0.3.0-0', hasData: false }
2235 silly gunzTarPerm extractEntry package.json
2236 http 304 https://registry.npmjs.org/async
2237 silly registry.get cb [ 304,
2237 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
2237 silly registry.get server: 'Apache',
2237 silly registry.get via: '1.1 varnish',
2237 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:41 GMT',
2237 silly registry.get 'cache-control': 'max-age=30',
2237 silly registry.get etag: '"CX1Z0N8YXJPDHDWVXPXGT56H8"',
2237 silly registry.get 'x-served-by': 'cache-fra1235-FRA',
2237 silly registry.get 'x-cache': 'HIT',
2237 silly registry.get 'x-cache-hits': '3',
2237 silly registry.get 'x-timer': 'S1404807292.915336,VS0,VE0',
2237 silly registry.get vary: 'Accept',
2237 silly registry.get 'content-length': '0',
2237 silly registry.get 'keep-alive': 'timeout=10, max=50',
2237 silly registry.get connection: 'Keep-Alive' } ]
2238 verbose etag async from cache
2239 silly gunzTarPerm extractEntry .npmignore
2240 silly gunzTarPerm extractEntry .gitmodules
2241 verbose url raw hoek
2242 verbose url resolving [ 'https://registry.npmjs.org/', './hoek' ]
2243 verbose url resolved https://registry.npmjs.org/hoek
2244 info trying registry request attempt 1 at 10:15:16
2245 verbose etag "195HL5KEQLICZYKO2OXFJH9G6"
2246 http GET https://registry.npmjs.org/hoek
2247 verbose url raw boom
2248 verbose url resolving [ 'https://registry.npmjs.org/', './boom' ]
2249 verbose url resolved https://registry.npmjs.org/boom
2250 info trying registry request attempt 1 at 10:15:16
2251 verbose etag "1K8YSJHQ6DDM1RWONJOHC3D54"
2252 http GET https://registry.npmjs.org/boom
2253 verbose url raw cryptiles
2254 verbose url resolving [ 'https://registry.npmjs.org/', './cryptiles' ]
2255 verbose url resolved https://registry.npmjs.org/cryptiles
2256 info trying registry request attempt 1 at 10:15:16
2257 verbose etag "EFGHQ21JCR6P142IH2L5HX827"
2258 http GET https://registry.npmjs.org/cryptiles
2259 verbose url raw sntp
2260 verbose url resolving [ 'https://registry.npmjs.org/', './sntp' ]
2261 verbose url resolved https://registry.npmjs.org/sntp
2262 info trying registry request attempt 1 at 10:15:16
2263 verbose etag "E9N15FDV20NK8BFPIXWGHDMHE"
2264 http GET https://registry.npmjs.org/sntp
2265 silly addNameRange number 2 { name: 'async', range: '>=0.9.0-0 <0.10.0-0', hasData: true }
2266 silly addNameRange versions [ 'async',
2266 silly addNameRange [ '0.1.0',
2266 silly addNameRange '0.1.1',
2266 silly addNameRange '0.1.2',
2266 silly addNameRange '0.1.3',
2266 silly addNameRange '0.1.4',
2266 silly addNameRange '0.1.5',
2266 silly addNameRange '0.1.6',
2266 silly addNameRange '0.1.7',
2266 silly addNameRange '0.1.8',
2266 silly addNameRange '0.1.9',
2266 silly addNameRange '0.1.10',
2266 silly addNameRange '0.1.11',
2266 silly addNameRange '0.1.12',
2266 silly addNameRange '0.1.13',
2266 silly addNameRange '0.1.14',
2266 silly addNameRange '0.1.15',
2266 silly addNameRange '0.1.16',
2266 silly addNameRange '0.1.17',
2266 silly addNameRange '0.1.18',
2266 silly addNameRange '0.1.19',
2266 silly addNameRange '0.1.20',
2266 silly addNameRange '0.1.21',
2266 silly addNameRange '0.1.22',
2266 silly addNameRange '0.2.0',
2266 silly addNameRange '0.2.1',
2266 silly addNameRange '0.2.2',
2266 silly addNameRange '0.2.3',
2266 silly addNameRange '0.2.4',
2266 silly addNameRange '0.2.5',
2266 silly addNameRange '0.2.6',
2266 silly addNameRange '0.2.7',
2266 silly addNameRange '0.2.8',
2266 silly addNameRange '0.2.9',
2266 silly addNameRange '0.2.10',
2266 silly addNameRange '0.3.0',
2266 silly addNameRange '0.4.0',
2266 silly addNameRange '0.4.1',
2266 silly addNameRange '0.5.0',
2266 silly addNameRange '0.6.0',
2266 silly addNameRange '0.6.1',
2266 silly addNameRange '0.6.2',
2266 silly addNameRange '0.7.0',
2266 silly addNameRange '0.8.0',
2266 silly addNameRange '0.9.0' ] ]
2267 verbose addNamed [ 'async', '0.9.0' ]
2268 verbose addNamed [ '0.9.0', '0.9.0' ]
2269 silly lockFile 9a58a886-async-0-9-0 async@0.9.0
2270 verbose lock async@0.9.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/9a58a886-async-0-9-0.lock
2271 silly gunzTarPerm extractEntry MIT-LICENSE.txt
2272 silly gunzTarPerm extractEntry README.mdown
2273 silly gunzTarPerm extractEntry lib/CSSDocumentRule.js
2274 silly gunzTarPerm extractEntry lib/CSSMediaRule.js
2275 silly gunzTarPerm extractEntry lib/CSSRule.js
2276 silly gunzTarPerm extractEntry lib/CSSStyleDeclaration.js
2277 silly gunzTarPerm extractEntry lib/CSSStyleRule.js
2278 silly gunzTarPerm extractEntry lib/CSSKeyframesRule.js
2279 silly gunzTarPerm extractEntry lib/CSSValue.js
2280 silly gunzTarPerm extractEntry lib/CSSValueExpression.js
2281 silly gunzTarPerm extractEntry lib/MatcherList.js
2282 silly gunzTarPerm extractEntry lib/MediaList.js
2283 silly gunzTarPerm extractEntry lib/StyleSheet.js
2284 silly gunzTarPerm extractEntry lib/CSSKeyframeRule.js
2285 silly gunzTarPerm extractEntry lib/clone.js
2286 silly gunzTarPerm extractEntry lib/CSSImportRule.js
2287 silly gunzTarPerm extractEntry lib/index.js
2288 silly gunzTarPerm extractEntry lib/CSSFontFaceRule.js
2289 silly gunzTarPerm extractEntry lib/parse.js
2290 silly gunzTarPerm extractEntry lib/CSSStyleSheet.js
2291 silly lockFile 461905b4-ules-cssstyle-node-modules-cssom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom
2292 silly lockFile 461905b4-ules-cssstyle-node-modules-cssom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom
2293 silly lockFile a730e5dc-atom-apm-cssom-0-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.3.0/package.tgz
2294 silly lockFile a730e5dc-atom-apm-cssom-0-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cssom/0.3.0/package.tgz
2295 info preinstall cssom@0.3.0
2296 silly lockFile 9a58a886-async-0-9-0 async@0.9.0
2297 silly lockFile 9a58a886-async-0-9-0 async@0.9.0
2298 verbose readDependencies using package.json deps
2299 silly lockFile 38be4a8c-async-0-9-0 async@~0.9.0
2300 silly lockFile 38be4a8c-async-0-9-0 async@~0.9.0
2301 verbose readDependencies using package.json deps
2302 silly resolved []
2303 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom
2304 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules/cssom
2305 verbose linkStuff [ false,
2305 verbose linkStuff false,
2305 verbose linkStuff false,
2305 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle/node_modules' ]
2306 info linkStuff cssom@0.3.0
2307 verbose linkBins cssom@0.3.0
2308 verbose linkMans cssom@0.3.0
2309 verbose rebuildBundles cssom@0.3.0
2310 info install cssom@0.3.0
2311 info postinstall cssom@0.3.0
2312 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle
2313 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/cssstyle
2314 verbose linkStuff [ false,
2314 verbose linkStuff false,
2314 verbose linkStuff false,
2314 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules' ]
2315 info linkStuff cssstyle@0.2.14
2316 verbose linkBins cssstyle@0.2.14
2317 verbose linkMans cssstyle@0.2.14
2318 verbose rebuildBundles cssstyle@0.2.14
2319 verbose rebuildBundles [ 'cssom' ]
2320 info install cssstyle@0.2.14
2321 info postinstall cssstyle@0.2.14
2322 http 304 https://registry.npmjs.org/mime
2323 silly registry.get cb [ 304,
2323 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
2323 silly registry.get server: 'Apache',
2323 silly registry.get via: '1.1 varnish',
2323 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:38 GMT',
2323 silly registry.get 'cache-control': 'max-age=30',
2323 silly registry.get etag: '"8EWBPIZYEGKT0NQQ4QN0JIWR9"',
2323 silly registry.get 'x-served-by': 'cache-fra1227-FRA',
2323 silly registry.get 'x-cache': 'HIT',
2323 silly registry.get 'x-cache-hits': '2',
2323 silly registry.get 'x-timer': 'S1404807292.965240,VS0,VE0',
2323 silly registry.get vary: 'Accept',
2323 silly registry.get 'content-length': '0',
2323 silly registry.get 'keep-alive': 'timeout=10, max=50',
2323 silly registry.get connection: 'Keep-Alive' } ]
2324 verbose etag mime from cache
2325 http 304 https://registry.npmjs.org/combined-stream
2326 silly registry.get cb [ 304,
2326 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
2326 silly registry.get server: 'Apache',
2326 silly registry.get via: '1.1 varnish',
2326 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:49 GMT',
2326 silly registry.get 'cache-control': 'max-age=30',
2326 silly registry.get etag: '"DF6FBBDZJQ0PZNF9UXRDPDCYA"',
2326 silly registry.get 'x-served-by': 'cache-fra1230-FRA',
2326 silly registry.get 'x-cache': 'HIT',
2326 silly registry.get 'x-cache-hits': '2',
2326 silly registry.get 'x-timer': 'S1404807292.966438,VS0,VE0',
2326 silly registry.get vary: 'Accept',
2326 silly registry.get 'content-length': '0',
2326 silly registry.get 'keep-alive': 'timeout=10, max=50',
2326 silly registry.get connection: 'Keep-Alive' } ]
2327 verbose etag combined-stream from cache
2328 silly addNameRange number 2 { name: 'mime', range: '>=1.2.11-0 <1.3.0-0', hasData: true }
2329 silly addNameRange versions [ 'mime',
2329 silly addNameRange [ '1.0.0',
2329 silly addNameRange '1.1.0',
2329 silly addNameRange '1.2.1',
2329 silly addNameRange '1.2.2',
2329 silly addNameRange '1.2.3',
2329 silly addNameRange '1.2.4',
2329 silly addNameRange '1.2.5',
2329 silly addNameRange '1.2.6',
2329 silly addNameRange '1.2.7',
2329 silly addNameRange '1.2.8',
2329 silly addNameRange '1.2.9',
2329 silly addNameRange '1.2.10',
2329 silly addNameRange '1.2.11' ] ]
2330 verbose addNamed [ 'mime', '1.2.11' ]
2331 verbose addNamed [ '1.2.11', '1.2.11' ]
2332 silly lockFile c4b0741f-mime-1-2-11 mime@1.2.11
2333 verbose lock mime@1.2.11 /Users/cedric/.atom/.node-gyp/.atom/.apm/c4b0741f-mime-1-2-11.lock
2334 silly addNameRange number 2 { name: 'combined-stream',
2334 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
2334 silly addNameRange hasData: true }
2335 silly addNameRange versions [ 'combined-stream',
2335 silly addNameRange [ '0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5' ] ]
2336 verbose addNamed [ 'combined-stream', '0.0.5' ]
2337 verbose addNamed [ '0.0.5', '0.0.5' ]
2338 silly lockFile a9334ff4-combined-stream-0-0-5 combined-stream@0.0.5
2339 verbose lock combined-stream@0.0.5 /Users/cedric/.atom/.node-gyp/.atom/.apm/a9334ff4-combined-stream-0-0-5.lock
2340 http 304 https://registry.npmjs.org/assert-plus/0.1.2
2341 silly registry.get cb [ 304,
2341 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
2341 silly registry.get server: 'Apache',
2341 silly registry.get via: '1.1 varnish',
2341 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:10:16 GMT',
2341 silly registry.get 'cache-control': 'max-age=30',
2341 silly registry.get etag: '"BR3DQ2N6CAQXDSWT9PCBE4XQY"',
2341 silly registry.get 'x-served-by': 'cache-fra1227-FRA',
2341 silly registry.get 'x-cache': 'HIT',
2341 silly registry.get 'x-cache-hits': '59',
2341 silly registry.get 'x-timer': 'S1404807292.971653,VS0,VE0',
2341 silly registry.get vary: 'Accept',
2341 silly registry.get 'content-length': '0',
2341 silly registry.get 'keep-alive': 'timeout=10, max=50',
2341 silly registry.get connection: 'Keep-Alive' } ]
2342 verbose etag assert-plus/0.1.2 from cache
2343 http 304 https://registry.npmjs.org/asn1/0.1.11
2344 silly registry.get cb [ 304,
2344 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
2344 silly registry.get server: 'Apache',
2344 silly registry.get via: '1.1 varnish',
2344 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:52 GMT',
2344 silly registry.get 'cache-control': 'max-age=30',
2344 silly registry.get etag: '"65BEHEHHZ8F3RWXQS4KMBKS8A"',
2344 silly registry.get 'x-served-by': 'cache-fra1235-FRA',
2344 silly registry.get 'x-cache': 'HIT',
2344 silly registry.get 'x-cache-hits': '1',
2344 silly registry.get 'x-timer': 'S1404807292.971771,VS0,VE0',
2344 silly registry.get vary: 'Accept',
2344 silly registry.get 'content-length': '0',
2344 silly registry.get 'keep-alive': 'timeout=10, max=49',
2344 silly registry.get connection: 'Keep-Alive' } ]
2345 verbose etag asn1/0.1.11 from cache
2346 http 304 https://registry.npmjs.org/ctype/0.5.2
2347 silly registry.get cb [ 304,
2347 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:52 GMT',
2347 silly registry.get server: 'Apache',
2347 silly registry.get via: '1.1 varnish',
2347 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:38 GMT',
2347 silly registry.get 'cache-control': 'max-age=30',
2347 silly registry.get etag: '"7JSK85P68BN5WY8Q8VR0JQKXU"',
2347 silly registry.get 'x-served-by': 'cache-fra1220-FRA',
2347 silly registry.get 'x-cache': 'HIT',
2347 silly registry.get 'x-cache-hits': '2',
2347 silly registry.get 'x-timer': 'S1404807292.972893,VS0,VE0',
2347 silly registry.get vary: 'Accept',
2347 silly registry.get 'content-length': '0',
2347 silly registry.get 'keep-alive': 'timeout=10, max=50',
2347 silly registry.get connection: 'Keep-Alive' } ]
2348 verbose etag ctype/0.5.2 from cache
2349 silly lockFile c4b0741f-mime-1-2-11 mime@1.2.11
2350 silly lockFile c4b0741f-mime-1-2-11 mime@1.2.11
2351 silly lockFile be28297f-mime-1-2-11 mime@~1.2.11
2352 silly lockFile be28297f-mime-1-2-11 mime@~1.2.11
2353 http 304 https://registry.npmjs.org/punycode
2354 silly registry.get cb [ 304,
2354 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:53 GMT',
2354 silly registry.get server: 'Apache',
2354 silly registry.get via: '1.1 varnish',
2354 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:30 GMT',
2354 silly registry.get 'cache-control': 'max-age=30',
2354 silly registry.get etag: '"7XS5KRQCKQGXZAL4N9C3W41BU"',
2354 silly registry.get 'x-served-by': 'cache-fra1227-FRA',
2354 silly registry.get 'x-cache': 'HIT',
2354 silly registry.get 'x-cache-hits': '2',
2354 silly registry.get 'x-timer': 'S1404807293.038761,VS0,VE0',
2354 silly registry.get vary: 'Accept',
2354 silly registry.get 'content-length': '0',
2354 silly registry.get 'keep-alive': 'timeout=10, max=49',
2354 silly registry.get connection: 'Keep-Alive' } ]
2355 verbose etag punycode from cache
2356 http 304 https://registry.npmjs.org/hoek
2357 silly registry.get cb [ 304,
2357 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:53 GMT',
2357 silly registry.get server: 'Apache',
2357 silly registry.get via: '1.1 varnish',
2357 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:53 GMT',
2357 silly registry.get 'cache-control': 'max-age=30',
2357 silly registry.get etag: '"195HL5KEQLICZYKO2OXFJH9G6"',
2357 silly registry.get 'x-served-by': 'cache-fra1230-FRA',
2357 silly registry.get 'x-cache': 'HIT',
2357 silly registry.get 'x-cache-hits': '1',
2357 silly registry.get 'x-timer': 'S1404807293.039990,VS0,VE0',
2357 silly registry.get vary: 'Accept',
2357 silly registry.get 'content-length': '0',
2357 silly registry.get 'keep-alive': 'timeout=10, max=49',
2357 silly registry.get connection: 'Keep-Alive' } ]
2358 verbose etag hoek from cache
2359 http 304 https://registry.npmjs.org/sntp
2360 silly registry.get cb [ 304,
2360 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:53 GMT',
2360 silly registry.get server: 'Apache',
2360 silly registry.get via: '1.1 varnish',
2360 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:53 GMT',
2360 silly registry.get 'cache-control': 'max-age=30',
2360 silly registry.get etag: '"E9N15FDV20NK8BFPIXWGHDMHE"',
2360 silly registry.get 'x-served-by': 'cache-fra1220-FRA',
2360 silly registry.get 'x-cache': 'HIT',
2360 silly registry.get 'x-cache-hits': '1',
2360 silly registry.get 'x-timer': 'S1404807293.043344,VS0,VE0',
2360 silly registry.get vary: 'Accept',
2360 silly registry.get 'content-length': '0',
2360 silly registry.get 'keep-alive': 'timeout=10, max=49',
2360 silly registry.get connection: 'Keep-Alive' } ]
2361 verbose etag sntp from cache
2362 http 304 https://registry.npmjs.org/cryptiles
2363 silly registry.get cb [ 304,
2363 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:53 GMT',
2363 silly registry.get server: 'Apache',
2363 silly registry.get via: '1.1 varnish',
2363 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:53 GMT',
2363 silly registry.get 'cache-control': 'max-age=30',
2363 silly registry.get etag: '"EFGHQ21JCR6P142IH2L5HX827"',
2363 silly registry.get 'x-served-by': 'cache-fra1235-FRA',
2363 silly registry.get 'x-cache': 'HIT',
2363 silly registry.get 'x-cache-hits': '1',
2363 silly registry.get 'x-timer': 'S1404807293.042393,VS0,VE0',
2363 silly registry.get vary: 'Accept',
2363 silly registry.get 'content-length': '0',
2363 silly registry.get 'keep-alive': 'timeout=10, max=48',
2363 silly registry.get connection: 'Keep-Alive' } ]
2364 verbose etag cryptiles from cache
2365 http 304 https://registry.npmjs.org/boom
2366 silly registry.get cb [ 304,
2366 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:53 GMT',
2366 silly registry.get server: 'Apache',
2366 silly registry.get via: '1.1 varnish',
2366 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:13:53 GMT',
2366 silly registry.get 'cache-control': 'max-age=30',
2366 silly registry.get etag: '"1K8YSJHQ6DDM1RWONJOHC3D54"',
2366 silly registry.get 'x-served-by': 'cache-fra1227-FRA',
2366 silly registry.get 'x-cache': 'HIT',
2366 silly registry.get 'x-cache-hits': '24',
2366 silly registry.get 'x-timer': 'S1404807293.041602,VS0,VE0',
2366 silly registry.get vary: 'Accept',
2366 silly registry.get 'content-length': '0',
2366 silly registry.get 'keep-alive': 'timeout=10, max=49',
2366 silly registry.get connection: 'Keep-Alive' } ]
2367 verbose etag boom from cache
2368 silly lockFile a9334ff4-combined-stream-0-0-5 combined-stream@0.0.5
2369 silly lockFile a9334ff4-combined-stream-0-0-5 combined-stream@0.0.5
2370 silly addNameRange number 2 { name: 'punycode', range: '>=0.2.0', hasData: true }
2371 silly addNameRange versions [ 'punycode',
2371 silly addNameRange [ '0.0.1',
2371 silly addNameRange '0.0.2',
2371 silly addNameRange '0.0.1337',
2371 silly addNameRange '0.1.0',
2371 silly addNameRange '0.1.1',
2371 silly addNameRange '0.1.2',
2371 silly addNameRange '0.2.0',
2371 silly addNameRange '0.2.1',
2371 silly addNameRange '0.2.2',
2371 silly addNameRange '0.3.0',
2371 silly addNameRange '1.0.0',
2371 silly addNameRange '1.1.0',
2371 silly addNameRange '1.1.1',
2371 silly addNameRange '1.2.0',
2371 silly addNameRange '1.2.1',
2371 silly addNameRange '1.2.2',
2371 silly addNameRange '1.2.3',
2371 silly addNameRange '1.2.4',
2371 silly addNameRange '1.3.0' ] ]
2372 verbose addNamed [ 'punycode', '1.3.0' ]
2373 verbose addNamed [ '1.3.0', '1.3.0' ]
2374 silly lockFile f34158f6-punycode-1-3-0 punycode@1.3.0
2375 verbose lock punycode@1.3.0 /Users/cedric/.atom/.node-gyp/.atom/.apm/f34158f6-punycode-1-3-0.lock
2376 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
2377 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
2378 silly addNameRange number 2 { name: 'cryptiles', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
2379 silly addNameRange versions [ 'cryptiles',
2379 silly addNameRange [ '0.0.1',
2379 silly addNameRange '0.0.2',
2379 silly addNameRange '0.1.0',
2379 silly addNameRange '0.1.1',
2379 silly addNameRange '0.1.2',
2379 silly addNameRange '0.1.3',
2379 silly addNameRange '0.2.0',
2379 silly addNameRange '0.2.1',
2379 silly addNameRange '0.2.2',
2379 silly addNameRange '1.0.0',
2379 silly addNameRange '1.0.1',
2379 silly addNameRange '2.0.0',
2379 silly addNameRange '2.0.1' ] ]
2380 verbose addNamed [ 'cryptiles', '0.2.2' ]
2381 verbose addNamed [ '0.2.2', '0.2.2' ]
2382 silly lockFile d1e460c8-cryptiles-0-2-2 cryptiles@0.2.2
2383 verbose lock cryptiles@0.2.2 /Users/cedric/.atom/.node-gyp/.atom/.apm/d1e460c8-cryptiles-0-2-2.lock
2384 silly addNameRange number 2 { name: 'boom', range: '>=0.4.0-0 <0.5.0-0', hasData: true }
2385 silly addNameRange versions [ 'boom',
2385 silly addNameRange [ '0.0.1',
2385 silly addNameRange '0.0.2',
2385 silly addNameRange '0.1.0',
2385 silly addNameRange '0.2.0',
2385 silly addNameRange '0.2.1',
2385 silly addNameRange '0.3.0',
2385 silly addNameRange '0.3.1',
2385 silly addNameRange '0.3.2',
2385 silly addNameRange '0.3.3',
2385 silly addNameRange '0.3.4',
2385 silly addNameRange '0.3.5',
2385 silly addNameRange '0.3.6',
2385 silly addNameRange '0.3.7',
2385 silly addNameRange '0.3.8',
2385 silly addNameRange '0.4.0',
2385 silly addNameRange '0.4.1',
2385 silly addNameRange '0.4.2',
2385 silly addNameRange '1.0.0',
2385 silly addNameRange '1.0.1',
2385 silly addNameRange '1.0.2',
2385 silly addNameRange '1.1.0',
2385 silly addNameRange '1.1.1',
2385 silly addNameRange '1.1.2',
2385 silly addNameRange '1.2.0',
2385 silly addNameRange '1.2.1',
2385 silly addNameRange '2.0.0',
2385 silly addNameRange '2.1.0',
2385 silly addNameRange '2.2.0',
2385 silly addNameRange '2.2.1',
2385 silly addNameRange '2.2.2',
2385 silly addNameRange '2.3.0',
2385 silly addNameRange '2.4.0',
2385 silly addNameRange '2.4.1',
2385 silly addNameRange '2.4.2' ] ]
2386 verbose addNamed [ 'boom', '0.4.2' ]
2387 verbose addNamed [ '0.4.2', '0.4.2' ]
2388 silly lockFile 5b106bb4-boom-0-4-2 boom@0.4.2
2389 verbose lock boom@0.4.2 /Users/cedric/.atom/.node-gyp/.atom/.apm/5b106bb4-boom-0-4-2.lock
2390 silly addNameRange number 2 { name: 'hoek', range: '>=0.9.0-0 <0.10.0-0', hasData: true }
2391 silly addNameRange versions [ 'hoek',
2391 silly addNameRange [ '0.0.1',
2391 silly addNameRange '0.0.2',
2391 silly addNameRange '0.0.3',
2391 silly addNameRange '0.0.4',
2391 silly addNameRange '0.0.5',
2391 silly addNameRange '0.0.6',
2391 silly addNameRange '0.0.7',
2391 silly addNameRange '0.0.8',
2391 silly addNameRange '0.0.9',
2391 silly addNameRange '0.0.10',
2391 silly addNameRange '0.0.11',
2391 silly addNameRange '0.0.12',
2391 silly addNameRange '0.0.13',
2391 silly addNameRange '0.0.14',
2391 silly addNameRange '0.0.15',
2391 silly addNameRange '0.0.16',
2391 silly addNameRange '0.0.17',
2391 silly addNameRange '0.0.18',
2391 silly addNameRange '0.0.19',
2391 silly addNameRange '0.0.21',
2391 silly addNameRange '0.1.0',
2391 silly addNameRange '0.2.0',
2391 silly addNameRange '0.3.0',
2391 silly addNameRange '0.4.0',
2391 silly addNameRange '0.4.1',
2391 silly addNameRange '0.4.2',
2391 silly addNameRange '0.4.3',
2391 silly addNameRange '0.4.4',
2391 silly addNameRange '0.4.5',
2391 silly addNameRange '0.5.0',
2391 silly addNameRange '0.6.0',
2391 silly addNameRange '0.6.1',
2391 silly addNameRange '0.6.2',
2391 silly addNameRange '0.7.0',
2391 silly addNameRange '0.7.1',
2391 silly addNameRange '0.7.2',
2391 silly addNameRange '0.7.3',
2391 silly addNameRange '0.7.4',
2391 silly addNameRange '0.7.5',
2391 silly addNameRange '0.7.6',
2391 silly addNameRange '0.8.0',
2391 silly addNameRange '0.8.1',
2391 silly addNameRange '0.8.2',
2391 silly addNameRange '0.8.3',
2391 silly addNameRange '0.8.4',
2391 silly addNameRange '0.8.5',
2391 silly addNameRange '0.9.0',
2391 silly addNameRange '0.9.1',
2391 silly addNameRange '0.10.0',
2391 silly addNameRange '1.0.0',
2391 silly addNameRange '1.0.1',
2391 silly addNameRange '1.0.2',
2391 silly addNameRange '1.0.3',
2391 silly addNameRange '1.1.0',
2391 silly addNameRange '1.1.1',
2391 silly addNameRange '1.1.2',
2391 silly addNameRange '1.2.0',
2391 silly addNameRange '1.3.0',
2391 silly addNameRange '1.4.0',
2391 silly addNameRange '1.4.1',
2391 silly addNameRange '1.5.0',
2391 silly addNameRange '1.5.1',
2391 silly addNameRange '1.5.2',
2391 silly addNameRange '2.0.0',
2391 silly addNameRange '2.1.0',
2391 silly addNameRange '2.1.1',
2391 silly addNameRange '2.2.0',
2391 silly addNameRange '2.3.0' ] ]
2392 verbose addNamed [ 'hoek', '0.9.1' ]
2393 verbose addNamed [ '0.9.1', '0.9.1' ]
2394 silly lockFile 8ffbae6b-hoek-0-9-1 hoek@0.9.1
2395 verbose lock hoek@0.9.1 /Users/cedric/.atom/.node-gyp/.atom/.apm/8ffbae6b-hoek-0-9-1.lock
2396 silly lockFile c556016e-ctype-0-5-2 ctype@0.5.2
2397 silly lockFile c556016e-ctype-0-5-2 ctype@0.5.2
2398 silly lockFile 41ecb821-asn1-0-1-11 asn1@0.1.11
2399 silly lockFile 41ecb821-asn1-0-1-11 asn1@0.1.11
2400 silly addNameRange number 2 { name: 'sntp', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
2401 silly addNameRange versions [ 'sntp',
2401 silly addNameRange [ '0.0.0',
2401 silly addNameRange '0.0.1',
2401 silly addNameRange '0.1.0',
2401 silly addNameRange '0.1.1',
2401 silly addNameRange '0.1.2',
2401 silly addNameRange '0.1.3',
2401 silly addNameRange '0.1.4',
2401 silly addNameRange '0.2.0',
2401 silly addNameRange '0.2.1',
2401 silly addNameRange '0.2.2',
2401 silly addNameRange '0.2.3',
2401 silly addNameRange '0.2.4',
2401 silly addNameRange '1.0.0',
2401 silly addNameRange '1.0.1',
2401 silly addNameRange '1.0.2',
2401 silly addNameRange '1.0.3',
2401 silly addNameRange '1.0.4',
2401 silly addNameRange '1.0.5',
2401 silly addNameRange '1.0.6' ] ]
2402 verbose addNamed [ 'sntp', '0.2.4' ]
2403 verbose addNamed [ '0.2.4', '0.2.4' ]
2404 silly lockFile 92c13a43-sntp-0-2-4 sntp@0.2.4
2405 verbose lock sntp@0.2.4 /Users/cedric/.atom/.node-gyp/.atom/.apm/92c13a43-sntp-0-2-4.lock
2406 silly resolved [ { name: 'async',
2406 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
2406 silly resolved main: './lib/async',
2406 silly resolved author: { name: 'Caolan McMahon' },
2406 silly resolved version: '0.9.0',
2406 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
2406 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
2406 silly resolved licenses: [ [Object] ],
2406 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
2406 silly resolved jam: { main: 'lib/async.js', include: [Object] },
2406 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
2406 silly resolved readme: '# Async.js\n\n[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async)\n\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [Node.js](http://nodejs.org), it can also be used directly in the\nbrowser. Also supports [component](https://github.com/component/component).\n\nAsync provides around 20 functions that include the usual \'functional\'\nsuspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns\nfor asynchronous control flow (`parallel`, `series`, `waterfall`…). All these\nfunctions assume you follow the Node.js convention of providing a single\ncallback as the last argument of your `async` function.\n\n\n## Quick Examples\n\n```javascript\nasync.map([\'file1\',\'file2\',\'file3\'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n\nasync.filter([\'file1\',\'file2\',\'file3\'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n\nasync.parallel([\n function(){ ... },\n function(){ ... }\n], callback);\n\nasync.series([\n function(){ ... },\n function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls\n\n### Binding a context to an iterator\n\nThis section is really about `bind`, not about `async`. If you are wondering how to\nmake `async` execute your iterators in a given context, or are confused as to why\na method of another library isn\'t working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n squareExponent: 2,\n square: function(number, callback){ \n var result = Math.pow(number, this.squareExponent);\n setTimeout(function(){\n callback(null, result);\n }, 200);\n }\n};\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){\n // result is [NaN, NaN, NaN]\n // This fails because the `this.squareExponent` expression in the square\n // function is not evaluated in the context of AsyncSquaringLibrary, and is\n // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n // result is [1, 4, 9]\n // With the help of bind we can attach a context to the iterator before\n // passing it to async. Now the square function will be executed in its \n // \'home\' AsyncSquaringLibrary context and the value of `this.squareExponent`\n // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](http://github.com/caolan/async).\nAlternatively, you can install using Node Package Manager (`npm`):\n\n npm install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Browser\n\nSo far it\'s been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. \n\nUsage:\n\n```html\n<script type="text/javascript" src="async.js"></script>\n<script type="text/javascript">\n\n async.map(data, asyncProcess, function(err, results){\n alert(results);\n });\n\n</script>\n```\n\n## Documentation\n\n### Collections\n\n* [`each`](#each)\n* [`eachSeries`](#eachSeries)\n* [`eachLimit`](#eachLimit)\n* [`map`](#map)\n* [`mapSeries`](#mapSeries)\n* [`mapLimit`](#mapLimit)\n* [`filter`](#filter)\n* [`filterSeries`](#filterSeries)\n* [`reject`](#reject)\n* [`rejectSeries`](#rejectSeries)\n* [`reduce`](#reduce)\n* [`reduceRight`](#reduceRight)\n* [`detect`](#detect)\n* [`detectSeries`](#detectSeries)\n* [`sortBy`](#sortBy)\n* [`some`](#some)\n* [`every`](#every)\n* [`concat`](#concat)\n* [`concatSeries`](#concatSeries)\n\n### Control Flow\n\n* [`series`](#seriestasks-callback)\n* [`parallel`](#parallel)\n* [`parallelLimit`](#parallellimittasks-limit-callback)\n* [`whilst`](#whilst)\n* [`doWhilst`](#doWhilst)\n* [`until`](#until)\n* [`doUntil`](#doUntil)\n* [`forever`](#forever)\n* [`waterfall`](#waterfall)\n* [`compose`](#compose)\n* [`seq`](#seq)\n* [`applyEach`](#applyEach)\n* [`applyEachSeries`](#applyEachSeries)\n* [`queue`](#queue)\n* [`priorityQueue`](#priorityQueue)\n* [`cargo`](#cargo)\n* [`auto`](#auto)\n* [`retry`](#retry)\n* [`iterator`](#iterator)\n* [`apply`](#apply)\n* [`nextTick`](#nextTick)\n* [`times`](#times)\n* [`timesSeries`](#timesSeries)\n\n### Utils\n\n* [`memoize`](#memoize)\n* [`unmemoize`](#unmemoize)\n* [`log`](#log)\n* [`dir`](#dir)\n* [`noConflict`](#noConflict)\n\n\n## Collections\n\n<a name="forEach" />\n<a name="each" />\n### each(arr, iterator, callback)\n\nApplies the function `iterator` to each item in `arr`, in parallel.\nThe `iterator` is called with an item from the list, and a callback for when it\nhas finished. If the `iterator` passes an error to its `callback`, the main\n`callback` (for the `each` function) is immediately called with the error.\n\nNote, that since this function applies `iterator` to each item in parallel,\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err)` which must be called once it has \n completed. If no error has occured, the `callback` should be run without \n arguments or with an explicit `null` argument.\n* `callback(err)` - A callback which is called when all `iterator` functions\n have finished, or an error occurs.\n\n__Examples__\n\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n```js\n// assuming openFiles is an array of file names \n\nasync.each(openFiles, function( file, callback) {\n \n // Perform operation on file here.\n console.log(\'Processing file \' + file);\n \n if( file.length > 32 ) {\n console.log(\'This file name is too long\');\n callback(\'File name too long\');\n } else {\n // Do work to process file here\n console.log(\'File processed\');\n callback();\n }\n}, function(err){\n // if any of the file processing produced an error, err would equal that error\n if( err ) {\n // One of the iterations produced an error.\n // All processing will now stop.\n console.log(\'A file failed to process\');\n } else {\n console.log(\'All files have been processed successfully\');\n }\n});\n```\n\n---------------------------------------\n\n<a name="forEachSeries" />\n<a name="eachSeries" />\n### eachSeries(arr, iterator, callback)\n\nThe same as [`each`](#each), only `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThis means the `iterator` functions will complete in order.\n\n\n---------------------------------------\n\n<a name="forEachLimit" />\n<a name="eachLimit" />\n### eachLimit(arr, limit, iterator, callback)\n\nThe same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously \nrunning at any time.\n\nNote that the items in `arr` are not processed in batches, so there is no guarantee that \nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err)` which must be called once it has \n completed. If no error has occured, the callback should be run without \n arguments or with an explicit `null` argument.\n* `callback(err)` - A callback which is called when all `iterator` functions\n have finished, or an error occurs.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name="map" />\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in `arr` through\nthe `iterator` function. The `iterator` is called with an item from `arr` and a\ncallback for when it has finished processing. Each of these callback takes 2 arguments: \nan `error`, and the transformed item from `arr`. If `iterator` passes an error to this \ncallback, the main `callback` (for the `map` function) is immediately called with the error.\n\nNote, that since this function applies the `iterator` to each item in parallel,\nthere is no guarantee that the `iterator` functions will complete in order. \nHowever, the results array will be in the same order as the original `arr`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, transformed)` which must be called once \n it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - A callback which is called when all `iterator`\n functions have finished, or an error occurs. Results is an array of the\n transformed items from the `arr`.\n\n__Example__\n\n```js\nasync.map([\'file1\',\'file2\',\'file3\'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name="mapSeries" />\n### mapSeries(arr, iterator, callback)\n\nThe same as [`map`](#map), only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe results array will be in the same order as the original.\n\n\n---------------------------------------\n\n<a name="mapLimit" />\n### mapLimit(arr, limit, iterator, callback)\n\nThe same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that \nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, transformed)` which must be called once \n it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - A callback which is called when all `iterator`\n calls have finished, or an error occurs. The result is an array of the\n transformed items from the original `arr`.\n\n__Example__\n\n```js\nasync.mapLimit([\'file1\',\'file2\',\'file3\'], 1, fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name="select" />\n<a name="filter" />\n### filter(arr, iterator, callback)\n\n__Alias:__ `select`\n\nReturns a new array of all the values in `arr` which pass an async truth test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n The `iterator` is passed a `callback(truthValue)`, which must be called with a \n boolean argument once it has completed.\n* `callback(results)` - A callback which is called after all the `iterator`\n functions have finished.\n\n__Example__\n\n```js\nasync.filter([\'file1\',\'file2\',\'file3\'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n<a name="selectSeries" />\n<a name="filterSeries" />\n### filterSeries(arr, iterator, callback)\n\n__Alias:__ `selectSeries`\n\nThe same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe results array will be in the same order as the original.\n\n---------------------------------------\n\n<a name="reject" />\n### reject(arr, iterator, callback)\n\nThe opposite of [`filter`](#filter). Removes values that pass an `async` truth test.\n\n---------------------------------------\n\n<a name="rejectSeries" />\n### rejectSeries(arr, iterator, callback)\n\nThe same as [`reject`](#reject), only the `iterator` is applied to each item in `arr`\nin series.\n\n\n---------------------------------------\n\n<a name="reduce" />\n### reduce(arr, memo, iterator, callback)\n\n__Aliases:__ `inject`, `foldl`\n\nReduces `arr` into a single value using an async `iterator` to return\neach successive step. `memo` is the initial state of the reduction. \nThis function only operates in series. \n\nFor performance reasons, it may make sense to split a call to this function into \na parallel map, and then use the normal `Array.prototype.reduce` on the results. \nThis function is for situations where each step in the reduction needs to be async; \nif you can get the data before reducing it, then it\'s probably a good idea to do so.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `memo` - The initial state of the reduction.\n* `iterator(memo, item, callback)` - A function applied to each item in the\n array to produce the next step in the reduction. The `iterator` is passed a\n `callback(err, reduction)` which accepts an optional error as its first \n argument, and the state of the reduction as the second. If an error is \n passed to the callback, the reduction is stopped and the main `callback` is \n immediately called with the error.\n* `callback(err, result)` - A callback which is called after all the `iterator`\n functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n}, function(err, result){\n // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n<a name="reduceRight" />\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ `foldr`\n\nSame as [`reduce`](#reduce), only operates on `arr` in reverse order.\n\n\n---------------------------------------\n\n<a name="detect" />\n### detect(arr, iterator, callback)\n\nReturns the first value in `arr` that passes an async truth test. The\n`iterator` is applied in parallel, meaning the first iterator to return `true` will\nfire the detect `callback` with that result. That means the result might not be\nthe first item in the original `arr` (in terms of order) that passes the test.\n\nIf order within the original `arr` is important, then look at [`detectSeries`](#detectSeries).\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n The iterator is passed a `callback(truthValue)` which must be called with a \n boolean argument once it has completed.\n* `callback(result)` - A callback which is called as soon as any iterator returns\n `true`, or after all the `iterator` functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value `undefined` if none passed.\n\n__Example__\n\n```js\nasync.detect([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n<a name="detectSeries" />\n### detectSeries(arr, iterator, callback)\n\nThe same as [`detect`](#detect), only the `iterator` is applied to each item in `arr`\nin series. This means the result is always the first in the original `arr` (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n<a name="sortBy" />\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each `arr` value through an async `iterator`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, sortValue)` which must be called once it\n has completed with an error (which can be `null`) and a value to use as the sort\n criteria.\n* `callback(err, results)` - A callback which is called after all the `iterator`\n functions have finished, or an error occurs. Results is the items from\n the original `arr` sorted by the values returned by the `iterator` calls.\n\n__Example__\n\n```js\nasync.sortBy([\'file1\',\'file2\',\'file3\'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n}, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n});\n```\n\n__Sort Order__\n\nBy modifying the callback parameter the sorting order can be influenced:\n\n```js\n//ascending order\nasync.sortBy([1,9,3,5], function(x, callback){\n callback(err, x);\n}, function(err,result){\n //result callback\n} );\n\n//descending order\nasync.sortBy([1,9,3,5], function(x, callback){\n callback(err, x*-1); //<- x*-1 instead of x, turns the order around\n}, function(err,result){\n //result callback\n} );\n```\n\n---------------------------------------\n\n<a name="some" />\n### some(arr, iterator, callback)\n\n__Alias:__ `any`\n\nReturns `true` if at least one element in the `arr` satisfies an async test.\n_The callback for each iterator call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. Once any iterator\ncall returns `true`, the main `callback` is immediately called.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n in parallel. The iterator is passed a callback(truthValue) which must be \n called with a boolean argument once it has completed.\n* `callback(result)` - A callback which is called as soon as any iterator returns\n `true`, or after all the iterator functions have finished. Result will be\n either `true` or `false` depending on the values of the async tests.\n\n__Example__\n\n```js\nasync.some([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n<a name="every" />\n### every(arr, iterator, callback)\n\n__Alias:__ `all`\n\nReturns `true` if every element in `arr` satisfies an async test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n in parallel. The iterator is passed a callback(truthValue) which must be \n called with a boolean argument once it has completed.\n* `callback(result)` - A callback which is called after all the `iterator`\n functions have finished. Result will be either `true` or `false` depending on\n the values of the async tests.\n\n__Example__\n\n```js\nasync.every([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n<a name="concat" />\n### concat(arr, iterator, callback)\n\nApplies `iterator` to each item in `arr`, concatenating the results. Returns the\nconcatenated list. The `iterator`s are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of `arr` passed to the `iterator` function.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n The iterator is passed a `callback(err, results)` which must be called once it \n has completed with an error (which can be `null`) and an array of results.\n* `callback(err, results)` - A callback which is called after all the `iterator`\n functions have finished, or an error occurs. Results is an array containing\n the concatenated results of the `iterator` function.\n\n__Example__\n\n```js\nasync.concat([\'dir1\',\'dir2\',\'dir3\'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n<a name="concatSeries" />\n### concatSeries(arr, iterator, callback)\n\nSame as [`concat`](#concat), but executes in series instead of parallel.\n\n\n## Control Flow\n\n<a name="series" />\n### series(tasks, [callback])\n\nRun the functions in the `tasks` array in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run, and `callback` is immediately called with the value of the error. \nOtherwise, `callback` receives an array of results when `tasks` have completed.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function, and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`series`](#series).\n\n**Note** that while many implementations preserve the order of object properties, the\n[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) \nexplicitly states that\n\n> The mechanics and order of enumerating the properties is not specified.\n\nSo if you rely on the order in which your series of functions are executed, and want\nthis to work on all platforms, consider using an array. \n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed\n a `callback(err, result)` it must call on completion with an error `err` (which can\n be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the `task` callbacks.\n\n__Example__\n\n```js\nasync.series([\n function(callback){\n // do some stuff ...\n callback(null, \'one\');\n },\n function(callback){\n // do some more stuff ...\n callback(null, \'two\');\n }\n],\n// optional callback\nfunction(err, results){\n // results is now equal to [\'one\', \'two\']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name="parallel" />\n### parallel(tasks, [callback])\n\nRun the `tasks` array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main `callback` is immediately called with the value of the error.\nOnce the `tasks` have completed, the results are passed to the final `callback` as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`parallel`](#parallel).\n\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run. Each function is passed \n a `callback(err, result)` which it must call on completion with an error `err` \n (which can be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, \'one\');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, \'two\');\n }, 100);\n }\n],\n// optional callback\nfunction(err, results){\n // the results array will equal [\'one\',\'two\'] even though\n // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name="parallelLimit" />\n### parallelLimit(tasks, limit, [callback])\n\nThe same as [`parallel`](#parallel), only `tasks` are executed in parallel \nwith a maximum of `limit` tasks executing at any time.\n\nNote that the `tasks` are not executed in batches, so there is no guarantee that \nthe first `limit` tasks will complete before any others are started.\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed \n a `callback(err, result)` it must call on completion with an error `err` (which can\n be `null`) and an optional `result` value.\n* `limit` - The maximum number of `tasks` to run at any time.\n* `callback(err, results)` - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the `task` callbacks.\n\n---------------------------------------\n\n<a name="whilst" />\n### whilst(test, fn, callback)\n\nRepeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\n__Arguments__\n\n* `test()` - synchronous truth test to perform before each execution of `fn`.\n* `fn(callback)` - A function which is called each time `test` passes. The function is\n passed a `callback(err)`, which must be called once it has completed with an \n optional `err` argument.\n* `callback(err)` - A callback which is called after the test fails and repeated\n execution of `fn` has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n);\n```\n\n---------------------------------------\n\n<a name="doWhilst" />\n### doWhilst(fn, test, callback)\n\nThe post-check version of [`whilst`](#whilst). To reflect the difference in \nthe order of operations, the arguments `test` and `fn` are switched. \n\n`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n<a name="until" />\n### until(test, fn, callback)\n\nRepeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\nThe inverse of [`whilst`](#whilst).\n\n---------------------------------------\n\n<a name="doUntil" />\n### doUntil(fn, test, callback)\n\nLike [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name="forever" />\n### forever(fn, errback)\n\nCalls the asynchronous function `fn` with a callback parameter that allows it to\ncall itself again, in series, indefinitely.\n\nIf an error is passed to the callback then `errback` is called with the\nerror, and execution stops, otherwise it will never be called.\n\n```js\nasync.forever(\n function(next) {\n // next is suitable for passing to things that need a callback(err [, whatever]);\n // it will result in this function being called again.\n },\n function(err) {\n // if next is called with a value in its first parameter, it will appear\n // in here as \'err\', and execution will stop.\n }\n);\n```\n\n---------------------------------------\n\n<a name="waterfall" />\n### waterfall(tasks, [callback])\n\nRuns the `tasks` array of functions in series, each passing their results to the next in\nthe array. However, if any of the `tasks` pass an error to their own callback, the\nnext function is not executed, and the main `callback` is immediately called with\nthe error.\n\n__Arguments__\n\n* `tasks` - An array of functions to run, each function is passed a \n `callback(err, result1, result2, ...)` it must call on completion. The first\n argument is an error (which can be `null`) and any further arguments will be \n passed as arguments in order to the next task.\n* `callback(err, [results])` - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task\'s callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n function(callback){\n callback(null, \'one\', \'two\');\n },\n function(arg1, arg2, callback){\n // arg1 now equals \'one\' and arg2 now equals \'two\'\n callback(null, \'three\');\n },\n function(arg1, callback){\n // arg1 now equals \'three\'\n callback(null, \'done\');\n }\n], function (err, result) {\n // result now equals \'done\' \n});\n```\n\n---------------------------------------\n<a name="compose" />\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions `f()`, `g()`, and `h()` would produce the result of\n`f(g(h()))`, only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* `functions...` - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n setTimeout(function () {\n callback(null, n + 1);\n }, 10);\n}\n\nfunction mul3(n, callback) {\n setTimeout(function () {\n callback(null, n * 3);\n }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n // result now equals 15\n});\n```\n\n---------------------------------------\n<a name="seq" />\n### seq(fn1, fn2...)\n\nVersion of the compose function that is more natural to read.\nEach following function consumes the return value of the latter function. \n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* functions... - the asynchronous functions to compose\n\n\n__Example__\n\n```js\n// Requires lodash (or underscore), express3 and dresende\'s orm2.\n// Part of an app, that fetches cats of the logged user.\n// This example uses `seq` function to avoid overnesting and error \n// handling clutter.\napp.get(\'/cats\', function(request, response) {\n function handleError(err, data, callback) {\n if (err) {\n console.error(err);\n response.json({ status: \'error\', message: err.message });\n }\n else {\n callback(data);\n }\n }\n var User = request.models.User;\n async.seq(\n _.bind(User.get, User), // \'User.get\' has signature (id, callback(err, data))\n handleError,\n function(user, fn) {\n user.getCats(fn); // \'getCats\' has signature (callback(err, data))\n },\n handleError,\n function(cats) {\n response.json({ status: \'ok\', message: \'Cats found\', data: cats });\n }\n )(req.session.user_id);\n }\n});\n```\n\n---------------------------------------\n<a name="applyEach" />\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling \n`callback` after all functions have completed. If you only provide the first\nargument, then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* `fns` - the asynchronous functions to all call with the same arguments\n* `args...` - any number of separate arguments to pass to the function\n* `callback` - the final argument should be the callback, called when all\n functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], \'bucket\', callback);\n\n// partial application example:\nasync.each(\n buckets,\n async.applyEach([enableSearch, updateSchema]),\n callback\n);\n```\n\n---------------------------------------\n\n<a name="applyEachSeries" />\n### applyEachSeries(arr, iterator, callback)\n\nThe same as [`applyEach`](#applyEach) only the functions are applied in series.\n\n---------------------------------------\n\n<a name="queue" />\n### queue(worker, concurrency)\n\nCreates a `queue` object with the specified `concurrency`. Tasks added to the\n`queue` are processed in parallel (up to the `concurrency` limit). If all\n`worker`s are in progress, the task is queued until one becomes available. \nOnce a `worker` completes a `task`, that `task`\'s callback is called.\n\n__Arguments__\n\n* `worker(task, callback)` - An asynchronous function for processing a queued\n task, which must call its `callback(err)` argument when finished, with an \n optional `error` as an argument.\n* `concurrency` - An `integer` for determining how many `worker` functions should be\n run in parallel.\n\n__Queue objects__\n\nThe `queue` object returned by this function has the following properties and\nmethods:\n\n* `length()` - a function returning the number of items waiting to be processed.\n* `started` - a function returning whether or not any items have been pushed and processed by the queue\n* `running()` - a function returning the number of items currently being processed.\n* `idle()` - a function returning false if there are items waiting or being processed, or true if not.\n* `concurrency` - an integer for determining how many `worker` functions should be\n run in parallel. This property can be changed after a `queue` is created to\n alter the concurrency on-the-fly.\n* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once \n the `worker` has finished processing the task. Instead of a single task, a `tasks` array\n can be submitted. The respective callback is used for every task in the list.\n* `unshift(task, [callback])` - add a new task to the front of the `queue`.\n* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, \n and further tasks will be queued.\n* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`.\n* `paused` - a boolean for determining whether the queue is in a paused state\n* `pause()` - a function that pauses the processing of tasks until `resume()` is called.\n* `resume()` - a function that resumes the processing of queued tasks when the queue is paused.\n* `kill()` - a function that empties remaining tasks from the queue forcing it to go idle.\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n console.log(\'hello \' + task.name);\n callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n console.log(\'all items have been processed\');\n}\n\n// add some items to the queue\n\nq.push({name: \'foo\'}, function (err) {\n console.log(\'finished processing foo\');\n});\nq.push({name: \'bar\'}, function (err) {\n console.log(\'finished processing bar\');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: \'baz\'},{name: \'bay\'},{name: \'bax\'}], function (err) {\n console.log(\'finished processing bar\');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: \'bar\'}, function (err) {\n console.log(\'finished processing bar\');\n});\n```\n\n\n---------------------------------------\n\n<a name="priorityQueue" />\n### priorityQueue(worker, concurrency)\n\nThe same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects:\n\n* `push(task, priority, [callback])` - `priority` should be a number. If an array of\n `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed.\n\n---------------------------------------\n\n<a name="cargo" />\n### cargo(worker, [payload])\n\nCreates a `cargo` object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the `payload` limit). If the\n`worker` is in progress, the task is queued until it becomes available. Once\nthe `worker` has completed some tasks, each callback of those tasks is called.\nCheck out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work.\n\nWhile [queue](#queue) passes only one task to one of a group of workers\nat a time, cargo passes an array of tasks to a single worker, repeating\nwhen the worker is finished.\n\n__Arguments__\n\n* `worker(tasks, callback)` - An asynchronous function for processing an array of\n queued tasks, which must call its `callback(err)` argument when finished, with \n an optional `err` argument.\n* `payload` - An optional `integer` for determining how many tasks should be\n processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe `cargo` object returned by this function has the following properties and\nmethods:\n\n* `length()` - A function returning the number of items waiting to be processed.\n* `payload` - An `integer` for determining how many tasks should be\n process per round. This property can be changed after a `cargo` is created to\n alter the payload on-the-fly.\n* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called\n once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` \n can be submitted. The respective callback is used for every task in the list.\n* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued.\n* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`.\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n for(var i=0; i<tasks.length; i++){\n console.log(\'hello \' + tasks[i].name);\n }\n callback();\n}, 2);\n\n\n// add some items\n\ncargo.push({name: \'foo\'}, function (err) {\n console.log(\'finished processing foo\');\n});\ncargo.push({name: \'bar\'}, function (err) {\n console.log(\'finished processing bar\');\n});\ncargo.push({name: \'baz\'}, function (err) {\n console.log(\'finished processing baz\');\n});\n```\n\n---------------------------------------\n\n<a name="auto" />\n### auto(tasks, [callback])\n\nDetermines the best order for running the functions in `tasks`, based on their \nrequirements. Each function can optionally depend on other functions being completed \nfirst, and each function is run as soon as its requirements are satisfied. \n\nIf any of the functions pass an error to their callback, it will not \ncomplete (so any other functions depending on it will not run), and the main \n`callback` is immediately called with the error. Functions also receive an \nobject containing the results of functions which have completed so far.\n\nNote, all functions are called with a `results` object as a second argument, \nso it is unsafe to pass functions in the `tasks` object which cannot handle the\nextra argument. \n\nFor example, this snippet of code:\n\n```js\nasync.auto({\n readData: async.apply(fs.readFile, \'data.txt\', \'utf-8\')\n}, callback);\n```\n\nwill have the effect of calling `readFile` with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile(\'data.txt\', \'utf-8\', cb, {});\n```\n\nInstead, wrap the call to `readFile` in a function which does not forward the \n`results` object:\n\n```js\nasync.auto({\n readData: function(cb, results){\n fs.readFile(\'data.txt\', \'utf-8\', cb);\n }\n}, callback);\n```\n\n__Arguments__\n\n* `tasks` - An object. Each of its properties is either a function or an array of\n requirements, with the function itself the last item in the array. The object\'s key\n of a property serves as the name of the task defined by that property,\n i.e. can be used when specifying requirements for other tasks.\n The function receives two arguments: (1) a `callback(err, result)` which must be \n called when finished, passing an `error` (which can be `null`) and the result of \n the function\'s execution, and (2) a `results` object, containing the results of\n the previously executed functions.\n* `callback(err, results)` - An optional callback which is called when all the\n tasks have been completed. It receives the `err` argument if any `tasks` \n pass an error to their callback. Results are always returned; however, if \n an error occurs, no further `tasks` will be performed, and the results\n object will only contain partial results.\n\n\n__Example__\n\n```js\nasync.auto({\n get_data: function(callback){\n console.log(\'in get_data\');\n // async code to get some data\n callback(null, \'data\', \'converted to array\');\n },\n make_folder: function(callback){\n console.log(\'in make_folder\');\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n callback(null, \'folder\');\n },\n write_file: [\'get_data\', \'make_folder\', function(callback, results){\n console.log(\'in write_file\', JSON.stringify(results));\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, \'filename\');\n }],\n email_link: [\'write_file\', function(callback, results){\n console.log(\'in email_link\', JSON.stringify(results));\n // once the file is written let\'s email a link to it...\n // results.write_file contains the filename returned by write_file.\n callback(null, {\'file\':results.write_file, \'email\':\'user@example.com\'});\n }]\n}, function(err, results) {\n console.log(\'err = \', err);\n console.log(\'results = \', results);\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n function(callback){\n console.log(\'in get_data\');\n // async code to get some data\n callback(null, \'data\', \'converted to array\');\n },\n function(callback){\n console.log(\'in make_folder\');\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n callback(null, \'folder\');\n }\n],\nfunction(err, results){\n async.series([\n function(callback){\n console.log(\'in write_file\', JSON.stringify(results));\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n results.push(\'filename\');\n callback(null);\n },\n function(callback){\n console.log(\'in email_link\', JSON.stringify(results));\n // once the file is written let\'s email a link to it...\n callback(null, {\'file\':results.pop(), \'email\':\'user@example.com\'});\n }\n ]);\n});\n```\n\nFor a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding\nnew tasks much easier (and the code more readable).\n\n\n---------------------------------------\n\n<a name="retry" />\n### retry([times = 5], task, [callback])\n\nAttempts to get a successful response from `task` no more than `times` times before\nreturning an error. If the task is successful, the `callback` will be passed the result\nof the successfull task. If all attemps fail, the callback will be passed the error and\nresult (if any) of the final attempt.\n\n__Arguments__\n\n* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5.\n* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)`\n which must be called when finished, passing `err` (which can be `null`) and the `result` of \n the function\'s execution, and (2) a `results` object, containing the results of\n the previously executed functions (if nested inside another control flow).\n* `callback(err, results)` - An optional callback which is called when the\n task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`.\n\nThe [`retry`](#retry) function can be used as a stand-alone control flow by passing a\ncallback, as shown below:\n\n```js\nasync.retry(3, apiMethod, function(err, result) {\n // do something with the result\n});\n```\n\nIt can also be embeded within other control flow functions to retry individual methods\nthat are not as reliable, like this:\n\n```js\nasync.auto({\n users: api.getUsers.bind(api),\n payments: async.retry(3, api.getPayments.bind(api))\n}, function(err, results) {\n // do something with the results\n});\n```\n\n\n---------------------------------------\n\n<a name="iterator" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the `tasks` array,\nreturning a continuation to call the next one after that. It\'s also possible to\n“peek” at the next iterator with `iterator.next()`.\n\nThis function is used internally by the `async` module, but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* `tasks` - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n function(){ sys.p(\'one\'); },\n function(){ sys.p(\'two\'); },\n function(){ sys.p(\'three\'); }\n]);\n\nnode> var iterator2 = iterator();\n\'one\'\nnode> var iterator3 = iterator2();\n\'two\'\nnode> iterator3();\n\'three\'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n\'three\'\n```\n\n---------------------------------------\n\n<a name="apply" />\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied. \n\nUseful as a shorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n async.apply(fs.writeFile, \'testfile1\', \'test1\'),\n async.apply(fs.writeFile, \'testfile2\', \'test2\'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n function(callback){\n fs.writeFile(\'testfile1\', \'test1\', callback);\n },\n function(callback){\n fs.writeFile(\'testfile2\', \'test2\', callback);\n }\n]);\n```\n\nIt\'s possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, \'one\');\nnode> fn(\'two\', \'three\');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n<a name="nextTick" />\n### nextTick(callback)\n\nCalls `callback` on a later loop around the event loop. In Node.js this just\ncalls `process.nextTick`; in the browser it falls back to `setImmediate(callback)`\nif available, otherwise `setTimeout(callback, 0)`, which means other higher priority\nevents may precede the execution of `callback`.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* `callback` - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n call_order.push(\'two\');\n // call_order now equals [\'one\',\'two\']\n});\ncall_order.push(\'one\')\n```\n\n<a name="times" />\n### times(n, callback)\n\nCalls the `callback` function `n` times, and accumulates results in the same manner\nyou would use with [`map`](#map).\n\n__Arguments__\n\n* `n` - The number of times to run the function.\n* `callback` - The function to call `n` times.\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n callback(null, {\n id: \'user\' + id\n })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n createUser(n, function(err, user) {\n next(err, user)\n })\n}, function(err, users) {\n // we should now have 5 users\n});\n```\n\n<a name="timesSeries" />\n### timesSeries(n, callback)\n\nThe same as [`times`](#times), only the iterator is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe results array will be in the same order as the original.\n\n\n## Utils\n\n<a name="memoize" />\n### memoize(fn, [hasher])\n\nCaches the results of an `async` function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* `fn` - The function to proxy and cache results from.\n* `hasher` - Tn optional function for generating a custom hash for storing\n results. It has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn(\'some name\', function () {\n // callback\n});\n```\n\n<a name="unmemoize" />\n### unmemoize(fn)\n\nUndoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized\nform. Handy for testing.\n\n__Arguments__\n\n* `fn` - the memoized function\n\n<a name="log" />\n### log(function, arguments)\n\nLogs the result of an `async` function to the `console`. Only works in Node.js or\nin browsers that support `console.log` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.log` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, \'hello \' + name);\n }, 1000);\n};\n```\n```js\nnode> async.log(hello, \'world\');\n\'hello world\'\n```\n\n---------------------------------------\n\n<a name="dir" />\n### dir(function, arguments)\n\nLogs the result of an `async` function to the `console` using `console.dir` to\ndisplay the properties of the resulting object. Only works in Node.js or\nin browsers that support `console.dir` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.dir` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n};\n```\n```js\nnode> async.dir(hello, \'world\');\n{hello: \'world\'}\n```\n\n---------------------------------------\n\n<a name="noConflict" />\n### noConflict()\n\nChanges the value of `async` back to its original value, returning a reference to the\n`async` object.\n',
2406 silly resolved readmeFilename: 'README.md',
2406 silly resolved homepage: 'https://github.com/caolan/async',
2406 silly resolved _id: 'async@0.9.0',
2406 silly resolved _from: 'async@~0.9.0' },
2406 silly resolved { author:
2406 silly resolved { name: 'Robert Kieffer',
2406 silly resolved email: 'robert@broofa.com',
2406 silly resolved url: 'http://github.com/broofa' },
2406 silly resolved contributors: [ [Object] ],
2406 silly resolved dependencies: {},
2406 silly resolved description: 'A comprehensive library for mime-type mapping',
2406 silly resolved devDependencies: {},
2406 silly resolved keywords: [ 'util', 'mime' ],
2406 silly resolved main: 'mime.js',
2406 silly resolved name: 'mime',
2406 silly resolved repository: { url: 'https://github.com/broofa/node-mime', type: 'git' },
2406 silly resolved version: '1.2.11',
2406 silly resolved readme: '# mime\n\nComprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.\n\n## Install\n\nInstall with [npm](http://github.com/isaacs/npm):\n\n npm install mime\n\n## API - Queries\n\n### mime.lookup(path)\nGet the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last \'/\' or \'.\'). E.g.\n\n var mime = require(\'mime\');\n\n mime.lookup(\'/path/to/file.txt\'); // => \'text/plain\'\n mime.lookup(\'file.txt\'); // => \'text/plain\'\n mime.lookup(\'.TXT\'); // => \'text/plain\'\n mime.lookup(\'htm\'); // => \'text/html\'\n\n### mime.default_type\nSets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)\n\n### mime.extension(type)\nGet the default extension for `type`\n\n mime.extension(\'text/html\'); // => \'html\'\n mime.extension(\'application/octet-stream\'); // => \'bin\'\n\n### mime.charsets.lookup()\n\nMap mime-type to charset\n\n mime.charsets.lookup(\'text/plain\'); // => \'UTF-8\'\n\n(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)\n\n## API - Defining Custom Types\n\nThe following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types).\n\n### mime.define()\n\nAdd custom mime/extension mappings\n\n mime.define({\n \'text/x-some-format\': [\'x-sf\', \'x-sft\', \'x-sfml\'],\n \'application/x-my-type\': [\'x-mt\', \'x-mtt\'],\n // etc ...\n });\n\n mime.lookup(\'x-sft\'); // => \'text/x-some-format\'\n\nThe first entry in the extensions array is returned by `mime.extension()`. E.g.\n\n mime.extension(\'text/x-some-format\'); // => \'x-sf\'\n\n### mime.load(filepath)\n\nLoad mappings from an Apache ".types" format file\n\n mime.load(\'./my_project.types\');\n\nThe .types file format is simple - See the `types` dir for examples.\n',
2406 silly resolved readmeFilename: 'README.md',
2406 silly resolved bugs: { url: 'https://github.com/broofa/node-mime/issues' },
2406 silly resolved homepage: 'https://github.com/broofa/node-mime',
2406 silly resolved _id: 'mime@1.2.11',
2406 silly resolved _from: 'mime@~1.2.11' },
2406 silly resolved { author:
2406 silly resolved { name: 'Felix Geisendörfer',
2406 silly resolved email: 'felix@debuggable.com',
2406 silly resolved url: 'http://debuggable.com/' },
2406 silly resolved name: 'combined-stream',
2406 silly resolved description: 'A stream that emits multiple other streams one after another.',
2406 silly resolved version: '0.0.5',
2406 silly resolved homepage: 'https://github.com/felixge/node-combined-stream',
2406 silly resolved repository:
2406 silly resolved { type: 'git',
2406 silly resolved url: 'git://github.com/felixge/node-combined-stream.git' },
2406 silly resolved main: './lib/combined_stream',
2406 silly resolved scripts: { test: 'node test/run.js' },
2406 silly resolved engines: { node: '>= 0.8' },
2406 silly resolved dependencies: { 'delayed-stream': '0.0.5' },
2406 silly resolved devDependencies: { far: '~0.0.7' },
2406 silly resolved readme: '# combined-stream [![Build Status](https://travis-ci.org/felixge/node-combined-stream.svg?branch=master)](https://travis-ci.org/felixge/node-combined-stream)\n\nA stream that emits multiple other streams one after another.\n\n## Installation\n\n``` bash\nnpm install combined-stream\n```\n\n## Usage\n\nHere is a simple example that shows how you can use combined-stream to combine\ntwo files into one:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(fs.createReadStream(\'file1.txt\'));\ncombinedStream.append(fs.createReadStream(\'file2.txt\'));\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\nWhile the example above works great, it will pause all source streams until\nthey are needed. If you don\'t want that to happen, you can set `pauseStreams`\nto `false`:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create({pauseStreams: false});\ncombinedStream.append(fs.createReadStream(\'file1.txt\'));\ncombinedStream.append(fs.createReadStream(\'file2.txt\'));\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\nHowever, what if you don\'t have all the source streams yet, or you don\'t want\nto allocate the resources (file descriptors, memory, etc.) for them right away?\nWell, in that case you can simply provide a callback that supplies the stream\nby calling a `next()` function:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(function(next) {\n next(fs.createReadStream(\'file1.txt\'));\n});\ncombinedStream.append(function(next) {\n next(fs.createReadStream(\'file2.txt\'));\n});\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\n## API\n\n### CombinedStream.create([options])\n\nReturns a new combined stream object. Available options are:\n\n* `maxDataSize`\n* `pauseStreams`\n\nThe effect of those options is described below.\n\n### combinedStream.pauseStreams = `true`\n\nWhether to apply back pressure to the underlaying streams. If set to `false`,\nthe underlaying streams will never be paused. If set to `true`, the\nunderlaying streams will be paused right after being appended, as well as when\n`delayedStream.pipe()` wants to throttle.\n\n### combinedStream.maxDataSize = `2 * 1024 * 1024`\n\nThe maximum amount of bytes (or characters) to buffer for all source streams.\nIf this value is exceeded, `combinedStream` emits an `\'error\'` event.\n\n### combinedStream.dataSize = `0`\n\nThe amount of bytes (or characters) currently buffered by `combinedStream`.\n\n### combinedStream.append(stream)\n\nAppends the given `stream` to the combinedStream object. If `pauseStreams` is\nset to `true, this stream will also be paused right away.\n\n`streams` can also be a function that takes one parameter called `next`. `next`\nis a function that must be invoked in order to provide the `next` stream, see\nexample above.\n\nRegardless of how the `stream` is appended, combined-stream always attaches an\n`\'error\'` listener to it, so you don\'t have to do that manually.\n\nSpecial case: `stream` can also be a String or Buffer.\n\n### combinedStream.write(data)\n\nYou should not call this, `combinedStream` takes care of piping the appended\nstreams into itself for you.\n\n### combinedStream.resume()\n\nCauses `combinedStream` to start drain the streams it manages. The function is\nidempotent, and also emits a `\'resume\'` event each time which usually goes to\nthe stream that is currently being drained.\n\n### combinedStream.pause();\n\nIf `combinedStream.pauseStreams` is set to `false`, this does nothing.\nOtherwise a `\'pause\'` event is emitted, this goes to the stream that is\ncurrently being drained, so you can use it to apply back pressure.\n\n### combinedStream.end();\n\nSets `combinedStream.writable` to false, emits an `\'end\'` event, and removes\nall streams from the queue.\n\n### combinedStream.destroy();\n\nSame as `combinedStream.end()`, except it emits a `\'close\'` event instead of\n`\'end\'`.\n\n## License\n\ncombined-stream is licensed under the MIT license.\n',
2406 silly resolved readmeFilename: 'Readme.md',
2406 silly resolved bugs: { url: 'https://github.com/felixge/node-combined-stream/issues' },
2406 silly resolved _id: 'combined-stream@0.0.5',
2406 silly resolved _from: 'combined-stream@~0.0.4' } ]
2407 info install async@0.9.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
2408 info install mime@1.2.11 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
2409 info install combined-stream@0.0.5 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
2410 info installOne async@0.9.0
2411 info installOne mime@1.2.11
2412 info installOne combined-stream@0.0.5
2413 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async unbuild
2414 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime unbuild
2415 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream unbuild
2416 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/async/0.9.0/package.tgz
2417 silly lockFile 195e3e7c-les-form-data-node-modules-async tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async
2418 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async /Users/cedric/.atom/.node-gyp/.atom/.apm/195e3e7c-les-form-data-node-modules-async.lock
2419 silly lockFile ec459669-atom-apm-async-0-9-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/async/0.9.0/package.tgz
2420 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/async/0.9.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/ec459669-atom-apm-async-0-9-0-package-tgz.lock
2421 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/mime/1.2.11/package.tgz
2422 silly lockFile 82ff98cd-ules-form-data-node-modules-mime tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime
2423 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime /Users/cedric/.atom/.node-gyp/.atom/.apm/82ff98cd-ules-form-data-node-modules-mime.lock
2424 silly lockFile 98939cd5-atom-apm-mime-1-2-11-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime/1.2.11/package.tgz
2425 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime/1.2.11/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/98939cd5-atom-apm-mime-1-2-11-package-tgz.lock
2426 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/combined-stream/0.0.5/package.tgz
2427 silly lockFile 228c6b14-ata-node-modules-combined-stream tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream
2428 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream /Users/cedric/.atom/.node-gyp/.atom/.apm/228c6b14-ata-node-modules-combined-stream.lock
2429 silly lockFile 8f165f46-ombined-stream-0-0-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/combined-stream/0.0.5/package.tgz
2430 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/combined-stream/0.0.5/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/8f165f46-ombined-stream-0-0-5-package-tgz.lock
2431 silly gunzTarPerm modes [ '755', '644' ]
2432 silly gunzTarPerm modes [ '755', '644' ]
2433 silly gunzTarPerm modes [ '755', '644' ]
2434 silly lockFile 46222085-assert-plus-0-1-2 assert-plus@0.1.2
2435 silly lockFile 46222085-assert-plus-0-1-2 assert-plus@0.1.2
2436 silly resolved [ { name: 'ctype',
2436 silly resolved version: '0.5.2',
2436 silly resolved description: 'read and write binary structures and data types',
2436 silly resolved homepage: 'https://github.com/rmustacc/node-ctype',
2436 silly resolved author: { name: 'Robert Mustacchi', email: 'rm@fingolfin.org' },
2436 silly resolved engines: { node: '>= 0.4' },
2436 silly resolved main: 'ctype.js',
2436 silly resolved readme: 'Node-CType is a way to read and write binary data in structured and easy to use\nformat. Its name comes from the C header file.\n\nTo get started, simply clone the repository or use npm to install it. Once it is\nthere, simply require it.\n\ngit clone git://github.com/rmustacc/node-ctype\nnpm install ctype\nvar mod_ctype = require(\'ctype\')\n\n\nThere are two APIs that you can use, depending on what abstraction you\'d like.\nThe low level API let\'s you read and write individual integers and floats from\nbuffers. The higher level API let\'s you read and write structures of these. To\nillustrate this, let\'s looks look at how we would read and write a binary\nencoded x,y point.\n\nIn C we would define this structure as follows:\n\ntypedef struct point {\n\tuint16_t\tp_x;\n\tuint16_t\tp_y;\n} point_t;\n\nTo read a binary encoded point from a Buffer, we first need to create a CType\nparser (where we specify the endian and other options) and add the typedef.\n\nvar parser = new mod_ctype.Parser({ endian: \'big\' });\nparser.typedef(\'point_t\', [\n\t{ x: { type: \'uint16_t\' } },\n\t{ y: { type: \'uint16_t\' } }\n]);\n\nFrom here, given a buffer buf and an offset into it, we can read a point.\n\nvar out = parser.readData([ { point: { type: \'point_t\' } } ], buffer, 0);\nconsole.log(out);\n{ point: { x: 23, y: 42 } }\n\nAnother way to get the same information would be to use the low level methods.\nNote that these require you to manually deal with the offset. Here\'s how we\'d\nget the same values of x and y from the buffer.\n\nvar x = mod_ctype.ruint16(buf, \'big\', 0);\nvar y = mod_ctype.ruint16(buf, \'big\', 2);\nconsole.log(x + \', \' + y);\n23, 42\n\nThe true power of this API comes from the ability to define and nest typedefs,\njust as you would in C. By default, the following types are defined by default.\nNote that they return a Number, unless indicated otherwise.\n\n * int8_t\n * int16_t\n * int32_t\n * int64_t (returns an array where val[0] << 32 + val[1] would be the value)\n * uint8_t\n * uint16_t\n * uint32_t\n * uint64_t (returns an array where val[0] << 32 + val[1] would be the value)\n * float\n * double\n * char (either returns a buffer with that character or a uint8_t)\n * char[] (returns an object with the buffer and the number of characters read which is either the total amount requested or until the first 0)\n\n\nctf2json integration:\n\nNode-CType supports consuming the output of ctf2json. Once you read in a JSON file,\nall you have to do to add all the definitions it contains is:\n\nvar data, parser;\ndata = JSON.parse(parsedJSONData);\nparser = mod_ctype.parseCTF(data, { endian: \'big\' });\n\nFor more documentation, see the file README.old. Full documentation is in the\nprocess of being rewritten as a series of manual pages which will be available\nin the repository and online for viewing.\n\nTo read the ctio manual page simple run, from the root of the workspace:\n\nman -Mman -s 3ctype ctio\n',
2436 silly resolved readmeFilename: 'README',
2436 silly resolved _id: 'ctype@0.5.2',
2436 silly resolved _from: 'ctype@0.5.2' },
2436 silly resolved { author: { name: 'Mark Cavage', email: 'mcavage@gmail.com' },
2436 silly resolved contributors: [ [Object], [Object] ],
2436 silly resolved name: 'asn1',
2436 silly resolved description: 'Contains parsers and serializers for ASN.1 (currently BER only)',
2436 silly resolved version: '0.1.11',
2436 silly resolved repository: { type: 'git', url: 'git://github.com/mcavage/node-asn1.git' },
2436 silly resolved main: 'lib/index.js',
2436 silly resolved engines: { node: '>=0.4.9' },
2436 silly resolved dependencies: {},
2436 silly resolved devDependencies: { tap: '0.1.4' },
2436 silly resolved scripts:
2436 silly resolved { pretest: 'which gjslint; if [[ "$?" = 0 ]] ; then gjslint --nojsdoc -r lib -r tst; else echo "Missing gjslint. Skipping lint"; fi',
2436 silly resolved test: 'tap ./tst' },
2436 silly resolved readme: 'node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS.\nCurrently BER encoding is supported; at some point I\'ll likely have to do DER.\n\n## Usage\n\nMostly, if you\'re *actually* needing to read and write ASN.1, you probably don\'t\nneed this readme to explain what and why. If you have no idea what ASN.1 is,\nsee this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc\n\nThe source is pretty much self-explanatory, and has read/write methods for the\ncommon types out there.\n\n### Decoding\n\nThe following reads an ASN.1 sequence with a boolean.\n\n var Ber = require(\'asn1\').Ber;\n\n var reader = new Ber.Reader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));\n\n reader.readSequence();\n console.log(\'Sequence len: \' + reader.length);\n if (reader.peek() === Ber.Boolean)\n console.log(reader.readBoolean());\n\n### Encoding\n\nThe following generates the same payload as above.\n\n var Ber = require(\'asn1\').Ber;\n\n var writer = new Ber.Writer();\n\n writer.startSequence();\n writer.writeBoolean(true);\n writer.endSequence();\n\n console.log(writer.buffer);\n\n## Installation\n\n npm install asn1\n\n## License\n\nMIT.\n\n## Bugs\n\nSee <https://github.com/mcavage/node-asn1/issues>.\n',
2436 silly resolved readmeFilename: 'README.md',
2436 silly resolved bugs: { url: 'https://github.com/mcavage/node-asn1/issues' },
2436 silly resolved homepage: 'https://github.com/mcavage/node-asn1',
2436 silly resolved _id: 'asn1@0.1.11',
2436 silly resolved _from: 'asn1@0.1.11' },
2436 silly resolved { author: { name: 'Mark Cavage', email: 'mcavage@gmail.com' },
2436 silly resolved name: 'assert-plus',
2436 silly resolved description: 'Extra assertions on top of node\'s assert module',
2436 silly resolved version: '0.1.2',
2436 silly resolved main: './assert.js',
2436 silly resolved dependencies: {},
2436 silly resolved devDependencies: {},
2436 silly resolved optionalDependencies: {},
2436 silly resolved engines: { node: '>=0.6' },
2436 silly resolved readme: '# node-assert-plus\n\nThis library is a super small wrapper over node\'s assert module that has two\nthings: (1) the ability to disable assertions with the environment variable\nNODE_NDEBUG, and (2) some API wrappers for argument testing. Like\n`assert.string(myArg, \'myArg\')`. As a simple example, most of my code looks\nlike this:\n\n var assert = require(\'assert-plus\');\n\n function fooAccount(options, callback) {\n\t assert.object(options, \'options\');\n\t\tassert.number(options.id, \'options.id);\n\t\tassert.bool(options.isManager, \'options.isManager\');\n\t\tassert.string(options.name, \'options.name\');\n\t\tassert.arrayOfString(options.email, \'options.email\');\n\t\tassert.func(callback, \'callback\');\n\n // Do stuff\n\t\tcallback(null, {});\n }\n\n# API\n\nAll methods that *aren\'t* part of node\'s core assert API are simply assumed to\ntake an argument, and then a string \'name\' that\'s not a message; `AssertionError`\nwill be thrown if the assertion fails with a message like:\n\n AssertionError: foo (string) is required\n\tat test (/home/mark/work/foo/foo.js:3:9)\n\tat Object.<anonymous> (/home/mark/work/foo/foo.js:15:1)\n\tat Module._compile (module.js:446:26)\n\tat Object..js (module.js:464:10)\n\tat Module.load (module.js:353:31)\n\tat Function._load (module.js:311:12)\n\tat Array.0 (module.js:484:10)\n\tat EventEmitter._tickCallback (node.js:190:38)\n\nfrom:\n\n function test(foo) {\n\t assert.string(foo, \'foo\');\n }\n\nThere you go. You can check that arrays are of a homogenous type with `Arrayof$Type`:\n\n function test(foo) {\n\t assert.arrayOfString(foo, \'foo\');\n }\n\nYou can assert IFF an argument is not `undefined` (i.e., an optional arg):\n\n assert.optionalString(foo, \'foo\');\n\nLastly, you can opt-out of assertion checking altogether by setting the\nenvironment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have\nlots of assertions, and don\'t want to pay `typeof ()` taxes to v8 in\nproduction.\n\nThe complete list of APIs is:\n\n* assert.bool\n* assert.buffer\n* assert.func\n* assert.number\n* assert.object\n* assert.string\n* assert.arrayOfBool\n* assert.arrayOfFunc\n* assert.arrayOfNumber\n* assert.arrayOfObject\n* assert.arrayOfString\n* assert.optionalBool\n* assert.optionalBuffer\n* assert.optionalFunc\n* assert.optionalNumber\n* assert.optionalObject\n* assert.optionalString\n* assert.optionalArrayOfBool\n* assert.optionalArrayOfFunc\n* assert.optionalArrayOfNumber\n* assert.optionalArrayOfObject\n* assert.optionalArrayOfString\n* assert.AssertionError\n* assert.fail\n* assert.ok\n* assert.equal\n* assert.notEqual\n* assert.deepEqual\n* assert.notDeepEqual\n* assert.strictEqual\n* assert.notStrictEqual\n* assert.throws\n* assert.doesNotThrow\n* assert.ifError\n\n# Installation\n\n npm install assert-plus\n\n## License\n\nThe MIT License (MIT)\nCopyright (c) 2012 Mark Cavage\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the "Software"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n## Bugs\n\nSee <https://github.com/mcavage/node-assert-plus/issues>.\n',
2436 silly resolved readmeFilename: 'README.md',
2436 silly resolved _id: 'assert-plus@0.1.2',
2436 silly resolved _from: 'assert-plus@0.1.2' } ]
2437 info install ctype@0.5.2 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2438 info install asn1@0.1.11 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2439 info install assert-plus@0.1.2 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2440 info installOne ctype@0.5.2
2441 info installOne asn1@0.1.11
2442 info installOne assert-plus@0.1.2
2443 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype unbuild
2444 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1 unbuild
2445 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus unbuild
2446 silly lockFile f34158f6-punycode-1-3-0 punycode@1.3.0
2447 silly lockFile f34158f6-punycode-1-3-0 punycode@1.3.0
2448 silly gunzTarPerm extractEntry package.json
2449 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/ctype/0.5.2/package.tgz
2450 silly lockFile 0dae554b-ttp-signature-node-modules-ctype tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype
2451 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype /Users/cedric/.atom/.node-gyp/.atom/.apm/0dae554b-ttp-signature-node-modules-ctype.lock
2452 silly lockFile 826edcc0-atom-apm-ctype-0-5-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/ctype/0.5.2/package.tgz
2453 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/ctype/0.5.2/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/826edcc0-atom-apm-ctype-0-5-2-package-tgz.lock
2454 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/asn1/0.1.11/package.tgz
2455 silly lockFile b690e27c-http-signature-node-modules-asn1 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1
2456 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1 /Users/cedric/.atom/.node-gyp/.atom/.apm/b690e27c-http-signature-node-modules-asn1.lock
2457 silly lockFile 1f60dcdb-atom-apm-asn1-0-1-11-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/asn1/0.1.11/package.tgz
2458 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/asn1/0.1.11/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/1f60dcdb-atom-apm-asn1-0-1-11-package-tgz.lock
2459 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/assert-plus/0.1.2/package.tgz
2460 silly lockFile c03508a3-gnature-node-modules-assert-plus tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus
2461 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus /Users/cedric/.atom/.node-gyp/.atom/.apm/c03508a3-gnature-node-modules-assert-plus.lock
2462 silly lockFile d5234b3e-pm-assert-plus-0-1-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/assert-plus/0.1.2/package.tgz
2463 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/assert-plus/0.1.2/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/d5234b3e-pm-assert-plus-0-1-2-package-tgz.lock
2464 silly lockFile a6886041-punycode-0-2-0 punycode@>=0.2.0
2465 silly lockFile a6886041-punycode-0-2-0 punycode@>=0.2.0
2466 silly resolved [ { name: 'punycode',
2466 silly resolved version: '1.3.0',
2466 silly resolved description: 'A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.',
2466 silly resolved homepage: 'http://mths.be/punycode',
2466 silly resolved main: 'punycode.js',
2466 silly resolved keywords: [ 'punycode', 'unicode', 'idn', 'idna', 'dns', 'url', 'domain' ],
2466 silly resolved licenses: [ [Object] ],
2466 silly resolved author: { name: 'Mathias Bynens', url: 'http://mathiasbynens.be/' },
2466 silly resolved contributors: [ [Object], [Object] ],
2466 silly resolved repository:
2466 silly resolved { type: 'git',
2466 silly resolved url: 'https://github.com/bestiejs/punycode.js.git' },
2466 silly resolved bugs: { url: 'https://github.com/bestiejs/punycode.js/issues' },
2466 silly resolved files: [ 'LICENSE-MIT.txt', 'punycode.js' ],
2466 silly resolved directories: { test: 'tests' },
2466 silly resolved scripts: { test: 'node tests/tests.js' },
2466 silly resolved devDependencies:
2466 silly resolved { coveralls: '^2.10.1',
2466 silly resolved grunt: '^0.4.5',
2466 silly resolved 'grunt-contrib-uglify': '^0.5.0',
2466 silly resolved 'grunt-shell': '^0.7.0',
2466 silly resolved istanbul: '^0.2.13',
2466 silly resolved 'qunit-extras': '^1.2.0',
2466 silly resolved qunitjs: '~1.11.0',
2466 silly resolved requirejs: '^2.1.14' },
2466 silly resolved readme: '# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/coveralls/bestiejs/punycode.js/master.svg)](https://coveralls.io/r/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js)\n\nA robust Punycode converter that fully complies to [RFC 3492](http://tools.ietf.org/html/rfc3492) and [RFC 5891](http://tools.ietf.org/html/rfc5891), and works on nearly all JavaScript platforms.\n\nThis JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm:\n\n* [The C example code from RFC 3492](http://tools.ietf.org/html/rfc3492#appendix-C)\n* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c)\n* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c)\n* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287)\n* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072))\n\nThis project is [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with [Node.js v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc).\n\n## Installation\n\nVia [npm](http://npmjs.org/) (only required for Node.js releases older than v0.6.2):\n\n```bash\nnpm install punycode\n```\n\nVia [Bower](http://bower.io/):\n\n```bash\nbower install punycode\n```\n\nVia [Component](https://github.com/component/component):\n\n```bash\ncomponent install bestiejs/punycode.js\n```\n\nIn a browser:\n\n```html\n<script src="punycode.js"></script>\n```\n\nIn [Narwhal](http://narwhaljs.org/), [Node.js](http://nodejs.org/), and [RingoJS](http://ringojs.org/):\n\n```js\nvar punycode = require(\'punycode\');\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload(\'punycode.js\');\n```\n\nUsing an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire(\n {\n \'paths\': {\n \'punycode\': \'path/to/punycode\'\n }\n },\n [\'punycode\'],\n function(punycode) {\n console.log(punycode);\n }\n);\n```\n\n## API\n\n### `punycode.decode(string)`\n\nConverts a Punycode string of ASCII symbols to a string of Unicode symbols.\n\n```js\n// decode domain name parts\npunycode.decode(\'maana-pta\'); // \'mañana\'\npunycode.decode(\'--dqo34k\'); // \'☃-⌘\'\n```\n\n### `punycode.encode(string)`\n\nConverts a string of Unicode symbols to a Punycode string of ASCII symbols.\n\n```js\n// encode domain name parts\npunycode.encode(\'mañana\'); // \'maana-pta\'\npunycode.encode(\'☃-⌘\'); // \'--dqo34k\'\n```\n\n### `punycode.toUnicode(input)`\n\nConverts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode.\n\n```js\n// decode domain names\npunycode.toUnicode(\'xn--maana-pta.com\');\n// → \'mañana.com\'\npunycode.toUnicode(\'xn----dqo34k.com\');\n// → \'☃-⌘.com\'\n\n// decode email addresses\npunycode.toUnicode(\'xn--80ahgue5b@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq\');\n// → \'джумла@джpумлатест.bрфa\'\n```\n\n### `punycode.toASCII(input)`\n\nConverts a Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that\'s already in ASCII.\n\n```js\n// encode domain names\npunycode.toASCII(\'mañana.com\');\n// → \'xn--maana-pta.com\'\npunycode.toASCII(\'☃-⌘.com\');\n// → \'xn----dqo34k.com\'\n\n// encode email addresses\npunycode.toASCII(\'джумла@джpумлатест.bрфa\');\n// → \'xn--80ahgue5b@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq\'\n```\n\n### `punycode.ucs2`\n\n#### `punycode.ucs2.decode(string)`\n\nCreates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](http://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16.\n\n```js\npunycode.ucs2.decode(\'abc\');\n// → [0x61, 0x62, 0x63]\n// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE:\npunycode.ucs2.decode(\'\\uD834\\uDF06\');\n// → [0x1D306]\n```\n\n#### `punycode.ucs2.encode(codePoints)`\n\nCreates a string based on an array of numeric code point values.\n\n```js\npunycode.ucs2.encode([0x61, 0x62, 0x63]);\n// → \'abc\'\npunycode.ucs2.encode([0x1D306]);\n// → \'\\uD834\\uDF06\'\n```\n\n### `punycode.version`\n\nA string representing the current Punycode.js version number.\n\n## Unit tests & code coverage\n\nAfter cloning this repository, run `npm install --dev` to install the dependencies needed for Punycode.js development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`.\n\nOnce that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`.\n\nTo generate the code coverage report, use `grunt cover`.\n\nFeel free to fork if you see possible improvements!\n\n## Author\n\n| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |\n|---|\n| [Mathias Bynens](http://mathiasbynens.be/) |\n\n## Contributors\n\n| [![twitter/jdalton](https://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## License\n\nPunycode.js is available under the [MIT](http://mths.be/mit) license.\n',
2466 silly resolved readmeFilename: 'README.md',
2466 silly resolved _id: 'punycode@1.3.0',
2466 silly resolved _from: 'punycode@>=0.2.0' } ]
2467 info install punycode@1.3.0 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie
2468 info installOne punycode@1.3.0
2469 silly gunzTarPerm extractEntry package.json
2470 silly gunzTarPerm extractEntry package.json
2471 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode unbuild
2472 silly gunzTarPerm modes [ '755', '644' ]
2473 silly gunzTarPerm modes [ '755', '644' ]
2474 silly gunzTarPerm modes [ '755', '644' ]
2475 silly gunzTarPerm extractEntry README.md
2476 silly gunzTarPerm extractEntry LICENSE
2477 silly lockFile d1e460c8-cryptiles-0-2-2 cryptiles@0.2.2
2478 silly lockFile d1e460c8-cryptiles-0-2-2 cryptiles@0.2.2
2479 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/punycode/1.3.0/package.tgz
2480 silly lockFile b5a47884-ugh-cookie-node-modules-punycode tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode
2481 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode /Users/cedric/.atom/.node-gyp/.atom/.apm/b5a47884-ugh-cookie-node-modules-punycode.lock
2482 silly lockFile 558684b3-m-apm-punycode-1-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/punycode/1.3.0/package.tgz
2483 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/punycode/1.3.0/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/558684b3-m-apm-punycode-1-3-0-package-tgz.lock
2484 silly gunzTarPerm extractEntry README.md
2485 silly gunzTarPerm extractEntry LICENSE
2486 silly gunzTarPerm extractEntry .travis.yml
2487 silly gunzTarPerm extractEntry component.json
2488 silly gunzTarPerm extractEntry lib/async.js
2489 silly lockFile 75d7e584-cryptiles-0-2-x cryptiles@0.2.x
2490 silly lockFile 75d7e584-cryptiles-0-2-x cryptiles@0.2.x
2491 silly lockFile 92c13a43-sntp-0-2-4 sntp@0.2.4
2492 silly lockFile 92c13a43-sntp-0-2-4 sntp@0.2.4
2493 silly gunzTarPerm extractEntry License
2494 silly gunzTarPerm extractEntry Readme.md
2495 silly lockFile 5b106bb4-boom-0-4-2 boom@0.4.2
2496 silly lockFile 5b106bb4-boom-0-4-2 boom@0.4.2
2497 silly lockFile 8ffbae6b-hoek-0-9-1 hoek@0.9.1
2498 silly lockFile 8ffbae6b-hoek-0-9-1 hoek@0.9.1
2499 silly lockFile b35a0361-sntp-0-2-x sntp@0.2.x
2500 silly lockFile b35a0361-sntp-0-2-x sntp@0.2.x
2501 silly lockFile 225d04ea-boom-0-4-x boom@0.4.x
2502 silly lockFile 225d04ea-boom-0-4-x boom@0.4.x
2503 silly lockFile 58ccaf9a-hoek-0-9-x hoek@0.9.x
2504 silly lockFile 58ccaf9a-hoek-0-9-x hoek@0.9.x
2505 silly resolved [ { name: 'cryptiles',
2505 silly resolved description: 'General purpose crypto utilities',
2505 silly resolved version: '0.2.2',
2505 silly resolved author:
2505 silly resolved { name: 'Eran Hammer',
2505 silly resolved email: 'eran@hueniverse.com',
2505 silly resolved url: 'http://hueniverse.com' },
2505 silly resolved contributors: [],
2505 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/cryptiles' },
2505 silly resolved main: 'index',
2505 silly resolved keywords: [ 'cryptography', 'security', 'utilites' ],
2505 silly resolved engines: { node: '>=0.8.0' },
2505 silly resolved dependencies: { boom: '0.4.x' },
2505 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
2505 silly resolved scripts: { test: 'make test-cov' },
2505 silly resolved licenses: [ [Object] ],
2505 silly resolved readme: 'cryptiles\n=========\n\nGeneral purpose crypto utilities\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/cryptiles.png)](http://travis-ci.org/hueniverse/cryptiles)\n',
2505 silly resolved readmeFilename: 'README.md',
2505 silly resolved bugs: { url: 'https://github.com/hueniverse/cryptiles/issues' },
2505 silly resolved homepage: 'https://github.com/hueniverse/cryptiles',
2505 silly resolved _id: 'cryptiles@0.2.2',
2505 silly resolved _from: 'cryptiles@0.2.x' },
2505 silly resolved { name: 'sntp',
2505 silly resolved description: 'SNTP Client',
2505 silly resolved version: '0.2.4',
2505 silly resolved author:
2505 silly resolved { name: 'Eran Hammer',
2505 silly resolved email: 'eran@hueniverse.com',
2505 silly resolved url: 'http://hueniverse.com' },
2505 silly resolved contributors: [],
2505 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/sntp' },
2505 silly resolved main: 'index',
2505 silly resolved keywords: [ 'sntp', 'ntp', 'time' ],
2505 silly resolved engines: { node: '>=0.8.0' },
2505 silly resolved dependencies: { hoek: '0.9.x' },
2505 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
2505 silly resolved scripts: { test: 'make test-cov' },
2505 silly resolved licenses: [ [Object] ],
2505 silly resolved readme: '# sntp\n\nAn SNTP v4 client (RFC4330) for node. Simpy connects to the NTP or SNTP server requested and returns the server time\nalong with the roundtrip duration and clock offset. To adjust the local time to the NTP time, add the returned `t` offset\nto the local time.\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/sntp.png)](http://travis-ci.org/hueniverse/sntp)\n\n# Usage\n\n```javascript\nvar Sntp = require(\'sntp\');\n\n// All options are optional\n\nvar options = {\n host: \'nist1-sj.ustiming.org\', // Defaults to pool.ntp.org\n port: 123, // Defaults to 123 (NTP)\n resolveReference: true, // Default to false (not resolving)\n timeout: 1000 // Defaults to zero (no timeout)\n};\n\n// Request server time\n\nSntp.time(options, function (err, time) {\n\n if (err) {\n console.log(\'Failed: \' + err.message);\n process.exit(1);\n }\n\n console.log(\'Local clock is off by: \' + time.t + \' milliseconds\');\n process.exit(0);\n});\n```\n\nIf an application needs to maintain continuous time synchronization, the module provides a stateful method for\nquerying the current offset only when the last one is too old (defaults to daily).\n\n```javascript\n// Request offset once\n\nSntp.offset(function (err, offset) {\n\n console.log(offset); // New (served fresh)\n\n // Request offset again\n\n Sntp.offset(function (err, offset) {\n\n console.log(offset); // Identical (served from cache)\n });\n});\n```\n\nTo set a background offset refresh, start the interval and use the provided now() method. If for any reason the\nclient fails to obtain an up-to-date offset, the current system clock is used.\n\n```javascript\nvar before = Sntp.now(); // System time without offset\n\nSntp.start(function () {\n\n var now = Sntp.now(); // With offset\n Sntp.stop();\n});\n```\n\n',
2505 silly resolved readmeFilename: 'README.md',
2505 silly resolved bugs: { url: 'https://github.com/hueniverse/sntp/issues' },
2505 silly resolved homepage: 'https://github.com/hueniverse/sntp',
2505 silly resolved _id: 'sntp@0.2.4',
2505 silly resolved _from: 'sntp@0.2.x' },
2505 silly resolved { name: 'boom',
2505 silly resolved description: 'HTTP-friendly error objects',
2505 silly resolved version: '0.4.2',
2505 silly resolved author:
2505 silly resolved { name: 'Eran Hammer',
2505 silly resolved email: 'eran@hueniverse.com',
2505 silly resolved url: 'http://hueniverse.com' },
2505 silly resolved contributors: [],
2505 silly resolved repository: { type: 'git', url: 'git://github.com/spumko/boom' },
2505 silly resolved main: 'index',
2505 silly resolved keywords: [ 'error', 'http' ],
2505 silly resolved engines: { node: '>=0.8.0' },
2505 silly resolved dependencies: { hoek: '0.9.x' },
2505 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
2505 silly resolved scripts: { test: 'make test-cov' },
2505 silly resolved licenses: [ [Object] ],
2505 silly resolved readme: '<a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>\n![boom Logo](https://raw.github.com/spumko/boom/master/images/boom.png)\n\nHTTP-friendly error objects\n\n[![Build Status](https://secure.travis-ci.org/spumko/boom.png)](http://travis-ci.org/spumko/boom)\n',
2505 silly resolved readmeFilename: 'README.md',
2505 silly resolved bugs: { url: 'https://github.com/spumko/boom/issues' },
2505 silly resolved homepage: 'https://github.com/spumko/boom',
2505 silly resolved _id: 'boom@0.4.2',
2505 silly resolved _from: 'boom@0.4.x' },
2505 silly resolved { name: 'hoek',
2505 silly resolved description: 'General purpose node utilities',
2505 silly resolved version: '0.9.1',
2505 silly resolved author:
2505 silly resolved { name: 'Eran Hammer',
2505 silly resolved email: 'eran@hueniverse.com',
2505 silly resolved url: 'http://hueniverse.com' },
2505 silly resolved contributors: [ [Object] ],
2505 silly resolved repository: { type: 'git', url: 'git://github.com/spumko/hoek' },
2505 silly resolved main: 'index',
2505 silly resolved keywords: [ 'utilities' ],
2505 silly resolved engines: { node: '>=0.8.0' },
2505 silly resolved dependencies: {},
2505 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
2505 silly resolved scripts: { test: 'make test-cov' },
2505 silly resolved licenses: [ [Object] ],
2505 silly resolved readme: '<a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>\r\n![hoek Logo](https://raw.github.com/spumko/hoek/master/images/hoek.png)\r\n\r\nGeneral purpose node utilities\r\n\r\n[![Build Status](https://secure.travis-ci.org/spumko/hoek.png)](http://travis-ci.org/spumko/hoek)\r\n\r\n# Table of Contents\r\n\r\n* [Introduction](#introduction "Introduction")\r\n* [Object](#object "Object")\r\n * [clone](#cloneobj "clone")\r\n * [merge](#mergetarget-source-isnulloverride-ismergearrays "merge")\r\n * [applyToDefaults](#applytodefaultsdefaults-options "applyToDefaults")\r\n * [unique](#uniquearray-key "unique")\r\n * [mapToObject](#maptoobjectarray-key "mapToObject")\r\n * [intersect](#intersectarray1-array2 "intersect")\r\n * [matchKeys](#matchkeysobj-keys "matchKeys")\r\n * [flatten](#flattenarray-target "flatten")\r\n * [removeKeys](#removekeysobject-keys "removeKeys")\r\n * [reach](#reachobj-chain "reach")\r\n * [inheritAsync](#inheritasyncself-obj-keys "inheritAsync")\r\n * [rename](#renameobj-from-to "rename")\r\n* [Timer](#timer "Timer")\r\n* [Binary Encoding/Decoding](#binary "Binary Encoding/Decoding")\r\n * [base64urlEncode](#binary64urlEncodevalue "binary64urlEncode")\r\n * [base64urlDecode](#binary64urlDecodevalue "binary64urlDecode")\r\n* [Escaping Characters](#escaped "Escaping Characters")\r\n * [escapeHtml](#escapeHtmlstring "escapeHtml")\r\n * [escapeHeaderAttribute](#escapeHeaderAttributeattribute "escapeHeaderAttribute")\r\n * [escapeRegex](#escapeRegexstring "escapeRegex")\r\n* [Errors](#errors "Errors")\r\n * [assert](#assertmessage "assert")\r\n * [abort](#abortmessage "abort")\r\n * [displayStack](#displayStackslice "displayStack")\r\n * [callStack](#callStackslice "callStack")\r\n * [toss](#tosscondition "toss")\r\n* [Load files](#load-files "Load Files")\r\n * [loadPackage](#loadPackagedir "loadpackage")\r\n * [loadDirModules](#loadDirModulespath-excludefiles-target "loaddirmodules")\r\n\r\n\r\n\r\n# Introduction\r\n\r\nThe *Hoek* general purpose node utilities library is used to aid in a variety of manners. It comes with useful methods for Arrays (clone, merge, applyToDefaults), Objects (removeKeys, copy), Asserting and more. \r\n\r\nFor example, to use Hoek to set configuration with default options:\r\n```javascript\r\nvar Hoek = require(\'hoek\');\r\n\r\nvar default = {url : "www.github.com", port : "8000", debug : true}\r\n\r\nvar config = Hoek.applyToDefaults(default, {port : "3000", admin : true});\r\n\r\n// In this case, config would be { url: \'www.github.com\', port: \'3000\', debug: true, admin: true }\r\n```\r\n\r\nUnder each of the sections (such as Array), there are subsections which correspond to Hoek methods. Each subsection will explain how to use the corresponding method. In each js excerpt below, the var Hoek = require(\'hoek\') is omitted for brevity.\r\n\r\n## Object\r\n\r\nHoek provides several helpful methods for objects and arrays.\r\n\r\n### clone(obj)\r\n\r\nThis method is used to clone an object or an array. A *deep copy* is made (duplicates everything, including values that are objects). \r\n\r\n```javascript\r\n\r\nvar nestedObj = {\r\n w: /^something$/ig,\r\n x: {\r\n a: [1, 2, 3],\r\n b: 123456,\r\n c: new Date()\r\n },\r\n y: \'y\',\r\n z: new Date()\r\n };\r\n\r\nvar copy = Hoek.clone(nestedObj);\r\n\r\ncopy.x.b = 100;\r\n\r\nconsole.log(copy.y) // results in \'y\'\r\nconsole.log(nestedObj.x.b) // results in 123456\r\nconsole.log(copy.x.b) // results in 100\r\n```\r\n\r\n### merge(target, source, isNullOverride, isMergeArrays)\r\nisNullOverride, isMergeArrays default to true\r\n\r\nMerge all the properties of source into target, source wins in conflic, and by default null and undefined from source are applied\r\n\r\n\r\n```javascript\r\n\r\nvar target = {a: 1, b : 2}\r\nvar source = {a: 0, c: 5}\r\nvar source2 = {a: null, c: 5}\r\n\r\nvar targetArray = [1, 2, 3];\r\nvar sourceArray = [4, 5];\r\n\r\nvar newTarget = Hoek.merge(target, source); // results in {a: 0, b: 2, c: 5}\r\nnewTarget = Hoek.merge(target, source2); // results in {a: null, b: 2, c: 5}\r\nnewTarget = Hoek.merge(target, source2, false); // results in {a: 1, b: 2, c: 5}\r\n\r\nnewTarget = Hoek.merge(targetArray, sourceArray) // results in [1, 2, 3, 4, 5]\r\nnewTarget = Hoek.merge(targetArray, sourceArray, true, false) // results in [4, 5]\r\n\r\n\r\n\r\n\r\n```\r\n\r\n### applyToDefaults(defaults, options)\r\n\r\nApply options to a copy of the defaults\r\n\r\n```javascript\r\n\r\nvar defaults = {host: "localhost", port: 8000};\r\nvar options = {port: 8080};\r\n\r\nvar config = Hoek.applyToDefaults(defaults, options); // results in {host: "localhost", port: 8080};\r\n\r\n\r\n```\r\n\r\n### unique(array, key)\r\n\r\nRemove duplicate items from Array\r\n\r\n```javascript\r\n\r\nvar array = [1, 2, 2, 3, 3, 4, 5, 6];\r\n\r\nvar newArray = Hoek.unique(array); // results in [1,2,3,4,5,6];\r\n\r\narray = [{id: 1}, {id: 1}, {id: 2}];\r\n\r\nnewArray = Hoek.unique(array, "id") // results in [{id: 1}, {id: 2}]\r\n\r\n```\r\n\r\n### mapToObject(array, key)\r\n\r\nConvert an Array into an Object\r\n\r\n```javascript\r\n\r\nvar array = [1,2,3];\r\nvar newObject = Hoek.mapToObject(array); // results in [{"1": true}, {"2": true}, {"3": true}]\r\n\r\narray = [{id: 1}, {id: 2}];\r\nnewObject = Hoek.mapToObject(array, "id") // results in [{"id": 1}, {"id": 2}]\r\n\r\n```\r\n### intersect(array1, array2)\r\n\r\nFind the common unique items in two arrays\r\n\r\n```javascript\r\n\r\nvar array1 = [1, 2, 3];\r\nvar array2 = [1, 4, 5];\r\n\r\nvar newArray = Hoek.intersect(array1, array2) // results in [1]\r\n\r\n```\r\n\r\n### matchKeys(obj, keys) \r\n\r\nFind which keys are present\r\n\r\n```javascript\r\n\r\nvar obj = {a: 1, b: 2, c: 3};\r\nvar keys = ["a", "e"];\r\n\r\nHoek.matchKeys(obj, keys) // returns ["a"]\r\n\r\n```\r\n\r\n### flatten(array, target)\r\n\r\nFlatten an array\r\n\r\n```javascript\r\n\r\nvar array = [1, 2, 3];\r\nvar target = [4, 5]; \r\n\r\nvar flattenedArray = Hoek.flatten(array, target) // results in [4, 5, 1, 2, 3];\r\n\r\n```\r\n\r\n### removeKeys(object, keys)\r\n\r\nRemove keys\r\n\r\n```javascript\r\n\r\nvar object = {a: 1, b: 2, c: 3, d: 4};\r\n\r\nvar keys = ["a", "b"];\r\n\r\nHoek.removeKeys(object, keys) // object is now {c: 3, d: 4}\r\n\r\n```\r\n\r\n### reach(obj, chain)\r\n\r\nConverts an object key chain string to reference\r\n\r\n```javascript\r\n\r\nvar chain = \'a.b.c\';\r\nvar obj = {a : {b : { c : 1}}};\r\n\r\nHoek.reach(obj, chain) // returns 1\r\n\r\n```\r\n\r\n### inheritAsync(self, obj, keys) \r\n\r\nInherits a selected set of methods from an object, wrapping functions in asynchronous syntax and catching errors\r\n\r\n```javascript\r\n\r\nvar targetFunc = function () { };\r\n\r\nvar proto = {\r\n a: function () {\r\n return \'a!\';\r\n },\r\n b: function () {\r\n return \'b!\';\r\n },\r\n c: function () {\r\n throw new Error(\'c!\');\r\n }\r\n };\r\n\r\nvar keys = [\'a\', \'c\'];\r\n\r\nHoek.inheritAsync(targetFunc, proto, [\'a\', \'c\']);\r\n\r\nvar target = new targetFunc();\r\n\r\ntarget.a(function(err, result){console.log(result)} // returns \'a!\' \r\n\r\ntarget.c(function(err, result){console.log(result)} // returns undefined\r\n\r\ntarget.b(function(err, result){console.log(result)} // gives error: Object [object Object] has no method \'b\'\r\n\r\n```\r\n\r\n### rename(obj, from, to)\r\n\r\nRename a key of an object\r\n\r\n```javascript\r\n\r\nvar obj = {a : 1, b : 2};\r\n\r\nHoek.rename(obj, "a", "c"); // obj is now {c : 1, b : 2}\r\n\r\n```\r\n\r\n\r\n# Timer\r\n\r\nA Timer object. Initializing a new timer object sets the ts to the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.\r\n\r\n```javascript\r\n\r\n\r\nexample : \r\n\r\n\r\nvar timerObj = new Hoek.Timer();\r\nconsole.log("Time is now: " + timerObj.ts)\r\nconsole.log("Elapsed time from initialization: " + timerObj.elapsed() + \'milliseconds\')\r\n\r\n```\r\n\r\n# Binary Encoding/Decoding\r\n\r\n### base64urlEncode(value)\r\n\r\nEncodes value in Base64 or URL encoding\r\n\r\n### base64urlDecode(value)\r\n\r\nDecodes data in Base64 or URL encoding.\r\n# Escaping Characters\r\n\r\nHoek provides convenient methods for escaping html characters. The escaped characters are as followed:\r\n\r\n```javascript\r\n\r\ninternals.htmlEscaped = {\r\n \'&\': \'&amp;\',\r\n \'<\': \'&lt;\',\r\n \'>\': \'&gt;\',\r\n \'"\': \'&quot;\',\r\n "\'": \'&#x27;\',\r\n \'`\': \'&#x60;\'\r\n};\r\n\r\n```\r\n\r\n### escapeHtml(string)\r\n\r\n```javascript\r\n\r\nvar string = \'<html> hey </html>\';\r\nvar escapedString = Hoek.escapeHtml(string); // returns &lt;html&gt; hey &lt;/html&gt;\r\n\r\n```\r\n\r\n### escapeHeaderAttribute(attribute)\r\n\r\nEscape attribute value for use in HTTP header\r\n\r\n```javascript\r\n\r\nvar a = Hoek.escapeHeaderAttribute(\'I said "go w\\\\o me"\'); //returns I said \\"go w\\\\o me\\"\r\n\r\n\r\n```\r\n\r\n\r\n### escapeRegex(string)\r\n\r\nEscape string for Regex construction\r\n\r\n```javascript\r\n\r\nvar a = Hoek.escapeRegex(\'4^f$s.4*5+-_?%=#!:@|~\\\\/`"(>)[<]d{}s,\'); // returns 4\\^f\\$s\\.4\\*5\\+\\-_\\?%\\=#\\!\\:@\\|~\\\\\\/`"\\(>\\)\\[<\\]d\\{\\}s\\,\r\n\r\n\r\n\r\n```\r\n\r\n# Errors\r\n\r\n### assert(message)\r\n\r\n```javascript\r\n\r\nvar a = 1, b =2;\r\n\r\nHoek.assert(a === b, \'a should equal b\'); // ABORT: a should equal b\r\n\r\n```\r\n\r\n### abort(message)\r\n\r\nFirst checks if process.env.NODE_ENV === \'test\', and if so, throws error message. Otherwise,\r\ndisplays most recent stack and then exits process.\r\n\r\n\r\n\r\n### displayStack(slice)\r\n\r\nDisplays the trace stack\r\n\r\n```javascript\r\n\r\nvar stack = Hoek.displayStack();\r\nconsole.log(stack) // returns something like:\r\n\r\n[ \'null (/Users/user/Desktop/hoek/test.js:4:18)\',\r\n \'Module._compile (module.js:449:26)\',\r\n \'Module._extensions..js (module.js:467:10)\',\r\n \'Module.load (module.js:356:32)\',\r\n \'Module._load (module.js:312:12)\',\r\n \'Module.runMain (module.js:492:10)\',\r\n \'startup.processNextTick.process._tickCallback (node.js:244:9)\' ]\r\n\r\n```\r\n\r\n### callStack(slice)\r\n\r\nReturns a trace stack array.\r\n\r\n```javascript\r\n\r\nvar stack = Hoek.callStack();\r\nconsole.log(stack) // returns something like:\r\n\r\n[ [ \'/Users/user/Desktop/hoek/test.js\', 4, 18, null, false ],\r\n [ \'module.js\', 449, 26, \'Module._compile\', false ],\r\n [ \'module.js\', 467, 10, \'Module._extensions..js\', false ],\r\n [ \'module.js\', 356, 32, \'Module.load\', false ],\r\n [ \'module.js\', 312, 12, \'Module._load\', false ],\r\n [ \'module.js\', 492, 10, \'Module.runMain\', false ],\r\n [ \'node.js\',\r\n 244,\r\n 9,\r\n \'startup.processNextTick.process._tickCallback\',\r\n false ] ]\r\n\r\n\r\n```\r\n\r\n### toss(condition)\r\n\r\ntoss(condition /*, [message], callback */)\r\n\r\nReturn an error as first argument of a callback\r\n\r\n\r\n# Load Files\r\n\r\n### loadPackage(dir)\r\n\r\nLoad and parse package.json process root or given directory\r\n\r\n```javascript\r\n\r\nvar pack = Hoek.loadPackage(); // pack.name === \'hoek\'\r\n\r\n```\r\n\r\n### loadDirModules(path, excludeFiles, target) \r\n\r\nLoads modules from a given path; option to exclude files (array).\r\n\r\n\r\n\r\n\r\n',
2505 silly resolved readmeFilename: 'README.md',
2505 silly resolved bugs: { url: 'https://github.com/spumko/hoek/issues' },
2505 silly resolved homepage: 'https://github.com/spumko/hoek',
2505 silly resolved _id: 'hoek@0.9.1',
2505 silly resolved _from: 'hoek@0.9.x' } ]
2506 info install cryptiles@0.2.2 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2507 info install sntp@0.2.4 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2508 info install boom@0.4.2 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2509 info install hoek@0.9.1 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2510 info installOne cryptiles@0.2.2
2511 info installOne sntp@0.2.4
2512 info installOne boom@0.4.2
2513 info installOne hoek@0.9.1
2514 silly gunzTarPerm modes [ '755', '644' ]
2515 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles unbuild
2516 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp unbuild
2517 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom unbuild
2518 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek unbuild
2519 silly gunzTarPerm extractEntry package.json
2520 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/cryptiles/0.2.2/package.tgz
2521 silly lockFile 2e5569ec-ules-hawk-node-modules-cryptiles tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles
2522 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles /Users/cedric/.atom/.node-gyp/.atom/.apm/2e5569ec-ules-hawk-node-modules-cryptiles.lock
2523 silly lockFile 74f2a082--apm-cryptiles-0-2-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cryptiles/0.2.2/package.tgz
2524 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cryptiles/0.2.2/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/74f2a082--apm-cryptiles-0-2-2-package-tgz.lock
2525 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/sntp/0.2.4/package.tgz
2526 silly lockFile 56f3484d-e-modules-hawk-node-modules-sntp tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp
2527 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp /Users/cedric/.atom/.node-gyp/.atom/.apm/56f3484d-e-modules-hawk-node-modules-sntp.lock
2528 silly lockFile 43076d65--atom-apm-sntp-0-2-4-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/sntp/0.2.4/package.tgz
2529 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/sntp/0.2.4/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/43076d65--atom-apm-sntp-0-2-4-package-tgz.lock
2530 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/boom/0.4.2/package.tgz
2531 silly lockFile ae900013-e-modules-hawk-node-modules-boom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom
2532 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom /Users/cedric/.atom/.node-gyp/.atom/.apm/ae900013-e-modules-hawk-node-modules-boom.lock
2533 silly lockFile 39da96a0--atom-apm-boom-0-4-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/boom/0.4.2/package.tgz
2534 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/boom/0.4.2/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/39da96a0--atom-apm-boom-0-4-2-package-tgz.lock
2535 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/hoek/0.9.1/package.tgz
2536 silly lockFile 38668636-e-modules-hawk-node-modules-hoek tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek
2537 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek /Users/cedric/.atom/.node-gyp/.atom/.apm/38668636-e-modules-hawk-node-modules-hoek.lock
2538 silly lockFile 6fae3486--atom-apm-hoek-0-9-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hoek/0.9.1/package.tgz
2539 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hoek/0.9.1/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/6fae3486--atom-apm-hoek-0-9-1-package-tgz.lock
2540 silly gunzTarPerm extractEntry mime.js
2541 silly gunzTarPerm extractEntry test.js
2542 silly gunzTarPerm extractEntry package.json
2543 silly gunzTarPerm extractEntry lib/combined_stream.js
2544 silly gunzTarPerm modes [ '755', '644' ]
2545 silly gunzTarPerm modes [ '755', '644' ]
2546 silly gunzTarPerm modes [ '755', '644' ]
2547 silly gunzTarPerm modes [ '755', '644' ]
2548 silly gunzTarPerm extractEntry README.md
2549 silly gunzTarPerm extractEntry assert.js
2550 silly gunzTarPerm extractEntry .npmignore
2551 silly gunzTarPerm extractEntry README.md
2552 silly gunzTarPerm extractEntry package.json
2553 silly gunzTarPerm extractEntry package.json
2554 silly gunzTarPerm extractEntry package.json
2555 silly gunzTarPerm extractEntry README
2556 silly gunzTarPerm extractEntry LICENSE
2557 silly gunzTarPerm extractEntry package.json
2558 silly gunzTarPerm extractEntry README.md
2559 silly gunzTarPerm extractEntry punycode.js
2560 silly gunzTarPerm extractEntry .npmignore
2561 silly gunzTarPerm extractEntry README.md
2562 silly gunzTarPerm extractEntry types/mime.types
2563 silly gunzTarPerm extractEntry types/node.types
2564 silly gunzTarPerm extractEntry LICENSE
2565 silly gunzTarPerm extractEntry lib/index.js
2566 silly gunzTarPerm extractEntry .npmignore
2567 silly gunzTarPerm extractEntry README.md
2568 silly gunzTarPerm extractEntry ctio.js
2569 silly gunzTarPerm extractEntry ctf.js
2570 silly gunzTarPerm extractEntry LICENSE-MIT.txt
2571 silly gunzTarPerm extractEntry LICENSE
2572 silly gunzTarPerm extractEntry index.js
2573 silly gunzTarPerm extractEntry lib/ber/errors.js
2574 silly gunzTarPerm extractEntry lib/ber/index.js
2575 silly gunzTarPerm extractEntry LICENSE
2576 silly gunzTarPerm extractEntry index.js
2577 silly gunzTarPerm extractEntry .travis.yml
2578 silly gunzTarPerm extractEntry Makefile
2579 silly gunzTarPerm extractEntry images/hoek.png
2580 silly gunzTarPerm extractEntry lib/escape.js
2581 silly gunzTarPerm extractEntry lib/index.js
2582 silly gunzTarPerm extractEntry test/escaper.js
2583 silly gunzTarPerm extractEntry test/index.js
2584 silly gunzTarPerm extractEntry test/modules/test1.js
2585 silly gunzTarPerm extractEntry test/modules/test2.js
2586 silly gunzTarPerm extractEntry test/modules/test3.js
2587 silly gunzTarPerm extractEntry package.json
2588 silly gunzTarPerm extractEntry .travis.yml
2589 silly gunzTarPerm extractEntry Makefile
2590 silly gunzTarPerm extractEntry ctype.js
2591 silly gunzTarPerm extractEntry CHANGELOG
2592 silly gunzTarPerm extractEntry .npmignore
2593 silly gunzTarPerm extractEntry README.md
2594 silly gunzTarPerm extractEntry lib/ber/reader.js
2595 silly gunzTarPerm extractEntry lib/ber/types.js
2596 silly gunzTarPerm extractEntry lib/ber/writer.js
2597 silly gunzTarPerm extractEntry tst/ber/reader.test.js
2598 silly gunzTarPerm extractEntry tst/ber/writer.test.js
2599 silly gunzTarPerm extractEntry examples/offset.js
2600 silly gunzTarPerm extractEntry examples/time.js
2601 silly gunzTarPerm extractEntry man/man3ctype/ctio.3ctype
2602 silly gunzTarPerm extractEntry README.old
2603 silly gunzTarPerm extractEntry LICENSE
2604 silly gunzTarPerm extractEntry index.js
2605 silly gunzTarPerm extractEntry package.json
2606 silly gunzTarPerm extractEntry .travis.yml
2607 silly gunzTarPerm extractEntry Makefile
2608 silly gunzTarPerm extractEntry .npmignore
2609 silly gunzTarPerm extractEntry README.md
2610 silly gunzTarPerm extractEntry lib/index.js
2611 silly gunzTarPerm extractEntry test/index.js
2612 silly lockFile 228c6b14-ata-node-modules-combined-stream tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream
2613 silly lockFile 228c6b14-ata-node-modules-combined-stream tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream
2614 silly lockFile 8f165f46-ombined-stream-0-0-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/combined-stream/0.0.5/package.tgz
2615 silly lockFile 8f165f46-ombined-stream-0-0-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/combined-stream/0.0.5/package.tgz
2616 silly lockFile c03508a3-gnature-node-modules-assert-plus tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus
2617 silly lockFile c03508a3-gnature-node-modules-assert-plus tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus
2618 silly lockFile d5234b3e-pm-assert-plus-0-1-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/assert-plus/0.1.2/package.tgz
2619 silly lockFile d5234b3e-pm-assert-plus-0-1-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/assert-plus/0.1.2/package.tgz
2620 info preinstall combined-stream@0.0.5
2621 silly gunzTarPerm extractEntry images/boom.png
2622 silly gunzTarPerm extractEntry lib/index.js
2623 silly gunzTarPerm extractEntry test/index.js
2624 silly gunzTarPerm extractEntry LICENSE
2625 silly gunzTarPerm extractEntry index.js
2626 verbose readDependencies using package.json deps
2627 verbose readDependencies using package.json deps
2628 info preinstall assert-plus@0.1.2
2629 verbose cache add [ 'delayed-stream@0.0.5', null ]
2630 verbose cache add name=undefined spec="delayed-stream@0.0.5" args=["delayed-stream@0.0.5",null]
2631 verbose parsed url { protocol: null,
2631 verbose parsed url slashes: null,
2631 verbose parsed url auth: null,
2631 verbose parsed url host: null,
2631 verbose parsed url port: null,
2631 verbose parsed url hostname: null,
2631 verbose parsed url hash: null,
2631 verbose parsed url search: null,
2631 verbose parsed url query: null,
2631 verbose parsed url pathname: 'delayed-stream@0.0.5',
2631 verbose parsed url path: 'delayed-stream@0.0.5',
2631 verbose parsed url href: 'delayed-stream@0.0.5' }
2632 verbose cache add name="delayed-stream" spec="0.0.5" args=["delayed-stream","0.0.5"]
2633 verbose parsed url { protocol: null,
2633 verbose parsed url slashes: null,
2633 verbose parsed url auth: null,
2633 verbose parsed url host: null,
2633 verbose parsed url port: null,
2633 verbose parsed url hostname: null,
2633 verbose parsed url hash: null,
2633 verbose parsed url search: null,
2633 verbose parsed url query: null,
2633 verbose parsed url pathname: '0.0.5',
2633 verbose parsed url path: '0.0.5',
2633 verbose parsed url href: '0.0.5' }
2634 verbose addNamed [ 'delayed-stream', '0.0.5' ]
2635 verbose addNamed [ '0.0.5', '0.0.5' ]
2636 silly lockFile 1ace22b7-delayed-stream-0-0-5 delayed-stream@0.0.5
2637 verbose lock delayed-stream@0.0.5 /Users/cedric/.atom/.node-gyp/.atom/.apm/1ace22b7-delayed-stream-0-0-5.lock
2638 verbose readDependencies using package.json deps
2639 verbose readDependencies using package.json deps
2640 silly resolved []
2641 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus
2642 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/assert-plus
2643 verbose linkStuff [ false,
2643 verbose linkStuff false,
2643 verbose linkStuff false,
2643 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules' ]
2644 info linkStuff assert-plus@0.1.2
2645 verbose linkBins assert-plus@0.1.2
2646 verbose linkMans assert-plus@0.1.2
2647 verbose rebuildBundles assert-plus@0.1.2
2648 info install assert-plus@0.1.2
2649 info postinstall assert-plus@0.1.2
2650 silly gunzTarPerm extractEntry .travis.yml
2651 silly gunzTarPerm extractEntry Makefile
2652 verbose url raw delayed-stream/0.0.5
2653 verbose url resolving [ 'https://registry.npmjs.org/', './delayed-stream/0.0.5' ]
2654 verbose url resolved https://registry.npmjs.org/delayed-stream/0.0.5
2655 info trying registry request attempt 1 at 10:15:16
2656 verbose etag "E4IB3MQH3KYCL1N9H1HE001PT"
2657 http GET https://registry.npmjs.org/delayed-stream/0.0.5
2658 silly gunzTarPerm extractEntry lib/index.js
2659 silly gunzTarPerm extractEntry test/index.js
2660 silly lockFile b5a47884-ugh-cookie-node-modules-punycode tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode
2661 silly lockFile b5a47884-ugh-cookie-node-modules-punycode tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode
2662 silly lockFile 558684b3-m-apm-punycode-1-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/punycode/1.3.0/package.tgz
2663 silly lockFile 558684b3-m-apm-punycode-1-3-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/punycode/1.3.0/package.tgz
2664 info preinstall punycode@1.3.0
2665 verbose readDependencies using package.json deps
2666 verbose readDependencies using package.json deps
2667 silly resolved []
2668 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode
2669 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules/punycode
2670 verbose linkStuff [ false,
2670 verbose linkStuff false,
2670 verbose linkStuff false,
2670 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie/node_modules' ]
2671 info linkStuff punycode@1.3.0
2672 verbose linkBins punycode@1.3.0
2673 verbose linkMans punycode@1.3.0
2674 verbose rebuildBundles punycode@1.3.0
2675 info install punycode@1.3.0
2676 info postinstall punycode@1.3.0
2677 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie
2678 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/tough-cookie
2679 verbose linkStuff [ false,
2679 verbose linkStuff false,
2679 verbose linkStuff false,
2679 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
2680 info linkStuff tough-cookie@0.12.1
2681 verbose linkBins tough-cookie@0.12.1
2682 verbose linkMans tough-cookie@0.12.1
2683 verbose rebuildBundles tough-cookie@0.12.1
2684 verbose rebuildBundles [ 'punycode' ]
2685 info install tough-cookie@0.12.1
2686 info postinstall tough-cookie@0.12.1
2687 silly gunzTarPerm extractEntry tools/jsl.conf
2688 silly gunzTarPerm extractEntry tools/jsstyle
2689 silly lockFile 2e5569ec-ules-hawk-node-modules-cryptiles tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles
2690 silly lockFile 2e5569ec-ules-hawk-node-modules-cryptiles tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles
2691 silly lockFile 74f2a082--apm-cryptiles-0-2-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cryptiles/0.2.2/package.tgz
2692 silly lockFile 74f2a082--apm-cryptiles-0-2-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/cryptiles/0.2.2/package.tgz
2693 info preinstall cryptiles@0.2.2
2694 silly gunzTarPerm extractEntry tst/ctf/tst.float.js
2695 silly gunzTarPerm extractEntry tst/ctf/tst.fail.js
2696 verbose readDependencies using package.json deps
2697 verbose readDependencies using package.json deps
2698 silly resolved []
2699 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles
2700 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/cryptiles
2701 verbose linkStuff [ false,
2701 verbose linkStuff false,
2701 verbose linkStuff false,
2701 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules' ]
2702 info linkStuff cryptiles@0.2.2
2703 verbose linkBins cryptiles@0.2.2
2704 verbose linkMans cryptiles@0.2.2
2705 verbose rebuildBundles cryptiles@0.2.2
2706 info install cryptiles@0.2.2
2707 info postinstall cryptiles@0.2.2
2708 silly lockFile 56f3484d-e-modules-hawk-node-modules-sntp tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp
2709 silly lockFile 56f3484d-e-modules-hawk-node-modules-sntp tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp
2710 silly lockFile 43076d65--atom-apm-sntp-0-2-4-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/sntp/0.2.4/package.tgz
2711 silly lockFile 43076d65--atom-apm-sntp-0-2-4-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/sntp/0.2.4/package.tgz
2712 info preinstall sntp@0.2.4
2713 verbose readDependencies using package.json deps
2714 verbose readDependencies using package.json deps
2715 silly resolved []
2716 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp
2717 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/sntp
2718 verbose linkStuff [ false,
2718 verbose linkStuff false,
2718 verbose linkStuff false,
2718 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules' ]
2719 info linkStuff sntp@0.2.4
2720 verbose linkBins sntp@0.2.4
2721 verbose linkMans sntp@0.2.4
2722 verbose rebuildBundles sntp@0.2.4
2723 info install sntp@0.2.4
2724 info postinstall sntp@0.2.4
2725 silly lockFile b690e27c-http-signature-node-modules-asn1 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1
2726 silly lockFile b690e27c-http-signature-node-modules-asn1 tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1
2727 silly lockFile 1f60dcdb-atom-apm-asn1-0-1-11-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/asn1/0.1.11/package.tgz
2728 silly lockFile 1f60dcdb-atom-apm-asn1-0-1-11-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/asn1/0.1.11/package.tgz
2729 info preinstall asn1@0.1.11
2730 silly lockFile 82ff98cd-ules-form-data-node-modules-mime tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime
2731 silly lockFile 82ff98cd-ules-form-data-node-modules-mime tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime
2732 silly lockFile 98939cd5-atom-apm-mime-1-2-11-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime/1.2.11/package.tgz
2733 silly lockFile 98939cd5-atom-apm-mime-1-2-11-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/mime/1.2.11/package.tgz
2734 verbose readDependencies using package.json deps
2735 verbose readDependencies using package.json deps
2736 silly resolved []
2737 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1
2738 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/asn1
2739 verbose linkStuff [ false,
2739 verbose linkStuff false,
2739 verbose linkStuff false,
2739 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules' ]
2740 info linkStuff asn1@0.1.11
2741 verbose linkBins asn1@0.1.11
2742 verbose linkMans asn1@0.1.11
2743 verbose rebuildBundles asn1@0.1.11
2744 info install asn1@0.1.11
2745 info preinstall mime@1.2.11
2746 info postinstall asn1@0.1.11
2747 verbose readDependencies using package.json deps
2748 verbose readDependencies using package.json deps
2749 silly resolved []
2750 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime
2751 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/mime
2752 verbose linkStuff [ false,
2752 verbose linkStuff false,
2752 verbose linkStuff false,
2752 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules' ]
2753 info linkStuff mime@1.2.11
2754 verbose linkBins mime@1.2.11
2755 verbose linkMans mime@1.2.11
2756 verbose rebuildBundles mime@1.2.11
2757 info install mime@1.2.11
2758 info postinstall mime@1.2.11
2759 silly lockFile ae900013-e-modules-hawk-node-modules-boom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom
2760 silly lockFile ae900013-e-modules-hawk-node-modules-boom tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom
2761 silly lockFile 39da96a0--atom-apm-boom-0-4-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/boom/0.4.2/package.tgz
2762 silly lockFile 39da96a0--atom-apm-boom-0-4-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/boom/0.4.2/package.tgz
2763 silly gunzTarPerm extractEntry tst/ctf/tst.int.js
2764 silly gunzTarPerm extractEntry tst/ctf/tst.psinfo.js
2765 info preinstall boom@0.4.2
2766 verbose readDependencies using package.json deps
2767 verbose readDependencies using package.json deps
2768 silly resolved []
2769 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom
2770 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/boom
2771 verbose linkStuff [ false,
2771 verbose linkStuff false,
2771 verbose linkStuff false,
2771 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules' ]
2772 info linkStuff boom@0.4.2
2773 verbose linkBins boom@0.4.2
2774 verbose linkMans boom@0.4.2
2775 verbose rebuildBundles boom@0.4.2
2776 info install boom@0.4.2
2777 silly lockFile 195e3e7c-les-form-data-node-modules-async tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async
2778 silly lockFile 195e3e7c-les-form-data-node-modules-async tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async
2779 silly lockFile ec459669-atom-apm-async-0-9-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/async/0.9.0/package.tgz
2780 silly lockFile ec459669-atom-apm-async-0-9-0-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/async/0.9.0/package.tgz
2781 info postinstall boom@0.4.2
2782 silly gunzTarPerm extractEntry tst/ctf/tst.struct.js
2783 silly gunzTarPerm extractEntry tst/ctf/tst.typedef.js
2784 info preinstall async@0.9.0
2785 verbose readDependencies using package.json deps
2786 verbose readDependencies using package.json deps
2787 silly resolved []
2788 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async
2789 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/async
2790 verbose linkStuff [ false,
2790 verbose linkStuff false,
2790 verbose linkStuff false,
2790 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules' ]
2791 info linkStuff async@0.9.0
2792 verbose linkBins async@0.9.0
2793 verbose linkMans async@0.9.0
2794 verbose rebuildBundles async@0.9.0
2795 info install async@0.9.0
2796 info postinstall async@0.9.0
2797 silly gunzTarPerm extractEntry tst/ctf/psinfo.json
2798 silly gunzTarPerm extractEntry tst/ctf/struct.json
2799 silly gunzTarPerm extractEntry tst/ctf/float.json
2800 silly gunzTarPerm extractEntry tst/ctf/int.json
2801 silly gunzTarPerm extractEntry tst/ctf/typedef.json
2802 silly gunzTarPerm extractEntry tst/ctio/float/tst.rfloat.js
2803 silly lockFile 38668636-e-modules-hawk-node-modules-hoek tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek
2804 silly lockFile 38668636-e-modules-hawk-node-modules-hoek tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek
2805 silly lockFile 6fae3486--atom-apm-hoek-0-9-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hoek/0.9.1/package.tgz
2806 silly lockFile 6fae3486--atom-apm-hoek-0-9-1-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/hoek/0.9.1/package.tgz
2807 silly gunzTarPerm extractEntry tst/ctio/float/tst.wfloat.js
2808 silly gunzTarPerm extractEntry tst/ctio/int/tst.64.js
2809 info preinstall hoek@0.9.1
2810 verbose readDependencies using package.json deps
2811 verbose readDependencies using package.json deps
2812 silly resolved []
2813 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek
2814 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules/hoek
2815 verbose linkStuff [ false,
2815 verbose linkStuff false,
2815 verbose linkStuff false,
2815 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk/node_modules' ]
2816 info linkStuff hoek@0.9.1
2817 verbose linkBins hoek@0.9.1
2818 verbose linkMans hoek@0.9.1
2819 verbose rebuildBundles hoek@0.9.1
2820 info install hoek@0.9.1
2821 info postinstall hoek@0.9.1
2822 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2823 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/hawk
2824 verbose linkStuff [ false,
2824 verbose linkStuff false,
2824 verbose linkStuff false,
2824 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
2825 info linkStuff hawk@1.1.1
2826 verbose linkBins hawk@1.1.1
2827 verbose linkMans hawk@1.1.1
2828 verbose rebuildBundles hawk@1.1.1
2829 verbose rebuildBundles [ 'boom', 'cryptiles', 'hoek', 'sntp' ]
2830 info install hawk@1.1.1
2831 info postinstall hawk@1.1.1
2832 silly gunzTarPerm extractEntry tst/ctio/int/tst.rint.js
2833 silly gunzTarPerm extractEntry tst/ctio/int/tst.wbounds.js
2834 silly gunzTarPerm extractEntry tst/ctio/int/tst.wint.js
2835 silly gunzTarPerm extractEntry tst/ctio/uint/tst.64.js
2836 silly gunzTarPerm extractEntry tst/ctio/uint/tst.roundtrip.js
2837 silly gunzTarPerm extractEntry tst/ctio/uint/tst.ruint.js
2838 silly gunzTarPerm extractEntry tst/ctio/uint/tst.wuint.js
2839 silly gunzTarPerm extractEntry tst/ctype/tst.basicr.js
2840 silly gunzTarPerm extractEntry tst/ctype/tst.basicw.js
2841 silly gunzTarPerm extractEntry tst/ctype/tst.char.js
2842 silly gunzTarPerm extractEntry tst/ctype/tst.endian.js
2843 silly gunzTarPerm extractEntry tst/ctype/tst.oldwrite.js
2844 silly gunzTarPerm extractEntry tst/ctype/tst.readSize.js
2845 silly gunzTarPerm extractEntry tst/ctype/tst.structw.js
2846 silly gunzTarPerm extractEntry tst/ctype/tst.writeStruct.js
2847 silly lockFile 0dae554b-ttp-signature-node-modules-ctype tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype
2848 silly lockFile 0dae554b-ttp-signature-node-modules-ctype tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype
2849 silly lockFile 826edcc0-atom-apm-ctype-0-5-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/ctype/0.5.2/package.tgz
2850 silly lockFile 826edcc0-atom-apm-ctype-0-5-2-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/ctype/0.5.2/package.tgz
2851 info preinstall ctype@0.5.2
2852 verbose readDependencies using package.json deps
2853 verbose readDependencies using package.json deps
2854 silly resolved []
2855 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype
2856 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules/ctype
2857 verbose linkStuff [ false,
2857 verbose linkStuff false,
2857 verbose linkStuff false,
2857 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature/node_modules' ]
2858 info linkStuff ctype@0.5.2
2859 verbose linkBins ctype@0.5.2
2860 verbose linkMans ctype@0.5.2
2861 verbose rebuildBundles ctype@0.5.2
2862 info install ctype@0.5.2
2863 info postinstall ctype@0.5.2
2864 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2865 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/http-signature
2866 verbose linkStuff [ false,
2866 verbose linkStuff false,
2866 verbose linkStuff false,
2866 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
2867 info linkStuff http-signature@0.10.0
2868 verbose linkBins http-signature@0.10.0
2869 verbose linkMans http-signature@0.10.0
2870 verbose rebuildBundles http-signature@0.10.0
2871 verbose rebuildBundles [ 'asn1', 'assert-plus', 'ctype' ]
2872 info install http-signature@0.10.0
2873 info postinstall http-signature@0.10.0
2874 http 304 https://registry.npmjs.org/delayed-stream/0.0.5
2875 silly registry.get cb [ 304,
2875 silly registry.get { date: 'Tue, 08 Jul 2014 08:14:54 GMT',
2875 silly registry.get server: 'Apache',
2875 silly registry.get via: '1.1 varnish',
2875 silly registry.get 'last-modified': 'Tue, 08 Jul 2014 08:14:34 GMT',
2875 silly registry.get 'cache-control': 'max-age=30',
2875 silly registry.get etag: '"E4IB3MQH3KYCL1N9H1HE001PT"',
2875 silly registry.get 'x-served-by': 'cache-fra1230-FRA',
2875 silly registry.get 'x-cache': 'HIT',
2875 silly registry.get 'x-cache-hits': '2',
2875 silly registry.get 'x-timer': 'S1404807294.052621,VS0,VE0',
2875 silly registry.get vary: 'Accept',
2875 silly registry.get 'content-length': '0',
2875 silly registry.get 'keep-alive': 'timeout=10, max=50',
2875 silly registry.get connection: 'Keep-Alive' } ]
2876 verbose etag delayed-stream/0.0.5 from cache
2877 silly lockFile 1ace22b7-delayed-stream-0-0-5 delayed-stream@0.0.5
2878 silly lockFile 1ace22b7-delayed-stream-0-0-5 delayed-stream@0.0.5
2879 silly resolved [ { author:
2879 silly resolved { name: 'Felix Geisendörfer',
2879 silly resolved email: 'felix@debuggable.com',
2879 silly resolved url: 'http://debuggable.com/' },
2879 silly resolved name: 'delayed-stream',
2879 silly resolved description: 'Buffers events from a stream until you are ready to handle them.',
2879 silly resolved version: '0.0.5',
2879 silly resolved homepage: 'https://github.com/felixge/node-delayed-stream',
2879 silly resolved repository:
2879 silly resolved { type: 'git',
2879 silly resolved url: 'git://github.com/felixge/node-delayed-stream.git' },
2879 silly resolved main: './lib/delayed_stream',
2879 silly resolved engines: { node: '>=0.4.0' },
2879 silly resolved dependencies: {},
2879 silly resolved devDependencies: { fake: '0.2.0', far: '0.0.1' },
2879 silly resolved readme: '# delayed-stream\n\nBuffers events from a stream until you are ready to handle them.\n\n## Installation\n\n``` bash\nnpm install delayed-stream\n```\n\n## Usage\n\nThe following example shows how to write a http echo server that delays its\nresponse by 1000 ms.\n\n``` javascript\nvar DelayedStream = require(\'delayed-stream\');\nvar http = require(\'http\');\n\nhttp.createServer(function(req, res) {\n var delayed = DelayedStream.create(req);\n\n setTimeout(function() {\n res.writeHead(200);\n delayed.pipe(res);\n }, 1000);\n});\n```\n\nIf you are not using `Stream#pipe`, you can also manually release the buffered\nevents by calling `delayedStream.resume()`:\n\n``` javascript\nvar delayed = DelayedStream.create(req);\n\nsetTimeout(function() {\n // Emit all buffered events and resume underlaying source\n delayed.resume();\n}, 1000);\n```\n\n## Implementation\n\nIn order to use this meta stream properly, here are a few things you should\nknow about the implementation.\n\n### Event Buffering / Proxying\n\nAll events of the `source` stream are hijacked by overwriting the `source.emit`\nmethod. Until node implements a catch-all event listener, this is the only way.\n\nHowever, delayed-stream still continues to emit all events it captures on the\n`source`, regardless of whether you have released the delayed stream yet or\nnot.\n\nUpon creation, delayed-stream captures all `source` events and stores them in\nan internal event buffer. Once `delayedStream.release()` is called, all\nbuffered events are emitted on the `delayedStream`, and the event buffer is\ncleared. After that, delayed-stream merely acts as a proxy for the underlaying\nsource.\n\n### Error handling\n\nError events on `source` are buffered / proxied just like any other events.\nHowever, `delayedStream.create` attaches a no-op `\'error\'` listener to the\n`source`. This way you only have to handle errors on the `delayedStream`\nobject, rather than in two places.\n\n### Buffer limits\n\ndelayed-stream provides a `maxDataSize` property that can be used to limit\nthe amount of data being buffered. In order to protect you from bad `source`\nstreams that don\'t react to `source.pause()`, this feature is enabled by\ndefault.\n\n## API\n\n### DelayedStream.create(source, [options])\n\nReturns a new `delayedStream`. Available options are:\n\n* `pauseStream`\n* `maxDataSize`\n\nThe description for those properties can be found below.\n\n### delayedStream.source\n\nThe `source` stream managed by this object. This is useful if you are\npassing your `delayedStream` around, and you still want to access properties\non the `source` object.\n\n### delayedStream.pauseStream = true\n\nWhether to pause the underlaying `source` when calling\n`DelayedStream.create()`. Modifying this property afterwards has no effect.\n\n### delayedStream.maxDataSize = 1024 * 1024\n\nThe amount of data to buffer before emitting an `error`.\n\nIf the underlaying source is emitting `Buffer` objects, the `maxDataSize`\nrefers to bytes.\n\nIf the underlaying source is emitting JavaScript strings, the size refers to\ncharacters.\n\nIf you know what you are doing, you can set this property to `Infinity` to\ndisable this feature. You can also modify this property during runtime.\n\n### delayedStream.maxDataSize = 1024 * 1024\n\nThe amount of data to buffer before emitting an `error`.\n\nIf the underlaying source is emitting `Buffer` objects, the `maxDataSize`\nrefers to bytes.\n\nIf the underlaying source is emitting JavaScript strings, the size refers to\ncharacters.\n\nIf you know what you are doing, you can set this property to `Infinity` to\ndisable this feature.\n\n### delayedStream.dataSize = 0\n\nThe amount of data buffered so far.\n\n### delayedStream.readable\n\nAn ECMA5 getter that returns the value of `source.readable`.\n\n### delayedStream.resume()\n\nIf the `delayedStream` has not been released so far, `delayedStream.release()`\nis called.\n\nIn either case, `source.resume()` is called.\n\n### delayedStream.pause()\n\nCalls `source.pause()`.\n\n### delayedStream.pipe(dest)\n\nCalls `delayedStream.resume()` and then proxies the arguments to `source.pipe`.\n\n### delayedStream.release()\n\nEmits and clears all events that have been buffered up so far. This does not\nresume the underlaying source, use `delayedStream.resume()` instead.\n\n## License\n\ndelayed-stream is licensed under the MIT license.\n',
2879 silly resolved readmeFilename: 'Readme.md',
2879 silly resolved bugs: { url: 'https://github.com/felixge/node-delayed-stream/issues' },
2879 silly resolved _id: 'delayed-stream@0.0.5',
2879 silly resolved _from: 'delayed-stream@0.0.5' } ]
2880 info install delayed-stream@0.0.5 into /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream
2881 info installOne delayed-stream@0.0.5
2882 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream unbuild
2883 verbose tar unpack /Users/cedric/.atom/.node-gyp/.atom/.apm/delayed-stream/0.0.5/package.tgz
2884 silly lockFile c9e39584-ream-node-modules-delayed-stream tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream
2885 verbose lock tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream /Users/cedric/.atom/.node-gyp/.atom/.apm/c9e39584-ream-node-modules-delayed-stream.lock
2886 silly lockFile 416fa162-delayed-stream-0-0-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/delayed-stream/0.0.5/package.tgz
2887 verbose lock tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/delayed-stream/0.0.5/package.tgz /Users/cedric/.atom/.node-gyp/.atom/.apm/416fa162-delayed-stream-0-0-5-package-tgz.lock
2888 silly gunzTarPerm modes [ '755', '644' ]
2889 silly gunzTarPerm extractEntry package.json
2890 silly gunzTarPerm extractEntry .npmignore
2891 silly gunzTarPerm extractEntry License
2892 silly gunzTarPerm extractEntry Makefile
2893 silly gunzTarPerm extractEntry Readme.md
2894 silly gunzTarPerm extractEntry lib/delayed_stream.js
2895 silly gunzTarPerm extractEntry test/common.js
2896 silly gunzTarPerm extractEntry test/run.js
2897 silly gunzTarPerm extractEntry test/integration/test-delayed-http-upload.js
2898 silly gunzTarPerm extractEntry test/integration/test-delayed-stream-auto-pause.js
2899 silly gunzTarPerm extractEntry test/integration/test-delayed-stream-pause.js
2900 silly gunzTarPerm extractEntry test/integration/test-delayed-stream.js
2901 silly gunzTarPerm extractEntry test/integration/test-handle-source-errors.js
2902 silly gunzTarPerm extractEntry test/integration/test-max-data-size.js
2903 silly gunzTarPerm extractEntry test/integration/test-pipe-resumes.js
2904 silly gunzTarPerm extractEntry test/integration/test-proxy-readable.js
2905 silly lockFile c9e39584-ream-node-modules-delayed-stream tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream
2906 silly lockFile c9e39584-ream-node-modules-delayed-stream tar:///Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream
2907 silly lockFile 416fa162-delayed-stream-0-0-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/delayed-stream/0.0.5/package.tgz
2908 silly lockFile 416fa162-delayed-stream-0-0-5-package-tgz tar:///Users/cedric/.atom/.node-gyp/.atom/.apm/delayed-stream/0.0.5/package.tgz
2909 info preinstall delayed-stream@0.0.5
2910 verbose readDependencies using package.json deps
2911 verbose readDependencies using package.json deps
2912 silly resolved []
2913 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream
2914 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream
2915 verbose linkStuff [ false,
2915 verbose linkStuff false,
2915 verbose linkStuff false,
2915 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules' ]
2916 info linkStuff delayed-stream@0.0.5
2917 verbose linkBins delayed-stream@0.0.5
2918 verbose linkMans delayed-stream@0.0.5
2919 verbose rebuildBundles delayed-stream@0.0.5
2920 info install delayed-stream@0.0.5
2921 info postinstall delayed-stream@0.0.5
2922 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream
2923 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules/combined-stream
2924 verbose linkStuff [ false,
2924 verbose linkStuff false,
2924 verbose linkStuff false,
2924 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data/node_modules' ]
2925 info linkStuff combined-stream@0.0.5
2926 verbose linkBins combined-stream@0.0.5
2927 verbose linkMans combined-stream@0.0.5
2928 verbose rebuildBundles combined-stream@0.0.5
2929 verbose rebuildBundles [ 'delayed-stream' ]
2930 info install combined-stream@0.0.5
2931 info postinstall combined-stream@0.0.5
2932 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
2933 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules/form-data
2934 verbose linkStuff [ false,
2934 verbose linkStuff false,
2934 verbose linkStuff false,
2934 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request/node_modules' ]
2935 info linkStuff form-data@0.1.4
2936 verbose linkBins form-data@0.1.4
2937 verbose linkMans form-data@0.1.4
2938 verbose rebuildBundles form-data@0.1.4
2939 verbose rebuildBundles [ 'async', 'combined-stream', 'mime' ]
2940 info install form-data@0.1.4
2941 info postinstall form-data@0.1.4
2942 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
2943 info build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/request
2944 verbose linkStuff [ false,
2944 verbose linkStuff false,
2944 verbose linkStuff false,
2944 verbose linkStuff '/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules' ]
2945 info linkStuff request@2.37.0
2946 verbose linkBins request@2.37.0
2947 verbose linkMans request@2.37.0
2948 verbose rebuildBundles request@2.37.0
2949 verbose rebuildBundles [ 'aws-sign2',
2949 verbose rebuildBundles 'forever-agent',
2949 verbose rebuildBundles 'form-data',
2949 verbose rebuildBundles 'hawk',
2949 verbose rebuildBundles 'http-signature',
2949 verbose rebuildBundles 'json-stringify-safe',
2949 verbose rebuildBundles 'mime-types',
2949 verbose rebuildBundles 'node-uuid',
2949 verbose rebuildBundles 'oauth-sign',
2949 verbose rebuildBundles 'qs',
2949 verbose rebuildBundles 'tough-cookie',
2949 verbose rebuildBundles 'tunnel-agent' ]
2950 info install request@2.37.0
2951 info postinstall request@2.37.0
2952 info contextify@0.1.8 Failed to exec install script
2953 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules/contextify unbuild
2954 info preuninstall contextify@0.1.8
2955 info uninstall contextify@0.1.8
2956 verbose false,/Users/cedric/.atom/packages/git-log/node_modules,/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom/node_modules unbuild contextify@0.1.8
2957 info postuninstall contextify@0.1.8
2958 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom
2959 info /Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules/jsdom unbuild
2960 info preuninstall jsdom@0.5.7
2961 info uninstall jsdom@0.5.7
2962 verbose false,/Users/cedric/.atom/packages/git-log/node_modules,/Users/cedric/.atom/packages/git-log/node_modules/d3/node_modules unbuild jsdom@0.5.7
2963 info postuninstall jsdom@0.5.7
2964 verbose about to build /Users/cedric/.atom/packages/git-log/node_modules/d3
2965 info /Users/cedric/.atom/packages/git-log/node_modules/d3 unbuild
2966 info preuninstall d3@3.4.9
2967 info uninstall d3@3.4.9
2968 verbose true,/Users/cedric/.atom/packages/git-log/node_modules,/Users/cedric/.atom/packages/git-log/node_modules unbuild d3@3.4.9
2969 info postuninstall d3@3.4.9
2970 error contextify@0.1.8 install: `node-gyp rebuild`
2970 error Exit status 1
2971 error Failed at the contextify@0.1.8 install script.
2971 error This is most likely a problem with the contextify package,
2971 error not with npm itself.
2971 error Tell the author that this fails on your system:
2971 error node-gyp rebuild
2971 error You can get their info via:
2971 error npm owner ls contextify
2971 error There is likely additional logging output above.
2972 error System Darwin 13.2.0
2973 error command "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/.apmrc" "--userconfig" "/Users/cedric/.atom/.apmrc" "install" "--target=0.11.10" "--arch=x64"
2974 error cwd /Users/cedric/.atom/packages/git-log
2975 error node -v v0.10.26
2976 error npm -v 1.4.4
2977 error code ELIFECYCLE
2978 verbose exit [ 1, true ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment