postdoc 0.2.0.beta4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (371) hide show
  1. checksums.yaml +4 -4
  2. data/lib/postdoc/postdoc_view_helper.rb +15 -0
  3. data/lib/postdoc.rb +34 -14
  4. metadata +20 -373
  5. data/lib/pdf.js +0 -27
  6. data/node_modules/agent-base/History.md +0 -113
  7. data/node_modules/agent-base/README.md +0 -145
  8. data/node_modules/agent-base/index.js +0 -160
  9. data/node_modules/agent-base/package.json +0 -35
  10. data/node_modules/agent-base/patch-core.js +0 -37
  11. data/node_modules/agent-base/test/ssl-cert-snakeoil.key +0 -15
  12. data/node_modules/agent-base/test/ssl-cert-snakeoil.pem +0 -12
  13. data/node_modules/agent-base/test/test.js +0 -673
  14. data/node_modules/async-limiter/LICENSE +0 -8
  15. data/node_modules/async-limiter/coverage/coverage.json +0 -1
  16. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html +0 -73
  17. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html +0 -246
  18. data/node_modules/async-limiter/coverage/lcov-report/base.css +0 -182
  19. data/node_modules/async-limiter/coverage/lcov-report/index.html +0 -73
  20. data/node_modules/async-limiter/coverage/lcov-report/prettify.css +0 -1
  21. data/node_modules/async-limiter/coverage/lcov-report/prettify.js +0 -1
  22. data/node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  23. data/node_modules/async-limiter/coverage/lcov-report/sorter.js +0 -156
  24. data/node_modules/async-limiter/coverage/lcov.info +0 -74
  25. data/node_modules/async-limiter/index.js +0 -67
  26. data/node_modules/async-limiter/package.json +0 -35
  27. data/node_modules/async-limiter/readme.md +0 -132
  28. data/node_modules/balanced-match/LICENSE.md +0 -21
  29. data/node_modules/balanced-match/README.md +0 -91
  30. data/node_modules/balanced-match/index.js +0 -59
  31. data/node_modules/balanced-match/package.json +0 -49
  32. data/node_modules/brace-expansion/LICENSE +0 -21
  33. data/node_modules/brace-expansion/README.md +0 -129
  34. data/node_modules/brace-expansion/index.js +0 -201
  35. data/node_modules/brace-expansion/package.json +0 -47
  36. data/node_modules/buffer-from/index.js +0 -69
  37. data/node_modules/buffer-from/package.json +0 -16
  38. data/node_modules/buffer-from/readme.md +0 -69
  39. data/node_modules/buffer-from/test.js +0 -12
  40. data/node_modules/concat-map/LICENSE +0 -18
  41. data/node_modules/concat-map/README.markdown +0 -62
  42. data/node_modules/concat-map/example/map.js +0 -6
  43. data/node_modules/concat-map/index.js +0 -13
  44. data/node_modules/concat-map/package.json +0 -43
  45. data/node_modules/concat-map/test/map.js +0 -39
  46. data/node_modules/concat-stream/LICENSE +0 -24
  47. data/node_modules/concat-stream/index.js +0 -144
  48. data/node_modules/concat-stream/package.json +0 -55
  49. data/node_modules/concat-stream/readme.md +0 -102
  50. data/node_modules/core-util-is/LICENSE +0 -19
  51. data/node_modules/core-util-is/README.md +0 -3
  52. data/node_modules/core-util-is/float.patch +0 -604
  53. data/node_modules/core-util-is/lib/util.js +0 -107
  54. data/node_modules/core-util-is/package.json +0 -32
  55. data/node_modules/core-util-is/test.js +0 -68
  56. data/node_modules/debug/CHANGELOG.md +0 -395
  57. data/node_modules/debug/LICENSE +0 -19
  58. data/node_modules/debug/Makefile +0 -58
  59. data/node_modules/debug/README.md +0 -368
  60. data/node_modules/debug/karma.conf.js +0 -70
  61. data/node_modules/debug/node.js +0 -1
  62. data/node_modules/debug/package.json +0 -43
  63. data/node_modules/debug/src/browser.js +0 -195
  64. data/node_modules/debug/src/debug.js +0 -225
  65. data/node_modules/debug/src/index.js +0 -10
  66. data/node_modules/debug/src/node.js +0 -186
  67. data/node_modules/es6-promise/CHANGELOG.md +0 -151
  68. data/node_modules/es6-promise/LICENSE +0 -19
  69. data/node_modules/es6-promise/README.md +0 -97
  70. data/node_modules/es6-promise/auto.js +0 -4
  71. data/node_modules/es6-promise/dist/es6-promise.auto.js +0 -1181
  72. data/node_modules/es6-promise/dist/es6-promise.auto.map +0 -1
  73. data/node_modules/es6-promise/dist/es6-promise.auto.min.js +0 -1
  74. data/node_modules/es6-promise/dist/es6-promise.auto.min.map +0 -1
  75. data/node_modules/es6-promise/dist/es6-promise.js +0 -1179
  76. data/node_modules/es6-promise/dist/es6-promise.map +0 -1
  77. data/node_modules/es6-promise/dist/es6-promise.min.js +0 -1
  78. data/node_modules/es6-promise/dist/es6-promise.min.map +0 -1
  79. data/node_modules/es6-promise/es6-promise.d.ts +0 -81
  80. data/node_modules/es6-promise/lib/es6-promise/-internal.js +0 -266
  81. data/node_modules/es6-promise/lib/es6-promise/asap.js +0 -119
  82. data/node_modules/es6-promise/lib/es6-promise/enumerator.js +0 -113
  83. data/node_modules/es6-promise/lib/es6-promise/polyfill.js +0 -35
  84. data/node_modules/es6-promise/lib/es6-promise/promise/all.js +0 -52
  85. data/node_modules/es6-promise/lib/es6-promise/promise/race.js +0 -84
  86. data/node_modules/es6-promise/lib/es6-promise/promise/reject.js +0 -46
  87. data/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +0 -48
  88. data/node_modules/es6-promise/lib/es6-promise/promise.js +0 -427
  89. data/node_modules/es6-promise/lib/es6-promise/then.js +0 -32
  90. data/node_modules/es6-promise/lib/es6-promise/utils.js +0 -21
  91. data/node_modules/es6-promise/lib/es6-promise.auto.js +0 -3
  92. data/node_modules/es6-promise/lib/es6-promise.js +0 -7
  93. data/node_modules/es6-promise/package.json +0 -75
  94. data/node_modules/es6-promisify/README.md +0 -89
  95. data/node_modules/es6-promisify/dist/promise.js +0 -73
  96. data/node_modules/es6-promisify/dist/promisify.js +0 -85
  97. data/node_modules/es6-promisify/package.json +0 -41
  98. data/node_modules/extract-zip/CONTRIBUTING.md +0 -1
  99. data/node_modules/extract-zip/LICENSE +0 -23
  100. data/node_modules/extract-zip/cli.js +0 -20
  101. data/node_modules/extract-zip/index.js +0 -205
  102. data/node_modules/extract-zip/node_modules/debug/CHANGELOG.md +0 -362
  103. data/node_modules/extract-zip/node_modules/debug/LICENSE +0 -19
  104. data/node_modules/extract-zip/node_modules/debug/Makefile +0 -50
  105. data/node_modules/extract-zip/node_modules/debug/README.md +0 -312
  106. data/node_modules/extract-zip/node_modules/debug/component.json +0 -19
  107. data/node_modules/extract-zip/node_modules/debug/karma.conf.js +0 -70
  108. data/node_modules/extract-zip/node_modules/debug/node.js +0 -1
  109. data/node_modules/extract-zip/node_modules/debug/package.json +0 -49
  110. data/node_modules/extract-zip/node_modules/debug/src/browser.js +0 -185
  111. data/node_modules/extract-zip/node_modules/debug/src/debug.js +0 -202
  112. data/node_modules/extract-zip/node_modules/debug/src/index.js +0 -10
  113. data/node_modules/extract-zip/node_modules/debug/src/inspector-log.js +0 -15
  114. data/node_modules/extract-zip/node_modules/debug/src/node.js +0 -248
  115. data/node_modules/extract-zip/package.json +0 -35
  116. data/node_modules/extract-zip/readme.md +0 -49
  117. data/node_modules/fd-slicer/CHANGELOG.md +0 -49
  118. data/node_modules/fd-slicer/LICENSE +0 -21
  119. data/node_modules/fd-slicer/README.md +0 -189
  120. data/node_modules/fd-slicer/index.js +0 -277
  121. data/node_modules/fd-slicer/package.json +0 -36
  122. data/node_modules/fd-slicer/test/test.js +0 -350
  123. data/node_modules/fs.realpath/LICENSE +0 -43
  124. data/node_modules/fs.realpath/README.md +0 -33
  125. data/node_modules/fs.realpath/index.js +0 -66
  126. data/node_modules/fs.realpath/old.js +0 -303
  127. data/node_modules/fs.realpath/package.json +0 -26
  128. data/node_modules/glob/LICENSE +0 -15
  129. data/node_modules/glob/README.md +0 -368
  130. data/node_modules/glob/changelog.md +0 -67
  131. data/node_modules/glob/common.js +0 -240
  132. data/node_modules/glob/glob.js +0 -790
  133. data/node_modules/glob/package.json +0 -43
  134. data/node_modules/glob/sync.js +0 -486
  135. data/node_modules/https-proxy-agent/History.md +0 -124
  136. data/node_modules/https-proxy-agent/README.md +0 -137
  137. data/node_modules/https-proxy-agent/index.js +0 -229
  138. data/node_modules/https-proxy-agent/package.json +0 -35
  139. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key +0 -15
  140. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem +0 -12
  141. data/node_modules/https-proxy-agent/test/test.js +0 -342
  142. data/node_modules/inflight/LICENSE +0 -15
  143. data/node_modules/inflight/README.md +0 -37
  144. data/node_modules/inflight/inflight.js +0 -54
  145. data/node_modules/inflight/package.json +0 -29
  146. data/node_modules/inherits/LICENSE +0 -16
  147. data/node_modules/inherits/README.md +0 -42
  148. data/node_modules/inherits/inherits.js +0 -7
  149. data/node_modules/inherits/inherits_browser.js +0 -23
  150. data/node_modules/inherits/package.json +0 -29
  151. data/node_modules/isarray/Makefile +0 -6
  152. data/node_modules/isarray/README.md +0 -60
  153. data/node_modules/isarray/component.json +0 -19
  154. data/node_modules/isarray/index.js +0 -5
  155. data/node_modules/isarray/package.json +0 -45
  156. data/node_modules/isarray/test.js +0 -20
  157. data/node_modules/mime/CHANGELOG.md +0 -225
  158. data/node_modules/mime/CONTRIBUTING.md +0 -5
  159. data/node_modules/mime/LICENSE +0 -21
  160. data/node_modules/mime/Mime.js +0 -89
  161. data/node_modules/mime/README.md +0 -188
  162. data/node_modules/mime/cli.js +0 -10
  163. data/node_modules/mime/index.js +0 -4
  164. data/node_modules/mime/lite.js +0 -4
  165. data/node_modules/mime/package.json +0 -43
  166. data/node_modules/mime/src/README_js.md +0 -179
  167. data/node_modules/mime/src/build.js +0 -71
  168. data/node_modules/mime/src/test.js +0 -257
  169. data/node_modules/mime/types/other.json +0 -1
  170. data/node_modules/mime/types/standard.json +0 -1
  171. data/node_modules/minimatch/LICENSE +0 -15
  172. data/node_modules/minimatch/README.md +0 -209
  173. data/node_modules/minimatch/minimatch.js +0 -923
  174. data/node_modules/minimatch/package.json +0 -30
  175. data/node_modules/minimist/LICENSE +0 -18
  176. data/node_modules/minimist/example/parse.js +0 -2
  177. data/node_modules/minimist/index.js +0 -187
  178. data/node_modules/minimist/package.json +0 -40
  179. data/node_modules/minimist/readme.markdown +0 -73
  180. data/node_modules/minimist/test/dash.js +0 -24
  181. data/node_modules/minimist/test/default_bool.js +0 -20
  182. data/node_modules/minimist/test/dotted.js +0 -16
  183. data/node_modules/minimist/test/long.js +0 -31
  184. data/node_modules/minimist/test/parse.js +0 -318
  185. data/node_modules/minimist/test/parse_modified.js +0 -9
  186. data/node_modules/minimist/test/short.js +0 -67
  187. data/node_modules/minimist/test/whitespace.js +0 -8
  188. data/node_modules/mkdirp/LICENSE +0 -21
  189. data/node_modules/mkdirp/bin/cmd.js +0 -33
  190. data/node_modules/mkdirp/bin/usage.txt +0 -12
  191. data/node_modules/mkdirp/examples/pow.js +0 -6
  192. data/node_modules/mkdirp/index.js +0 -98
  193. data/node_modules/mkdirp/package.json +0 -27
  194. data/node_modules/mkdirp/readme.markdown +0 -100
  195. data/node_modules/mkdirp/test/chmod.js +0 -41
  196. data/node_modules/mkdirp/test/clobber.js +0 -38
  197. data/node_modules/mkdirp/test/mkdirp.js +0 -28
  198. data/node_modules/mkdirp/test/opts_fs.js +0 -29
  199. data/node_modules/mkdirp/test/opts_fs_sync.js +0 -27
  200. data/node_modules/mkdirp/test/perm.js +0 -32
  201. data/node_modules/mkdirp/test/perm_sync.js +0 -36
  202. data/node_modules/mkdirp/test/race.js +0 -37
  203. data/node_modules/mkdirp/test/rel.js +0 -32
  204. data/node_modules/mkdirp/test/return.js +0 -25
  205. data/node_modules/mkdirp/test/return_sync.js +0 -24
  206. data/node_modules/mkdirp/test/root.js +0 -19
  207. data/node_modules/mkdirp/test/sync.js +0 -32
  208. data/node_modules/mkdirp/test/umask.js +0 -28
  209. data/node_modules/mkdirp/test/umask_sync.js +0 -32
  210. data/node_modules/ms/index.js +0 -152
  211. data/node_modules/ms/license.md +0 -21
  212. data/node_modules/ms/package.json +0 -37
  213. data/node_modules/ms/readme.md +0 -51
  214. data/node_modules/once/LICENSE +0 -15
  215. data/node_modules/once/README.md +0 -79
  216. data/node_modules/once/once.js +0 -42
  217. data/node_modules/once/package.json +0 -33
  218. data/node_modules/path-is-absolute/index.js +0 -20
  219. data/node_modules/path-is-absolute/license +0 -21
  220. data/node_modules/path-is-absolute/package.json +0 -43
  221. data/node_modules/path-is-absolute/readme.md +0 -59
  222. data/node_modules/pend/LICENSE +0 -23
  223. data/node_modules/pend/README.md +0 -41
  224. data/node_modules/pend/index.js +0 -55
  225. data/node_modules/pend/package.json +0 -18
  226. data/node_modules/pend/test.js +0 -137
  227. data/node_modules/process-nextick-args/index.js +0 -44
  228. data/node_modules/process-nextick-args/license.md +0 -19
  229. data/node_modules/process-nextick-args/package.json +0 -25
  230. data/node_modules/process-nextick-args/readme.md +0 -18
  231. data/node_modules/progress/CHANGELOG.md +0 -115
  232. data/node_modules/progress/LICENSE +0 -22
  233. data/node_modules/progress/Makefile +0 -8
  234. data/node_modules/progress/README.md +0 -146
  235. data/node_modules/progress/index.js +0 -1
  236. data/node_modules/progress/lib/node-progress.js +0 -231
  237. data/node_modules/progress/package.json +0 -25
  238. data/node_modules/proxy-from-env/README.md +0 -131
  239. data/node_modules/proxy-from-env/index.js +0 -103
  240. data/node_modules/proxy-from-env/package.json +0 -35
  241. data/node_modules/proxy-from-env/test.js +0 -393
  242. data/node_modules/puppeteer/CONTRIBUTING.md +0 -206
  243. data/node_modules/puppeteer/DeviceDescriptors.js +0 -704
  244. data/node_modules/puppeteer/LICENSE +0 -202
  245. data/node_modules/puppeteer/README.md +0 -306
  246. data/node_modules/puppeteer/index.js +0 -28
  247. data/node_modules/puppeteer/install.js +0 -122
  248. data/node_modules/puppeteer/lib/Browser.js +0 -186
  249. data/node_modules/puppeteer/lib/BrowserFetcher.js +0 -279
  250. data/node_modules/puppeteer/lib/Connection.js +0 -246
  251. data/node_modules/puppeteer/lib/Coverage.js +0 -301
  252. data/node_modules/puppeteer/lib/Dialog.js +0 -84
  253. data/node_modules/puppeteer/lib/ElementHandle.js +0 -328
  254. data/node_modules/puppeteer/lib/EmulationManager.js +0 -89
  255. data/node_modules/puppeteer/lib/ExecutionContext.js +0 -232
  256. data/node_modules/puppeteer/lib/FrameManager.js +0 -997
  257. data/node_modules/puppeteer/lib/Input.js +0 -309
  258. data/node_modules/puppeteer/lib/Launcher.js +0 -310
  259. data/node_modules/puppeteer/lib/Multimap.js +0 -95
  260. data/node_modules/puppeteer/lib/NavigatorWatcher.js +0 -137
  261. data/node_modules/puppeteer/lib/NetworkManager.js +0 -796
  262. data/node_modules/puppeteer/lib/Page.js +0 -1098
  263. data/node_modules/puppeteer/lib/Pipe.js +0 -69
  264. data/node_modules/puppeteer/lib/Puppeteer.js +0 -60
  265. data/node_modules/puppeteer/lib/Target.js +0 -88
  266. data/node_modules/puppeteer/lib/TaskQueue.js +0 -17
  267. data/node_modules/puppeteer/lib/Tracing.js +0 -99
  268. data/node_modules/puppeteer/lib/USKeyboardLayout.js +0 -281
  269. data/node_modules/puppeteer/lib/helper.js +0 -248
  270. data/node_modules/puppeteer/node6/lib/Browser.js +0 -394
  271. data/node_modules/puppeteer/node6/lib/BrowserFetcher.js +0 -357
  272. data/node_modules/puppeteer/node6/lib/Connection.js +0 -350
  273. data/node_modules/puppeteer/node6/lib/Coverage.js +0 -561
  274. data/node_modules/puppeteer/node6/lib/Dialog.js +0 -136
  275. data/node_modules/puppeteer/node6/lib/ElementHandle.js +0 -796
  276. data/node_modules/puppeteer/node6/lib/EmulationManager.js +0 -115
  277. data/node_modules/puppeteer/node6/lib/ExecutionContext.js +0 -414
  278. data/node_modules/puppeteer/node6/lib/FrameManager.js +0 -1621
  279. data/node_modules/puppeteer/node6/lib/Input.js +0 -569
  280. data/node_modules/puppeteer/node6/lib/Launcher.js +0 -362
  281. data/node_modules/puppeteer/node6/lib/Multimap.js +0 -95
  282. data/node_modules/puppeteer/node6/lib/NavigatorWatcher.js +0 -163
  283. data/node_modules/puppeteer/node6/lib/NetworkManager.js +0 -1108
  284. data/node_modules/puppeteer/node6/lib/Page.js +0 -2242
  285. data/node_modules/puppeteer/node6/lib/Pipe.js +0 -69
  286. data/node_modules/puppeteer/node6/lib/Puppeteer.js +0 -60
  287. data/node_modules/puppeteer/node6/lib/Target.js +0 -114
  288. data/node_modules/puppeteer/node6/lib/TaskQueue.js +0 -17
  289. data/node_modules/puppeteer/node6/lib/Tracing.js +0 -177
  290. data/node_modules/puppeteer/node6/lib/USKeyboardLayout.js +0 -281
  291. data/node_modules/puppeteer/node6/lib/helper.js +0 -274
  292. data/node_modules/puppeteer/package.json +0 -61
  293. data/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  294. data/node_modules/readable-stream/GOVERNANCE.md +0 -136
  295. data/node_modules/readable-stream/LICENSE +0 -47
  296. data/node_modules/readable-stream/README.md +0 -58
  297. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  298. data/node_modules/readable-stream/duplex-browser.js +0 -1
  299. data/node_modules/readable-stream/duplex.js +0 -1
  300. data/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  301. data/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  302. data/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  303. data/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  304. data/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  305. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  306. data/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  307. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  308. data/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  309. data/node_modules/readable-stream/package.json +0 -52
  310. data/node_modules/readable-stream/passthrough.js +0 -1
  311. data/node_modules/readable-stream/readable-browser.js +0 -7
  312. data/node_modules/readable-stream/readable.js +0 -19
  313. data/node_modules/readable-stream/transform.js +0 -1
  314. data/node_modules/readable-stream/writable-browser.js +0 -1
  315. data/node_modules/readable-stream/writable.js +0 -8
  316. data/node_modules/rimraf/LICENSE +0 -15
  317. data/node_modules/rimraf/README.md +0 -101
  318. data/node_modules/rimraf/bin.js +0 -50
  319. data/node_modules/rimraf/package.json +0 -26
  320. data/node_modules/rimraf/rimraf.js +0 -364
  321. data/node_modules/safe-buffer/LICENSE +0 -21
  322. data/node_modules/safe-buffer/README.md +0 -584
  323. data/node_modules/safe-buffer/index.d.ts +0 -187
  324. data/node_modules/safe-buffer/index.js +0 -62
  325. data/node_modules/safe-buffer/package.json +0 -37
  326. data/node_modules/string_decoder/LICENSE +0 -48
  327. data/node_modules/string_decoder/README.md +0 -47
  328. data/node_modules/string_decoder/lib/string_decoder.js +0 -296
  329. data/node_modules/string_decoder/package.json +0 -31
  330. data/node_modules/typedarray/LICENSE +0 -35
  331. data/node_modules/typedarray/example/tarray.js +0 -4
  332. data/node_modules/typedarray/index.js +0 -630
  333. data/node_modules/typedarray/package.json +0 -55
  334. data/node_modules/typedarray/readme.markdown +0 -61
  335. data/node_modules/typedarray/test/server/undef_globals.js +0 -19
  336. data/node_modules/typedarray/test/tarray.js +0 -10
  337. data/node_modules/ultron/LICENSE +0 -22
  338. data/node_modules/ultron/README.md +0 -113
  339. data/node_modules/ultron/index.js +0 -136
  340. data/node_modules/ultron/package.json +0 -41
  341. data/node_modules/util-deprecate/History.md +0 -16
  342. data/node_modules/util-deprecate/LICENSE +0 -24
  343. data/node_modules/util-deprecate/README.md +0 -53
  344. data/node_modules/util-deprecate/browser.js +0 -67
  345. data/node_modules/util-deprecate/node.js +0 -6
  346. data/node_modules/util-deprecate/package.json +0 -27
  347. data/node_modules/wrappy/LICENSE +0 -15
  348. data/node_modules/wrappy/README.md +0 -36
  349. data/node_modules/wrappy/package.json +0 -29
  350. data/node_modules/wrappy/wrappy.js +0 -33
  351. data/node_modules/ws/LICENSE +0 -21
  352. data/node_modules/ws/README.md +0 -341
  353. data/node_modules/ws/index.js +0 -15
  354. data/node_modules/ws/lib/BufferUtil.js +0 -71
  355. data/node_modules/ws/lib/Constants.js +0 -10
  356. data/node_modules/ws/lib/ErrorCodes.js +0 -28
  357. data/node_modules/ws/lib/EventTarget.js +0 -151
  358. data/node_modules/ws/lib/Extensions.js +0 -203
  359. data/node_modules/ws/lib/PerMessageDeflate.js +0 -507
  360. data/node_modules/ws/lib/Receiver.js +0 -553
  361. data/node_modules/ws/lib/Sender.js +0 -412
  362. data/node_modules/ws/lib/Validation.js +0 -17
  363. data/node_modules/ws/lib/WebSocket.js +0 -717
  364. data/node_modules/ws/lib/WebSocketServer.js +0 -326
  365. data/node_modules/ws/package.json +0 -46
  366. data/node_modules/yauzl/LICENSE +0 -21
  367. data/node_modules/yauzl/README.md +0 -467
  368. data/node_modules/yauzl/index.js +0 -626
  369. data/node_modules/yauzl/package.json +0 -36
  370. data/package.json +0 -5
  371. data/yarn.lock +0 -240
@@ -1,673 +0,0 @@
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
- });
@@ -1,8 +0,0 @@
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.
@@ -1 +0,0 @@
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}}]}}}}