postdoc 0.2.0.beta4 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. checksums.yaml +4 -4
  2. data/lib/postdoc.rb +50 -18
  3. metadata +24 -378
  4. data/lib/pdf.js +0 -27
  5. data/node_modules/agent-base/History.md +0 -113
  6. data/node_modules/agent-base/README.md +0 -145
  7. data/node_modules/agent-base/index.js +0 -160
  8. data/node_modules/agent-base/package.json +0 -35
  9. data/node_modules/agent-base/patch-core.js +0 -37
  10. data/node_modules/agent-base/test/ssl-cert-snakeoil.key +0 -15
  11. data/node_modules/agent-base/test/ssl-cert-snakeoil.pem +0 -12
  12. data/node_modules/agent-base/test/test.js +0 -673
  13. data/node_modules/async-limiter/LICENSE +0 -8
  14. data/node_modules/async-limiter/coverage/coverage.json +0 -1
  15. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html +0 -73
  16. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html +0 -246
  17. data/node_modules/async-limiter/coverage/lcov-report/base.css +0 -182
  18. data/node_modules/async-limiter/coverage/lcov-report/index.html +0 -73
  19. data/node_modules/async-limiter/coverage/lcov-report/prettify.css +0 -1
  20. data/node_modules/async-limiter/coverage/lcov-report/prettify.js +0 -1
  21. data/node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. data/node_modules/async-limiter/coverage/lcov-report/sorter.js +0 -156
  23. data/node_modules/async-limiter/coverage/lcov.info +0 -74
  24. data/node_modules/async-limiter/index.js +0 -67
  25. data/node_modules/async-limiter/package.json +0 -35
  26. data/node_modules/async-limiter/readme.md +0 -132
  27. data/node_modules/balanced-match/LICENSE.md +0 -21
  28. data/node_modules/balanced-match/README.md +0 -91
  29. data/node_modules/balanced-match/index.js +0 -59
  30. data/node_modules/balanced-match/package.json +0 -49
  31. data/node_modules/brace-expansion/LICENSE +0 -21
  32. data/node_modules/brace-expansion/README.md +0 -129
  33. data/node_modules/brace-expansion/index.js +0 -201
  34. data/node_modules/brace-expansion/package.json +0 -47
  35. data/node_modules/buffer-from/index.js +0 -69
  36. data/node_modules/buffer-from/package.json +0 -16
  37. data/node_modules/buffer-from/readme.md +0 -69
  38. data/node_modules/buffer-from/test.js +0 -12
  39. data/node_modules/concat-map/LICENSE +0 -18
  40. data/node_modules/concat-map/README.markdown +0 -62
  41. data/node_modules/concat-map/example/map.js +0 -6
  42. data/node_modules/concat-map/index.js +0 -13
  43. data/node_modules/concat-map/package.json +0 -43
  44. data/node_modules/concat-map/test/map.js +0 -39
  45. data/node_modules/concat-stream/LICENSE +0 -24
  46. data/node_modules/concat-stream/index.js +0 -144
  47. data/node_modules/concat-stream/package.json +0 -55
  48. data/node_modules/concat-stream/readme.md +0 -102
  49. data/node_modules/core-util-is/LICENSE +0 -19
  50. data/node_modules/core-util-is/README.md +0 -3
  51. data/node_modules/core-util-is/float.patch +0 -604
  52. data/node_modules/core-util-is/lib/util.js +0 -107
  53. data/node_modules/core-util-is/package.json +0 -32
  54. data/node_modules/core-util-is/test.js +0 -68
  55. data/node_modules/debug/CHANGELOG.md +0 -395
  56. data/node_modules/debug/LICENSE +0 -19
  57. data/node_modules/debug/Makefile +0 -58
  58. data/node_modules/debug/README.md +0 -368
  59. data/node_modules/debug/karma.conf.js +0 -70
  60. data/node_modules/debug/node.js +0 -1
  61. data/node_modules/debug/package.json +0 -43
  62. data/node_modules/debug/src/browser.js +0 -195
  63. data/node_modules/debug/src/debug.js +0 -225
  64. data/node_modules/debug/src/index.js +0 -10
  65. data/node_modules/debug/src/node.js +0 -186
  66. data/node_modules/es6-promise/CHANGELOG.md +0 -151
  67. data/node_modules/es6-promise/LICENSE +0 -19
  68. data/node_modules/es6-promise/README.md +0 -97
  69. data/node_modules/es6-promise/auto.js +0 -4
  70. data/node_modules/es6-promise/dist/es6-promise.auto.js +0 -1181
  71. data/node_modules/es6-promise/dist/es6-promise.auto.map +0 -1
  72. data/node_modules/es6-promise/dist/es6-promise.auto.min.js +0 -1
  73. data/node_modules/es6-promise/dist/es6-promise.auto.min.map +0 -1
  74. data/node_modules/es6-promise/dist/es6-promise.js +0 -1179
  75. data/node_modules/es6-promise/dist/es6-promise.map +0 -1
  76. data/node_modules/es6-promise/dist/es6-promise.min.js +0 -1
  77. data/node_modules/es6-promise/dist/es6-promise.min.map +0 -1
  78. data/node_modules/es6-promise/es6-promise.d.ts +0 -81
  79. data/node_modules/es6-promise/lib/es6-promise.auto.js +0 -3
  80. data/node_modules/es6-promise/lib/es6-promise.js +0 -7
  81. data/node_modules/es6-promise/lib/es6-promise/-internal.js +0 -266
  82. data/node_modules/es6-promise/lib/es6-promise/asap.js +0 -119
  83. data/node_modules/es6-promise/lib/es6-promise/enumerator.js +0 -113
  84. data/node_modules/es6-promise/lib/es6-promise/polyfill.js +0 -35
  85. data/node_modules/es6-promise/lib/es6-promise/promise.js +0 -427
  86. data/node_modules/es6-promise/lib/es6-promise/promise/all.js +0 -52
  87. data/node_modules/es6-promise/lib/es6-promise/promise/race.js +0 -84
  88. data/node_modules/es6-promise/lib/es6-promise/promise/reject.js +0 -46
  89. data/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +0 -48
  90. data/node_modules/es6-promise/lib/es6-promise/then.js +0 -32
  91. data/node_modules/es6-promise/lib/es6-promise/utils.js +0 -21
  92. data/node_modules/es6-promise/package.json +0 -75
  93. data/node_modules/es6-promisify/README.md +0 -89
  94. data/node_modules/es6-promisify/dist/promise.js +0 -73
  95. data/node_modules/es6-promisify/dist/promisify.js +0 -85
  96. data/node_modules/es6-promisify/package.json +0 -41
  97. data/node_modules/extract-zip/CONTRIBUTING.md +0 -1
  98. data/node_modules/extract-zip/LICENSE +0 -23
  99. data/node_modules/extract-zip/cli.js +0 -20
  100. data/node_modules/extract-zip/index.js +0 -205
  101. data/node_modules/extract-zip/node_modules/debug/CHANGELOG.md +0 -362
  102. data/node_modules/extract-zip/node_modules/debug/LICENSE +0 -19
  103. data/node_modules/extract-zip/node_modules/debug/Makefile +0 -50
  104. data/node_modules/extract-zip/node_modules/debug/README.md +0 -312
  105. data/node_modules/extract-zip/node_modules/debug/component.json +0 -19
  106. data/node_modules/extract-zip/node_modules/debug/karma.conf.js +0 -70
  107. data/node_modules/extract-zip/node_modules/debug/node.js +0 -1
  108. data/node_modules/extract-zip/node_modules/debug/package.json +0 -49
  109. data/node_modules/extract-zip/node_modules/debug/src/browser.js +0 -185
  110. data/node_modules/extract-zip/node_modules/debug/src/debug.js +0 -202
  111. data/node_modules/extract-zip/node_modules/debug/src/index.js +0 -10
  112. data/node_modules/extract-zip/node_modules/debug/src/inspector-log.js +0 -15
  113. data/node_modules/extract-zip/node_modules/debug/src/node.js +0 -248
  114. data/node_modules/extract-zip/package.json +0 -35
  115. data/node_modules/extract-zip/readme.md +0 -49
  116. data/node_modules/fd-slicer/CHANGELOG.md +0 -49
  117. data/node_modules/fd-slicer/LICENSE +0 -21
  118. data/node_modules/fd-slicer/README.md +0 -189
  119. data/node_modules/fd-slicer/index.js +0 -277
  120. data/node_modules/fd-slicer/package.json +0 -36
  121. data/node_modules/fd-slicer/test/test.js +0 -350
  122. data/node_modules/fs.realpath/LICENSE +0 -43
  123. data/node_modules/fs.realpath/README.md +0 -33
  124. data/node_modules/fs.realpath/index.js +0 -66
  125. data/node_modules/fs.realpath/old.js +0 -303
  126. data/node_modules/fs.realpath/package.json +0 -26
  127. data/node_modules/glob/LICENSE +0 -15
  128. data/node_modules/glob/README.md +0 -368
  129. data/node_modules/glob/changelog.md +0 -67
  130. data/node_modules/glob/common.js +0 -240
  131. data/node_modules/glob/glob.js +0 -790
  132. data/node_modules/glob/package.json +0 -43
  133. data/node_modules/glob/sync.js +0 -486
  134. data/node_modules/https-proxy-agent/History.md +0 -124
  135. data/node_modules/https-proxy-agent/README.md +0 -137
  136. data/node_modules/https-proxy-agent/index.js +0 -229
  137. data/node_modules/https-proxy-agent/package.json +0 -35
  138. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key +0 -15
  139. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem +0 -12
  140. data/node_modules/https-proxy-agent/test/test.js +0 -342
  141. data/node_modules/inflight/LICENSE +0 -15
  142. data/node_modules/inflight/README.md +0 -37
  143. data/node_modules/inflight/inflight.js +0 -54
  144. data/node_modules/inflight/package.json +0 -29
  145. data/node_modules/inherits/LICENSE +0 -16
  146. data/node_modules/inherits/README.md +0 -42
  147. data/node_modules/inherits/inherits.js +0 -7
  148. data/node_modules/inherits/inherits_browser.js +0 -23
  149. data/node_modules/inherits/package.json +0 -29
  150. data/node_modules/isarray/Makefile +0 -6
  151. data/node_modules/isarray/README.md +0 -60
  152. data/node_modules/isarray/component.json +0 -19
  153. data/node_modules/isarray/index.js +0 -5
  154. data/node_modules/isarray/package.json +0 -45
  155. data/node_modules/isarray/test.js +0 -20
  156. data/node_modules/mime/CHANGELOG.md +0 -225
  157. data/node_modules/mime/CONTRIBUTING.md +0 -5
  158. data/node_modules/mime/LICENSE +0 -21
  159. data/node_modules/mime/Mime.js +0 -89
  160. data/node_modules/mime/README.md +0 -188
  161. data/node_modules/mime/cli.js +0 -10
  162. data/node_modules/mime/index.js +0 -4
  163. data/node_modules/mime/lite.js +0 -4
  164. data/node_modules/mime/package.json +0 -43
  165. data/node_modules/mime/src/README_js.md +0 -179
  166. data/node_modules/mime/src/build.js +0 -71
  167. data/node_modules/mime/src/test.js +0 -257
  168. data/node_modules/mime/types/other.json +0 -1
  169. data/node_modules/mime/types/standard.json +0 -1
  170. data/node_modules/minimatch/LICENSE +0 -15
  171. data/node_modules/minimatch/README.md +0 -209
  172. data/node_modules/minimatch/minimatch.js +0 -923
  173. data/node_modules/minimatch/package.json +0 -30
  174. data/node_modules/minimist/LICENSE +0 -18
  175. data/node_modules/minimist/example/parse.js +0 -2
  176. data/node_modules/minimist/index.js +0 -187
  177. data/node_modules/minimist/package.json +0 -40
  178. data/node_modules/minimist/readme.markdown +0 -73
  179. data/node_modules/minimist/test/dash.js +0 -24
  180. data/node_modules/minimist/test/default_bool.js +0 -20
  181. data/node_modules/minimist/test/dotted.js +0 -16
  182. data/node_modules/minimist/test/long.js +0 -31
  183. data/node_modules/minimist/test/parse.js +0 -318
  184. data/node_modules/minimist/test/parse_modified.js +0 -9
  185. data/node_modules/minimist/test/short.js +0 -67
  186. data/node_modules/minimist/test/whitespace.js +0 -8
  187. data/node_modules/mkdirp/LICENSE +0 -21
  188. data/node_modules/mkdirp/bin/cmd.js +0 -33
  189. data/node_modules/mkdirp/bin/usage.txt +0 -12
  190. data/node_modules/mkdirp/examples/pow.js +0 -6
  191. data/node_modules/mkdirp/index.js +0 -98
  192. data/node_modules/mkdirp/package.json +0 -27
  193. data/node_modules/mkdirp/readme.markdown +0 -100
  194. data/node_modules/mkdirp/test/chmod.js +0 -41
  195. data/node_modules/mkdirp/test/clobber.js +0 -38
  196. data/node_modules/mkdirp/test/mkdirp.js +0 -28
  197. data/node_modules/mkdirp/test/opts_fs.js +0 -29
  198. data/node_modules/mkdirp/test/opts_fs_sync.js +0 -27
  199. data/node_modules/mkdirp/test/perm.js +0 -32
  200. data/node_modules/mkdirp/test/perm_sync.js +0 -36
  201. data/node_modules/mkdirp/test/race.js +0 -37
  202. data/node_modules/mkdirp/test/rel.js +0 -32
  203. data/node_modules/mkdirp/test/return.js +0 -25
  204. data/node_modules/mkdirp/test/return_sync.js +0 -24
  205. data/node_modules/mkdirp/test/root.js +0 -19
  206. data/node_modules/mkdirp/test/sync.js +0 -32
  207. data/node_modules/mkdirp/test/umask.js +0 -28
  208. data/node_modules/mkdirp/test/umask_sync.js +0 -32
  209. data/node_modules/ms/index.js +0 -152
  210. data/node_modules/ms/license.md +0 -21
  211. data/node_modules/ms/package.json +0 -37
  212. data/node_modules/ms/readme.md +0 -51
  213. data/node_modules/once/LICENSE +0 -15
  214. data/node_modules/once/README.md +0 -79
  215. data/node_modules/once/once.js +0 -42
  216. data/node_modules/once/package.json +0 -33
  217. data/node_modules/path-is-absolute/index.js +0 -20
  218. data/node_modules/path-is-absolute/license +0 -21
  219. data/node_modules/path-is-absolute/package.json +0 -43
  220. data/node_modules/path-is-absolute/readme.md +0 -59
  221. data/node_modules/pend/LICENSE +0 -23
  222. data/node_modules/pend/README.md +0 -41
  223. data/node_modules/pend/index.js +0 -55
  224. data/node_modules/pend/package.json +0 -18
  225. data/node_modules/pend/test.js +0 -137
  226. data/node_modules/process-nextick-args/index.js +0 -44
  227. data/node_modules/process-nextick-args/license.md +0 -19
  228. data/node_modules/process-nextick-args/package.json +0 -25
  229. data/node_modules/process-nextick-args/readme.md +0 -18
  230. data/node_modules/progress/CHANGELOG.md +0 -115
  231. data/node_modules/progress/LICENSE +0 -22
  232. data/node_modules/progress/Makefile +0 -8
  233. data/node_modules/progress/README.md +0 -146
  234. data/node_modules/progress/index.js +0 -1
  235. data/node_modules/progress/lib/node-progress.js +0 -231
  236. data/node_modules/progress/package.json +0 -25
  237. data/node_modules/proxy-from-env/README.md +0 -131
  238. data/node_modules/proxy-from-env/index.js +0 -103
  239. data/node_modules/proxy-from-env/package.json +0 -35
  240. data/node_modules/proxy-from-env/test.js +0 -393
  241. data/node_modules/puppeteer/CONTRIBUTING.md +0 -206
  242. data/node_modules/puppeteer/DeviceDescriptors.js +0 -704
  243. data/node_modules/puppeteer/LICENSE +0 -202
  244. data/node_modules/puppeteer/README.md +0 -306
  245. data/node_modules/puppeteer/index.js +0 -28
  246. data/node_modules/puppeteer/install.js +0 -122
  247. data/node_modules/puppeteer/lib/Browser.js +0 -186
  248. data/node_modules/puppeteer/lib/BrowserFetcher.js +0 -279
  249. data/node_modules/puppeteer/lib/Connection.js +0 -246
  250. data/node_modules/puppeteer/lib/Coverage.js +0 -301
  251. data/node_modules/puppeteer/lib/Dialog.js +0 -84
  252. data/node_modules/puppeteer/lib/ElementHandle.js +0 -328
  253. data/node_modules/puppeteer/lib/EmulationManager.js +0 -89
  254. data/node_modules/puppeteer/lib/ExecutionContext.js +0 -232
  255. data/node_modules/puppeteer/lib/FrameManager.js +0 -997
  256. data/node_modules/puppeteer/lib/Input.js +0 -309
  257. data/node_modules/puppeteer/lib/Launcher.js +0 -310
  258. data/node_modules/puppeteer/lib/Multimap.js +0 -95
  259. data/node_modules/puppeteer/lib/NavigatorWatcher.js +0 -137
  260. data/node_modules/puppeteer/lib/NetworkManager.js +0 -796
  261. data/node_modules/puppeteer/lib/Page.js +0 -1098
  262. data/node_modules/puppeteer/lib/Pipe.js +0 -69
  263. data/node_modules/puppeteer/lib/Puppeteer.js +0 -60
  264. data/node_modules/puppeteer/lib/Target.js +0 -88
  265. data/node_modules/puppeteer/lib/TaskQueue.js +0 -17
  266. data/node_modules/puppeteer/lib/Tracing.js +0 -99
  267. data/node_modules/puppeteer/lib/USKeyboardLayout.js +0 -281
  268. data/node_modules/puppeteer/lib/helper.js +0 -248
  269. data/node_modules/puppeteer/node6/lib/Browser.js +0 -394
  270. data/node_modules/puppeteer/node6/lib/BrowserFetcher.js +0 -357
  271. data/node_modules/puppeteer/node6/lib/Connection.js +0 -350
  272. data/node_modules/puppeteer/node6/lib/Coverage.js +0 -561
  273. data/node_modules/puppeteer/node6/lib/Dialog.js +0 -136
  274. data/node_modules/puppeteer/node6/lib/ElementHandle.js +0 -796
  275. data/node_modules/puppeteer/node6/lib/EmulationManager.js +0 -115
  276. data/node_modules/puppeteer/node6/lib/ExecutionContext.js +0 -414
  277. data/node_modules/puppeteer/node6/lib/FrameManager.js +0 -1621
  278. data/node_modules/puppeteer/node6/lib/Input.js +0 -569
  279. data/node_modules/puppeteer/node6/lib/Launcher.js +0 -362
  280. data/node_modules/puppeteer/node6/lib/Multimap.js +0 -95
  281. data/node_modules/puppeteer/node6/lib/NavigatorWatcher.js +0 -163
  282. data/node_modules/puppeteer/node6/lib/NetworkManager.js +0 -1108
  283. data/node_modules/puppeteer/node6/lib/Page.js +0 -2242
  284. data/node_modules/puppeteer/node6/lib/Pipe.js +0 -69
  285. data/node_modules/puppeteer/node6/lib/Puppeteer.js +0 -60
  286. data/node_modules/puppeteer/node6/lib/Target.js +0 -114
  287. data/node_modules/puppeteer/node6/lib/TaskQueue.js +0 -17
  288. data/node_modules/puppeteer/node6/lib/Tracing.js +0 -177
  289. data/node_modules/puppeteer/node6/lib/USKeyboardLayout.js +0 -281
  290. data/node_modules/puppeteer/node6/lib/helper.js +0 -274
  291. data/node_modules/puppeteer/package.json +0 -61
  292. data/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  293. data/node_modules/readable-stream/GOVERNANCE.md +0 -136
  294. data/node_modules/readable-stream/LICENSE +0 -47
  295. data/node_modules/readable-stream/README.md +0 -58
  296. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  297. data/node_modules/readable-stream/duplex-browser.js +0 -1
  298. data/node_modules/readable-stream/duplex.js +0 -1
  299. data/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  300. data/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  301. data/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  302. data/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  303. data/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  304. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  305. data/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  306. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  307. data/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  308. data/node_modules/readable-stream/package.json +0 -52
  309. data/node_modules/readable-stream/passthrough.js +0 -1
  310. data/node_modules/readable-stream/readable-browser.js +0 -7
  311. data/node_modules/readable-stream/readable.js +0 -19
  312. data/node_modules/readable-stream/transform.js +0 -1
  313. data/node_modules/readable-stream/writable-browser.js +0 -1
  314. data/node_modules/readable-stream/writable.js +0 -8
  315. data/node_modules/rimraf/LICENSE +0 -15
  316. data/node_modules/rimraf/README.md +0 -101
  317. data/node_modules/rimraf/bin.js +0 -50
  318. data/node_modules/rimraf/package.json +0 -26
  319. data/node_modules/rimraf/rimraf.js +0 -364
  320. data/node_modules/safe-buffer/LICENSE +0 -21
  321. data/node_modules/safe-buffer/README.md +0 -584
  322. data/node_modules/safe-buffer/index.d.ts +0 -187
  323. data/node_modules/safe-buffer/index.js +0 -62
  324. data/node_modules/safe-buffer/package.json +0 -37
  325. data/node_modules/string_decoder/LICENSE +0 -48
  326. data/node_modules/string_decoder/README.md +0 -47
  327. data/node_modules/string_decoder/lib/string_decoder.js +0 -296
  328. data/node_modules/string_decoder/package.json +0 -31
  329. data/node_modules/typedarray/LICENSE +0 -35
  330. data/node_modules/typedarray/example/tarray.js +0 -4
  331. data/node_modules/typedarray/index.js +0 -630
  332. data/node_modules/typedarray/package.json +0 -55
  333. data/node_modules/typedarray/readme.markdown +0 -61
  334. data/node_modules/typedarray/test/server/undef_globals.js +0 -19
  335. data/node_modules/typedarray/test/tarray.js +0 -10
  336. data/node_modules/ultron/LICENSE +0 -22
  337. data/node_modules/ultron/README.md +0 -113
  338. data/node_modules/ultron/index.js +0 -136
  339. data/node_modules/ultron/package.json +0 -41
  340. data/node_modules/util-deprecate/History.md +0 -16
  341. data/node_modules/util-deprecate/LICENSE +0 -24
  342. data/node_modules/util-deprecate/README.md +0 -53
  343. data/node_modules/util-deprecate/browser.js +0 -67
  344. data/node_modules/util-deprecate/node.js +0 -6
  345. data/node_modules/util-deprecate/package.json +0 -27
  346. data/node_modules/wrappy/LICENSE +0 -15
  347. data/node_modules/wrappy/README.md +0 -36
  348. data/node_modules/wrappy/package.json +0 -29
  349. data/node_modules/wrappy/wrappy.js +0 -33
  350. data/node_modules/ws/LICENSE +0 -21
  351. data/node_modules/ws/README.md +0 -341
  352. data/node_modules/ws/index.js +0 -15
  353. data/node_modules/ws/lib/BufferUtil.js +0 -71
  354. data/node_modules/ws/lib/Constants.js +0 -10
  355. data/node_modules/ws/lib/ErrorCodes.js +0 -28
  356. data/node_modules/ws/lib/EventTarget.js +0 -151
  357. data/node_modules/ws/lib/Extensions.js +0 -203
  358. data/node_modules/ws/lib/PerMessageDeflate.js +0 -507
  359. data/node_modules/ws/lib/Receiver.js +0 -553
  360. data/node_modules/ws/lib/Sender.js +0 -412
  361. data/node_modules/ws/lib/Validation.js +0 -17
  362. data/node_modules/ws/lib/WebSocket.js +0 -717
  363. data/node_modules/ws/lib/WebSocketServer.js +0 -326
  364. data/node_modules/ws/package.json +0 -46
  365. data/node_modules/yauzl/LICENSE +0 -21
  366. data/node_modules/yauzl/README.md +0 -467
  367. data/node_modules/yauzl/index.js +0 -626
  368. data/node_modules/yauzl/package.json +0 -36
  369. data/package.json +0 -5
  370. data/yarn.lock +0 -240
@@ -1,240 +0,0 @@
1
- exports.alphasort = alphasort
2
- exports.alphasorti = alphasorti
3
- exports.setopts = setopts
4
- exports.ownProp = ownProp
5
- exports.makeAbs = makeAbs
6
- exports.finish = finish
7
- exports.mark = mark
8
- exports.isIgnored = isIgnored
9
- exports.childrenIgnored = childrenIgnored
10
-
11
- function ownProp (obj, field) {
12
- return Object.prototype.hasOwnProperty.call(obj, field)
13
- }
14
-
15
- var path = require("path")
16
- var minimatch = require("minimatch")
17
- var isAbsolute = require("path-is-absolute")
18
- var Minimatch = minimatch.Minimatch
19
-
20
- function alphasorti (a, b) {
21
- return a.toLowerCase().localeCompare(b.toLowerCase())
22
- }
23
-
24
- function alphasort (a, b) {
25
- return a.localeCompare(b)
26
- }
27
-
28
- function setupIgnores (self, options) {
29
- self.ignore = options.ignore || []
30
-
31
- if (!Array.isArray(self.ignore))
32
- self.ignore = [self.ignore]
33
-
34
- if (self.ignore.length) {
35
- self.ignore = self.ignore.map(ignoreMap)
36
- }
37
- }
38
-
39
- // ignore patterns are always in dot:true mode.
40
- function ignoreMap (pattern) {
41
- var gmatcher = null
42
- if (pattern.slice(-3) === '/**') {
43
- var gpattern = pattern.replace(/(\/\*\*)+$/, '')
44
- gmatcher = new Minimatch(gpattern, { dot: true })
45
- }
46
-
47
- return {
48
- matcher: new Minimatch(pattern, { dot: true }),
49
- gmatcher: gmatcher
50
- }
51
- }
52
-
53
- function setopts (self, pattern, options) {
54
- if (!options)
55
- options = {}
56
-
57
- // base-matching: just use globstar for that.
58
- if (options.matchBase && -1 === pattern.indexOf("/")) {
59
- if (options.noglobstar) {
60
- throw new Error("base matching requires globstar")
61
- }
62
- pattern = "**/" + pattern
63
- }
64
-
65
- self.silent = !!options.silent
66
- self.pattern = pattern
67
- self.strict = options.strict !== false
68
- self.realpath = !!options.realpath
69
- self.realpathCache = options.realpathCache || Object.create(null)
70
- self.follow = !!options.follow
71
- self.dot = !!options.dot
72
- self.mark = !!options.mark
73
- self.nodir = !!options.nodir
74
- if (self.nodir)
75
- self.mark = true
76
- self.sync = !!options.sync
77
- self.nounique = !!options.nounique
78
- self.nonull = !!options.nonull
79
- self.nosort = !!options.nosort
80
- self.nocase = !!options.nocase
81
- self.stat = !!options.stat
82
- self.noprocess = !!options.noprocess
83
- self.absolute = !!options.absolute
84
-
85
- self.maxLength = options.maxLength || Infinity
86
- self.cache = options.cache || Object.create(null)
87
- self.statCache = options.statCache || Object.create(null)
88
- self.symlinks = options.symlinks || Object.create(null)
89
-
90
- setupIgnores(self, options)
91
-
92
- self.changedCwd = false
93
- var cwd = process.cwd()
94
- if (!ownProp(options, "cwd"))
95
- self.cwd = cwd
96
- else {
97
- self.cwd = path.resolve(options.cwd)
98
- self.changedCwd = self.cwd !== cwd
99
- }
100
-
101
- self.root = options.root || path.resolve(self.cwd, "/")
102
- self.root = path.resolve(self.root)
103
- if (process.platform === "win32")
104
- self.root = self.root.replace(/\\/g, "/")
105
-
106
- // TODO: is an absolute `cwd` supposed to be resolved against `root`?
107
- // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
108
- self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
109
- if (process.platform === "win32")
110
- self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
111
- self.nomount = !!options.nomount
112
-
113
- // disable comments and negation in Minimatch.
114
- // Note that they are not supported in Glob itself anyway.
115
- options.nonegate = true
116
- options.nocomment = true
117
-
118
- self.minimatch = new Minimatch(pattern, options)
119
- self.options = self.minimatch.options
120
- }
121
-
122
- function finish (self) {
123
- var nou = self.nounique
124
- var all = nou ? [] : Object.create(null)
125
-
126
- for (var i = 0, l = self.matches.length; i < l; i ++) {
127
- var matches = self.matches[i]
128
- if (!matches || Object.keys(matches).length === 0) {
129
- if (self.nonull) {
130
- // do like the shell, and spit out the literal glob
131
- var literal = self.minimatch.globSet[i]
132
- if (nou)
133
- all.push(literal)
134
- else
135
- all[literal] = true
136
- }
137
- } else {
138
- // had matches
139
- var m = Object.keys(matches)
140
- if (nou)
141
- all.push.apply(all, m)
142
- else
143
- m.forEach(function (m) {
144
- all[m] = true
145
- })
146
- }
147
- }
148
-
149
- if (!nou)
150
- all = Object.keys(all)
151
-
152
- if (!self.nosort)
153
- all = all.sort(self.nocase ? alphasorti : alphasort)
154
-
155
- // at *some* point we statted all of these
156
- if (self.mark) {
157
- for (var i = 0; i < all.length; i++) {
158
- all[i] = self._mark(all[i])
159
- }
160
- if (self.nodir) {
161
- all = all.filter(function (e) {
162
- var notDir = !(/\/$/.test(e))
163
- var c = self.cache[e] || self.cache[makeAbs(self, e)]
164
- if (notDir && c)
165
- notDir = c !== 'DIR' && !Array.isArray(c)
166
- return notDir
167
- })
168
- }
169
- }
170
-
171
- if (self.ignore.length)
172
- all = all.filter(function(m) {
173
- return !isIgnored(self, m)
174
- })
175
-
176
- self.found = all
177
- }
178
-
179
- function mark (self, p) {
180
- var abs = makeAbs(self, p)
181
- var c = self.cache[abs]
182
- var m = p
183
- if (c) {
184
- var isDir = c === 'DIR' || Array.isArray(c)
185
- var slash = p.slice(-1) === '/'
186
-
187
- if (isDir && !slash)
188
- m += '/'
189
- else if (!isDir && slash)
190
- m = m.slice(0, -1)
191
-
192
- if (m !== p) {
193
- var mabs = makeAbs(self, m)
194
- self.statCache[mabs] = self.statCache[abs]
195
- self.cache[mabs] = self.cache[abs]
196
- }
197
- }
198
-
199
- return m
200
- }
201
-
202
- // lotta situps...
203
- function makeAbs (self, f) {
204
- var abs = f
205
- if (f.charAt(0) === '/') {
206
- abs = path.join(self.root, f)
207
- } else if (isAbsolute(f) || f === '') {
208
- abs = f
209
- } else if (self.changedCwd) {
210
- abs = path.resolve(self.cwd, f)
211
- } else {
212
- abs = path.resolve(f)
213
- }
214
-
215
- if (process.platform === 'win32')
216
- abs = abs.replace(/\\/g, '/')
217
-
218
- return abs
219
- }
220
-
221
-
222
- // Return true, if pattern ends with globstar '**', for the accompanying parent directory.
223
- // Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
224
- function isIgnored (self, path) {
225
- if (!self.ignore.length)
226
- return false
227
-
228
- return self.ignore.some(function(item) {
229
- return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
230
- })
231
- }
232
-
233
- function childrenIgnored (self, path) {
234
- if (!self.ignore.length)
235
- return false
236
-
237
- return self.ignore.some(function(item) {
238
- return !!(item.gmatcher && item.gmatcher.match(path))
239
- })
240
- }
@@ -1,790 +0,0 @@
1
- // Approach:
2
- //
3
- // 1. Get the minimatch set
4
- // 2. For each pattern in the set, PROCESS(pattern, false)
5
- // 3. Store matches per-set, then uniq them
6
- //
7
- // PROCESS(pattern, inGlobStar)
8
- // Get the first [n] items from pattern that are all strings
9
- // Join these together. This is PREFIX.
10
- // If there is no more remaining, then stat(PREFIX) and
11
- // add to matches if it succeeds. END.
12
- //
13
- // If inGlobStar and PREFIX is symlink and points to dir
14
- // set ENTRIES = []
15
- // else readdir(PREFIX) as ENTRIES
16
- // If fail, END
17
- //
18
- // with ENTRIES
19
- // If pattern[n] is GLOBSTAR
20
- // // handle the case where the globstar match is empty
21
- // // by pruning it out, and testing the resulting pattern
22
- // PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
23
- // // handle other cases.
24
- // for ENTRY in ENTRIES (not dotfiles)
25
- // // attach globstar + tail onto the entry
26
- // // Mark that this entry is a globstar match
27
- // PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
28
- //
29
- // else // not globstar
30
- // for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
31
- // Test ENTRY against pattern[n]
32
- // If fails, continue
33
- // If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
34
- //
35
- // Caveat:
36
- // Cache all stats and readdirs results to minimize syscall. Since all
37
- // we ever care about is existence and directory-ness, we can just keep
38
- // `true` for files, and [children,...] for directories, or `false` for
39
- // things that don't exist.
40
-
41
- module.exports = glob
42
-
43
- var fs = require('fs')
44
- var rp = require('fs.realpath')
45
- var minimatch = require('minimatch')
46
- var Minimatch = minimatch.Minimatch
47
- var inherits = require('inherits')
48
- var EE = require('events').EventEmitter
49
- var path = require('path')
50
- var assert = require('assert')
51
- var isAbsolute = require('path-is-absolute')
52
- var globSync = require('./sync.js')
53
- var common = require('./common.js')
54
- var alphasort = common.alphasort
55
- var alphasorti = common.alphasorti
56
- var setopts = common.setopts
57
- var ownProp = common.ownProp
58
- var inflight = require('inflight')
59
- var util = require('util')
60
- var childrenIgnored = common.childrenIgnored
61
- var isIgnored = common.isIgnored
62
-
63
- var once = require('once')
64
-
65
- function glob (pattern, options, cb) {
66
- if (typeof options === 'function') cb = options, options = {}
67
- if (!options) options = {}
68
-
69
- if (options.sync) {
70
- if (cb)
71
- throw new TypeError('callback provided to sync glob')
72
- return globSync(pattern, options)
73
- }
74
-
75
- return new Glob(pattern, options, cb)
76
- }
77
-
78
- glob.sync = globSync
79
- var GlobSync = glob.GlobSync = globSync.GlobSync
80
-
81
- // old api surface
82
- glob.glob = glob
83
-
84
- function extend (origin, add) {
85
- if (add === null || typeof add !== 'object') {
86
- return origin
87
- }
88
-
89
- var keys = Object.keys(add)
90
- var i = keys.length
91
- while (i--) {
92
- origin[keys[i]] = add[keys[i]]
93
- }
94
- return origin
95
- }
96
-
97
- glob.hasMagic = function (pattern, options_) {
98
- var options = extend({}, options_)
99
- options.noprocess = true
100
-
101
- var g = new Glob(pattern, options)
102
- var set = g.minimatch.set
103
-
104
- if (!pattern)
105
- return false
106
-
107
- if (set.length > 1)
108
- return true
109
-
110
- for (var j = 0; j < set[0].length; j++) {
111
- if (typeof set[0][j] !== 'string')
112
- return true
113
- }
114
-
115
- return false
116
- }
117
-
118
- glob.Glob = Glob
119
- inherits(Glob, EE)
120
- function Glob (pattern, options, cb) {
121
- if (typeof options === 'function') {
122
- cb = options
123
- options = null
124
- }
125
-
126
- if (options && options.sync) {
127
- if (cb)
128
- throw new TypeError('callback provided to sync glob')
129
- return new GlobSync(pattern, options)
130
- }
131
-
132
- if (!(this instanceof Glob))
133
- return new Glob(pattern, options, cb)
134
-
135
- setopts(this, pattern, options)
136
- this._didRealPath = false
137
-
138
- // process each pattern in the minimatch set
139
- var n = this.minimatch.set.length
140
-
141
- // The matches are stored as {<filename>: true,...} so that
142
- // duplicates are automagically pruned.
143
- // Later, we do an Object.keys() on these.
144
- // Keep them as a list so we can fill in when nonull is set.
145
- this.matches = new Array(n)
146
-
147
- if (typeof cb === 'function') {
148
- cb = once(cb)
149
- this.on('error', cb)
150
- this.on('end', function (matches) {
151
- cb(null, matches)
152
- })
153
- }
154
-
155
- var self = this
156
- this._processing = 0
157
-
158
- this._emitQueue = []
159
- this._processQueue = []
160
- this.paused = false
161
-
162
- if (this.noprocess)
163
- return this
164
-
165
- if (n === 0)
166
- return done()
167
-
168
- var sync = true
169
- for (var i = 0; i < n; i ++) {
170
- this._process(this.minimatch.set[i], i, false, done)
171
- }
172
- sync = false
173
-
174
- function done () {
175
- --self._processing
176
- if (self._processing <= 0) {
177
- if (sync) {
178
- process.nextTick(function () {
179
- self._finish()
180
- })
181
- } else {
182
- self._finish()
183
- }
184
- }
185
- }
186
- }
187
-
188
- Glob.prototype._finish = function () {
189
- assert(this instanceof Glob)
190
- if (this.aborted)
191
- return
192
-
193
- if (this.realpath && !this._didRealpath)
194
- return this._realpath()
195
-
196
- common.finish(this)
197
- this.emit('end', this.found)
198
- }
199
-
200
- Glob.prototype._realpath = function () {
201
- if (this._didRealpath)
202
- return
203
-
204
- this._didRealpath = true
205
-
206
- var n = this.matches.length
207
- if (n === 0)
208
- return this._finish()
209
-
210
- var self = this
211
- for (var i = 0; i < this.matches.length; i++)
212
- this._realpathSet(i, next)
213
-
214
- function next () {
215
- if (--n === 0)
216
- self._finish()
217
- }
218
- }
219
-
220
- Glob.prototype._realpathSet = function (index, cb) {
221
- var matchset = this.matches[index]
222
- if (!matchset)
223
- return cb()
224
-
225
- var found = Object.keys(matchset)
226
- var self = this
227
- var n = found.length
228
-
229
- if (n === 0)
230
- return cb()
231
-
232
- var set = this.matches[index] = Object.create(null)
233
- found.forEach(function (p, i) {
234
- // If there's a problem with the stat, then it means that
235
- // one or more of the links in the realpath couldn't be
236
- // resolved. just return the abs value in that case.
237
- p = self._makeAbs(p)
238
- rp.realpath(p, self.realpathCache, function (er, real) {
239
- if (!er)
240
- set[real] = true
241
- else if (er.syscall === 'stat')
242
- set[p] = true
243
- else
244
- self.emit('error', er) // srsly wtf right here
245
-
246
- if (--n === 0) {
247
- self.matches[index] = set
248
- cb()
249
- }
250
- })
251
- })
252
- }
253
-
254
- Glob.prototype._mark = function (p) {
255
- return common.mark(this, p)
256
- }
257
-
258
- Glob.prototype._makeAbs = function (f) {
259
- return common.makeAbs(this, f)
260
- }
261
-
262
- Glob.prototype.abort = function () {
263
- this.aborted = true
264
- this.emit('abort')
265
- }
266
-
267
- Glob.prototype.pause = function () {
268
- if (!this.paused) {
269
- this.paused = true
270
- this.emit('pause')
271
- }
272
- }
273
-
274
- Glob.prototype.resume = function () {
275
- if (this.paused) {
276
- this.emit('resume')
277
- this.paused = false
278
- if (this._emitQueue.length) {
279
- var eq = this._emitQueue.slice(0)
280
- this._emitQueue.length = 0
281
- for (var i = 0; i < eq.length; i ++) {
282
- var e = eq[i]
283
- this._emitMatch(e[0], e[1])
284
- }
285
- }
286
- if (this._processQueue.length) {
287
- var pq = this._processQueue.slice(0)
288
- this._processQueue.length = 0
289
- for (var i = 0; i < pq.length; i ++) {
290
- var p = pq[i]
291
- this._processing--
292
- this._process(p[0], p[1], p[2], p[3])
293
- }
294
- }
295
- }
296
- }
297
-
298
- Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
299
- assert(this instanceof Glob)
300
- assert(typeof cb === 'function')
301
-
302
- if (this.aborted)
303
- return
304
-
305
- this._processing++
306
- if (this.paused) {
307
- this._processQueue.push([pattern, index, inGlobStar, cb])
308
- return
309
- }
310
-
311
- //console.error('PROCESS %d', this._processing, pattern)
312
-
313
- // Get the first [n] parts of pattern that are all strings.
314
- var n = 0
315
- while (typeof pattern[n] === 'string') {
316
- n ++
317
- }
318
- // now n is the index of the first one that is *not* a string.
319
-
320
- // see if there's anything else
321
- var prefix
322
- switch (n) {
323
- // if not, then this is rather simple
324
- case pattern.length:
325
- this._processSimple(pattern.join('/'), index, cb)
326
- return
327
-
328
- case 0:
329
- // pattern *starts* with some non-trivial item.
330
- // going to readdir(cwd), but not include the prefix in matches.
331
- prefix = null
332
- break
333
-
334
- default:
335
- // pattern has some string bits in the front.
336
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
337
- // or 'relative' like '../baz'
338
- prefix = pattern.slice(0, n).join('/')
339
- break
340
- }
341
-
342
- var remain = pattern.slice(n)
343
-
344
- // get the list of entries.
345
- var read
346
- if (prefix === null)
347
- read = '.'
348
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
349
- if (!prefix || !isAbsolute(prefix))
350
- prefix = '/' + prefix
351
- read = prefix
352
- } else
353
- read = prefix
354
-
355
- var abs = this._makeAbs(read)
356
-
357
- //if ignored, skip _processing
358
- if (childrenIgnored(this, read))
359
- return cb()
360
-
361
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
362
- if (isGlobStar)
363
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
364
- else
365
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
366
- }
367
-
368
- Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
369
- var self = this
370
- this._readdir(abs, inGlobStar, function (er, entries) {
371
- return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
372
- })
373
- }
374
-
375
- Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
376
-
377
- // if the abs isn't a dir, then nothing can match!
378
- if (!entries)
379
- return cb()
380
-
381
- // It will only match dot entries if it starts with a dot, or if
382
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
383
- var pn = remain[0]
384
- var negate = !!this.minimatch.negate
385
- var rawGlob = pn._glob
386
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
387
-
388
- var matchedEntries = []
389
- for (var i = 0; i < entries.length; i++) {
390
- var e = entries[i]
391
- if (e.charAt(0) !== '.' || dotOk) {
392
- var m
393
- if (negate && !prefix) {
394
- m = !e.match(pn)
395
- } else {
396
- m = e.match(pn)
397
- }
398
- if (m)
399
- matchedEntries.push(e)
400
- }
401
- }
402
-
403
- //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
404
-
405
- var len = matchedEntries.length
406
- // If there are no matched entries, then nothing matches.
407
- if (len === 0)
408
- return cb()
409
-
410
- // if this is the last remaining pattern bit, then no need for
411
- // an additional stat *unless* the user has specified mark or
412
- // stat explicitly. We know they exist, since readdir returned
413
- // them.
414
-
415
- if (remain.length === 1 && !this.mark && !this.stat) {
416
- if (!this.matches[index])
417
- this.matches[index] = Object.create(null)
418
-
419
- for (var i = 0; i < len; i ++) {
420
- var e = matchedEntries[i]
421
- if (prefix) {
422
- if (prefix !== '/')
423
- e = prefix + '/' + e
424
- else
425
- e = prefix + e
426
- }
427
-
428
- if (e.charAt(0) === '/' && !this.nomount) {
429
- e = path.join(this.root, e)
430
- }
431
- this._emitMatch(index, e)
432
- }
433
- // This was the last one, and no stats were needed
434
- return cb()
435
- }
436
-
437
- // now test all matched entries as stand-ins for that part
438
- // of the pattern.
439
- remain.shift()
440
- for (var i = 0; i < len; i ++) {
441
- var e = matchedEntries[i]
442
- var newPattern
443
- if (prefix) {
444
- if (prefix !== '/')
445
- e = prefix + '/' + e
446
- else
447
- e = prefix + e
448
- }
449
- this._process([e].concat(remain), index, inGlobStar, cb)
450
- }
451
- cb()
452
- }
453
-
454
- Glob.prototype._emitMatch = function (index, e) {
455
- if (this.aborted)
456
- return
457
-
458
- if (isIgnored(this, e))
459
- return
460
-
461
- if (this.paused) {
462
- this._emitQueue.push([index, e])
463
- return
464
- }
465
-
466
- var abs = isAbsolute(e) ? e : this._makeAbs(e)
467
-
468
- if (this.mark)
469
- e = this._mark(e)
470
-
471
- if (this.absolute)
472
- e = abs
473
-
474
- if (this.matches[index][e])
475
- return
476
-
477
- if (this.nodir) {
478
- var c = this.cache[abs]
479
- if (c === 'DIR' || Array.isArray(c))
480
- return
481
- }
482
-
483
- this.matches[index][e] = true
484
-
485
- var st = this.statCache[abs]
486
- if (st)
487
- this.emit('stat', e, st)
488
-
489
- this.emit('match', e)
490
- }
491
-
492
- Glob.prototype._readdirInGlobStar = function (abs, cb) {
493
- if (this.aborted)
494
- return
495
-
496
- // follow all symlinked directories forever
497
- // just proceed as if this is a non-globstar situation
498
- if (this.follow)
499
- return this._readdir(abs, false, cb)
500
-
501
- var lstatkey = 'lstat\0' + abs
502
- var self = this
503
- var lstatcb = inflight(lstatkey, lstatcb_)
504
-
505
- if (lstatcb)
506
- fs.lstat(abs, lstatcb)
507
-
508
- function lstatcb_ (er, lstat) {
509
- if (er && er.code === 'ENOENT')
510
- return cb()
511
-
512
- var isSym = lstat && lstat.isSymbolicLink()
513
- self.symlinks[abs] = isSym
514
-
515
- // If it's not a symlink or a dir, then it's definitely a regular file.
516
- // don't bother doing a readdir in that case.
517
- if (!isSym && lstat && !lstat.isDirectory()) {
518
- self.cache[abs] = 'FILE'
519
- cb()
520
- } else
521
- self._readdir(abs, false, cb)
522
- }
523
- }
524
-
525
- Glob.prototype._readdir = function (abs, inGlobStar, cb) {
526
- if (this.aborted)
527
- return
528
-
529
- cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
530
- if (!cb)
531
- return
532
-
533
- //console.error('RD %j %j', +inGlobStar, abs)
534
- if (inGlobStar && !ownProp(this.symlinks, abs))
535
- return this._readdirInGlobStar(abs, cb)
536
-
537
- if (ownProp(this.cache, abs)) {
538
- var c = this.cache[abs]
539
- if (!c || c === 'FILE')
540
- return cb()
541
-
542
- if (Array.isArray(c))
543
- return cb(null, c)
544
- }
545
-
546
- var self = this
547
- fs.readdir(abs, readdirCb(this, abs, cb))
548
- }
549
-
550
- function readdirCb (self, abs, cb) {
551
- return function (er, entries) {
552
- if (er)
553
- self._readdirError(abs, er, cb)
554
- else
555
- self._readdirEntries(abs, entries, cb)
556
- }
557
- }
558
-
559
- Glob.prototype._readdirEntries = function (abs, entries, cb) {
560
- if (this.aborted)
561
- return
562
-
563
- // if we haven't asked to stat everything, then just
564
- // assume that everything in there exists, so we can avoid
565
- // having to stat it a second time.
566
- if (!this.mark && !this.stat) {
567
- for (var i = 0; i < entries.length; i ++) {
568
- var e = entries[i]
569
- if (abs === '/')
570
- e = abs + e
571
- else
572
- e = abs + '/' + e
573
- this.cache[e] = true
574
- }
575
- }
576
-
577
- this.cache[abs] = entries
578
- return cb(null, entries)
579
- }
580
-
581
- Glob.prototype._readdirError = function (f, er, cb) {
582
- if (this.aborted)
583
- return
584
-
585
- // handle errors, and cache the information
586
- switch (er.code) {
587
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
588
- case 'ENOTDIR': // totally normal. means it *does* exist.
589
- var abs = this._makeAbs(f)
590
- this.cache[abs] = 'FILE'
591
- if (abs === this.cwdAbs) {
592
- var error = new Error(er.code + ' invalid cwd ' + this.cwd)
593
- error.path = this.cwd
594
- error.code = er.code
595
- this.emit('error', error)
596
- this.abort()
597
- }
598
- break
599
-
600
- case 'ENOENT': // not terribly unusual
601
- case 'ELOOP':
602
- case 'ENAMETOOLONG':
603
- case 'UNKNOWN':
604
- this.cache[this._makeAbs(f)] = false
605
- break
606
-
607
- default: // some unusual error. Treat as failure.
608
- this.cache[this._makeAbs(f)] = false
609
- if (this.strict) {
610
- this.emit('error', er)
611
- // If the error is handled, then we abort
612
- // if not, we threw out of here
613
- this.abort()
614
- }
615
- if (!this.silent)
616
- console.error('glob error', er)
617
- break
618
- }
619
-
620
- return cb()
621
- }
622
-
623
- Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
624
- var self = this
625
- this._readdir(abs, inGlobStar, function (er, entries) {
626
- self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
627
- })
628
- }
629
-
630
-
631
- Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
632
- //console.error('pgs2', prefix, remain[0], entries)
633
-
634
- // no entries means not a dir, so it can never have matches
635
- // foo.txt/** doesn't match foo.txt
636
- if (!entries)
637
- return cb()
638
-
639
- // test without the globstar, and with every child both below
640
- // and replacing the globstar.
641
- var remainWithoutGlobStar = remain.slice(1)
642
- var gspref = prefix ? [ prefix ] : []
643
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
644
-
645
- // the noGlobStar pattern exits the inGlobStar state
646
- this._process(noGlobStar, index, false, cb)
647
-
648
- var isSym = this.symlinks[abs]
649
- var len = entries.length
650
-
651
- // If it's a symlink, and we're in a globstar, then stop
652
- if (isSym && inGlobStar)
653
- return cb()
654
-
655
- for (var i = 0; i < len; i++) {
656
- var e = entries[i]
657
- if (e.charAt(0) === '.' && !this.dot)
658
- continue
659
-
660
- // these two cases enter the inGlobStar state
661
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
662
- this._process(instead, index, true, cb)
663
-
664
- var below = gspref.concat(entries[i], remain)
665
- this._process(below, index, true, cb)
666
- }
667
-
668
- cb()
669
- }
670
-
671
- Glob.prototype._processSimple = function (prefix, index, cb) {
672
- // XXX review this. Shouldn't it be doing the mounting etc
673
- // before doing stat? kinda weird?
674
- var self = this
675
- this._stat(prefix, function (er, exists) {
676
- self._processSimple2(prefix, index, er, exists, cb)
677
- })
678
- }
679
- Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
680
-
681
- //console.error('ps2', prefix, exists)
682
-
683
- if (!this.matches[index])
684
- this.matches[index] = Object.create(null)
685
-
686
- // If it doesn't exist, then just mark the lack of results
687
- if (!exists)
688
- return cb()
689
-
690
- if (prefix && isAbsolute(prefix) && !this.nomount) {
691
- var trail = /[\/\\]$/.test(prefix)
692
- if (prefix.charAt(0) === '/') {
693
- prefix = path.join(this.root, prefix)
694
- } else {
695
- prefix = path.resolve(this.root, prefix)
696
- if (trail)
697
- prefix += '/'
698
- }
699
- }
700
-
701
- if (process.platform === 'win32')
702
- prefix = prefix.replace(/\\/g, '/')
703
-
704
- // Mark this as a match
705
- this._emitMatch(index, prefix)
706
- cb()
707
- }
708
-
709
- // Returns either 'DIR', 'FILE', or false
710
- Glob.prototype._stat = function (f, cb) {
711
- var abs = this._makeAbs(f)
712
- var needDir = f.slice(-1) === '/'
713
-
714
- if (f.length > this.maxLength)
715
- return cb()
716
-
717
- if (!this.stat && ownProp(this.cache, abs)) {
718
- var c = this.cache[abs]
719
-
720
- if (Array.isArray(c))
721
- c = 'DIR'
722
-
723
- // It exists, but maybe not how we need it
724
- if (!needDir || c === 'DIR')
725
- return cb(null, c)
726
-
727
- if (needDir && c === 'FILE')
728
- return cb()
729
-
730
- // otherwise we have to stat, because maybe c=true
731
- // if we know it exists, but not what it is.
732
- }
733
-
734
- var exists
735
- var stat = this.statCache[abs]
736
- if (stat !== undefined) {
737
- if (stat === false)
738
- return cb(null, stat)
739
- else {
740
- var type = stat.isDirectory() ? 'DIR' : 'FILE'
741
- if (needDir && type === 'FILE')
742
- return cb()
743
- else
744
- return cb(null, type, stat)
745
- }
746
- }
747
-
748
- var self = this
749
- var statcb = inflight('stat\0' + abs, lstatcb_)
750
- if (statcb)
751
- fs.lstat(abs, statcb)
752
-
753
- function lstatcb_ (er, lstat) {
754
- if (lstat && lstat.isSymbolicLink()) {
755
- // If it's a symlink, then treat it as the target, unless
756
- // the target does not exist, then treat it as a file.
757
- return fs.stat(abs, function (er, stat) {
758
- if (er)
759
- self._stat2(f, abs, null, lstat, cb)
760
- else
761
- self._stat2(f, abs, er, stat, cb)
762
- })
763
- } else {
764
- self._stat2(f, abs, er, lstat, cb)
765
- }
766
- }
767
- }
768
-
769
- Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
770
- if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
771
- this.statCache[abs] = false
772
- return cb()
773
- }
774
-
775
- var needDir = f.slice(-1) === '/'
776
- this.statCache[abs] = stat
777
-
778
- if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
779
- return cb(null, false, stat)
780
-
781
- var c = true
782
- if (stat)
783
- c = stat.isDirectory() ? 'DIR' : 'FILE'
784
- this.cache[abs] = this.cache[abs] || c
785
-
786
- if (needDir && c === 'FILE')
787
- return cb()
788
-
789
- return cb(null, c, stat)
790
- }