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,214 +0,0 @@
1
- // Copyright Joyent, Inc. and other Node contributors.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a
4
- // copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to permit
8
- // persons to whom the Software is furnished to do so, subject to the
9
- // following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included
12
- // in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- // a transform stream is a readable/writable stream where you do
23
- // something with the data. Sometimes it's called a "filter",
24
- // but that's not a great name for it, since that implies a thing where
25
- // some bits pass through, and others are simply ignored. (That would
26
- // be a valid example of a transform, of course.)
27
- //
28
- // While the output is causally related to the input, it's not a
29
- // necessarily symmetric or synchronous transformation. For example,
30
- // a zlib stream might take multiple plain-text writes(), and then
31
- // emit a single compressed chunk some time in the future.
32
- //
33
- // Here's how this works:
34
- //
35
- // The Transform stream has all the aspects of the readable and writable
36
- // stream classes. When you write(chunk), that calls _write(chunk,cb)
37
- // internally, and returns false if there's a lot of pending writes
38
- // buffered up. When you call read(), that calls _read(n) until
39
- // there's enough pending readable data buffered up.
40
- //
41
- // In a transform stream, the written data is placed in a buffer. When
42
- // _read(n) is called, it transforms the queued up data, calling the
43
- // buffered _write cb's as it consumes chunks. If consuming a single
44
- // written chunk would result in multiple output chunks, then the first
45
- // outputted bit calls the readcb, and subsequent chunks just go into
46
- // the read buffer, and will cause it to emit 'readable' if necessary.
47
- //
48
- // This way, back-pressure is actually determined by the reading side,
49
- // since _read has to be called to start processing a new chunk. However,
50
- // a pathological inflate type of transform can cause excessive buffering
51
- // here. For example, imagine a stream where every byte of input is
52
- // interpreted as an integer from 0-255, and then results in that many
53
- // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
54
- // 1kb of data being output. In this case, you could write a very small
55
- // amount of input, and end up with a very large amount of output. In
56
- // such a pathological inflating mechanism, there'd be no way to tell
57
- // the system to stop doing the transform. A single 4MB write could
58
- // cause the system to run out of memory.
59
- //
60
- // However, even in such a pathological case, only a single written chunk
61
- // would be consumed, and then the rest would wait (un-transformed) until
62
- // the results of the previous transformed chunk were consumed.
63
-
64
- 'use strict';
65
-
66
- module.exports = Transform;
67
-
68
- var Duplex = require('./_stream_duplex');
69
-
70
- /*<replacement>*/
71
- var util = require('core-util-is');
72
- util.inherits = require('inherits');
73
- /*</replacement>*/
74
-
75
- util.inherits(Transform, Duplex);
76
-
77
- function afterTransform(er, data) {
78
- var ts = this._transformState;
79
- ts.transforming = false;
80
-
81
- var cb = ts.writecb;
82
-
83
- if (!cb) {
84
- return this.emit('error', new Error('write callback called multiple times'));
85
- }
86
-
87
- ts.writechunk = null;
88
- ts.writecb = null;
89
-
90
- if (data != null) // single equals check for both `null` and `undefined`
91
- this.push(data);
92
-
93
- cb(er);
94
-
95
- var rs = this._readableState;
96
- rs.reading = false;
97
- if (rs.needReadable || rs.length < rs.highWaterMark) {
98
- this._read(rs.highWaterMark);
99
- }
100
- }
101
-
102
- function Transform(options) {
103
- if (!(this instanceof Transform)) return new Transform(options);
104
-
105
- Duplex.call(this, options);
106
-
107
- this._transformState = {
108
- afterTransform: afterTransform.bind(this),
109
- needTransform: false,
110
- transforming: false,
111
- writecb: null,
112
- writechunk: null,
113
- writeencoding: null
114
- };
115
-
116
- // start out asking for a readable event once data is transformed.
117
- this._readableState.needReadable = true;
118
-
119
- // we have implemented the _read method, and done the other things
120
- // that Readable wants before the first _read call, so unset the
121
- // sync guard flag.
122
- this._readableState.sync = false;
123
-
124
- if (options) {
125
- if (typeof options.transform === 'function') this._transform = options.transform;
126
-
127
- if (typeof options.flush === 'function') this._flush = options.flush;
128
- }
129
-
130
- // When the writable side finishes, then flush out anything remaining.
131
- this.on('prefinish', prefinish);
132
- }
133
-
134
- function prefinish() {
135
- var _this = this;
136
-
137
- if (typeof this._flush === 'function') {
138
- this._flush(function (er, data) {
139
- done(_this, er, data);
140
- });
141
- } else {
142
- done(this, null, null);
143
- }
144
- }
145
-
146
- Transform.prototype.push = function (chunk, encoding) {
147
- this._transformState.needTransform = false;
148
- return Duplex.prototype.push.call(this, chunk, encoding);
149
- };
150
-
151
- // This is the part where you do stuff!
152
- // override this function in implementation classes.
153
- // 'chunk' is an input chunk.
154
- //
155
- // Call `push(newChunk)` to pass along transformed output
156
- // to the readable side. You may call 'push' zero or more times.
157
- //
158
- // Call `cb(err)` when you are done with this chunk. If you pass
159
- // an error, then that'll put the hurt on the whole operation. If you
160
- // never call cb(), then you'll never get another chunk.
161
- Transform.prototype._transform = function (chunk, encoding, cb) {
162
- throw new Error('_transform() is not implemented');
163
- };
164
-
165
- Transform.prototype._write = function (chunk, encoding, cb) {
166
- var ts = this._transformState;
167
- ts.writecb = cb;
168
- ts.writechunk = chunk;
169
- ts.writeencoding = encoding;
170
- if (!ts.transforming) {
171
- var rs = this._readableState;
172
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
173
- }
174
- };
175
-
176
- // Doesn't matter what the args are here.
177
- // _transform does all the work.
178
- // That we got here means that the readable side wants more data.
179
- Transform.prototype._read = function (n) {
180
- var ts = this._transformState;
181
-
182
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
183
- ts.transforming = true;
184
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
185
- } else {
186
- // mark that we need a transform, so that any data that comes in
187
- // will get processed, now that we've asked for it.
188
- ts.needTransform = true;
189
- }
190
- };
191
-
192
- Transform.prototype._destroy = function (err, cb) {
193
- var _this2 = this;
194
-
195
- Duplex.prototype._destroy.call(this, err, function (err2) {
196
- cb(err2);
197
- _this2.emit('close');
198
- });
199
- };
200
-
201
- function done(stream, er, data) {
202
- if (er) return stream.emit('error', er);
203
-
204
- if (data != null) // single equals check for both `null` and `undefined`
205
- stream.push(data);
206
-
207
- // if there's nothing in the write buffer, then that means
208
- // that nothing more will ever be provided
209
- if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
210
-
211
- if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
212
-
213
- return stream.push(null);
214
- }
@@ -1,687 +0,0 @@
1
- // Copyright Joyent, Inc. and other Node contributors.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a
4
- // copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to permit
8
- // persons to whom the Software is furnished to do so, subject to the
9
- // following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included
12
- // in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- // A bit simpler than readable streams.
23
- // Implement an async ._write(chunk, encoding, cb), and it'll handle all
24
- // the drain event emission and buffering.
25
-
26
- 'use strict';
27
-
28
- /*<replacement>*/
29
-
30
- var pna = require('process-nextick-args');
31
- /*</replacement>*/
32
-
33
- module.exports = Writable;
34
-
35
- /* <replacement> */
36
- function WriteReq(chunk, encoding, cb) {
37
- this.chunk = chunk;
38
- this.encoding = encoding;
39
- this.callback = cb;
40
- this.next = null;
41
- }
42
-
43
- // It seems a linked list but it is not
44
- // there will be only 2 of these for each stream
45
- function CorkedRequest(state) {
46
- var _this = this;
47
-
48
- this.next = null;
49
- this.entry = null;
50
- this.finish = function () {
51
- onCorkedFinish(_this, state);
52
- };
53
- }
54
- /* </replacement> */
55
-
56
- /*<replacement>*/
57
- var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
58
- /*</replacement>*/
59
-
60
- /*<replacement>*/
61
- var Duplex;
62
- /*</replacement>*/
63
-
64
- Writable.WritableState = WritableState;
65
-
66
- /*<replacement>*/
67
- var util = require('core-util-is');
68
- util.inherits = require('inherits');
69
- /*</replacement>*/
70
-
71
- /*<replacement>*/
72
- var internalUtil = {
73
- deprecate: require('util-deprecate')
74
- };
75
- /*</replacement>*/
76
-
77
- /*<replacement>*/
78
- var Stream = require('./internal/streams/stream');
79
- /*</replacement>*/
80
-
81
- /*<replacement>*/
82
-
83
- var Buffer = require('safe-buffer').Buffer;
84
- var OurUint8Array = global.Uint8Array || function () {};
85
- function _uint8ArrayToBuffer(chunk) {
86
- return Buffer.from(chunk);
87
- }
88
- function _isUint8Array(obj) {
89
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
90
- }
91
-
92
- /*</replacement>*/
93
-
94
- var destroyImpl = require('./internal/streams/destroy');
95
-
96
- util.inherits(Writable, Stream);
97
-
98
- function nop() {}
99
-
100
- function WritableState(options, stream) {
101
- Duplex = Duplex || require('./_stream_duplex');
102
-
103
- options = options || {};
104
-
105
- // Duplex streams are both readable and writable, but share
106
- // the same options object.
107
- // However, some cases require setting options to different
108
- // values for the readable and the writable sides of the duplex stream.
109
- // These options can be provided separately as readableXXX and writableXXX.
110
- var isDuplex = stream instanceof Duplex;
111
-
112
- // object stream flag to indicate whether or not this stream
113
- // contains buffers or objects.
114
- this.objectMode = !!options.objectMode;
115
-
116
- if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
117
-
118
- // the point at which write() starts returning false
119
- // Note: 0 is a valid value, means that we always return false if
120
- // the entire buffer is not flushed immediately on write()
121
- var hwm = options.highWaterMark;
122
- var writableHwm = options.writableHighWaterMark;
123
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
124
-
125
- if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
126
-
127
- // cast to ints.
128
- this.highWaterMark = Math.floor(this.highWaterMark);
129
-
130
- // if _final has been called
131
- this.finalCalled = false;
132
-
133
- // drain event flag.
134
- this.needDrain = false;
135
- // at the start of calling end()
136
- this.ending = false;
137
- // when end() has been called, and returned
138
- this.ended = false;
139
- // when 'finish' is emitted
140
- this.finished = false;
141
-
142
- // has it been destroyed
143
- this.destroyed = false;
144
-
145
- // should we decode strings into buffers before passing to _write?
146
- // this is here so that some node-core streams can optimize string
147
- // handling at a lower level.
148
- var noDecode = options.decodeStrings === false;
149
- this.decodeStrings = !noDecode;
150
-
151
- // Crypto is kind of old and crusty. Historically, its default string
152
- // encoding is 'binary' so we have to make this configurable.
153
- // Everything else in the universe uses 'utf8', though.
154
- this.defaultEncoding = options.defaultEncoding || 'utf8';
155
-
156
- // not an actual buffer we keep track of, but a measurement
157
- // of how much we're waiting to get pushed to some underlying
158
- // socket or file.
159
- this.length = 0;
160
-
161
- // a flag to see when we're in the middle of a write.
162
- this.writing = false;
163
-
164
- // when true all writes will be buffered until .uncork() call
165
- this.corked = 0;
166
-
167
- // a flag to be able to tell if the onwrite cb is called immediately,
168
- // or on a later tick. We set this to true at first, because any
169
- // actions that shouldn't happen until "later" should generally also
170
- // not happen before the first write call.
171
- this.sync = true;
172
-
173
- // a flag to know if we're processing previously buffered items, which
174
- // may call the _write() callback in the same tick, so that we don't
175
- // end up in an overlapped onwrite situation.
176
- this.bufferProcessing = false;
177
-
178
- // the callback that's passed to _write(chunk,cb)
179
- this.onwrite = function (er) {
180
- onwrite(stream, er);
181
- };
182
-
183
- // the callback that the user supplies to write(chunk,encoding,cb)
184
- this.writecb = null;
185
-
186
- // the amount that is being written when _write is called.
187
- this.writelen = 0;
188
-
189
- this.bufferedRequest = null;
190
- this.lastBufferedRequest = null;
191
-
192
- // number of pending user-supplied write callbacks
193
- // this must be 0 before 'finish' can be emitted
194
- this.pendingcb = 0;
195
-
196
- // emit prefinish if the only thing we're waiting for is _write cbs
197
- // This is relevant for synchronous Transform streams
198
- this.prefinished = false;
199
-
200
- // True if the error was already emitted and should not be thrown again
201
- this.errorEmitted = false;
202
-
203
- // count buffered requests
204
- this.bufferedRequestCount = 0;
205
-
206
- // allocate the first CorkedRequest, there is always
207
- // one allocated and free to use, and we maintain at most two
208
- this.corkedRequestsFree = new CorkedRequest(this);
209
- }
210
-
211
- WritableState.prototype.getBuffer = function getBuffer() {
212
- var current = this.bufferedRequest;
213
- var out = [];
214
- while (current) {
215
- out.push(current);
216
- current = current.next;
217
- }
218
- return out;
219
- };
220
-
221
- (function () {
222
- try {
223
- Object.defineProperty(WritableState.prototype, 'buffer', {
224
- get: internalUtil.deprecate(function () {
225
- return this.getBuffer();
226
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
227
- });
228
- } catch (_) {}
229
- })();
230
-
231
- // Test _writableState for inheritance to account for Duplex streams,
232
- // whose prototype chain only points to Readable.
233
- var realHasInstance;
234
- if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
235
- realHasInstance = Function.prototype[Symbol.hasInstance];
236
- Object.defineProperty(Writable, Symbol.hasInstance, {
237
- value: function (object) {
238
- if (realHasInstance.call(this, object)) return true;
239
- if (this !== Writable) return false;
240
-
241
- return object && object._writableState instanceof WritableState;
242
- }
243
- });
244
- } else {
245
- realHasInstance = function (object) {
246
- return object instanceof this;
247
- };
248
- }
249
-
250
- function Writable(options) {
251
- Duplex = Duplex || require('./_stream_duplex');
252
-
253
- // Writable ctor is applied to Duplexes, too.
254
- // `realHasInstance` is necessary because using plain `instanceof`
255
- // would return false, as no `_writableState` property is attached.
256
-
257
- // Trying to use the custom `instanceof` for Writable here will also break the
258
- // Node.js LazyTransform implementation, which has a non-trivial getter for
259
- // `_writableState` that would lead to infinite recursion.
260
- if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
261
- return new Writable(options);
262
- }
263
-
264
- this._writableState = new WritableState(options, this);
265
-
266
- // legacy.
267
- this.writable = true;
268
-
269
- if (options) {
270
- if (typeof options.write === 'function') this._write = options.write;
271
-
272
- if (typeof options.writev === 'function') this._writev = options.writev;
273
-
274
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
275
-
276
- if (typeof options.final === 'function') this._final = options.final;
277
- }
278
-
279
- Stream.call(this);
280
- }
281
-
282
- // Otherwise people can pipe Writable streams, which is just wrong.
283
- Writable.prototype.pipe = function () {
284
- this.emit('error', new Error('Cannot pipe, not readable'));
285
- };
286
-
287
- function writeAfterEnd(stream, cb) {
288
- var er = new Error('write after end');
289
- // TODO: defer error events consistently everywhere, not just the cb
290
- stream.emit('error', er);
291
- pna.nextTick(cb, er);
292
- }
293
-
294
- // Checks that a user-supplied chunk is valid, especially for the particular
295
- // mode the stream is in. Currently this means that `null` is never accepted
296
- // and undefined/non-string values are only allowed in object mode.
297
- function validChunk(stream, state, chunk, cb) {
298
- var valid = true;
299
- var er = false;
300
-
301
- if (chunk === null) {
302
- er = new TypeError('May not write null values to stream');
303
- } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
304
- er = new TypeError('Invalid non-string/buffer chunk');
305
- }
306
- if (er) {
307
- stream.emit('error', er);
308
- pna.nextTick(cb, er);
309
- valid = false;
310
- }
311
- return valid;
312
- }
313
-
314
- Writable.prototype.write = function (chunk, encoding, cb) {
315
- var state = this._writableState;
316
- var ret = false;
317
- var isBuf = !state.objectMode && _isUint8Array(chunk);
318
-
319
- if (isBuf && !Buffer.isBuffer(chunk)) {
320
- chunk = _uint8ArrayToBuffer(chunk);
321
- }
322
-
323
- if (typeof encoding === 'function') {
324
- cb = encoding;
325
- encoding = null;
326
- }
327
-
328
- if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
329
-
330
- if (typeof cb !== 'function') cb = nop;
331
-
332
- if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
333
- state.pendingcb++;
334
- ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
335
- }
336
-
337
- return ret;
338
- };
339
-
340
- Writable.prototype.cork = function () {
341
- var state = this._writableState;
342
-
343
- state.corked++;
344
- };
345
-
346
- Writable.prototype.uncork = function () {
347
- var state = this._writableState;
348
-
349
- if (state.corked) {
350
- state.corked--;
351
-
352
- if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
353
- }
354
- };
355
-
356
- Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
357
- // node::ParseEncoding() requires lower case.
358
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
359
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
360
- this._writableState.defaultEncoding = encoding;
361
- return this;
362
- };
363
-
364
- function decodeChunk(state, chunk, encoding) {
365
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
366
- chunk = Buffer.from(chunk, encoding);
367
- }
368
- return chunk;
369
- }
370
-
371
- Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
372
- // making it explicit this property is not enumerable
373
- // because otherwise some prototype manipulation in
374
- // userland will fail
375
- enumerable: false,
376
- get: function () {
377
- return this._writableState.highWaterMark;
378
- }
379
- });
380
-
381
- // if we're already writing something, then just put this
382
- // in the queue, and wait our turn. Otherwise, call _write
383
- // If we return false, then we need a drain event, so set that flag.
384
- function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
385
- if (!isBuf) {
386
- var newChunk = decodeChunk(state, chunk, encoding);
387
- if (chunk !== newChunk) {
388
- isBuf = true;
389
- encoding = 'buffer';
390
- chunk = newChunk;
391
- }
392
- }
393
- var len = state.objectMode ? 1 : chunk.length;
394
-
395
- state.length += len;
396
-
397
- var ret = state.length < state.highWaterMark;
398
- // we must ensure that previous needDrain will not be reset to false.
399
- if (!ret) state.needDrain = true;
400
-
401
- if (state.writing || state.corked) {
402
- var last = state.lastBufferedRequest;
403
- state.lastBufferedRequest = {
404
- chunk: chunk,
405
- encoding: encoding,
406
- isBuf: isBuf,
407
- callback: cb,
408
- next: null
409
- };
410
- if (last) {
411
- last.next = state.lastBufferedRequest;
412
- } else {
413
- state.bufferedRequest = state.lastBufferedRequest;
414
- }
415
- state.bufferedRequestCount += 1;
416
- } else {
417
- doWrite(stream, state, false, len, chunk, encoding, cb);
418
- }
419
-
420
- return ret;
421
- }
422
-
423
- function doWrite(stream, state, writev, len, chunk, encoding, cb) {
424
- state.writelen = len;
425
- state.writecb = cb;
426
- state.writing = true;
427
- state.sync = true;
428
- if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
429
- state.sync = false;
430
- }
431
-
432
- function onwriteError(stream, state, sync, er, cb) {
433
- --state.pendingcb;
434
-
435
- if (sync) {
436
- // defer the callback if we are being called synchronously
437
- // to avoid piling up things on the stack
438
- pna.nextTick(cb, er);
439
- // this can emit finish, and it will always happen
440
- // after error
441
- pna.nextTick(finishMaybe, stream, state);
442
- stream._writableState.errorEmitted = true;
443
- stream.emit('error', er);
444
- } else {
445
- // the caller expect this to happen before if
446
- // it is async
447
- cb(er);
448
- stream._writableState.errorEmitted = true;
449
- stream.emit('error', er);
450
- // this can emit finish, but finish must
451
- // always follow error
452
- finishMaybe(stream, state);
453
- }
454
- }
455
-
456
- function onwriteStateUpdate(state) {
457
- state.writing = false;
458
- state.writecb = null;
459
- state.length -= state.writelen;
460
- state.writelen = 0;
461
- }
462
-
463
- function onwrite(stream, er) {
464
- var state = stream._writableState;
465
- var sync = state.sync;
466
- var cb = state.writecb;
467
-
468
- onwriteStateUpdate(state);
469
-
470
- if (er) onwriteError(stream, state, sync, er, cb);else {
471
- // Check if we're actually ready to finish, but don't emit yet
472
- var finished = needFinish(state);
473
-
474
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
475
- clearBuffer(stream, state);
476
- }
477
-
478
- if (sync) {
479
- /*<replacement>*/
480
- asyncWrite(afterWrite, stream, state, finished, cb);
481
- /*</replacement>*/
482
- } else {
483
- afterWrite(stream, state, finished, cb);
484
- }
485
- }
486
- }
487
-
488
- function afterWrite(stream, state, finished, cb) {
489
- if (!finished) onwriteDrain(stream, state);
490
- state.pendingcb--;
491
- cb();
492
- finishMaybe(stream, state);
493
- }
494
-
495
- // Must force callback to be called on nextTick, so that we don't
496
- // emit 'drain' before the write() consumer gets the 'false' return
497
- // value, and has a chance to attach a 'drain' listener.
498
- function onwriteDrain(stream, state) {
499
- if (state.length === 0 && state.needDrain) {
500
- state.needDrain = false;
501
- stream.emit('drain');
502
- }
503
- }
504
-
505
- // if there's something in the buffer waiting, then process it
506
- function clearBuffer(stream, state) {
507
- state.bufferProcessing = true;
508
- var entry = state.bufferedRequest;
509
-
510
- if (stream._writev && entry && entry.next) {
511
- // Fast case, write everything using _writev()
512
- var l = state.bufferedRequestCount;
513
- var buffer = new Array(l);
514
- var holder = state.corkedRequestsFree;
515
- holder.entry = entry;
516
-
517
- var count = 0;
518
- var allBuffers = true;
519
- while (entry) {
520
- buffer[count] = entry;
521
- if (!entry.isBuf) allBuffers = false;
522
- entry = entry.next;
523
- count += 1;
524
- }
525
- buffer.allBuffers = allBuffers;
526
-
527
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
528
-
529
- // doWrite is almost always async, defer these to save a bit of time
530
- // as the hot path ends with doWrite
531
- state.pendingcb++;
532
- state.lastBufferedRequest = null;
533
- if (holder.next) {
534
- state.corkedRequestsFree = holder.next;
535
- holder.next = null;
536
- } else {
537
- state.corkedRequestsFree = new CorkedRequest(state);
538
- }
539
- state.bufferedRequestCount = 0;
540
- } else {
541
- // Slow case, write chunks one-by-one
542
- while (entry) {
543
- var chunk = entry.chunk;
544
- var encoding = entry.encoding;
545
- var cb = entry.callback;
546
- var len = state.objectMode ? 1 : chunk.length;
547
-
548
- doWrite(stream, state, false, len, chunk, encoding, cb);
549
- entry = entry.next;
550
- state.bufferedRequestCount--;
551
- // if we didn't call the onwrite immediately, then
552
- // it means that we need to wait until it does.
553
- // also, that means that the chunk and cb are currently
554
- // being processed, so move the buffer counter past them.
555
- if (state.writing) {
556
- break;
557
- }
558
- }
559
-
560
- if (entry === null) state.lastBufferedRequest = null;
561
- }
562
-
563
- state.bufferedRequest = entry;
564
- state.bufferProcessing = false;
565
- }
566
-
567
- Writable.prototype._write = function (chunk, encoding, cb) {
568
- cb(new Error('_write() is not implemented'));
569
- };
570
-
571
- Writable.prototype._writev = null;
572
-
573
- Writable.prototype.end = function (chunk, encoding, cb) {
574
- var state = this._writableState;
575
-
576
- if (typeof chunk === 'function') {
577
- cb = chunk;
578
- chunk = null;
579
- encoding = null;
580
- } else if (typeof encoding === 'function') {
581
- cb = encoding;
582
- encoding = null;
583
- }
584
-
585
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
586
-
587
- // .end() fully uncorks
588
- if (state.corked) {
589
- state.corked = 1;
590
- this.uncork();
591
- }
592
-
593
- // ignore unnecessary end() calls.
594
- if (!state.ending && !state.finished) endWritable(this, state, cb);
595
- };
596
-
597
- function needFinish(state) {
598
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
599
- }
600
- function callFinal(stream, state) {
601
- stream._final(function (err) {
602
- state.pendingcb--;
603
- if (err) {
604
- stream.emit('error', err);
605
- }
606
- state.prefinished = true;
607
- stream.emit('prefinish');
608
- finishMaybe(stream, state);
609
- });
610
- }
611
- function prefinish(stream, state) {
612
- if (!state.prefinished && !state.finalCalled) {
613
- if (typeof stream._final === 'function') {
614
- state.pendingcb++;
615
- state.finalCalled = true;
616
- pna.nextTick(callFinal, stream, state);
617
- } else {
618
- state.prefinished = true;
619
- stream.emit('prefinish');
620
- }
621
- }
622
- }
623
-
624
- function finishMaybe(stream, state) {
625
- var need = needFinish(state);
626
- if (need) {
627
- prefinish(stream, state);
628
- if (state.pendingcb === 0) {
629
- state.finished = true;
630
- stream.emit('finish');
631
- }
632
- }
633
- return need;
634
- }
635
-
636
- function endWritable(stream, state, cb) {
637
- state.ending = true;
638
- finishMaybe(stream, state);
639
- if (cb) {
640
- if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
641
- }
642
- state.ended = true;
643
- stream.writable = false;
644
- }
645
-
646
- function onCorkedFinish(corkReq, state, err) {
647
- var entry = corkReq.entry;
648
- corkReq.entry = null;
649
- while (entry) {
650
- var cb = entry.callback;
651
- state.pendingcb--;
652
- cb(err);
653
- entry = entry.next;
654
- }
655
- if (state.corkedRequestsFree) {
656
- state.corkedRequestsFree.next = corkReq;
657
- } else {
658
- state.corkedRequestsFree = corkReq;
659
- }
660
- }
661
-
662
- Object.defineProperty(Writable.prototype, 'destroyed', {
663
- get: function () {
664
- if (this._writableState === undefined) {
665
- return false;
666
- }
667
- return this._writableState.destroyed;
668
- },
669
- set: function (value) {
670
- // we ignore the value if the stream
671
- // has not been initialized yet
672
- if (!this._writableState) {
673
- return;
674
- }
675
-
676
- // backward compatibility, the user is explicitly
677
- // managing destroyed
678
- this._writableState.destroyed = value;
679
- }
680
- });
681
-
682
- Writable.prototype.destroy = destroyImpl.destroy;
683
- Writable.prototype._undestroy = destroyImpl.undestroy;
684
- Writable.prototype._destroy = function (err, cb) {
685
- this.end();
686
- cb(err);
687
- };