postdoc 0.1.2 → 0.2.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (372) hide show
  1. checksums.yaml +5 -5
  2. data/lib/pdf.js +27 -0
  3. data/lib/postdoc.rb +3 -7
  4. data/node_modules/agent-base/History.md +113 -0
  5. data/node_modules/agent-base/README.md +145 -0
  6. data/node_modules/agent-base/index.js +160 -0
  7. data/node_modules/agent-base/package.json +35 -0
  8. data/node_modules/agent-base/patch-core.js +37 -0
  9. data/node_modules/agent-base/test/ssl-cert-snakeoil.key +15 -0
  10. data/node_modules/agent-base/test/ssl-cert-snakeoil.pem +12 -0
  11. data/node_modules/agent-base/test/test.js +673 -0
  12. data/node_modules/async-limiter/LICENSE +8 -0
  13. data/node_modules/async-limiter/coverage/coverage.json +1 -0
  14. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html +73 -0
  15. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html +246 -0
  16. data/node_modules/async-limiter/coverage/lcov-report/base.css +182 -0
  17. data/node_modules/async-limiter/coverage/lcov-report/index.html +73 -0
  18. data/node_modules/async-limiter/coverage/lcov-report/prettify.css +1 -0
  19. data/node_modules/async-limiter/coverage/lcov-report/prettify.js +1 -0
  20. data/node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  21. data/node_modules/async-limiter/coverage/lcov-report/sorter.js +156 -0
  22. data/node_modules/async-limiter/coverage/lcov.info +74 -0
  23. data/node_modules/async-limiter/index.js +67 -0
  24. data/node_modules/async-limiter/package.json +35 -0
  25. data/node_modules/async-limiter/readme.md +132 -0
  26. data/node_modules/balanced-match/LICENSE.md +21 -0
  27. data/node_modules/balanced-match/README.md +91 -0
  28. data/node_modules/balanced-match/index.js +59 -0
  29. data/node_modules/balanced-match/package.json +49 -0
  30. data/node_modules/brace-expansion/LICENSE +21 -0
  31. data/node_modules/brace-expansion/README.md +129 -0
  32. data/node_modules/brace-expansion/index.js +201 -0
  33. data/node_modules/brace-expansion/package.json +47 -0
  34. data/node_modules/buffer-from/index.js +69 -0
  35. data/node_modules/buffer-from/package.json +16 -0
  36. data/node_modules/buffer-from/readme.md +69 -0
  37. data/node_modules/buffer-from/test.js +12 -0
  38. data/node_modules/concat-map/LICENSE +18 -0
  39. data/node_modules/concat-map/README.markdown +62 -0
  40. data/node_modules/concat-map/example/map.js +6 -0
  41. data/node_modules/concat-map/index.js +13 -0
  42. data/node_modules/concat-map/package.json +43 -0
  43. data/node_modules/concat-map/test/map.js +39 -0
  44. data/node_modules/concat-stream/LICENSE +24 -0
  45. data/node_modules/concat-stream/index.js +144 -0
  46. data/node_modules/concat-stream/package.json +55 -0
  47. data/node_modules/concat-stream/readme.md +102 -0
  48. data/node_modules/core-util-is/LICENSE +19 -0
  49. data/node_modules/core-util-is/README.md +3 -0
  50. data/node_modules/core-util-is/float.patch +604 -0
  51. data/node_modules/core-util-is/lib/util.js +107 -0
  52. data/node_modules/core-util-is/package.json +32 -0
  53. data/node_modules/core-util-is/test.js +68 -0
  54. data/node_modules/debug/CHANGELOG.md +395 -0
  55. data/node_modules/debug/LICENSE +19 -0
  56. data/node_modules/debug/Makefile +58 -0
  57. data/node_modules/debug/README.md +368 -0
  58. data/node_modules/debug/karma.conf.js +70 -0
  59. data/node_modules/debug/node.js +1 -0
  60. data/node_modules/debug/package.json +43 -0
  61. data/node_modules/debug/src/browser.js +195 -0
  62. data/node_modules/debug/src/debug.js +225 -0
  63. data/node_modules/debug/src/index.js +10 -0
  64. data/node_modules/debug/src/node.js +186 -0
  65. data/node_modules/es6-promise/CHANGELOG.md +151 -0
  66. data/node_modules/es6-promise/LICENSE +19 -0
  67. data/node_modules/es6-promise/README.md +97 -0
  68. data/node_modules/es6-promise/auto.js +4 -0
  69. data/node_modules/es6-promise/dist/es6-promise.auto.js +1181 -0
  70. data/node_modules/es6-promise/dist/es6-promise.auto.map +1 -0
  71. data/node_modules/es6-promise/dist/es6-promise.auto.min.js +1 -0
  72. data/node_modules/es6-promise/dist/es6-promise.auto.min.map +1 -0
  73. data/node_modules/es6-promise/dist/es6-promise.js +1179 -0
  74. data/node_modules/es6-promise/dist/es6-promise.map +1 -0
  75. data/node_modules/es6-promise/dist/es6-promise.min.js +1 -0
  76. data/node_modules/es6-promise/dist/es6-promise.min.map +1 -0
  77. data/node_modules/es6-promise/es6-promise.d.ts +81 -0
  78. data/node_modules/es6-promise/lib/es6-promise/-internal.js +266 -0
  79. data/node_modules/es6-promise/lib/es6-promise/asap.js +119 -0
  80. data/node_modules/es6-promise/lib/es6-promise/enumerator.js +113 -0
  81. data/node_modules/es6-promise/lib/es6-promise/polyfill.js +35 -0
  82. data/node_modules/es6-promise/lib/es6-promise/promise/all.js +52 -0
  83. data/node_modules/es6-promise/lib/es6-promise/promise/race.js +84 -0
  84. data/node_modules/es6-promise/lib/es6-promise/promise/reject.js +46 -0
  85. data/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +48 -0
  86. data/node_modules/es6-promise/lib/es6-promise/promise.js +427 -0
  87. data/node_modules/es6-promise/lib/es6-promise/then.js +32 -0
  88. data/node_modules/es6-promise/lib/es6-promise/utils.js +21 -0
  89. data/node_modules/es6-promise/lib/es6-promise.auto.js +3 -0
  90. data/node_modules/es6-promise/lib/es6-promise.js +7 -0
  91. data/node_modules/es6-promise/package.json +75 -0
  92. data/node_modules/es6-promisify/README.md +89 -0
  93. data/node_modules/es6-promisify/dist/promise.js +73 -0
  94. data/node_modules/es6-promisify/dist/promisify.js +85 -0
  95. data/node_modules/es6-promisify/package.json +41 -0
  96. data/node_modules/extract-zip/CONTRIBUTING.md +1 -0
  97. data/node_modules/extract-zip/LICENSE +23 -0
  98. data/node_modules/extract-zip/cli.js +20 -0
  99. data/node_modules/extract-zip/index.js +205 -0
  100. data/node_modules/extract-zip/node_modules/debug/CHANGELOG.md +362 -0
  101. data/node_modules/extract-zip/node_modules/debug/LICENSE +19 -0
  102. data/node_modules/extract-zip/node_modules/debug/Makefile +50 -0
  103. data/node_modules/extract-zip/node_modules/debug/README.md +312 -0
  104. data/node_modules/extract-zip/node_modules/debug/component.json +19 -0
  105. data/node_modules/extract-zip/node_modules/debug/karma.conf.js +70 -0
  106. data/node_modules/extract-zip/node_modules/debug/node.js +1 -0
  107. data/node_modules/extract-zip/node_modules/debug/package.json +49 -0
  108. data/node_modules/extract-zip/node_modules/debug/src/browser.js +185 -0
  109. data/node_modules/extract-zip/node_modules/debug/src/debug.js +202 -0
  110. data/node_modules/extract-zip/node_modules/debug/src/index.js +10 -0
  111. data/node_modules/extract-zip/node_modules/debug/src/inspector-log.js +15 -0
  112. data/node_modules/extract-zip/node_modules/debug/src/node.js +248 -0
  113. data/node_modules/extract-zip/package.json +35 -0
  114. data/node_modules/extract-zip/readme.md +49 -0
  115. data/node_modules/fd-slicer/CHANGELOG.md +49 -0
  116. data/node_modules/fd-slicer/LICENSE +21 -0
  117. data/node_modules/fd-slicer/README.md +189 -0
  118. data/node_modules/fd-slicer/index.js +277 -0
  119. data/node_modules/fd-slicer/package.json +36 -0
  120. data/node_modules/fd-slicer/test/test.js +350 -0
  121. data/node_modules/fs.realpath/LICENSE +43 -0
  122. data/node_modules/fs.realpath/README.md +33 -0
  123. data/node_modules/fs.realpath/index.js +66 -0
  124. data/node_modules/fs.realpath/old.js +303 -0
  125. data/node_modules/fs.realpath/package.json +26 -0
  126. data/node_modules/glob/LICENSE +15 -0
  127. data/node_modules/glob/README.md +368 -0
  128. data/node_modules/glob/changelog.md +67 -0
  129. data/node_modules/glob/common.js +240 -0
  130. data/node_modules/glob/glob.js +790 -0
  131. data/node_modules/glob/package.json +43 -0
  132. data/node_modules/glob/sync.js +486 -0
  133. data/node_modules/https-proxy-agent/History.md +124 -0
  134. data/node_modules/https-proxy-agent/README.md +137 -0
  135. data/node_modules/https-proxy-agent/index.js +229 -0
  136. data/node_modules/https-proxy-agent/package.json +35 -0
  137. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key +15 -0
  138. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem +12 -0
  139. data/node_modules/https-proxy-agent/test/test.js +342 -0
  140. data/node_modules/inflight/LICENSE +15 -0
  141. data/node_modules/inflight/README.md +37 -0
  142. data/node_modules/inflight/inflight.js +54 -0
  143. data/node_modules/inflight/package.json +29 -0
  144. data/node_modules/inherits/LICENSE +16 -0
  145. data/node_modules/inherits/README.md +42 -0
  146. data/node_modules/inherits/inherits.js +7 -0
  147. data/node_modules/inherits/inherits_browser.js +23 -0
  148. data/node_modules/inherits/package.json +29 -0
  149. data/node_modules/isarray/Makefile +6 -0
  150. data/node_modules/isarray/README.md +60 -0
  151. data/node_modules/isarray/component.json +19 -0
  152. data/node_modules/isarray/index.js +5 -0
  153. data/node_modules/isarray/package.json +45 -0
  154. data/node_modules/isarray/test.js +20 -0
  155. data/node_modules/mime/CHANGELOG.md +225 -0
  156. data/node_modules/mime/CONTRIBUTING.md +5 -0
  157. data/node_modules/mime/LICENSE +21 -0
  158. data/node_modules/mime/Mime.js +89 -0
  159. data/node_modules/mime/README.md +188 -0
  160. data/node_modules/mime/cli.js +10 -0
  161. data/node_modules/mime/index.js +4 -0
  162. data/node_modules/mime/lite.js +4 -0
  163. data/node_modules/mime/package.json +43 -0
  164. data/node_modules/mime/src/README_js.md +179 -0
  165. data/node_modules/mime/src/build.js +71 -0
  166. data/node_modules/mime/src/test.js +257 -0
  167. data/node_modules/mime/types/other.json +1 -0
  168. data/node_modules/mime/types/standard.json +1 -0
  169. data/node_modules/minimatch/LICENSE +15 -0
  170. data/node_modules/minimatch/README.md +209 -0
  171. data/node_modules/minimatch/minimatch.js +923 -0
  172. data/node_modules/minimatch/package.json +30 -0
  173. data/node_modules/minimist/LICENSE +18 -0
  174. data/node_modules/minimist/example/parse.js +2 -0
  175. data/node_modules/minimist/index.js +187 -0
  176. data/node_modules/minimist/package.json +40 -0
  177. data/node_modules/minimist/readme.markdown +73 -0
  178. data/node_modules/minimist/test/dash.js +24 -0
  179. data/node_modules/minimist/test/default_bool.js +20 -0
  180. data/node_modules/minimist/test/dotted.js +16 -0
  181. data/node_modules/minimist/test/long.js +31 -0
  182. data/node_modules/minimist/test/parse.js +318 -0
  183. data/node_modules/minimist/test/parse_modified.js +9 -0
  184. data/node_modules/minimist/test/short.js +67 -0
  185. data/node_modules/minimist/test/whitespace.js +8 -0
  186. data/node_modules/mkdirp/LICENSE +21 -0
  187. data/node_modules/mkdirp/bin/cmd.js +33 -0
  188. data/node_modules/mkdirp/bin/usage.txt +12 -0
  189. data/node_modules/mkdirp/examples/pow.js +6 -0
  190. data/node_modules/mkdirp/index.js +98 -0
  191. data/node_modules/mkdirp/package.json +27 -0
  192. data/node_modules/mkdirp/readme.markdown +100 -0
  193. data/node_modules/mkdirp/test/chmod.js +41 -0
  194. data/node_modules/mkdirp/test/clobber.js +38 -0
  195. data/node_modules/mkdirp/test/mkdirp.js +28 -0
  196. data/node_modules/mkdirp/test/opts_fs.js +29 -0
  197. data/node_modules/mkdirp/test/opts_fs_sync.js +27 -0
  198. data/node_modules/mkdirp/test/perm.js +32 -0
  199. data/node_modules/mkdirp/test/perm_sync.js +36 -0
  200. data/node_modules/mkdirp/test/race.js +37 -0
  201. data/node_modules/mkdirp/test/rel.js +32 -0
  202. data/node_modules/mkdirp/test/return.js +25 -0
  203. data/node_modules/mkdirp/test/return_sync.js +24 -0
  204. data/node_modules/mkdirp/test/root.js +19 -0
  205. data/node_modules/mkdirp/test/sync.js +32 -0
  206. data/node_modules/mkdirp/test/umask.js +28 -0
  207. data/node_modules/mkdirp/test/umask_sync.js +32 -0
  208. data/node_modules/ms/index.js +152 -0
  209. data/node_modules/ms/license.md +21 -0
  210. data/node_modules/ms/package.json +37 -0
  211. data/node_modules/ms/readme.md +51 -0
  212. data/node_modules/once/LICENSE +15 -0
  213. data/node_modules/once/README.md +79 -0
  214. data/node_modules/once/once.js +42 -0
  215. data/node_modules/once/package.json +33 -0
  216. data/node_modules/path-is-absolute/index.js +20 -0
  217. data/node_modules/path-is-absolute/license +21 -0
  218. data/node_modules/path-is-absolute/package.json +43 -0
  219. data/node_modules/path-is-absolute/readme.md +59 -0
  220. data/node_modules/pend/LICENSE +23 -0
  221. data/node_modules/pend/README.md +41 -0
  222. data/node_modules/pend/index.js +55 -0
  223. data/node_modules/pend/package.json +18 -0
  224. data/node_modules/pend/test.js +137 -0
  225. data/node_modules/process-nextick-args/index.js +44 -0
  226. data/node_modules/process-nextick-args/license.md +19 -0
  227. data/node_modules/process-nextick-args/package.json +25 -0
  228. data/node_modules/process-nextick-args/readme.md +18 -0
  229. data/node_modules/progress/CHANGELOG.md +115 -0
  230. data/node_modules/progress/LICENSE +22 -0
  231. data/node_modules/progress/Makefile +8 -0
  232. data/node_modules/progress/README.md +146 -0
  233. data/node_modules/progress/index.js +1 -0
  234. data/node_modules/progress/lib/node-progress.js +231 -0
  235. data/node_modules/progress/package.json +25 -0
  236. data/node_modules/proxy-from-env/README.md +131 -0
  237. data/node_modules/proxy-from-env/index.js +103 -0
  238. data/node_modules/proxy-from-env/package.json +35 -0
  239. data/node_modules/proxy-from-env/test.js +393 -0
  240. data/node_modules/puppeteer/CONTRIBUTING.md +206 -0
  241. data/node_modules/puppeteer/DeviceDescriptors.js +704 -0
  242. data/node_modules/puppeteer/LICENSE +202 -0
  243. data/node_modules/puppeteer/README.md +306 -0
  244. data/node_modules/puppeteer/index.js +28 -0
  245. data/node_modules/puppeteer/install.js +122 -0
  246. data/node_modules/puppeteer/lib/Browser.js +186 -0
  247. data/node_modules/puppeteer/lib/BrowserFetcher.js +279 -0
  248. data/node_modules/puppeteer/lib/Connection.js +246 -0
  249. data/node_modules/puppeteer/lib/Coverage.js +301 -0
  250. data/node_modules/puppeteer/lib/Dialog.js +84 -0
  251. data/node_modules/puppeteer/lib/ElementHandle.js +328 -0
  252. data/node_modules/puppeteer/lib/EmulationManager.js +89 -0
  253. data/node_modules/puppeteer/lib/ExecutionContext.js +232 -0
  254. data/node_modules/puppeteer/lib/FrameManager.js +997 -0
  255. data/node_modules/puppeteer/lib/Input.js +309 -0
  256. data/node_modules/puppeteer/lib/Launcher.js +310 -0
  257. data/node_modules/puppeteer/lib/Multimap.js +95 -0
  258. data/node_modules/puppeteer/lib/NavigatorWatcher.js +137 -0
  259. data/node_modules/puppeteer/lib/NetworkManager.js +796 -0
  260. data/node_modules/puppeteer/lib/Page.js +1098 -0
  261. data/node_modules/puppeteer/lib/Pipe.js +69 -0
  262. data/node_modules/puppeteer/lib/Puppeteer.js +60 -0
  263. data/node_modules/puppeteer/lib/Target.js +88 -0
  264. data/node_modules/puppeteer/lib/TaskQueue.js +17 -0
  265. data/node_modules/puppeteer/lib/Tracing.js +99 -0
  266. data/node_modules/puppeteer/lib/USKeyboardLayout.js +281 -0
  267. data/node_modules/puppeteer/lib/helper.js +248 -0
  268. data/node_modules/puppeteer/node6/lib/Browser.js +394 -0
  269. data/node_modules/puppeteer/node6/lib/BrowserFetcher.js +357 -0
  270. data/node_modules/puppeteer/node6/lib/Connection.js +350 -0
  271. data/node_modules/puppeteer/node6/lib/Coverage.js +561 -0
  272. data/node_modules/puppeteer/node6/lib/Dialog.js +136 -0
  273. data/node_modules/puppeteer/node6/lib/ElementHandle.js +796 -0
  274. data/node_modules/puppeteer/node6/lib/EmulationManager.js +115 -0
  275. data/node_modules/puppeteer/node6/lib/ExecutionContext.js +414 -0
  276. data/node_modules/puppeteer/node6/lib/FrameManager.js +1621 -0
  277. data/node_modules/puppeteer/node6/lib/Input.js +569 -0
  278. data/node_modules/puppeteer/node6/lib/Launcher.js +362 -0
  279. data/node_modules/puppeteer/node6/lib/Multimap.js +95 -0
  280. data/node_modules/puppeteer/node6/lib/NavigatorWatcher.js +163 -0
  281. data/node_modules/puppeteer/node6/lib/NetworkManager.js +1108 -0
  282. data/node_modules/puppeteer/node6/lib/Page.js +2242 -0
  283. data/node_modules/puppeteer/node6/lib/Pipe.js +69 -0
  284. data/node_modules/puppeteer/node6/lib/Puppeteer.js +60 -0
  285. data/node_modules/puppeteer/node6/lib/Target.js +114 -0
  286. data/node_modules/puppeteer/node6/lib/TaskQueue.js +17 -0
  287. data/node_modules/puppeteer/node6/lib/Tracing.js +177 -0
  288. data/node_modules/puppeteer/node6/lib/USKeyboardLayout.js +281 -0
  289. data/node_modules/puppeteer/node6/lib/helper.js +274 -0
  290. data/node_modules/puppeteer/package.json +61 -0
  291. data/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  292. data/node_modules/readable-stream/GOVERNANCE.md +136 -0
  293. data/node_modules/readable-stream/LICENSE +47 -0
  294. data/node_modules/readable-stream/README.md +58 -0
  295. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  296. data/node_modules/readable-stream/duplex-browser.js +1 -0
  297. data/node_modules/readable-stream/duplex.js +1 -0
  298. data/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  299. data/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  300. data/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  301. data/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  302. data/node_modules/readable-stream/lib/_stream_writable.js +687 -0
  303. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
  304. data/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  305. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  306. data/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  307. data/node_modules/readable-stream/package.json +52 -0
  308. data/node_modules/readable-stream/passthrough.js +1 -0
  309. data/node_modules/readable-stream/readable-browser.js +7 -0
  310. data/node_modules/readable-stream/readable.js +19 -0
  311. data/node_modules/readable-stream/transform.js +1 -0
  312. data/node_modules/readable-stream/writable-browser.js +1 -0
  313. data/node_modules/readable-stream/writable.js +8 -0
  314. data/node_modules/rimraf/LICENSE +15 -0
  315. data/node_modules/rimraf/README.md +101 -0
  316. data/node_modules/rimraf/bin.js +50 -0
  317. data/node_modules/rimraf/package.json +26 -0
  318. data/node_modules/rimraf/rimraf.js +364 -0
  319. data/node_modules/safe-buffer/LICENSE +21 -0
  320. data/node_modules/safe-buffer/README.md +584 -0
  321. data/node_modules/safe-buffer/index.d.ts +187 -0
  322. data/node_modules/safe-buffer/index.js +62 -0
  323. data/node_modules/safe-buffer/package.json +37 -0
  324. data/node_modules/string_decoder/LICENSE +48 -0
  325. data/node_modules/string_decoder/README.md +47 -0
  326. data/node_modules/string_decoder/lib/string_decoder.js +296 -0
  327. data/node_modules/string_decoder/package.json +31 -0
  328. data/node_modules/typedarray/LICENSE +35 -0
  329. data/node_modules/typedarray/example/tarray.js +4 -0
  330. data/node_modules/typedarray/index.js +630 -0
  331. data/node_modules/typedarray/package.json +55 -0
  332. data/node_modules/typedarray/readme.markdown +61 -0
  333. data/node_modules/typedarray/test/server/undef_globals.js +19 -0
  334. data/node_modules/typedarray/test/tarray.js +10 -0
  335. data/node_modules/ultron/LICENSE +22 -0
  336. data/node_modules/ultron/README.md +113 -0
  337. data/node_modules/ultron/index.js +136 -0
  338. data/node_modules/ultron/package.json +41 -0
  339. data/node_modules/util-deprecate/History.md +16 -0
  340. data/node_modules/util-deprecate/LICENSE +24 -0
  341. data/node_modules/util-deprecate/README.md +53 -0
  342. data/node_modules/util-deprecate/browser.js +67 -0
  343. data/node_modules/util-deprecate/node.js +6 -0
  344. data/node_modules/util-deprecate/package.json +27 -0
  345. data/node_modules/wrappy/LICENSE +15 -0
  346. data/node_modules/wrappy/README.md +36 -0
  347. data/node_modules/wrappy/package.json +29 -0
  348. data/node_modules/wrappy/wrappy.js +33 -0
  349. data/node_modules/ws/LICENSE +21 -0
  350. data/node_modules/ws/README.md +341 -0
  351. data/node_modules/ws/index.js +15 -0
  352. data/node_modules/ws/lib/BufferUtil.js +71 -0
  353. data/node_modules/ws/lib/Constants.js +10 -0
  354. data/node_modules/ws/lib/ErrorCodes.js +28 -0
  355. data/node_modules/ws/lib/EventTarget.js +151 -0
  356. data/node_modules/ws/lib/Extensions.js +203 -0
  357. data/node_modules/ws/lib/PerMessageDeflate.js +507 -0
  358. data/node_modules/ws/lib/Receiver.js +553 -0
  359. data/node_modules/ws/lib/Sender.js +412 -0
  360. data/node_modules/ws/lib/Validation.js +17 -0
  361. data/node_modules/ws/lib/WebSocket.js +717 -0
  362. data/node_modules/ws/lib/WebSocketServer.js +326 -0
  363. data/node_modules/ws/package.json +46 -0
  364. data/node_modules/yauzl/LICENSE +21 -0
  365. data/node_modules/yauzl/README.md +467 -0
  366. data/node_modules/yauzl/index.js +626 -0
  367. data/node_modules/yauzl/package.json +36 -0
  368. data/package.json +5 -0
  369. data/yarn.lock +240 -0
  370. metadata +372 -7
  371. data/app/assets/stylesheets/default.css +0 -4
  372. data/lib/postdoc/postdoc_view_helper.rb +0 -22
@@ -0,0 +1,553 @@
1
+ /*!
2
+ * ws: a node.js websocket client
3
+ * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
4
+ * MIT Licensed
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ const safeBuffer = require('safe-buffer');
10
+
11
+ const PerMessageDeflate = require('./PerMessageDeflate');
12
+ const isValidUTF8 = require('./Validation');
13
+ const bufferUtil = require('./BufferUtil');
14
+ const ErrorCodes = require('./ErrorCodes');
15
+ const constants = require('./Constants');
16
+
17
+ const Buffer = safeBuffer.Buffer;
18
+
19
+ const GET_INFO = 0;
20
+ const GET_PAYLOAD_LENGTH_16 = 1;
21
+ const GET_PAYLOAD_LENGTH_64 = 2;
22
+ const GET_MASK = 3;
23
+ const GET_DATA = 4;
24
+ const INFLATING = 5;
25
+
26
+ /**
27
+ * HyBi Receiver implementation.
28
+ */
29
+ class Receiver {
30
+ /**
31
+ * Creates a Receiver instance.
32
+ *
33
+ * @param {Object} extensions An object containing the negotiated extensions
34
+ * @param {Number} maxPayload The maximum allowed message length
35
+ * @param {String} binaryType The type for binary data
36
+ */
37
+ constructor (extensions, maxPayload, binaryType) {
38
+ this._binaryType = binaryType || constants.BINARY_TYPES[0];
39
+ this._extensions = extensions || {};
40
+ this._maxPayload = maxPayload | 0;
41
+
42
+ this._bufferedBytes = 0;
43
+ this._buffers = [];
44
+
45
+ this._compressed = false;
46
+ this._payloadLength = 0;
47
+ this._fragmented = 0;
48
+ this._masked = false;
49
+ this._fin = false;
50
+ this._mask = null;
51
+ this._opcode = 0;
52
+
53
+ this._totalPayloadLength = 0;
54
+ this._messageLength = 0;
55
+ this._fragments = [];
56
+
57
+ this._cleanupCallback = null;
58
+ this._hadError = false;
59
+ this._dead = false;
60
+ this._loop = false;
61
+
62
+ this.onmessage = null;
63
+ this.onclose = null;
64
+ this.onerror = null;
65
+ this.onping = null;
66
+ this.onpong = null;
67
+
68
+ this._state = GET_INFO;
69
+ }
70
+
71
+ /**
72
+ * Consumes bytes from the available buffered data.
73
+ *
74
+ * @param {Number} bytes The number of bytes to consume
75
+ * @return {Buffer} Consumed bytes
76
+ * @private
77
+ */
78
+ readBuffer (bytes) {
79
+ var offset = 0;
80
+ var dst;
81
+ var l;
82
+
83
+ this._bufferedBytes -= bytes;
84
+
85
+ if (bytes === this._buffers[0].length) return this._buffers.shift();
86
+
87
+ if (bytes < this._buffers[0].length) {
88
+ dst = this._buffers[0].slice(0, bytes);
89
+ this._buffers[0] = this._buffers[0].slice(bytes);
90
+ return dst;
91
+ }
92
+
93
+ dst = Buffer.allocUnsafe(bytes);
94
+
95
+ while (bytes > 0) {
96
+ l = this._buffers[0].length;
97
+
98
+ if (bytes >= l) {
99
+ this._buffers[0].copy(dst, offset);
100
+ offset += l;
101
+ this._buffers.shift();
102
+ } else {
103
+ this._buffers[0].copy(dst, offset, 0, bytes);
104
+ this._buffers[0] = this._buffers[0].slice(bytes);
105
+ }
106
+
107
+ bytes -= l;
108
+ }
109
+
110
+ return dst;
111
+ }
112
+
113
+ /**
114
+ * Checks if the number of buffered bytes is bigger or equal than `n` and
115
+ * calls `cleanup` if necessary.
116
+ *
117
+ * @param {Number} n The number of bytes to check against
118
+ * @return {Boolean} `true` if `bufferedBytes >= n`, else `false`
119
+ * @private
120
+ */
121
+ hasBufferedBytes (n) {
122
+ if (this._bufferedBytes >= n) return true;
123
+
124
+ this._loop = false;
125
+ if (this._dead) this.cleanup(this._cleanupCallback);
126
+ return false;
127
+ }
128
+
129
+ /**
130
+ * Adds new data to the parser.
131
+ *
132
+ * @public
133
+ */
134
+ add (data) {
135
+ if (this._dead) return;
136
+
137
+ this._bufferedBytes += data.length;
138
+ this._buffers.push(data);
139
+ this.startLoop();
140
+ }
141
+
142
+ /**
143
+ * Starts the parsing loop.
144
+ *
145
+ * @private
146
+ */
147
+ startLoop () {
148
+ this._loop = true;
149
+
150
+ while (this._loop) {
151
+ switch (this._state) {
152
+ case GET_INFO:
153
+ this.getInfo();
154
+ break;
155
+ case GET_PAYLOAD_LENGTH_16:
156
+ this.getPayloadLength16();
157
+ break;
158
+ case GET_PAYLOAD_LENGTH_64:
159
+ this.getPayloadLength64();
160
+ break;
161
+ case GET_MASK:
162
+ this.getMask();
163
+ break;
164
+ case GET_DATA:
165
+ this.getData();
166
+ break;
167
+ default: // `INFLATING`
168
+ this._loop = false;
169
+ }
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Reads the first two bytes of a frame.
175
+ *
176
+ * @private
177
+ */
178
+ getInfo () {
179
+ if (!this.hasBufferedBytes(2)) return;
180
+
181
+ const buf = this.readBuffer(2);
182
+
183
+ if ((buf[0] & 0x30) !== 0x00) {
184
+ this.error(new Error('RSV2 and RSV3 must be clear'), 1002);
185
+ return;
186
+ }
187
+
188
+ const compressed = (buf[0] & 0x40) === 0x40;
189
+
190
+ if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {
191
+ this.error(new Error('RSV1 must be clear'), 1002);
192
+ return;
193
+ }
194
+
195
+ this._fin = (buf[0] & 0x80) === 0x80;
196
+ this._opcode = buf[0] & 0x0f;
197
+ this._payloadLength = buf[1] & 0x7f;
198
+
199
+ if (this._opcode === 0x00) {
200
+ if (compressed) {
201
+ this.error(new Error('RSV1 must be clear'), 1002);
202
+ return;
203
+ }
204
+
205
+ if (!this._fragmented) {
206
+ this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
207
+ return;
208
+ } else {
209
+ this._opcode = this._fragmented;
210
+ }
211
+ } else if (this._opcode === 0x01 || this._opcode === 0x02) {
212
+ if (this._fragmented) {
213
+ this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
214
+ return;
215
+ }
216
+
217
+ this._compressed = compressed;
218
+ } else if (this._opcode > 0x07 && this._opcode < 0x0b) {
219
+ if (!this._fin) {
220
+ this.error(new Error('FIN must be set'), 1002);
221
+ return;
222
+ }
223
+
224
+ if (compressed) {
225
+ this.error(new Error('RSV1 must be clear'), 1002);
226
+ return;
227
+ }
228
+
229
+ if (this._payloadLength > 0x7d) {
230
+ this.error(new Error('invalid payload length'), 1002);
231
+ return;
232
+ }
233
+ } else {
234
+ this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
235
+ return;
236
+ }
237
+
238
+ if (!this._fin && !this._fragmented) this._fragmented = this._opcode;
239
+
240
+ this._masked = (buf[1] & 0x80) === 0x80;
241
+
242
+ if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;
243
+ else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;
244
+ else this.haveLength();
245
+ }
246
+
247
+ /**
248
+ * Gets extended payload length (7+16).
249
+ *
250
+ * @private
251
+ */
252
+ getPayloadLength16 () {
253
+ if (!this.hasBufferedBytes(2)) return;
254
+
255
+ this._payloadLength = this.readBuffer(2).readUInt16BE(0, true);
256
+ this.haveLength();
257
+ }
258
+
259
+ /**
260
+ * Gets extended payload length (7+64).
261
+ *
262
+ * @private
263
+ */
264
+ getPayloadLength64 () {
265
+ if (!this.hasBufferedBytes(8)) return;
266
+
267
+ const buf = this.readBuffer(8);
268
+ const num = buf.readUInt32BE(0, true);
269
+
270
+ //
271
+ // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned
272
+ // if payload length is greater than this number.
273
+ //
274
+ if (num > Math.pow(2, 53 - 32) - 1) {
275
+ this.error(new Error('max payload size exceeded'), 1009);
276
+ return;
277
+ }
278
+
279
+ this._payloadLength = (num * Math.pow(2, 32)) + buf.readUInt32BE(4, true);
280
+ this.haveLength();
281
+ }
282
+
283
+ /**
284
+ * Payload length has been read.
285
+ *
286
+ * @private
287
+ */
288
+ haveLength () {
289
+ if (this._opcode < 0x08 && this.maxPayloadExceeded(this._payloadLength)) {
290
+ return;
291
+ }
292
+
293
+ if (this._masked) this._state = GET_MASK;
294
+ else this._state = GET_DATA;
295
+ }
296
+
297
+ /**
298
+ * Reads mask bytes.
299
+ *
300
+ * @private
301
+ */
302
+ getMask () {
303
+ if (!this.hasBufferedBytes(4)) return;
304
+
305
+ this._mask = this.readBuffer(4);
306
+ this._state = GET_DATA;
307
+ }
308
+
309
+ /**
310
+ * Reads data bytes.
311
+ *
312
+ * @private
313
+ */
314
+ getData () {
315
+ var data = constants.EMPTY_BUFFER;
316
+
317
+ if (this._payloadLength) {
318
+ if (!this.hasBufferedBytes(this._payloadLength)) return;
319
+
320
+ data = this.readBuffer(this._payloadLength);
321
+ if (this._masked) bufferUtil.unmask(data, this._mask);
322
+ }
323
+
324
+ if (this._opcode > 0x07) {
325
+ this.controlMessage(data);
326
+ } else if (this._compressed) {
327
+ this._state = INFLATING;
328
+ this.decompress(data);
329
+ } else if (this.pushFragment(data)) {
330
+ this.dataMessage();
331
+ }
332
+ }
333
+
334
+ /**
335
+ * Decompresses data.
336
+ *
337
+ * @param {Buffer} data Compressed data
338
+ * @private
339
+ */
340
+ decompress (data) {
341
+ const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
342
+
343
+ perMessageDeflate.decompress(data, this._fin, (err, buf) => {
344
+ if (err) {
345
+ this.error(err, err.closeCode === 1009 ? 1009 : 1007);
346
+ return;
347
+ }
348
+
349
+ if (this.pushFragment(buf)) this.dataMessage();
350
+ this.startLoop();
351
+ });
352
+ }
353
+
354
+ /**
355
+ * Handles a data message.
356
+ *
357
+ * @private
358
+ */
359
+ dataMessage () {
360
+ if (this._fin) {
361
+ const messageLength = this._messageLength;
362
+ const fragments = this._fragments;
363
+
364
+ this._totalPayloadLength = 0;
365
+ this._messageLength = 0;
366
+ this._fragmented = 0;
367
+ this._fragments = [];
368
+
369
+ if (this._opcode === 2) {
370
+ var data;
371
+
372
+ if (this._binaryType === 'nodebuffer') {
373
+ data = toBuffer(fragments, messageLength);
374
+ } else if (this._binaryType === 'arraybuffer') {
375
+ data = toArrayBuffer(toBuffer(fragments, messageLength));
376
+ } else {
377
+ data = fragments;
378
+ }
379
+
380
+ this.onmessage(data);
381
+ } else {
382
+ const buf = toBuffer(fragments, messageLength);
383
+
384
+ if (!isValidUTF8(buf)) {
385
+ this.error(new Error('invalid utf8 sequence'), 1007);
386
+ return;
387
+ }
388
+
389
+ this.onmessage(buf.toString());
390
+ }
391
+ }
392
+
393
+ this._state = GET_INFO;
394
+ }
395
+
396
+ /**
397
+ * Handles a control message.
398
+ *
399
+ * @param {Buffer} data Data to handle
400
+ * @private
401
+ */
402
+ controlMessage (data) {
403
+ if (this._opcode === 0x08) {
404
+ if (data.length === 0) {
405
+ this.onclose(1000, '');
406
+ this._loop = false;
407
+ this.cleanup(this._cleanupCallback);
408
+ } else if (data.length === 1) {
409
+ this.error(new Error('invalid payload length'), 1002);
410
+ } else {
411
+ const code = data.readUInt16BE(0, true);
412
+
413
+ if (!ErrorCodes.isValidErrorCode(code)) {
414
+ this.error(new Error(`invalid status code: ${code}`), 1002);
415
+ return;
416
+ }
417
+
418
+ const buf = data.slice(2);
419
+
420
+ if (!isValidUTF8(buf)) {
421
+ this.error(new Error('invalid utf8 sequence'), 1007);
422
+ return;
423
+ }
424
+
425
+ this.onclose(code, buf.toString());
426
+ this._loop = false;
427
+ this.cleanup(this._cleanupCallback);
428
+ }
429
+
430
+ return;
431
+ }
432
+
433
+ if (this._opcode === 0x09) this.onping(data);
434
+ else this.onpong(data);
435
+
436
+ this._state = GET_INFO;
437
+ }
438
+
439
+ /**
440
+ * Handles an error.
441
+ *
442
+ * @param {Error} err The error
443
+ * @param {Number} code Close code
444
+ * @private
445
+ */
446
+ error (err, code) {
447
+ this.onerror(err, code);
448
+ this._hadError = true;
449
+ this._loop = false;
450
+ this.cleanup(this._cleanupCallback);
451
+ }
452
+
453
+ /**
454
+ * Checks payload size, disconnects socket when it exceeds `maxPayload`.
455
+ *
456
+ * @param {Number} length Payload length
457
+ * @private
458
+ */
459
+ maxPayloadExceeded (length) {
460
+ if (length === 0 || this._maxPayload < 1) return false;
461
+
462
+ const fullLength = this._totalPayloadLength + length;
463
+
464
+ if (fullLength <= this._maxPayload) {
465
+ this._totalPayloadLength = fullLength;
466
+ return false;
467
+ }
468
+
469
+ this.error(new Error('max payload size exceeded'), 1009);
470
+ return true;
471
+ }
472
+
473
+ /**
474
+ * Appends a fragment in the fragments array after checking that the sum of
475
+ * fragment lengths does not exceed `maxPayload`.
476
+ *
477
+ * @param {Buffer} fragment The fragment to add
478
+ * @return {Boolean} `true` if `maxPayload` is not exceeded, else `false`
479
+ * @private
480
+ */
481
+ pushFragment (fragment) {
482
+ if (fragment.length === 0) return true;
483
+
484
+ const totalLength = this._messageLength + fragment.length;
485
+
486
+ if (this._maxPayload < 1 || totalLength <= this._maxPayload) {
487
+ this._messageLength = totalLength;
488
+ this._fragments.push(fragment);
489
+ return true;
490
+ }
491
+
492
+ this.error(new Error('max payload size exceeded'), 1009);
493
+ return false;
494
+ }
495
+
496
+ /**
497
+ * Releases resources used by the receiver.
498
+ *
499
+ * @param {Function} cb Callback
500
+ * @public
501
+ */
502
+ cleanup (cb) {
503
+ this._dead = true;
504
+
505
+ if (!this._hadError && (this._loop || this._state === INFLATING)) {
506
+ this._cleanupCallback = cb;
507
+ } else {
508
+ this._extensions = null;
509
+ this._fragments = null;
510
+ this._buffers = null;
511
+ this._mask = null;
512
+
513
+ this._cleanupCallback = null;
514
+ this.onmessage = null;
515
+ this.onclose = null;
516
+ this.onerror = null;
517
+ this.onping = null;
518
+ this.onpong = null;
519
+
520
+ if (cb) cb();
521
+ }
522
+ }
523
+ }
524
+
525
+ module.exports = Receiver;
526
+
527
+ /**
528
+ * Makes a buffer from a list of fragments.
529
+ *
530
+ * @param {Buffer[]} fragments The list of fragments composing the message
531
+ * @param {Number} messageLength The length of the message
532
+ * @return {Buffer}
533
+ * @private
534
+ */
535
+ function toBuffer (fragments, messageLength) {
536
+ if (fragments.length === 1) return fragments[0];
537
+ if (fragments.length > 1) return bufferUtil.concat(fragments, messageLength);
538
+ return constants.EMPTY_BUFFER;
539
+ }
540
+
541
+ /**
542
+ * Converts a buffer to an `ArrayBuffer`.
543
+ *
544
+ * @param {Buffer} The buffer to convert
545
+ * @return {ArrayBuffer} Converted buffer
546
+ */
547
+ function toArrayBuffer (buf) {
548
+ if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
549
+ return buf.buffer;
550
+ }
551
+
552
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
553
+ }