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,186 +0,0 @@
1
- /**
2
- * Copyright 2017 Google Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- const { helper } = require('./helper');
18
- const Target = require('./Target');
19
- const EventEmitter = require('events');
20
- const TaskQueue = require('./TaskQueue');
21
-
22
- class Browser extends EventEmitter {
23
- /**
24
- * @param {!Puppeteer.Connection} connection
25
- * @param {!BrowserOptions=} options
26
- * @param {?Puppeteer.ChildProcess} process
27
- * @param {(function():Promise)=} closeCallback
28
- */
29
- constructor(connection, options = {}, process, closeCallback) {
30
- super();
31
- this._ignoreHTTPSErrors = !!options.ignoreHTTPSErrors;
32
- this._appMode = !!options.appMode;
33
- this._process = process;
34
- this._screenshotTaskQueue = new TaskQueue();
35
- this._connection = connection;
36
- this._closeCallback = closeCallback || new Function();
37
- /** @type {Map<string, Target>} */
38
- this._targets = new Map();
39
- this._connection.setClosedCallback(() => {
40
- this.emit(Browser.Events.Disconnected);
41
- });
42
- this._connection.on('Target.targetCreated', this._targetCreated.bind(this));
43
- this._connection.on('Target.targetDestroyed', this._targetDestroyed.bind(this));
44
- this._connection.on('Target.targetInfoChanged', this._targetInfoChanged.bind(this));
45
- }
46
-
47
- /**
48
- * @return {?Puppeteer.ChildProcess}
49
- */
50
- process() {
51
- return this._process;
52
- }
53
-
54
- /**
55
- * @param {!Puppeteer.Connection} connection
56
- * @param {!BrowserOptions=} options
57
- * @param {?Puppeteer.ChildProcess} process
58
- * @param {function()=} closeCallback
59
- */
60
- static async create(connection, options, process, closeCallback) {
61
- const browser = new Browser(connection, options, process, closeCallback);
62
- await connection.send('Target.setDiscoverTargets', {discover: true});
63
- return browser;
64
- }
65
-
66
- /**
67
- * @param {{targetInfo: !Puppeteer.TargetInfo}} event
68
- */
69
- async _targetCreated(event) {
70
- const targetInfo = event.targetInfo;
71
- const target = new Target(targetInfo, this, () => this._connection.createSession(targetInfo.targetId), this._ignoreHTTPSErrors, !this._appMode, this._screenshotTaskQueue);
72
- console.assert(!this._targets.has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
73
- this._targets.set(event.targetInfo.targetId, target);
74
-
75
- if (await target._initializedPromise)
76
- this.emit(Browser.Events.TargetCreated, target);
77
- }
78
-
79
- /**
80
- * @param {{targetId: string}} event
81
- */
82
- async _targetDestroyed(event) {
83
- const target = this._targets.get(event.targetId);
84
- target._initializedCallback(false);
85
- this._targets.delete(event.targetId);
86
- target._closedCallback();
87
- if (await target._initializedPromise)
88
- this.emit(Browser.Events.TargetDestroyed, target);
89
- }
90
-
91
- /**
92
- * @param {{targetInfo: !Puppeteer.TargetInfo}} event
93
- */
94
- _targetInfoChanged(event) {
95
- const target = this._targets.get(event.targetInfo.targetId);
96
- console.assert(target, 'target should exist before targetInfoChanged');
97
- const previousURL = target.url();
98
- const wasInitialized = target._isInitialized;
99
- target._targetInfoChanged(event.targetInfo);
100
- if (wasInitialized && previousURL !== target.url())
101
- this.emit(Browser.Events.TargetChanged, target);
102
- }
103
-
104
- /**
105
- * @return {string}
106
- */
107
- wsEndpoint() {
108
- return this._connection.url();
109
- }
110
-
111
- /**
112
- * @return {!Promise<!Puppeteer.Page>}
113
- */
114
- async newPage() {
115
- const {targetId} = await this._connection.send('Target.createTarget', {url: 'about:blank'});
116
- const target = await this._targets.get(targetId);
117
- console.assert(await target._initializedPromise, 'Failed to create target for page');
118
- const page = await target.page();
119
- return page;
120
- }
121
-
122
- /**
123
- * @return {!Array<!Target>}
124
- */
125
- targets() {
126
- return Array.from(this._targets.values()).filter(target => target._isInitialized);
127
- }
128
-
129
- /**
130
- * @return {!Promise<!Array<!Puppeteer.Page>>}
131
- */
132
- async pages() {
133
- const pages = await Promise.all(this.targets().map(target => target.page()));
134
- return pages.filter(page => !!page);
135
- }
136
-
137
- /**
138
- * @return {!Promise<string>}
139
- */
140
- async version() {
141
- const version = await this._getVersion();
142
- return version.product;
143
- }
144
-
145
- /**
146
- * @return {!Promise<string>}
147
- */
148
- async userAgent() {
149
- const version = await this._getVersion();
150
- return version.userAgent;
151
- }
152
-
153
- async close() {
154
- await this._closeCallback.call(null);
155
- this.disconnect();
156
- }
157
-
158
- disconnect() {
159
- this._connection.dispose();
160
- }
161
-
162
- /**
163
- * @return {!Promise<!Object>}
164
- */
165
- _getVersion() {
166
- return this._connection.send('Browser.getVersion');
167
- }
168
- }
169
-
170
- /** @enum {string} */
171
- Browser.Events = {
172
- TargetCreated: 'targetcreated',
173
- TargetDestroyed: 'targetdestroyed',
174
- TargetChanged: 'targetchanged',
175
- Disconnected: 'disconnected'
176
- };
177
-
178
- helper.tracePublicAPI(Browser);
179
-
180
- module.exports = Browser;
181
-
182
- /**
183
- * @typedef {Object} BrowserOptions
184
- * @property {boolean=} appMode
185
- * @property {boolean=} ignoreHTTPSErrors
186
- */
@@ -1,279 +0,0 @@
1
- /**
2
- * Copyright 2017 Google Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- const os = require('os');
18
- const fs = require('fs');
19
- const path = require('path');
20
- const extract = require('extract-zip');
21
- const util = require('util');
22
- const URL = require('url');
23
- const {helper} = require('./helper');
24
- const removeRecursive = require('rimraf');
25
- // @ts-ignore
26
- const ProxyAgent = require('https-proxy-agent');
27
- // @ts-ignore
28
- const getProxyForUrl = require('proxy-from-env').getProxyForUrl;
29
-
30
- const DEFAULT_DOWNLOAD_HOST = 'https://storage.googleapis.com';
31
- const downloadURLs = {
32
- linux: '%s/chromium-browser-snapshots/Linux_x64/%d/chrome-linux.zip',
33
- mac: '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip',
34
- win32: '%s/chromium-browser-snapshots/Win/%d/chrome-win32.zip',
35
- win64: '%s/chromium-browser-snapshots/Win_x64/%d/chrome-win32.zip',
36
- };
37
-
38
- const readdirAsync = helper.promisify(fs.readdir.bind(fs));
39
- const mkdirAsync = helper.promisify(fs.mkdir.bind(fs));
40
- const unlinkAsync = helper.promisify(fs.unlink.bind(fs));
41
- const chmodAsync = helper.promisify(fs.chmod.bind(fs));
42
-
43
- function existsAsync(filePath) {
44
- let fulfill = null;
45
- const promise = new Promise(x => fulfill = x);
46
- fs.access(filePath, err => fulfill(!err));
47
- return promise;
48
- }
49
-
50
- class BrowserFetcher {
51
- /**
52
- * @param {!BrowserFetcher.Options=} options
53
- */
54
- constructor(options = {}) {
55
- this._downloadsFolder = options.path || path.join(helper.projectRoot(), '.local-chromium');
56
- this._downloadHost = options.host || DEFAULT_DOWNLOAD_HOST;
57
- this._platform = options.platform || '';
58
- if (!this._platform) {
59
- const platform = os.platform();
60
- if (platform === 'darwin')
61
- this._platform = 'mac';
62
- else if (platform === 'linux')
63
- this._platform = 'linux';
64
- else if (platform === 'win32')
65
- this._platform = os.arch() === 'x64' ? 'win64' : 'win32';
66
- console.assert(this._platform, 'Unsupported platform: ' + os.platform());
67
- }
68
- const supportedPlatforms = ['mac', 'linux', 'win32', 'win64'];
69
- console.assert(supportedPlatforms.includes(this._platform), 'Unsupported platform: ' + this._platform);
70
- }
71
-
72
- /**
73
- * @return {string}
74
- */
75
- platform() {
76
- return this._platform;
77
- }
78
-
79
- /**
80
- * @param {string} revision
81
- * @return {!Promise<boolean>}
82
- */
83
- canDownload(revision) {
84
- const url = util.format(downloadURLs[this._platform], this._downloadHost, revision);
85
-
86
- let resolve;
87
- const promise = new Promise(x => resolve = x);
88
- const request = httpRequest(url, 'HEAD', response => {
89
- resolve(response.statusCode === 200);
90
- });
91
- request.on('error', error => {
92
- console.error(error);
93
- resolve(false);
94
- });
95
- return promise;
96
- }
97
-
98
- /**
99
- * @param {string} revision
100
- * @param {?function(number, number)} progressCallback
101
- * @return {!Promise<!BrowserFetcher.RevisionInfo>}
102
- */
103
- async download(revision, progressCallback) {
104
- let url = downloadURLs[this._platform];
105
- url = util.format(url, this._downloadHost, revision);
106
- const zipPath = path.join(this._downloadsFolder, `download-${this._platform}-${revision}.zip`);
107
- const folderPath = this._getFolderPath(revision);
108
- if (await existsAsync(folderPath))
109
- return this.revisionInfo(revision);
110
- if (!(await existsAsync(this._downloadsFolder)))
111
- await mkdirAsync(this._downloadsFolder);
112
- try {
113
- await downloadFile(url, zipPath, progressCallback);
114
- await extractZip(zipPath, folderPath);
115
- } finally {
116
- if (await existsAsync(zipPath))
117
- await unlinkAsync(zipPath);
118
- }
119
- const revisionInfo = this.revisionInfo(revision);
120
- if (revisionInfo)
121
- await chmodAsync(revisionInfo.executablePath, 0o755);
122
- return revisionInfo;
123
- }
124
-
125
- /**
126
- * @return {!Promise<!Array<string>>}
127
- */
128
- async localRevisions() {
129
- if (!await existsAsync(this._downloadsFolder))
130
- return [];
131
- const fileNames = await readdirAsync(this._downloadsFolder);
132
- return fileNames.map(fileName => parseFolderPath(fileName)).filter(entry => entry && entry.platform === this._platform).map(entry => entry.revision);
133
- }
134
-
135
- /**
136
- * @param {string} revision
137
- * @return {!Promise}
138
- */
139
- async remove(revision) {
140
- const folderPath = this._getFolderPath(revision);
141
- console.assert(await existsAsync(folderPath), `Failed to remove: revision ${revision} is not downloaded`);
142
- await new Promise(fulfill => removeRecursive(folderPath, fulfill));
143
- }
144
-
145
- /**
146
- * @param {string} revision
147
- * @return {!BrowserFetcher.RevisionInfo}
148
- */
149
- revisionInfo(revision) {
150
- const folderPath = this._getFolderPath(revision);
151
- let executablePath = '';
152
- if (this._platform === 'mac')
153
- executablePath = path.join(folderPath, 'chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium');
154
- else if (this._platform === 'linux')
155
- executablePath = path.join(folderPath, 'chrome-linux', 'chrome');
156
- else if (this._platform === 'win32' || this._platform === 'win64')
157
- executablePath = path.join(folderPath, 'chrome-win32', 'chrome.exe');
158
- else
159
- throw 'Unsupported platform: ' + this._platform;
160
- let url = downloadURLs[this._platform];
161
- url = util.format(url, this._downloadHost, revision);
162
- const local = fs.existsSync(folderPath);
163
- return {revision, executablePath, folderPath, local, url};
164
- }
165
-
166
- /**
167
- * @param {string} revision
168
- * @return {string}
169
- */
170
- _getFolderPath(revision) {
171
- return path.join(this._downloadsFolder, this._platform + '-' + revision);
172
- }
173
- }
174
-
175
- module.exports = BrowserFetcher;
176
-
177
- /**
178
- * @param {string} folderPath
179
- * @return {?{platform: string, revision: string}}
180
- */
181
- function parseFolderPath(folderPath) {
182
- const name = path.basename(folderPath);
183
- const splits = name.split('-');
184
- if (splits.length !== 2)
185
- return null;
186
- const [platform, revision] = splits;
187
- if (!downloadURLs[platform])
188
- return null;
189
- return {platform, revision};
190
- }
191
-
192
- /**
193
- * @param {string} url
194
- * @param {string} destinationPath
195
- * @param {?function(number, number)} progressCallback
196
- * @return {!Promise}
197
- */
198
- function downloadFile(url, destinationPath, progressCallback) {
199
- let fulfill, reject;
200
- let downloadedBytes = 0;
201
- let totalBytes = 0;
202
-
203
- const promise = new Promise((x, y) => { fulfill = x; reject = y; });
204
-
205
- const request = httpRequest(url, 'GET', response => {
206
- if (response.statusCode !== 200) {
207
- const error = new Error(`Download failed: server returned code ${response.statusCode}. URL: ${url}`);
208
- // consume response data to free up memory
209
- response.resume();
210
- reject(error);
211
- return;
212
- }
213
- const file = fs.createWriteStream(destinationPath);
214
- file.on('finish', () => fulfill());
215
- file.on('error', error => reject(error));
216
- response.pipe(file);
217
- totalBytes = parseInt(/** @type {string} */ (response.headers['content-length']), 10);
218
- if (progressCallback)
219
- response.on('data', onData);
220
- });
221
- request.on('error', error => reject(error));
222
- return promise;
223
-
224
- function onData(chunk) {
225
- downloadedBytes += chunk.length;
226
- progressCallback(downloadedBytes, totalBytes);
227
- }
228
- }
229
-
230
- /**
231
- * @param {string} zipPath
232
- * @param {string} folderPath
233
- * @return {!Promise<?Error>}
234
- */
235
- function extractZip(zipPath, folderPath) {
236
- return new Promise(fulfill => extract(zipPath, {dir: folderPath}, fulfill));
237
- }
238
-
239
- function httpRequest(url, method, response) {
240
- /** @type {Object} */
241
- const options = URL.parse(url);
242
- options.method = method;
243
-
244
- const proxyURL = getProxyForUrl(url);
245
- if (proxyURL) {
246
- /** @type {Object} */
247
- const parsedProxyURL = URL.parse(proxyURL);
248
- parsedProxyURL.secureProxy = parsedProxyURL.protocol === 'https:';
249
-
250
- options.agent = new ProxyAgent(parsedProxyURL);
251
- options.rejectUnauthorized = false;
252
- }
253
-
254
- const driver = options.protocol === 'https:' ? 'https' : 'http';
255
- const request = require(driver).request(options, res => {
256
- if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location)
257
- httpRequest(res.headers.location, method, response);
258
- else
259
- response(res);
260
- });
261
- request.end();
262
- return request;
263
- }
264
-
265
- /**
266
- * @typedef {Object} BrowserFetcher.Options
267
- * @property {string=} platform
268
- * @property {string=} path
269
- * @property {string=} host
270
- */
271
-
272
- /**
273
- * @typedef {Object} BrowserFetcher.RevisionInfo
274
- * @property {string} folderPath
275
- * @property {string} executablePath
276
- * @property {string} url
277
- * @property {boolean} local
278
- * @property {string} revision
279
- */
@@ -1,246 +0,0 @@
1
- /**
2
- * Copyright 2017 Google Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- const {helper} = require('./helper');
17
- const debugProtocol = require('debug')('puppeteer:protocol');
18
- const debugSession = require('debug')('puppeteer:session');
19
-
20
- const EventEmitter = require('events');
21
- const WebSocket = require('ws');
22
- const Pipe = require('./Pipe');
23
-
24
- class Connection extends EventEmitter {
25
- /**
26
- * @param {string} url
27
- * @param {number=} delay
28
- * @return {!Promise<!Connection>}
29
- */
30
- static async createForWebSocket(url, delay = 0) {
31
- return new Promise((resolve, reject) => {
32
- const ws = new WebSocket(url, { perMessageDeflate: false });
33
- ws.on('open', () => resolve(new Connection(url, ws, delay)));
34
- ws.on('error', reject);
35
- });
36
- }
37
-
38
- /**
39
- * @param {!NodeJS.WritableStream} pipeWrite
40
- * @param {!NodeJS.ReadableStream} pipeRead
41
- * @param {number=} delay
42
- * @return {!Connection}
43
- */
44
- static createForPipe(pipeWrite, pipeRead, delay = 0) {
45
- return new Connection('', new Pipe(pipeWrite, pipeRead), delay);
46
- }
47
-
48
- /**
49
- * @param {string} url
50
- * @param {!Puppeteer.ConnectionTransport} transport
51
- * @param {number=} delay
52
- */
53
- constructor(url, transport, delay = 0) {
54
- super();
55
- this._url = url;
56
- this._lastId = 0;
57
- /** @type {!Map<number, {resolve: function, reject: function, error: !Error, method: string}>}*/
58
- this._callbacks = new Map();
59
- this._delay = delay;
60
-
61
- this._transport = transport;
62
- this._transport.on('message', this._onMessage.bind(this));
63
- this._transport.on('close', this._onClose.bind(this));
64
- /** @type {!Map<string, !CDPSession>}*/
65
- this._sessions = new Map();
66
- }
67
-
68
- /**
69
- * @return {string}
70
- */
71
- url() {
72
- return this._url;
73
- }
74
-
75
- /**
76
- * @param {string} method
77
- * @param {!Object=} params
78
- * @return {!Promise<?Object>}
79
- */
80
- send(method, params = {}) {
81
- const id = ++this._lastId;
82
- const message = JSON.stringify({id, method, params});
83
- debugProtocol('SEND ► ' + message);
84
- this._transport.send(message);
85
- return new Promise((resolve, reject) => {
86
- this._callbacks.set(id, {resolve, reject, error: new Error(), method});
87
- });
88
- }
89
-
90
- /**
91
- * @param {function()} callback
92
- */
93
- setClosedCallback(callback) {
94
- this._closeCallback = callback;
95
- }
96
-
97
- /**
98
- * @param {string} message
99
- */
100
- async _onMessage(message) {
101
- if (this._delay)
102
- await new Promise(f => setTimeout(f, this._delay));
103
- debugProtocol('◀ RECV ' + message);
104
- const object = JSON.parse(message);
105
- if (object.id) {
106
- const callback = this._callbacks.get(object.id);
107
- // Callbacks could be all rejected if someone has called `.dispose()`.
108
- if (callback) {
109
- this._callbacks.delete(object.id);
110
- if (object.error)
111
- callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): ${object.error.message} ${object.error.data}`));
112
- else
113
- callback.resolve(object.result);
114
- }
115
- } else {
116
- if (object.method === 'Target.receivedMessageFromTarget') {
117
- const session = this._sessions.get(object.params.sessionId);
118
- if (session)
119
- session._onMessage(object.params.message);
120
- } else if (object.method === 'Target.detachedFromTarget') {
121
- const session = this._sessions.get(object.params.sessionId);
122
- if (session)
123
- session._onClosed();
124
- this._sessions.delete(object.params.sessionId);
125
- } else {
126
- this.emit(object.method, object.params);
127
- }
128
- }
129
- }
130
-
131
- _onClose() {
132
- if (this._closeCallback) {
133
- this._closeCallback();
134
- this._closeCallback = null;
135
- }
136
- this._transport.removeAllListeners();
137
- // If transport throws any error at this point of time, we don't care and should swallow it.
138
- this._transport.on('error', () => {});
139
- for (const callback of this._callbacks.values())
140
- callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));
141
- this._callbacks.clear();
142
- for (const session of this._sessions.values())
143
- session._onClosed();
144
- this._sessions.clear();
145
- }
146
-
147
- dispose() {
148
- this._onClose();
149
- this._transport.close();
150
- }
151
-
152
- /**
153
- * @param {string} targetId
154
- * @return {!Promise<!CDPSession>}
155
- */
156
- async createSession(targetId) {
157
- const {sessionId} = await this.send('Target.attachToTarget', {targetId});
158
- const session = new CDPSession(this, targetId, sessionId);
159
- this._sessions.set(sessionId, session);
160
- return session;
161
- }
162
- }
163
-
164
- class CDPSession extends EventEmitter {
165
- /**
166
- * @param {!Connection} connection
167
- * @param {string} targetId
168
- * @param {string} sessionId
169
- */
170
- constructor(connection, targetId, sessionId) {
171
- super();
172
- this._lastId = 0;
173
- /** @type {!Map<number, {resolve: function, reject: function, error: !Error, method: string}>}*/
174
- this._callbacks = new Map();
175
- this._connection = connection;
176
- this._targetId = targetId;
177
- this._sessionId = sessionId;
178
- }
179
-
180
- /**
181
- * @param {string} method
182
- * @param {!Object=} params
183
- * @return {!Promise<?Object>}
184
- */
185
- send(method, params = {}) {
186
- if (!this._connection)
187
- return Promise.reject(new Error(`Protocol error (${method}): Session closed. Most likely the page has been closed.`));
188
- const id = ++this._lastId;
189
- const message = JSON.stringify({id, method, params});
190
- debugSession('SEND ► ' + message);
191
- this._connection.send('Target.sendMessageToTarget', {sessionId: this._sessionId, message}).catch(e => {
192
- // The response from target might have been already dispatched.
193
- if (!this._callbacks.has(id))
194
- return;
195
- const callback = this._callbacks.get(id);
196
- this._callbacks.delete(id);
197
- callback.reject(rewriteError(callback.error, e && e.message));
198
- });
199
- return new Promise((resolve, reject) => {
200
- this._callbacks.set(id, {resolve, reject, error: new Error(), method});
201
- });
202
- }
203
-
204
- /**
205
- * @param {string} message
206
- */
207
- _onMessage(message) {
208
- debugSession('◀ RECV ' + message);
209
- const object = JSON.parse(message);
210
- if (object.id && this._callbacks.has(object.id)) {
211
- const callback = this._callbacks.get(object.id);
212
- this._callbacks.delete(object.id);
213
- if (object.error)
214
- callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): ${object.error.message} ${object.error.data}`));
215
- else
216
- callback.resolve(object.result);
217
- } else {
218
- console.assert(!object.id);
219
- this.emit(object.method, object.params);
220
- }
221
- }
222
-
223
- async detach() {
224
- await this._connection.send('Target.detachFromTarget', {sessionId: this._sessionId});
225
- }
226
-
227
- _onClosed() {
228
- for (const callback of this._callbacks.values())
229
- callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));
230
- this._callbacks.clear();
231
- this._connection = null;
232
- }
233
- }
234
- helper.tracePublicAPI(CDPSession);
235
-
236
- /**
237
- * @param {!Error} error
238
- * @param {string} message
239
- * @return {!Error}
240
- */
241
- function rewriteError(error, message) {
242
- error.message = message;
243
- return error;
244
- }
245
-
246
- module.exports = {Connection, CDPSession};