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,673 @@
1
+ /**
2
+ * Module dependencies.
3
+ */
4
+
5
+ var fs = require('fs');
6
+ var url = require('url');
7
+ var net = require('net');
8
+ var tls = require('tls');
9
+ var http = require('http');
10
+ var https = require('https');
11
+ var WebSocket = require('ws');
12
+ var assert = require('assert');
13
+ var events = require('events');
14
+ var inherits = require('util').inherits;
15
+ var Agent = require('../');
16
+
17
+ var PassthroughAgent = Agent(function(req, opts) {
18
+ return opts.secureEndpoint ? https.globalAgent : http.globalAgent;
19
+ });
20
+
21
+ describe('Agent', function() {
22
+ describe('subclass', function() {
23
+ it('should be subclassable', function(done) {
24
+ function MyAgent() {
25
+ Agent.call(this);
26
+ }
27
+ inherits(MyAgent, Agent);
28
+
29
+ MyAgent.prototype.callback = function(req, opts, fn) {
30
+ assert.equal(req.path, '/foo');
31
+ assert.equal(req.getHeader('host'), '127.0.0.1:1234');
32
+ assert.equal(opts.secureEndpoint, true);
33
+ done();
34
+ };
35
+
36
+ var info = url.parse('https://127.0.0.1:1234/foo');
37
+ info.agent = new MyAgent();
38
+ https.get(info);
39
+ });
40
+ });
41
+ describe('options', function() {
42
+ it('should support an options Object as first argument', function() {
43
+ var agent = new Agent({ timeout: 1000 });
44
+ assert.equal(1000, agent.timeout);
45
+ });
46
+ it('should support an options Object as second argument', function() {
47
+ var agent = new Agent(function() {}, { timeout: 1000 });
48
+ assert.equal(1000, agent.timeout);
49
+ });
50
+ it('should be mixed in with HTTP request options', function(done) {
51
+ var agent = new Agent({
52
+ host: 'my-proxy.com',
53
+ port: 3128,
54
+ foo: 'bar'
55
+ });
56
+ agent.callback = function(req, opts, fn) {
57
+ assert.equal('bar', opts.foo);
58
+ assert.equal('a', opts.b);
59
+
60
+ // `host` and `port` are special-cases, and should always be
61
+ // overwritten in the request `opts` inside the agent-base callback
62
+ assert.equal('localhost', opts.host);
63
+ assert.equal(80, opts.port);
64
+ done();
65
+ };
66
+ var opts = {
67
+ b: 'a',
68
+ agent: agent
69
+ };
70
+ http.get(opts);
71
+ });
72
+ });
73
+ describe('`this` context', function() {
74
+ it('should be the Agent instance', function(done) {
75
+ var called = false;
76
+ var agent = new Agent();
77
+ agent.callback = function() {
78
+ called = true;
79
+ assert.equal(this, agent);
80
+ };
81
+ var info = url.parse('http://127.0.0.1/foo');
82
+ info.agent = agent;
83
+ var req = http.get(info);
84
+ req.on('error', function(err) {
85
+ assert(/no Duplex stream was returned/.test(err.message));
86
+ done();
87
+ });
88
+ });
89
+ it('should be the Agent instance with callback signature', function(done) {
90
+ var called = false;
91
+ var agent = new Agent();
92
+ agent.callback = function(req, opts, fn) {
93
+ called = true;
94
+ assert.equal(this, agent);
95
+ fn();
96
+ };
97
+ var info = url.parse('http://127.0.0.1/foo');
98
+ info.agent = agent;
99
+ var req = http.get(info);
100
+ req.on('error', function(err) {
101
+ assert(/no Duplex stream was returned/.test(err.message));
102
+ done();
103
+ });
104
+ });
105
+ });
106
+ describe('"error" event', function() {
107
+ it('should be invoked on `http.ClientRequest` instance if `callback()` has not been defined', function(
108
+ done
109
+ ) {
110
+ var agent = new Agent();
111
+ var info = url.parse('http://127.0.0.1/foo');
112
+ info.agent = agent;
113
+ var req = http.get(info);
114
+ req.on('error', function(err) {
115
+ assert.equal(
116
+ '"agent-base" has no default implementation, you must subclass and override `callback()`',
117
+ err.message
118
+ );
119
+ done();
120
+ });
121
+ });
122
+ it('should be invoked on `http.ClientRequest` instance if Error passed to callback function on the first tick', function(
123
+ done
124
+ ) {
125
+ var agent = new Agent(function(req, opts, fn) {
126
+ fn(new Error('is this caught?'));
127
+ });
128
+ var info = url.parse('http://127.0.0.1/foo');
129
+ info.agent = agent;
130
+ var req = http.get(info);
131
+ req.on('error', function(err) {
132
+ assert.equal('is this caught?', err.message);
133
+ done();
134
+ });
135
+ });
136
+ it('should be invoked on `http.ClientRequest` instance if Error passed to callback function after the first tick', function(
137
+ done
138
+ ) {
139
+ var agent = new Agent(function(req, opts, fn) {
140
+ setTimeout(function() {
141
+ fn(new Error('is this caught?'));
142
+ }, 10);
143
+ });
144
+ var info = url.parse('http://127.0.0.1/foo');
145
+ info.agent = agent;
146
+ var req = http.get(info);
147
+ req.on('error', function(err) {
148
+ assert.equal('is this caught?', err.message);
149
+ done();
150
+ });
151
+ });
152
+ });
153
+ describe('artificial "streams"', function() {
154
+ it('should send a GET request', function(done) {
155
+ var stream = new events.EventEmitter();
156
+
157
+ // needed for the `http` module to call .write() on the stream
158
+ stream.writable = true;
159
+
160
+ stream.write = function(str) {
161
+ assert(0 == str.indexOf('GET / HTTP/1.1'));
162
+ done();
163
+ };
164
+
165
+ // needed for `http` module in Node.js 4
166
+ stream.cork = function() {};
167
+
168
+ var opts = {
169
+ method: 'GET',
170
+ host: '127.0.0.1',
171
+ path: '/',
172
+ port: 80,
173
+ agent: new Agent(function(req, opts, fn) {
174
+ fn(null, stream);
175
+ })
176
+ };
177
+ var req = http.request(opts);
178
+ req.end();
179
+ });
180
+ it('should receive a GET response', function(done) {
181
+ var stream = new events.EventEmitter();
182
+ var opts = {
183
+ method: 'GET',
184
+ host: '127.0.0.1',
185
+ path: '/',
186
+ port: 80,
187
+ agent: new Agent(function(req, opts, fn) {
188
+ fn(null, stream);
189
+ })
190
+ };
191
+ var req = http.request(opts, function(res) {
192
+ assert.equal('0.9', res.httpVersion);
193
+ assert.equal(111, res.statusCode);
194
+ assert.equal('bar', res.headers.foo);
195
+ done();
196
+ });
197
+
198
+ // have to wait for the "socket" event since `http.ClientRequest`
199
+ // doesn't *actually* attach the listeners to the "stream" until
200
+ // this happens
201
+ req.once('socket', function() {
202
+ var buf = new Buffer(
203
+ 'HTTP/0.9 111\r\n' +
204
+ 'Foo: bar\r\n' +
205
+ 'Set-Cookie: 1\r\n' +
206
+ 'Set-Cookie: 2\r\n\r\n'
207
+ );
208
+ stream.emit('data', buf);
209
+ });
210
+
211
+ req.end();
212
+ });
213
+ });
214
+ });
215
+
216
+ describe('"http" module', function() {
217
+ var server;
218
+ var port;
219
+
220
+ // setup test HTTP server
221
+ before(function(done) {
222
+ server = http.createServer();
223
+ server.listen(0, function() {
224
+ port = server.address().port;
225
+ done();
226
+ });
227
+ });
228
+
229
+ // shut down test HTTP server
230
+ after(function(done) {
231
+ server.once('close', function() {
232
+ done();
233
+ });
234
+ server.close();
235
+ });
236
+
237
+ it('should work for basic HTTP requests', function(done) {
238
+ var called = false;
239
+ var agent = new Agent(function(req, opts, fn) {
240
+ called = true;
241
+ var socket = net.connect(opts);
242
+ fn(null, socket);
243
+ });
244
+
245
+ // add HTTP server "request" listener
246
+ var gotReq = false;
247
+ server.once('request', function(req, res) {
248
+ gotReq = true;
249
+ res.setHeader('X-Foo', 'bar');
250
+ res.setHeader('X-Url', req.url);
251
+ res.end();
252
+ });
253
+
254
+ var info = url.parse('http://127.0.0.1:' + port + '/foo');
255
+ info.agent = agent;
256
+ http.get(info, function(res) {
257
+ assert.equal('bar', res.headers['x-foo']);
258
+ assert.equal('/foo', res.headers['x-url']);
259
+ assert(gotReq);
260
+ assert(called);
261
+ done();
262
+ });
263
+ });
264
+
265
+ it('should support direct return in `connect()`', function(done) {
266
+ var called = false;
267
+ var agent = new Agent(function(req, opts) {
268
+ called = true;
269
+ return net.connect(opts);
270
+ });
271
+
272
+ // add HTTP server "request" listener
273
+ var gotReq = false;
274
+ server.once('request', function(req, res) {
275
+ gotReq = true;
276
+ res.setHeader('X-Foo', 'bar');
277
+ res.setHeader('X-Url', req.url);
278
+ res.end();
279
+ });
280
+
281
+ var info = url.parse('http://127.0.0.1:' + port + '/foo');
282
+ info.agent = agent;
283
+ http.get(info, function(res) {
284
+ assert.equal('bar', res.headers['x-foo']);
285
+ assert.equal('/foo', res.headers['x-url']);
286
+ assert(gotReq);
287
+ assert(called);
288
+ done();
289
+ });
290
+ });
291
+
292
+ it('should support returning a Promise in `connect()`', function(done) {
293
+ var called = false;
294
+ var agent = new Agent(function(req, opts) {
295
+ return new Promise(function(resolve, reject) {
296
+ called = true;
297
+ resolve(net.connect(opts));
298
+ });
299
+ });
300
+
301
+ // add HTTP server "request" listener
302
+ var gotReq = false;
303
+ server.once('request', function(req, res) {
304
+ gotReq = true;
305
+ res.setHeader('X-Foo', 'bar');
306
+ res.setHeader('X-Url', req.url);
307
+ res.end();
308
+ });
309
+
310
+ var info = url.parse('http://127.0.0.1:' + port + '/foo');
311
+ info.agent = agent;
312
+ http.get(info, function(res) {
313
+ assert.equal('bar', res.headers['x-foo']);
314
+ assert.equal('/foo', res.headers['x-url']);
315
+ assert(gotReq);
316
+ assert(called);
317
+ done();
318
+ });
319
+ });
320
+
321
+ it('should set the `Connection: close` response header', function(done) {
322
+ var called = false;
323
+ var agent = new Agent(function(req, opts, fn) {
324
+ called = true;
325
+ var socket = net.connect(opts);
326
+ fn(null, socket);
327
+ });
328
+
329
+ // add HTTP server "request" listener
330
+ var gotReq = false;
331
+ server.once('request', function(req, res) {
332
+ gotReq = true;
333
+ res.setHeader('X-Url', req.url);
334
+ assert.equal('close', req.headers.connection);
335
+ res.end();
336
+ });
337
+
338
+ var info = url.parse('http://127.0.0.1:' + port + '/bar');
339
+ info.agent = agent;
340
+ http.get(info, function(res) {
341
+ assert.equal('/bar', res.headers['x-url']);
342
+ assert.equal('close', res.headers.connection);
343
+ assert(gotReq);
344
+ assert(called);
345
+ done();
346
+ });
347
+ });
348
+
349
+ it('should pass through options from `http.request()`', function(done) {
350
+ var agent = new Agent(function(req, opts, fn) {
351
+ assert.equal('google.com', opts.host);
352
+ assert.equal('bar', opts.foo);
353
+ done();
354
+ });
355
+
356
+ http.get({
357
+ host: 'google.com',
358
+ foo: 'bar',
359
+ agent: agent
360
+ });
361
+ });
362
+
363
+ it('should default to port 80', function(done) {
364
+ var agent = new Agent(function(req, opts, fn) {
365
+ assert.equal(80, opts.port);
366
+ done();
367
+ });
368
+
369
+ // (probably) not hitting a real HTTP server here,
370
+ // so no need to add a httpServer request listener
371
+ http.get({
372
+ host: '127.0.0.1',
373
+ path: '/foo',
374
+ agent: agent
375
+ });
376
+ });
377
+
378
+ it('should support the "timeout" option', function(done) {
379
+ // ensure we timeout after the "error" event had a chance to trigger
380
+ this.timeout(1000);
381
+ this.slow(800);
382
+
383
+ var agent = new Agent(
384
+ function(req, opts, fn) {
385
+ // this function will time out
386
+ },
387
+ { timeout: 100 }
388
+ );
389
+
390
+ var opts = url.parse('http://nodejs.org');
391
+ opts.agent = agent;
392
+
393
+ var req = http.get(opts);
394
+ req.once('error', function(err) {
395
+ assert.equal('ETIMEOUT', err.code);
396
+ req.abort();
397
+ done();
398
+ });
399
+ });
400
+
401
+ describe('PassthroughAgent', function() {
402
+ it('should pass through to `http.globalAgent`', function(done) {
403
+ // add HTTP server "request" listener
404
+ var gotReq = false;
405
+ server.once('request', function(req, res) {
406
+ gotReq = true;
407
+ res.setHeader('X-Foo', 'bar');
408
+ res.setHeader('X-Url', req.url);
409
+ res.end();
410
+ });
411
+
412
+ var info = url.parse('http://127.0.0.1:' + port + '/foo');
413
+ info.agent = PassthroughAgent;
414
+ http.get(info, function(res) {
415
+ assert.equal('bar', res.headers['x-foo']);
416
+ assert.equal('/foo', res.headers['x-url']);
417
+ assert(gotReq);
418
+ done();
419
+ });
420
+ });
421
+ });
422
+ });
423
+
424
+ describe('"https" module', function() {
425
+ var server;
426
+ var port;
427
+
428
+ // setup test HTTPS server
429
+ before(function(done) {
430
+ var options = {
431
+ key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
432
+ cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
433
+ };
434
+ server = https.createServer(options);
435
+ server.listen(0, function() {
436
+ port = server.address().port;
437
+ done();
438
+ });
439
+ });
440
+
441
+ // shut down test HTTP server
442
+ after(function(done) {
443
+ server.once('close', function() {
444
+ done();
445
+ });
446
+ server.close();
447
+ });
448
+
449
+ it('should not modify the passed in Options object', function(done) {
450
+ var called = false;
451
+ var agent = new Agent(function(req, opts, fn) {
452
+ called = true;
453
+ assert.equal(true, opts.secureEndpoint);
454
+ assert.equal(443, opts.port);
455
+ assert.equal('localhost', opts.host);
456
+ });
457
+ var opts = { agent: agent };
458
+ var req = https.request(opts);
459
+ assert.equal(true, called);
460
+ assert.equal(false, 'secureEndpoint' in opts);
461
+ assert.equal(false, 'port' in opts);
462
+ done();
463
+ });
464
+
465
+ it('should work with a String URL', function(done) {
466
+ var endpoint = 'https://127.0.0.1:' + port;
467
+ var req = https.get(endpoint);
468
+
469
+ // it's gonna error out since `rejectUnauthorized` is not being passed in
470
+ req.on('error', function(err) {
471
+ assert.equal(err.code, 'DEPTH_ZERO_SELF_SIGNED_CERT');
472
+ done();
473
+ });
474
+ });
475
+
476
+ it('should work for basic HTTPS requests', function(done) {
477
+ var called = false;
478
+ var agent = new Agent(function(req, opts, fn) {
479
+ called = true;
480
+ assert(opts.secureEndpoint);
481
+ var socket = tls.connect(opts);
482
+ fn(null, socket);
483
+ });
484
+
485
+ // add HTTPS server "request" listener
486
+ var gotReq = false;
487
+ server.once('request', function(req, res) {
488
+ gotReq = true;
489
+ res.setHeader('X-Foo', 'bar');
490
+ res.setHeader('X-Url', req.url);
491
+ res.end();
492
+ });
493
+
494
+ var info = url.parse('https://127.0.0.1:' + port + '/foo');
495
+ info.agent = agent;
496
+ info.rejectUnauthorized = false;
497
+ https.get(info, function(res) {
498
+ assert.equal('bar', res.headers['x-foo']);
499
+ assert.equal('/foo', res.headers['x-url']);
500
+ assert(gotReq);
501
+ assert(called);
502
+ done();
503
+ });
504
+ });
505
+
506
+ it('should pass through options from `https.request()`', function(done) {
507
+ var agent = new Agent(function(req, opts, fn) {
508
+ assert.equal('google.com', opts.host);
509
+ assert.equal('bar', opts.foo);
510
+ done();
511
+ });
512
+
513
+ https.get({
514
+ host: 'google.com',
515
+ foo: 'bar',
516
+ agent: agent
517
+ });
518
+ });
519
+
520
+ it('should default to port 443', function(done) {
521
+ var agent = new Agent(function(req, opts, fn) {
522
+ assert.equal(true, opts.secureEndpoint);
523
+ assert.equal(false, opts.rejectUnauthorized);
524
+ assert.equal(443, opts.port);
525
+ done();
526
+ });
527
+
528
+ // (probably) not hitting a real HTTPS server here,
529
+ // so no need to add a httpsServer request listener
530
+ https.get({
531
+ host: '127.0.0.1',
532
+ path: '/foo',
533
+ agent: agent,
534
+ rejectUnauthorized: false
535
+ });
536
+ });
537
+
538
+ describe('PassthroughAgent', function() {
539
+ it('should pass through to `https.globalAgent`', function(done) {
540
+ // add HTTP server "request" listener
541
+ var gotReq = false;
542
+ server.once('request', function(req, res) {
543
+ gotReq = true;
544
+ res.setHeader('X-Foo', 'bar');
545
+ res.setHeader('X-Url', req.url);
546
+ res.end();
547
+ });
548
+
549
+ var info = url.parse('https://127.0.0.1:' + port + '/foo');
550
+ info.agent = PassthroughAgent;
551
+ info.rejectUnauthorized = false;
552
+ https.get(info, function(res) {
553
+ assert.equal('bar', res.headers['x-foo']);
554
+ assert.equal('/foo', res.headers['x-url']);
555
+ assert(gotReq);
556
+ done();
557
+ });
558
+ });
559
+ });
560
+ });
561
+
562
+ describe('"ws" server', function() {
563
+ var wss;
564
+ var server;
565
+ var port;
566
+
567
+ // setup test HTTP server
568
+ before(function(done) {
569
+ server = http.createServer();
570
+ wss = new WebSocket.Server({ server: server });
571
+ server.listen(0, function() {
572
+ port = server.address().port;
573
+ done();
574
+ });
575
+ });
576
+
577
+ // shut down test HTTP server
578
+ after(function(done) {
579
+ server.once('close', function() {
580
+ done();
581
+ });
582
+ server.close();
583
+ });
584
+
585
+ it('should work for basic WebSocket connections', function(done) {
586
+ function onconnection(ws) {
587
+ ws.on('message', function(data) {
588
+ assert.equal('ping', data);
589
+ ws.send('pong');
590
+ });
591
+ }
592
+ wss.on('connection', onconnection);
593
+
594
+ var agent = new Agent(function(req, opts, fn) {
595
+ var socket = net.connect(opts);
596
+ fn(null, socket);
597
+ });
598
+
599
+ var client = new WebSocket('ws://127.0.0.1:' + port + '/', {
600
+ agent: agent
601
+ });
602
+
603
+ client.on('open', function() {
604
+ client.send('ping');
605
+ });
606
+
607
+ client.on('message', function(data) {
608
+ assert.equal('pong', data);
609
+ client.close();
610
+ wss.removeListener('connection', onconnection);
611
+ done();
612
+ });
613
+ });
614
+ });
615
+
616
+ describe('"wss" server', function() {
617
+ var wss;
618
+ var server;
619
+ var port;
620
+
621
+ // setup test HTTP server
622
+ before(function(done) {
623
+ var options = {
624
+ key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
625
+ cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
626
+ };
627
+ server = https.createServer(options);
628
+ wss = new WebSocket.Server({ server: server });
629
+ server.listen(0, function() {
630
+ port = server.address().port;
631
+ done();
632
+ });
633
+ });
634
+
635
+ // shut down test HTTP server
636
+ after(function(done) {
637
+ server.once('close', function() {
638
+ done();
639
+ });
640
+ server.close();
641
+ });
642
+
643
+ it('should work for secure WebSocket connections', function(done) {
644
+ function onconnection(ws) {
645
+ ws.on('message', function(data) {
646
+ assert.equal('ping', data);
647
+ ws.send('pong');
648
+ });
649
+ }
650
+ wss.on('connection', onconnection);
651
+
652
+ var agent = new Agent(function(req, opts, fn) {
653
+ var socket = tls.connect(opts);
654
+ fn(null, socket);
655
+ });
656
+
657
+ var client = new WebSocket('wss://127.0.0.1:' + port + '/', {
658
+ agent: agent,
659
+ rejectUnauthorized: false
660
+ });
661
+
662
+ client.on('open', function() {
663
+ client.send('ping');
664
+ });
665
+
666
+ client.on('message', function(data) {
667
+ assert.equal('pong', data);
668
+ client.close();
669
+ wss.removeListener('connection', onconnection);
670
+ done();
671
+ });
672
+ });
673
+ });
@@ -0,0 +1,8 @@
1
+ The MIT License (MIT)
2
+ Copyright (c) 2017 Samuel Reed <samuel.trace.reed@gmail.com>
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
+
6
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1 @@
1
+ {"/Users/samuelreed/git/forks/async-throttle/index.js":{"path":"/Users/samuelreed/git/forks/async-throttle/index.js","s":{"1":1,"2":7,"3":1,"4":6,"5":6,"6":6,"7":6,"8":6,"9":6,"10":1,"11":1,"12":3,"13":13,"14":13,"15":13,"16":1,"17":19,"18":1,"19":45,"20":6,"21":39,"22":13,"23":13,"24":13,"25":13,"26":39,"27":18,"28":6,"29":6,"30":1,"31":6,"32":6,"33":6,"34":1,"35":13,"36":13,"37":1},"b":{"1":[1,6],"2":[6,5],"3":[6,5],"4":[6,39],"5":[13,26],"6":[18,21],"7":[6,0]},"f":{"1":7,"2":3,"3":13,"4":19,"5":45,"6":6,"7":13},"fnMap":{"1":{"name":"Queue","line":3,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}}},"2":{"name":"(anonymous_2)","line":22,"loc":{"start":{"line":22,"column":24},"end":{"line":22,"column":41}}},"3":{"name":"(anonymous_3)","line":23,"loc":{"start":{"line":23,"column":28},"end":{"line":23,"column":39}}},"4":{"name":"(anonymous_4)","line":31,"loc":{"start":{"line":31,"column":7},"end":{"line":31,"column":18}}},"5":{"name":"(anonymous_5)","line":36,"loc":{"start":{"line":36,"column":23},"end":{"line":36,"column":34}}},"6":{"name":"(anonymous_6)","line":55,"loc":{"start":{"line":55,"column":25},"end":{"line":55,"column":38}}},"7":{"name":"done","line":62,"loc":{"start":{"line":62,"column":0},"end":{"line":62,"column":16}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":14,"column":1}},"2":{"start":{"line":4,"column":2},"end":{"line":6,"column":3}},"3":{"start":{"line":5,"column":4},"end":{"line":5,"column":30}},"4":{"start":{"line":8,"column":2},"end":{"line":8,"column":26}},"5":{"start":{"line":9,"column":2},"end":{"line":9,"column":53}},"6":{"start":{"line":10,"column":2},"end":{"line":10,"column":19}},"7":{"start":{"line":11,"column":2},"end":{"line":11,"column":17}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":16}},"9":{"start":{"line":13,"column":2},"end":{"line":13,"column":31}},"10":{"start":{"line":16,"column":0},"end":{"line":20,"column":2}},"11":{"start":{"line":22,"column":0},"end":{"line":28,"column":3}},"12":{"start":{"line":23,"column":2},"end":{"line":27,"column":4}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":75}},"14":{"start":{"line":25,"column":4},"end":{"line":25,"column":16}},"15":{"start":{"line":26,"column":4},"end":{"line":26,"column":24}},"16":{"start":{"line":30,"column":0},"end":{"line":34,"column":3}},"17":{"start":{"line":32,"column":4},"end":{"line":32,"column":43}},"18":{"start":{"line":36,"column":0},"end":{"line":53,"column":2}},"19":{"start":{"line":37,"column":2},"end":{"line":39,"column":3}},"20":{"start":{"line":38,"column":4},"end":{"line":38,"column":11}},"21":{"start":{"line":40,"column":2},"end":{"line":45,"column":3}},"22":{"start":{"line":41,"column":4},"end":{"line":41,"column":32}},"23":{"start":{"line":42,"column":4},"end":{"line":42,"column":19}},"24":{"start":{"line":43,"column":4},"end":{"line":43,"column":20}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":16}},"26":{"start":{"line":47,"column":2},"end":{"line":52,"column":3}},"27":{"start":{"line":48,"column":4},"end":{"line":51,"column":5}},"28":{"start":{"line":49,"column":6},"end":{"line":49,"column":30}},"29":{"start":{"line":50,"column":6},"end":{"line":50,"column":27}},"30":{"start":{"line":55,"column":0},"end":{"line":60,"column":2}},"31":{"start":{"line":56,"column":2},"end":{"line":59,"column":3}},"32":{"start":{"line":57,"column":4},"end":{"line":57,"column":22}},"33":{"start":{"line":58,"column":4},"end":{"line":58,"column":16}},"34":{"start":{"line":62,"column":0},"end":{"line":65,"column":1}},"35":{"start":{"line":63,"column":2},"end":{"line":63,"column":17}},"36":{"start":{"line":64,"column":2},"end":{"line":64,"column":14}},"37":{"start":{"line":67,"column":0},"end":{"line":67,"column":23}}},"branchMap":{"1":{"line":4,"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":2}},{"start":{"line":4,"column":2},"end":{"line":4,"column":2}}]},"2":{"line":8,"type":"binary-expr","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":19}},{"start":{"line":8,"column":23},"end":{"line":8,"column":25}}]},"3":{"line":9,"type":"binary-expr","locations":[{"start":{"line":9,"column":21},"end":{"line":9,"column":40}},{"start":{"line":9,"column":44},"end":{"line":9,"column":52}}]},"4":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]},"5":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":40,"column":2}},{"start":{"line":40,"column":2},"end":{"line":40,"column":2}}]},"6":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":47,"column":2}},{"start":{"line":47,"column":2},"end":{"line":47,"column":2}}]},"7":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":2},"end":{"line":56,"column":2}},{"start":{"line":56,"column":2},"end":{"line":56,"column":2}}]}}}}