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,507 @@
1
+ 'use strict';
2
+
3
+ const safeBuffer = require('safe-buffer');
4
+ const Limiter = require('async-limiter');
5
+ const zlib = require('zlib');
6
+
7
+ const bufferUtil = require('./BufferUtil');
8
+
9
+ const Buffer = safeBuffer.Buffer;
10
+
11
+ const TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);
12
+ const EMPTY_BLOCK = Buffer.from([0x00]);
13
+
14
+ const kWriteInProgress = Symbol('write-in-progress');
15
+ const kPendingClose = Symbol('pending-close');
16
+ const kTotalLength = Symbol('total-length');
17
+ const kCallback = Symbol('callback');
18
+ const kBuffers = Symbol('buffers');
19
+ const kError = Symbol('error');
20
+ const kOwner = Symbol('owner');
21
+
22
+ //
23
+ // We limit zlib concurrency, which prevents severe memory fragmentation
24
+ // as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913
25
+ // and https://github.com/websockets/ws/issues/1202
26
+ //
27
+ // Intentionally global; it's the global thread pool that's an issue.
28
+ //
29
+ let zlibLimiter;
30
+
31
+ /**
32
+ * permessage-deflate implementation.
33
+ */
34
+ class PerMessageDeflate {
35
+ /**
36
+ * Creates a PerMessageDeflate instance.
37
+ *
38
+ * @param {Object} options Configuration options
39
+ * @param {Boolean} options.serverNoContextTakeover Request/accept disabling
40
+ * of server context takeover
41
+ * @param {Boolean} options.clientNoContextTakeover Advertise/acknowledge
42
+ * disabling of client context takeover
43
+ * @param {(Boolean|Number)} options.serverMaxWindowBits Request/confirm the
44
+ * use of a custom server window size
45
+ * @param {(Boolean|Number)} options.clientMaxWindowBits Advertise support
46
+ * for, or request, a custom client window size
47
+ * @param {Number} options.level The value of zlib's `level` param
48
+ * @param {Number} options.memLevel The value of zlib's `memLevel` param
49
+ * @param {Number} options.threshold Size (in bytes) below which messages
50
+ * should not be compressed
51
+ * @param {Number} options.concurrencyLimit The number of concurrent calls to
52
+ * zlib
53
+ * @param {Boolean} isServer Create the instance in either server or client
54
+ * mode
55
+ * @param {Number} maxPayload The maximum allowed message length
56
+ */
57
+ constructor (options, isServer, maxPayload) {
58
+ this._maxPayload = maxPayload | 0;
59
+ this._options = options || {};
60
+ this._threshold = this._options.threshold !== undefined
61
+ ? this._options.threshold
62
+ : 1024;
63
+ this._isServer = !!isServer;
64
+ this._deflate = null;
65
+ this._inflate = null;
66
+
67
+ this.params = null;
68
+
69
+ if (!zlibLimiter) {
70
+ const concurrency = this._options.concurrencyLimit !== undefined
71
+ ? this._options.concurrencyLimit
72
+ : 10;
73
+ zlibLimiter = new Limiter({ concurrency });
74
+ }
75
+ }
76
+
77
+ /**
78
+ * @type {String}
79
+ */
80
+ static get extensionName () {
81
+ return 'permessage-deflate';
82
+ }
83
+
84
+ /**
85
+ * Create extension parameters offer.
86
+ *
87
+ * @return {Object} Extension parameters
88
+ * @public
89
+ */
90
+ offer () {
91
+ const params = {};
92
+
93
+ if (this._options.serverNoContextTakeover) {
94
+ params.server_no_context_takeover = true;
95
+ }
96
+ if (this._options.clientNoContextTakeover) {
97
+ params.client_no_context_takeover = true;
98
+ }
99
+ if (this._options.serverMaxWindowBits) {
100
+ params.server_max_window_bits = this._options.serverMaxWindowBits;
101
+ }
102
+ if (this._options.clientMaxWindowBits) {
103
+ params.client_max_window_bits = this._options.clientMaxWindowBits;
104
+ } else if (this._options.clientMaxWindowBits == null) {
105
+ params.client_max_window_bits = true;
106
+ }
107
+
108
+ return params;
109
+ }
110
+
111
+ /**
112
+ * Accept extension offer.
113
+ *
114
+ * @param {Array} paramsList Extension parameters
115
+ * @return {Object} Accepted configuration
116
+ * @public
117
+ */
118
+ accept (paramsList) {
119
+ paramsList = this.normalizeParams(paramsList);
120
+
121
+ var params;
122
+ if (this._isServer) {
123
+ params = this.acceptAsServer(paramsList);
124
+ } else {
125
+ params = this.acceptAsClient(paramsList);
126
+ }
127
+
128
+ this.params = params;
129
+ return params;
130
+ }
131
+
132
+ /**
133
+ * Releases all resources used by the extension.
134
+ *
135
+ * @public
136
+ */
137
+ cleanup () {
138
+ if (this._inflate) {
139
+ if (this._inflate[kWriteInProgress]) {
140
+ this._inflate[kPendingClose] = true;
141
+ } else {
142
+ this._inflate.close();
143
+ this._inflate = null;
144
+ }
145
+ }
146
+ if (this._deflate) {
147
+ if (this._deflate[kWriteInProgress]) {
148
+ this._deflate[kPendingClose] = true;
149
+ } else {
150
+ this._deflate.close();
151
+ this._deflate = null;
152
+ }
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Accept extension offer from client.
158
+ *
159
+ * @param {Array} paramsList Extension parameters
160
+ * @return {Object} Accepted configuration
161
+ * @private
162
+ */
163
+ acceptAsServer (paramsList) {
164
+ const accepted = {};
165
+ const result = paramsList.some((params) => {
166
+ if (
167
+ (this._options.serverNoContextTakeover === false &&
168
+ params.server_no_context_takeover) ||
169
+ (this._options.serverMaxWindowBits === false &&
170
+ params.server_max_window_bits) ||
171
+ (typeof this._options.serverMaxWindowBits === 'number' &&
172
+ typeof params.server_max_window_bits === 'number' &&
173
+ this._options.serverMaxWindowBits > params.server_max_window_bits) ||
174
+ (typeof this._options.clientMaxWindowBits === 'number' &&
175
+ !params.client_max_window_bits)
176
+ ) {
177
+ return;
178
+ }
179
+
180
+ if (
181
+ this._options.serverNoContextTakeover ||
182
+ params.server_no_context_takeover
183
+ ) {
184
+ accepted.server_no_context_takeover = true;
185
+ }
186
+ if (
187
+ this._options.clientNoContextTakeover ||
188
+ (this._options.clientNoContextTakeover !== false &&
189
+ params.client_no_context_takeover)
190
+ ) {
191
+ accepted.client_no_context_takeover = true;
192
+ }
193
+ if (typeof this._options.serverMaxWindowBits === 'number') {
194
+ accepted.server_max_window_bits = this._options.serverMaxWindowBits;
195
+ } else if (typeof params.server_max_window_bits === 'number') {
196
+ accepted.server_max_window_bits = params.server_max_window_bits;
197
+ }
198
+ if (typeof this._options.clientMaxWindowBits === 'number') {
199
+ accepted.client_max_window_bits = this._options.clientMaxWindowBits;
200
+ } else if (
201
+ this._options.clientMaxWindowBits !== false &&
202
+ typeof params.client_max_window_bits === 'number'
203
+ ) {
204
+ accepted.client_max_window_bits = params.client_max_window_bits;
205
+ }
206
+ return true;
207
+ });
208
+
209
+ if (!result) throw new Error("Doesn't support the offered configuration");
210
+
211
+ return accepted;
212
+ }
213
+
214
+ /**
215
+ * Accept extension response from server.
216
+ *
217
+ * @param {Array} paramsList Extension parameters
218
+ * @return {Object} Accepted configuration
219
+ * @private
220
+ */
221
+ acceptAsClient (paramsList) {
222
+ const params = paramsList[0];
223
+
224
+ if (
225
+ this._options.clientNoContextTakeover === false &&
226
+ params.client_no_context_takeover
227
+ ) {
228
+ throw new Error('Invalid value for "client_no_context_takeover"');
229
+ }
230
+
231
+ if (
232
+ (typeof this._options.clientMaxWindowBits === 'number' &&
233
+ (!params.client_max_window_bits ||
234
+ params.client_max_window_bits > this._options.clientMaxWindowBits)) ||
235
+ (this._options.clientMaxWindowBits === false &&
236
+ params.client_max_window_bits)
237
+ ) {
238
+ throw new Error('Invalid value for "client_max_window_bits"');
239
+ }
240
+
241
+ return params;
242
+ }
243
+
244
+ /**
245
+ * Normalize extensions parameters.
246
+ *
247
+ * @param {Array} paramsList Extension parameters
248
+ * @return {Array} Normalized extensions parameters
249
+ * @private
250
+ */
251
+ normalizeParams (paramsList) {
252
+ return paramsList.map((params) => {
253
+ Object.keys(params).forEach((key) => {
254
+ var value = params[key];
255
+ if (value.length > 1) {
256
+ throw new Error(`Multiple extension parameters for ${key}`);
257
+ }
258
+
259
+ value = value[0];
260
+
261
+ switch (key) {
262
+ case 'server_no_context_takeover':
263
+ case 'client_no_context_takeover':
264
+ if (value !== true) {
265
+ throw new Error(`invalid extension parameter value for ${key} (${value})`);
266
+ }
267
+ params[key] = true;
268
+ break;
269
+ case 'server_max_window_bits':
270
+ case 'client_max_window_bits':
271
+ if (typeof value === 'string') {
272
+ value = parseInt(value, 10);
273
+ if (
274
+ Number.isNaN(value) ||
275
+ value < zlib.Z_MIN_WINDOWBITS ||
276
+ value > zlib.Z_MAX_WINDOWBITS
277
+ ) {
278
+ throw new Error(`invalid extension parameter value for ${key} (${value})`);
279
+ }
280
+ }
281
+ if (!this._isServer && value === true) {
282
+ throw new Error(`Missing extension parameter value for ${key}`);
283
+ }
284
+ params[key] = value;
285
+ break;
286
+ default:
287
+ throw new Error(`Not defined extension parameter (${key})`);
288
+ }
289
+ });
290
+ return params;
291
+ });
292
+ }
293
+
294
+ /**
295
+ * Decompress data. Concurrency limited by async-limiter.
296
+ *
297
+ * @param {Buffer} data Compressed data
298
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
299
+ * @param {Function} callback Callback
300
+ * @public
301
+ */
302
+ decompress (data, fin, callback) {
303
+ zlibLimiter.push((done) => {
304
+ this._decompress(data, fin, (err, result) => {
305
+ done();
306
+ callback(err, result);
307
+ });
308
+ });
309
+ }
310
+
311
+ /**
312
+ * Compress data. Concurrency limited by async-limiter.
313
+ *
314
+ * @param {Buffer} data Data to compress
315
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
316
+ * @param {Function} callback Callback
317
+ * @public
318
+ */
319
+ compress (data, fin, callback) {
320
+ zlibLimiter.push((done) => {
321
+ this._compress(data, fin, (err, result) => {
322
+ done();
323
+ callback(err, result);
324
+ });
325
+ });
326
+ }
327
+
328
+ /**
329
+ * Decompress data.
330
+ *
331
+ * @param {Buffer} data Compressed data
332
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
333
+ * @param {Function} callback Callback
334
+ * @private
335
+ */
336
+ _decompress (data, fin, callback) {
337
+ const endpoint = this._isServer ? 'client' : 'server';
338
+
339
+ if (!this._inflate) {
340
+ const key = `${endpoint}_max_window_bits`;
341
+ const windowBits = typeof this.params[key] !== 'number'
342
+ ? zlib.Z_DEFAULT_WINDOWBITS
343
+ : this.params[key];
344
+
345
+ this._inflate = zlib.createInflateRaw({ windowBits });
346
+ this._inflate[kTotalLength] = 0;
347
+ this._inflate[kBuffers] = [];
348
+ this._inflate[kOwner] = this;
349
+ this._inflate.on('error', inflateOnError);
350
+ this._inflate.on('data', inflateOnData);
351
+ }
352
+
353
+ this._inflate[kCallback] = callback;
354
+ this._inflate[kWriteInProgress] = true;
355
+
356
+ this._inflate.write(data);
357
+ if (fin) this._inflate.write(TRAILER);
358
+
359
+ this._inflate.flush(() => {
360
+ const err = this._inflate[kError];
361
+
362
+ if (err) {
363
+ this._inflate.close();
364
+ this._inflate = null;
365
+ callback(err);
366
+ return;
367
+ }
368
+
369
+ const data = bufferUtil.concat(
370
+ this._inflate[kBuffers],
371
+ this._inflate[kTotalLength]
372
+ );
373
+
374
+ if (
375
+ (fin && this.params[`${endpoint}_no_context_takeover`]) ||
376
+ this._inflate[kPendingClose]
377
+ ) {
378
+ this._inflate.close();
379
+ this._inflate = null;
380
+ } else {
381
+ this._inflate[kWriteInProgress] = false;
382
+ this._inflate[kTotalLength] = 0;
383
+ this._inflate[kBuffers] = [];
384
+ }
385
+
386
+ callback(null, data);
387
+ });
388
+ }
389
+
390
+ /**
391
+ * Compress data.
392
+ *
393
+ * @param {Buffer} data Data to compress
394
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
395
+ * @param {Function} callback Callback
396
+ * @private
397
+ */
398
+ _compress (data, fin, callback) {
399
+ if (!data || data.length === 0) {
400
+ process.nextTick(callback, null, EMPTY_BLOCK);
401
+ return;
402
+ }
403
+
404
+ const endpoint = this._isServer ? 'server' : 'client';
405
+
406
+ if (!this._deflate) {
407
+ const key = `${endpoint}_max_window_bits`;
408
+ const windowBits = typeof this.params[key] !== 'number'
409
+ ? zlib.Z_DEFAULT_WINDOWBITS
410
+ : this.params[key];
411
+
412
+ this._deflate = zlib.createDeflateRaw({
413
+ memLevel: this._options.memLevel,
414
+ level: this._options.level,
415
+ flush: zlib.Z_SYNC_FLUSH,
416
+ windowBits
417
+ });
418
+
419
+ this._deflate[kTotalLength] = 0;
420
+ this._deflate[kBuffers] = [];
421
+
422
+ //
423
+ // `zlib.DeflateRaw` emits an `'error'` event only when an attempt to use
424
+ // it is made after it has already been closed. This cannot happen here,
425
+ // so we only add a listener for the `'data'` event.
426
+ //
427
+ this._deflate.on('data', deflateOnData);
428
+ }
429
+
430
+ this._deflate[kWriteInProgress] = true;
431
+
432
+ this._deflate.write(data);
433
+ this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {
434
+ var data = bufferUtil.concat(
435
+ this._deflate[kBuffers],
436
+ this._deflate[kTotalLength]
437
+ );
438
+
439
+ if (fin) data = data.slice(0, data.length - 4);
440
+
441
+ if (
442
+ (fin && this.params[`${endpoint}_no_context_takeover`]) ||
443
+ this._deflate[kPendingClose]
444
+ ) {
445
+ this._deflate.close();
446
+ this._deflate = null;
447
+ } else {
448
+ this._deflate[kWriteInProgress] = false;
449
+ this._deflate[kTotalLength] = 0;
450
+ this._deflate[kBuffers] = [];
451
+ }
452
+
453
+ callback(null, data);
454
+ });
455
+ }
456
+ }
457
+
458
+ module.exports = PerMessageDeflate;
459
+
460
+ /**
461
+ * The listener of the `zlib.DeflateRaw` stream `'data'` event.
462
+ *
463
+ * @param {Buffer} chunk A chunk of data
464
+ * @private
465
+ */
466
+ function deflateOnData (chunk) {
467
+ this[kBuffers].push(chunk);
468
+ this[kTotalLength] += chunk.length;
469
+ }
470
+
471
+ /**
472
+ * The listener of the `zlib.InflateRaw` stream `'data'` event.
473
+ *
474
+ * @param {Buffer} chunk A chunk of data
475
+ * @private
476
+ */
477
+ function inflateOnData (chunk) {
478
+ this[kTotalLength] += chunk.length;
479
+
480
+ if (
481
+ this[kOwner]._maxPayload < 1 ||
482
+ this[kTotalLength] <= this[kOwner]._maxPayload
483
+ ) {
484
+ this[kBuffers].push(chunk);
485
+ return;
486
+ }
487
+
488
+ this[kError] = new Error('max payload size exceeded');
489
+ this[kError].closeCode = 1009;
490
+ this.removeListener('data', inflateOnData);
491
+ this.reset();
492
+ }
493
+
494
+ /**
495
+ * The listener of the `zlib.InflateRaw` stream `'error'` event.
496
+ *
497
+ * @param {Error} err The emitted error
498
+ * @private
499
+ */
500
+ function inflateOnError (err) {
501
+ //
502
+ // There is no need to call `Zlib#close()` as the handle is automatically
503
+ // closed when an error is emitted.
504
+ //
505
+ this[kOwner]._inflate = null;
506
+ this[kCallback](err);
507
+ }