postdoc 0.1.2 → 0.2.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (372) hide show
  1. checksums.yaml +5 -5
  2. data/lib/pdf.js +27 -0
  3. data/lib/postdoc.rb +3 -7
  4. data/node_modules/agent-base/History.md +113 -0
  5. data/node_modules/agent-base/README.md +145 -0
  6. data/node_modules/agent-base/index.js +160 -0
  7. data/node_modules/agent-base/package.json +35 -0
  8. data/node_modules/agent-base/patch-core.js +37 -0
  9. data/node_modules/agent-base/test/ssl-cert-snakeoil.key +15 -0
  10. data/node_modules/agent-base/test/ssl-cert-snakeoil.pem +12 -0
  11. data/node_modules/agent-base/test/test.js +673 -0
  12. data/node_modules/async-limiter/LICENSE +8 -0
  13. data/node_modules/async-limiter/coverage/coverage.json +1 -0
  14. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html +73 -0
  15. data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html +246 -0
  16. data/node_modules/async-limiter/coverage/lcov-report/base.css +182 -0
  17. data/node_modules/async-limiter/coverage/lcov-report/index.html +73 -0
  18. data/node_modules/async-limiter/coverage/lcov-report/prettify.css +1 -0
  19. data/node_modules/async-limiter/coverage/lcov-report/prettify.js +1 -0
  20. data/node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  21. data/node_modules/async-limiter/coverage/lcov-report/sorter.js +156 -0
  22. data/node_modules/async-limiter/coverage/lcov.info +74 -0
  23. data/node_modules/async-limiter/index.js +67 -0
  24. data/node_modules/async-limiter/package.json +35 -0
  25. data/node_modules/async-limiter/readme.md +132 -0
  26. data/node_modules/balanced-match/LICENSE.md +21 -0
  27. data/node_modules/balanced-match/README.md +91 -0
  28. data/node_modules/balanced-match/index.js +59 -0
  29. data/node_modules/balanced-match/package.json +49 -0
  30. data/node_modules/brace-expansion/LICENSE +21 -0
  31. data/node_modules/brace-expansion/README.md +129 -0
  32. data/node_modules/brace-expansion/index.js +201 -0
  33. data/node_modules/brace-expansion/package.json +47 -0
  34. data/node_modules/buffer-from/index.js +69 -0
  35. data/node_modules/buffer-from/package.json +16 -0
  36. data/node_modules/buffer-from/readme.md +69 -0
  37. data/node_modules/buffer-from/test.js +12 -0
  38. data/node_modules/concat-map/LICENSE +18 -0
  39. data/node_modules/concat-map/README.markdown +62 -0
  40. data/node_modules/concat-map/example/map.js +6 -0
  41. data/node_modules/concat-map/index.js +13 -0
  42. data/node_modules/concat-map/package.json +43 -0
  43. data/node_modules/concat-map/test/map.js +39 -0
  44. data/node_modules/concat-stream/LICENSE +24 -0
  45. data/node_modules/concat-stream/index.js +144 -0
  46. data/node_modules/concat-stream/package.json +55 -0
  47. data/node_modules/concat-stream/readme.md +102 -0
  48. data/node_modules/core-util-is/LICENSE +19 -0
  49. data/node_modules/core-util-is/README.md +3 -0
  50. data/node_modules/core-util-is/float.patch +604 -0
  51. data/node_modules/core-util-is/lib/util.js +107 -0
  52. data/node_modules/core-util-is/package.json +32 -0
  53. data/node_modules/core-util-is/test.js +68 -0
  54. data/node_modules/debug/CHANGELOG.md +395 -0
  55. data/node_modules/debug/LICENSE +19 -0
  56. data/node_modules/debug/Makefile +58 -0
  57. data/node_modules/debug/README.md +368 -0
  58. data/node_modules/debug/karma.conf.js +70 -0
  59. data/node_modules/debug/node.js +1 -0
  60. data/node_modules/debug/package.json +43 -0
  61. data/node_modules/debug/src/browser.js +195 -0
  62. data/node_modules/debug/src/debug.js +225 -0
  63. data/node_modules/debug/src/index.js +10 -0
  64. data/node_modules/debug/src/node.js +186 -0
  65. data/node_modules/es6-promise/CHANGELOG.md +151 -0
  66. data/node_modules/es6-promise/LICENSE +19 -0
  67. data/node_modules/es6-promise/README.md +97 -0
  68. data/node_modules/es6-promise/auto.js +4 -0
  69. data/node_modules/es6-promise/dist/es6-promise.auto.js +1181 -0
  70. data/node_modules/es6-promise/dist/es6-promise.auto.map +1 -0
  71. data/node_modules/es6-promise/dist/es6-promise.auto.min.js +1 -0
  72. data/node_modules/es6-promise/dist/es6-promise.auto.min.map +1 -0
  73. data/node_modules/es6-promise/dist/es6-promise.js +1179 -0
  74. data/node_modules/es6-promise/dist/es6-promise.map +1 -0
  75. data/node_modules/es6-promise/dist/es6-promise.min.js +1 -0
  76. data/node_modules/es6-promise/dist/es6-promise.min.map +1 -0
  77. data/node_modules/es6-promise/es6-promise.d.ts +81 -0
  78. data/node_modules/es6-promise/lib/es6-promise/-internal.js +266 -0
  79. data/node_modules/es6-promise/lib/es6-promise/asap.js +119 -0
  80. data/node_modules/es6-promise/lib/es6-promise/enumerator.js +113 -0
  81. data/node_modules/es6-promise/lib/es6-promise/polyfill.js +35 -0
  82. data/node_modules/es6-promise/lib/es6-promise/promise/all.js +52 -0
  83. data/node_modules/es6-promise/lib/es6-promise/promise/race.js +84 -0
  84. data/node_modules/es6-promise/lib/es6-promise/promise/reject.js +46 -0
  85. data/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +48 -0
  86. data/node_modules/es6-promise/lib/es6-promise/promise.js +427 -0
  87. data/node_modules/es6-promise/lib/es6-promise/then.js +32 -0
  88. data/node_modules/es6-promise/lib/es6-promise/utils.js +21 -0
  89. data/node_modules/es6-promise/lib/es6-promise.auto.js +3 -0
  90. data/node_modules/es6-promise/lib/es6-promise.js +7 -0
  91. data/node_modules/es6-promise/package.json +75 -0
  92. data/node_modules/es6-promisify/README.md +89 -0
  93. data/node_modules/es6-promisify/dist/promise.js +73 -0
  94. data/node_modules/es6-promisify/dist/promisify.js +85 -0
  95. data/node_modules/es6-promisify/package.json +41 -0
  96. data/node_modules/extract-zip/CONTRIBUTING.md +1 -0
  97. data/node_modules/extract-zip/LICENSE +23 -0
  98. data/node_modules/extract-zip/cli.js +20 -0
  99. data/node_modules/extract-zip/index.js +205 -0
  100. data/node_modules/extract-zip/node_modules/debug/CHANGELOG.md +362 -0
  101. data/node_modules/extract-zip/node_modules/debug/LICENSE +19 -0
  102. data/node_modules/extract-zip/node_modules/debug/Makefile +50 -0
  103. data/node_modules/extract-zip/node_modules/debug/README.md +312 -0
  104. data/node_modules/extract-zip/node_modules/debug/component.json +19 -0
  105. data/node_modules/extract-zip/node_modules/debug/karma.conf.js +70 -0
  106. data/node_modules/extract-zip/node_modules/debug/node.js +1 -0
  107. data/node_modules/extract-zip/node_modules/debug/package.json +49 -0
  108. data/node_modules/extract-zip/node_modules/debug/src/browser.js +185 -0
  109. data/node_modules/extract-zip/node_modules/debug/src/debug.js +202 -0
  110. data/node_modules/extract-zip/node_modules/debug/src/index.js +10 -0
  111. data/node_modules/extract-zip/node_modules/debug/src/inspector-log.js +15 -0
  112. data/node_modules/extract-zip/node_modules/debug/src/node.js +248 -0
  113. data/node_modules/extract-zip/package.json +35 -0
  114. data/node_modules/extract-zip/readme.md +49 -0
  115. data/node_modules/fd-slicer/CHANGELOG.md +49 -0
  116. data/node_modules/fd-slicer/LICENSE +21 -0
  117. data/node_modules/fd-slicer/README.md +189 -0
  118. data/node_modules/fd-slicer/index.js +277 -0
  119. data/node_modules/fd-slicer/package.json +36 -0
  120. data/node_modules/fd-slicer/test/test.js +350 -0
  121. data/node_modules/fs.realpath/LICENSE +43 -0
  122. data/node_modules/fs.realpath/README.md +33 -0
  123. data/node_modules/fs.realpath/index.js +66 -0
  124. data/node_modules/fs.realpath/old.js +303 -0
  125. data/node_modules/fs.realpath/package.json +26 -0
  126. data/node_modules/glob/LICENSE +15 -0
  127. data/node_modules/glob/README.md +368 -0
  128. data/node_modules/glob/changelog.md +67 -0
  129. data/node_modules/glob/common.js +240 -0
  130. data/node_modules/glob/glob.js +790 -0
  131. data/node_modules/glob/package.json +43 -0
  132. data/node_modules/glob/sync.js +486 -0
  133. data/node_modules/https-proxy-agent/History.md +124 -0
  134. data/node_modules/https-proxy-agent/README.md +137 -0
  135. data/node_modules/https-proxy-agent/index.js +229 -0
  136. data/node_modules/https-proxy-agent/package.json +35 -0
  137. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key +15 -0
  138. data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem +12 -0
  139. data/node_modules/https-proxy-agent/test/test.js +342 -0
  140. data/node_modules/inflight/LICENSE +15 -0
  141. data/node_modules/inflight/README.md +37 -0
  142. data/node_modules/inflight/inflight.js +54 -0
  143. data/node_modules/inflight/package.json +29 -0
  144. data/node_modules/inherits/LICENSE +16 -0
  145. data/node_modules/inherits/README.md +42 -0
  146. data/node_modules/inherits/inherits.js +7 -0
  147. data/node_modules/inherits/inherits_browser.js +23 -0
  148. data/node_modules/inherits/package.json +29 -0
  149. data/node_modules/isarray/Makefile +6 -0
  150. data/node_modules/isarray/README.md +60 -0
  151. data/node_modules/isarray/component.json +19 -0
  152. data/node_modules/isarray/index.js +5 -0
  153. data/node_modules/isarray/package.json +45 -0
  154. data/node_modules/isarray/test.js +20 -0
  155. data/node_modules/mime/CHANGELOG.md +225 -0
  156. data/node_modules/mime/CONTRIBUTING.md +5 -0
  157. data/node_modules/mime/LICENSE +21 -0
  158. data/node_modules/mime/Mime.js +89 -0
  159. data/node_modules/mime/README.md +188 -0
  160. data/node_modules/mime/cli.js +10 -0
  161. data/node_modules/mime/index.js +4 -0
  162. data/node_modules/mime/lite.js +4 -0
  163. data/node_modules/mime/package.json +43 -0
  164. data/node_modules/mime/src/README_js.md +179 -0
  165. data/node_modules/mime/src/build.js +71 -0
  166. data/node_modules/mime/src/test.js +257 -0
  167. data/node_modules/mime/types/other.json +1 -0
  168. data/node_modules/mime/types/standard.json +1 -0
  169. data/node_modules/minimatch/LICENSE +15 -0
  170. data/node_modules/minimatch/README.md +209 -0
  171. data/node_modules/minimatch/minimatch.js +923 -0
  172. data/node_modules/minimatch/package.json +30 -0
  173. data/node_modules/minimist/LICENSE +18 -0
  174. data/node_modules/minimist/example/parse.js +2 -0
  175. data/node_modules/minimist/index.js +187 -0
  176. data/node_modules/minimist/package.json +40 -0
  177. data/node_modules/minimist/readme.markdown +73 -0
  178. data/node_modules/minimist/test/dash.js +24 -0
  179. data/node_modules/minimist/test/default_bool.js +20 -0
  180. data/node_modules/minimist/test/dotted.js +16 -0
  181. data/node_modules/minimist/test/long.js +31 -0
  182. data/node_modules/minimist/test/parse.js +318 -0
  183. data/node_modules/minimist/test/parse_modified.js +9 -0
  184. data/node_modules/minimist/test/short.js +67 -0
  185. data/node_modules/minimist/test/whitespace.js +8 -0
  186. data/node_modules/mkdirp/LICENSE +21 -0
  187. data/node_modules/mkdirp/bin/cmd.js +33 -0
  188. data/node_modules/mkdirp/bin/usage.txt +12 -0
  189. data/node_modules/mkdirp/examples/pow.js +6 -0
  190. data/node_modules/mkdirp/index.js +98 -0
  191. data/node_modules/mkdirp/package.json +27 -0
  192. data/node_modules/mkdirp/readme.markdown +100 -0
  193. data/node_modules/mkdirp/test/chmod.js +41 -0
  194. data/node_modules/mkdirp/test/clobber.js +38 -0
  195. data/node_modules/mkdirp/test/mkdirp.js +28 -0
  196. data/node_modules/mkdirp/test/opts_fs.js +29 -0
  197. data/node_modules/mkdirp/test/opts_fs_sync.js +27 -0
  198. data/node_modules/mkdirp/test/perm.js +32 -0
  199. data/node_modules/mkdirp/test/perm_sync.js +36 -0
  200. data/node_modules/mkdirp/test/race.js +37 -0
  201. data/node_modules/mkdirp/test/rel.js +32 -0
  202. data/node_modules/mkdirp/test/return.js +25 -0
  203. data/node_modules/mkdirp/test/return_sync.js +24 -0
  204. data/node_modules/mkdirp/test/root.js +19 -0
  205. data/node_modules/mkdirp/test/sync.js +32 -0
  206. data/node_modules/mkdirp/test/umask.js +28 -0
  207. data/node_modules/mkdirp/test/umask_sync.js +32 -0
  208. data/node_modules/ms/index.js +152 -0
  209. data/node_modules/ms/license.md +21 -0
  210. data/node_modules/ms/package.json +37 -0
  211. data/node_modules/ms/readme.md +51 -0
  212. data/node_modules/once/LICENSE +15 -0
  213. data/node_modules/once/README.md +79 -0
  214. data/node_modules/once/once.js +42 -0
  215. data/node_modules/once/package.json +33 -0
  216. data/node_modules/path-is-absolute/index.js +20 -0
  217. data/node_modules/path-is-absolute/license +21 -0
  218. data/node_modules/path-is-absolute/package.json +43 -0
  219. data/node_modules/path-is-absolute/readme.md +59 -0
  220. data/node_modules/pend/LICENSE +23 -0
  221. data/node_modules/pend/README.md +41 -0
  222. data/node_modules/pend/index.js +55 -0
  223. data/node_modules/pend/package.json +18 -0
  224. data/node_modules/pend/test.js +137 -0
  225. data/node_modules/process-nextick-args/index.js +44 -0
  226. data/node_modules/process-nextick-args/license.md +19 -0
  227. data/node_modules/process-nextick-args/package.json +25 -0
  228. data/node_modules/process-nextick-args/readme.md +18 -0
  229. data/node_modules/progress/CHANGELOG.md +115 -0
  230. data/node_modules/progress/LICENSE +22 -0
  231. data/node_modules/progress/Makefile +8 -0
  232. data/node_modules/progress/README.md +146 -0
  233. data/node_modules/progress/index.js +1 -0
  234. data/node_modules/progress/lib/node-progress.js +231 -0
  235. data/node_modules/progress/package.json +25 -0
  236. data/node_modules/proxy-from-env/README.md +131 -0
  237. data/node_modules/proxy-from-env/index.js +103 -0
  238. data/node_modules/proxy-from-env/package.json +35 -0
  239. data/node_modules/proxy-from-env/test.js +393 -0
  240. data/node_modules/puppeteer/CONTRIBUTING.md +206 -0
  241. data/node_modules/puppeteer/DeviceDescriptors.js +704 -0
  242. data/node_modules/puppeteer/LICENSE +202 -0
  243. data/node_modules/puppeteer/README.md +306 -0
  244. data/node_modules/puppeteer/index.js +28 -0
  245. data/node_modules/puppeteer/install.js +122 -0
  246. data/node_modules/puppeteer/lib/Browser.js +186 -0
  247. data/node_modules/puppeteer/lib/BrowserFetcher.js +279 -0
  248. data/node_modules/puppeteer/lib/Connection.js +246 -0
  249. data/node_modules/puppeteer/lib/Coverage.js +301 -0
  250. data/node_modules/puppeteer/lib/Dialog.js +84 -0
  251. data/node_modules/puppeteer/lib/ElementHandle.js +328 -0
  252. data/node_modules/puppeteer/lib/EmulationManager.js +89 -0
  253. data/node_modules/puppeteer/lib/ExecutionContext.js +232 -0
  254. data/node_modules/puppeteer/lib/FrameManager.js +997 -0
  255. data/node_modules/puppeteer/lib/Input.js +309 -0
  256. data/node_modules/puppeteer/lib/Launcher.js +310 -0
  257. data/node_modules/puppeteer/lib/Multimap.js +95 -0
  258. data/node_modules/puppeteer/lib/NavigatorWatcher.js +137 -0
  259. data/node_modules/puppeteer/lib/NetworkManager.js +796 -0
  260. data/node_modules/puppeteer/lib/Page.js +1098 -0
  261. data/node_modules/puppeteer/lib/Pipe.js +69 -0
  262. data/node_modules/puppeteer/lib/Puppeteer.js +60 -0
  263. data/node_modules/puppeteer/lib/Target.js +88 -0
  264. data/node_modules/puppeteer/lib/TaskQueue.js +17 -0
  265. data/node_modules/puppeteer/lib/Tracing.js +99 -0
  266. data/node_modules/puppeteer/lib/USKeyboardLayout.js +281 -0
  267. data/node_modules/puppeteer/lib/helper.js +248 -0
  268. data/node_modules/puppeteer/node6/lib/Browser.js +394 -0
  269. data/node_modules/puppeteer/node6/lib/BrowserFetcher.js +357 -0
  270. data/node_modules/puppeteer/node6/lib/Connection.js +350 -0
  271. data/node_modules/puppeteer/node6/lib/Coverage.js +561 -0
  272. data/node_modules/puppeteer/node6/lib/Dialog.js +136 -0
  273. data/node_modules/puppeteer/node6/lib/ElementHandle.js +796 -0
  274. data/node_modules/puppeteer/node6/lib/EmulationManager.js +115 -0
  275. data/node_modules/puppeteer/node6/lib/ExecutionContext.js +414 -0
  276. data/node_modules/puppeteer/node6/lib/FrameManager.js +1621 -0
  277. data/node_modules/puppeteer/node6/lib/Input.js +569 -0
  278. data/node_modules/puppeteer/node6/lib/Launcher.js +362 -0
  279. data/node_modules/puppeteer/node6/lib/Multimap.js +95 -0
  280. data/node_modules/puppeteer/node6/lib/NavigatorWatcher.js +163 -0
  281. data/node_modules/puppeteer/node6/lib/NetworkManager.js +1108 -0
  282. data/node_modules/puppeteer/node6/lib/Page.js +2242 -0
  283. data/node_modules/puppeteer/node6/lib/Pipe.js +69 -0
  284. data/node_modules/puppeteer/node6/lib/Puppeteer.js +60 -0
  285. data/node_modules/puppeteer/node6/lib/Target.js +114 -0
  286. data/node_modules/puppeteer/node6/lib/TaskQueue.js +17 -0
  287. data/node_modules/puppeteer/node6/lib/Tracing.js +177 -0
  288. data/node_modules/puppeteer/node6/lib/USKeyboardLayout.js +281 -0
  289. data/node_modules/puppeteer/node6/lib/helper.js +274 -0
  290. data/node_modules/puppeteer/package.json +61 -0
  291. data/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  292. data/node_modules/readable-stream/GOVERNANCE.md +136 -0
  293. data/node_modules/readable-stream/LICENSE +47 -0
  294. data/node_modules/readable-stream/README.md +58 -0
  295. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  296. data/node_modules/readable-stream/duplex-browser.js +1 -0
  297. data/node_modules/readable-stream/duplex.js +1 -0
  298. data/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  299. data/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  300. data/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  301. data/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  302. data/node_modules/readable-stream/lib/_stream_writable.js +687 -0
  303. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
  304. data/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  305. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  306. data/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  307. data/node_modules/readable-stream/package.json +52 -0
  308. data/node_modules/readable-stream/passthrough.js +1 -0
  309. data/node_modules/readable-stream/readable-browser.js +7 -0
  310. data/node_modules/readable-stream/readable.js +19 -0
  311. data/node_modules/readable-stream/transform.js +1 -0
  312. data/node_modules/readable-stream/writable-browser.js +1 -0
  313. data/node_modules/readable-stream/writable.js +8 -0
  314. data/node_modules/rimraf/LICENSE +15 -0
  315. data/node_modules/rimraf/README.md +101 -0
  316. data/node_modules/rimraf/bin.js +50 -0
  317. data/node_modules/rimraf/package.json +26 -0
  318. data/node_modules/rimraf/rimraf.js +364 -0
  319. data/node_modules/safe-buffer/LICENSE +21 -0
  320. data/node_modules/safe-buffer/README.md +584 -0
  321. data/node_modules/safe-buffer/index.d.ts +187 -0
  322. data/node_modules/safe-buffer/index.js +62 -0
  323. data/node_modules/safe-buffer/package.json +37 -0
  324. data/node_modules/string_decoder/LICENSE +48 -0
  325. data/node_modules/string_decoder/README.md +47 -0
  326. data/node_modules/string_decoder/lib/string_decoder.js +296 -0
  327. data/node_modules/string_decoder/package.json +31 -0
  328. data/node_modules/typedarray/LICENSE +35 -0
  329. data/node_modules/typedarray/example/tarray.js +4 -0
  330. data/node_modules/typedarray/index.js +630 -0
  331. data/node_modules/typedarray/package.json +55 -0
  332. data/node_modules/typedarray/readme.markdown +61 -0
  333. data/node_modules/typedarray/test/server/undef_globals.js +19 -0
  334. data/node_modules/typedarray/test/tarray.js +10 -0
  335. data/node_modules/ultron/LICENSE +22 -0
  336. data/node_modules/ultron/README.md +113 -0
  337. data/node_modules/ultron/index.js +136 -0
  338. data/node_modules/ultron/package.json +41 -0
  339. data/node_modules/util-deprecate/History.md +16 -0
  340. data/node_modules/util-deprecate/LICENSE +24 -0
  341. data/node_modules/util-deprecate/README.md +53 -0
  342. data/node_modules/util-deprecate/browser.js +67 -0
  343. data/node_modules/util-deprecate/node.js +6 -0
  344. data/node_modules/util-deprecate/package.json +27 -0
  345. data/node_modules/wrappy/LICENSE +15 -0
  346. data/node_modules/wrappy/README.md +36 -0
  347. data/node_modules/wrappy/package.json +29 -0
  348. data/node_modules/wrappy/wrappy.js +33 -0
  349. data/node_modules/ws/LICENSE +21 -0
  350. data/node_modules/ws/README.md +341 -0
  351. data/node_modules/ws/index.js +15 -0
  352. data/node_modules/ws/lib/BufferUtil.js +71 -0
  353. data/node_modules/ws/lib/Constants.js +10 -0
  354. data/node_modules/ws/lib/ErrorCodes.js +28 -0
  355. data/node_modules/ws/lib/EventTarget.js +151 -0
  356. data/node_modules/ws/lib/Extensions.js +203 -0
  357. data/node_modules/ws/lib/PerMessageDeflate.js +507 -0
  358. data/node_modules/ws/lib/Receiver.js +553 -0
  359. data/node_modules/ws/lib/Sender.js +412 -0
  360. data/node_modules/ws/lib/Validation.js +17 -0
  361. data/node_modules/ws/lib/WebSocket.js +717 -0
  362. data/node_modules/ws/lib/WebSocketServer.js +326 -0
  363. data/node_modules/ws/package.json +46 -0
  364. data/node_modules/yauzl/LICENSE +21 -0
  365. data/node_modules/yauzl/README.md +467 -0
  366. data/node_modules/yauzl/index.js +626 -0
  367. data/node_modules/yauzl/package.json +36 -0
  368. data/package.json +5 -0
  369. data/yarn.lock +240 -0
  370. metadata +372 -7
  371. data/app/assets/stylesheets/default.css +0 -4
  372. data/lib/postdoc/postdoc_view_helper.rb +0 -22
@@ -0,0 +1,704 @@
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
+ module.exports = [
18
+ {
19
+ 'name': 'Blackberry PlayBook',
20
+ 'userAgent': 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+',
21
+ 'viewport': {
22
+ 'width': 600,
23
+ 'height': 1024,
24
+ 'deviceScaleFactor': 1,
25
+ 'isMobile': true,
26
+ 'hasTouch': true,
27
+ 'isLandscape': false
28
+ }
29
+ },
30
+ {
31
+ 'name': 'Blackberry PlayBook landscape',
32
+ 'userAgent': 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+',
33
+ 'viewport': {
34
+ 'width': 1024,
35
+ 'height': 600,
36
+ 'deviceScaleFactor': 1,
37
+ 'isMobile': true,
38
+ 'hasTouch': true,
39
+ 'isLandscape': true
40
+ }
41
+ },
42
+ {
43
+ 'name': 'BlackBerry Z30',
44
+ 'userAgent': 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+',
45
+ 'viewport': {
46
+ 'width': 360,
47
+ 'height': 640,
48
+ 'deviceScaleFactor': 2,
49
+ 'isMobile': true,
50
+ 'hasTouch': true,
51
+ 'isLandscape': false
52
+ }
53
+ },
54
+ {
55
+ 'name': 'BlackBerry Z30 landscape',
56
+ 'userAgent': 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+',
57
+ 'viewport': {
58
+ 'width': 640,
59
+ 'height': 360,
60
+ 'deviceScaleFactor': 2,
61
+ 'isMobile': true,
62
+ 'hasTouch': true,
63
+ 'isLandscape': true
64
+ }
65
+ },
66
+ {
67
+ 'name': 'Galaxy Note 3',
68
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
69
+ 'viewport': {
70
+ 'width': 360,
71
+ 'height': 640,
72
+ 'deviceScaleFactor': 3,
73
+ 'isMobile': true,
74
+ 'hasTouch': true,
75
+ 'isLandscape': false
76
+ }
77
+ },
78
+ {
79
+ 'name': 'Galaxy Note 3 landscape',
80
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
81
+ 'viewport': {
82
+ 'width': 640,
83
+ 'height': 360,
84
+ 'deviceScaleFactor': 3,
85
+ 'isMobile': true,
86
+ 'hasTouch': true,
87
+ 'isLandscape': true
88
+ }
89
+ },
90
+ {
91
+ 'name': 'Galaxy Note II',
92
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
93
+ 'viewport': {
94
+ 'width': 360,
95
+ 'height': 640,
96
+ 'deviceScaleFactor': 2,
97
+ 'isMobile': true,
98
+ 'hasTouch': true,
99
+ 'isLandscape': false
100
+ }
101
+ },
102
+ {
103
+ 'name': 'Galaxy Note II landscape',
104
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
105
+ 'viewport': {
106
+ 'width': 640,
107
+ 'height': 360,
108
+ 'deviceScaleFactor': 2,
109
+ 'isMobile': true,
110
+ 'hasTouch': true,
111
+ 'isLandscape': true
112
+ }
113
+ },
114
+ {
115
+ 'name': 'Galaxy S III',
116
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
117
+ 'viewport': {
118
+ 'width': 360,
119
+ 'height': 640,
120
+ 'deviceScaleFactor': 2,
121
+ 'isMobile': true,
122
+ 'hasTouch': true,
123
+ 'isLandscape': false
124
+ }
125
+ },
126
+ {
127
+ 'name': 'Galaxy S III landscape',
128
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
129
+ 'viewport': {
130
+ 'width': 640,
131
+ 'height': 360,
132
+ 'deviceScaleFactor': 2,
133
+ 'isMobile': true,
134
+ 'hasTouch': true,
135
+ 'isLandscape': true
136
+ }
137
+ },
138
+ {
139
+ 'name': 'Galaxy S5',
140
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
141
+ 'viewport': {
142
+ 'width': 360,
143
+ 'height': 640,
144
+ 'deviceScaleFactor': 3,
145
+ 'isMobile': true,
146
+ 'hasTouch': true,
147
+ 'isLandscape': false
148
+ }
149
+ },
150
+ {
151
+ 'name': 'Galaxy S5 landscape',
152
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
153
+ 'viewport': {
154
+ 'width': 640,
155
+ 'height': 360,
156
+ 'deviceScaleFactor': 3,
157
+ 'isMobile': true,
158
+ 'hasTouch': true,
159
+ 'isLandscape': true
160
+ }
161
+ },
162
+ {
163
+ 'name': 'iPad',
164
+ 'userAgent': 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
165
+ 'viewport': {
166
+ 'width': 768,
167
+ 'height': 1024,
168
+ 'deviceScaleFactor': 2,
169
+ 'isMobile': true,
170
+ 'hasTouch': true,
171
+ 'isLandscape': false
172
+ }
173
+ },
174
+ {
175
+ 'name': 'iPad landscape',
176
+ 'userAgent': 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
177
+ 'viewport': {
178
+ 'width': 1024,
179
+ 'height': 768,
180
+ 'deviceScaleFactor': 2,
181
+ 'isMobile': true,
182
+ 'hasTouch': true,
183
+ 'isLandscape': true
184
+ }
185
+ },
186
+ {
187
+ 'name': 'iPad Mini',
188
+ 'userAgent': 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
189
+ 'viewport': {
190
+ 'width': 768,
191
+ 'height': 1024,
192
+ 'deviceScaleFactor': 2,
193
+ 'isMobile': true,
194
+ 'hasTouch': true,
195
+ 'isLandscape': false
196
+ }
197
+ },
198
+ {
199
+ 'name': 'iPad Mini landscape',
200
+ 'userAgent': 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
201
+ 'viewport': {
202
+ 'width': 1024,
203
+ 'height': 768,
204
+ 'deviceScaleFactor': 2,
205
+ 'isMobile': true,
206
+ 'hasTouch': true,
207
+ 'isLandscape': true
208
+ }
209
+ },
210
+ {
211
+ 'name': 'iPad Pro',
212
+ 'userAgent': 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
213
+ 'viewport': {
214
+ 'width': 1024,
215
+ 'height': 1366,
216
+ 'deviceScaleFactor': 2,
217
+ 'isMobile': true,
218
+ 'hasTouch': true,
219
+ 'isLandscape': false
220
+ }
221
+ },
222
+ {
223
+ 'name': 'iPad Pro landscape',
224
+ 'userAgent': 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
225
+ 'viewport': {
226
+ 'width': 1366,
227
+ 'height': 1024,
228
+ 'deviceScaleFactor': 2,
229
+ 'isMobile': true,
230
+ 'hasTouch': true,
231
+ 'isLandscape': true
232
+ }
233
+ },
234
+ {
235
+ 'name': 'iPhone 4',
236
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
237
+ 'viewport': {
238
+ 'width': 320,
239
+ 'height': 480,
240
+ 'deviceScaleFactor': 2,
241
+ 'isMobile': true,
242
+ 'hasTouch': true,
243
+ 'isLandscape': false
244
+ }
245
+ },
246
+ {
247
+ 'name': 'iPhone 4 landscape',
248
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
249
+ 'viewport': {
250
+ 'width': 480,
251
+ 'height': 320,
252
+ 'deviceScaleFactor': 2,
253
+ 'isMobile': true,
254
+ 'hasTouch': true,
255
+ 'isLandscape': true
256
+ }
257
+ },
258
+ {
259
+ 'name': 'iPhone 5',
260
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
261
+ 'viewport': {
262
+ 'width': 320,
263
+ 'height': 568,
264
+ 'deviceScaleFactor': 2,
265
+ 'isMobile': true,
266
+ 'hasTouch': true,
267
+ 'isLandscape': false
268
+ }
269
+ },
270
+ {
271
+ 'name': 'iPhone 5 landscape',
272
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
273
+ 'viewport': {
274
+ 'width': 568,
275
+ 'height': 320,
276
+ 'deviceScaleFactor': 2,
277
+ 'isMobile': true,
278
+ 'hasTouch': true,
279
+ 'isLandscape': true
280
+ }
281
+ },
282
+ {
283
+ 'name': 'iPhone 6',
284
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
285
+ 'viewport': {
286
+ 'width': 375,
287
+ 'height': 667,
288
+ 'deviceScaleFactor': 2,
289
+ 'isMobile': true,
290
+ 'hasTouch': true,
291
+ 'isLandscape': false
292
+ }
293
+ },
294
+ {
295
+ 'name': 'iPhone 6 landscape',
296
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
297
+ 'viewport': {
298
+ 'width': 667,
299
+ 'height': 375,
300
+ 'deviceScaleFactor': 2,
301
+ 'isMobile': true,
302
+ 'hasTouch': true,
303
+ 'isLandscape': true
304
+ }
305
+ },
306
+ {
307
+ 'name': 'iPhone 6 Plus',
308
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
309
+ 'viewport': {
310
+ 'width': 414,
311
+ 'height': 736,
312
+ 'deviceScaleFactor': 3,
313
+ 'isMobile': true,
314
+ 'hasTouch': true,
315
+ 'isLandscape': false
316
+ }
317
+ },
318
+ {
319
+ 'name': 'iPhone 6 Plus landscape',
320
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1',
321
+ 'viewport': {
322
+ 'width': 736,
323
+ 'height': 414,
324
+ 'deviceScaleFactor': 3,
325
+ 'isMobile': true,
326
+ 'hasTouch': true,
327
+ 'isLandscape': true
328
+ }
329
+ },
330
+ {
331
+ 'name': 'iPhone X',
332
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
333
+ 'viewport': {
334
+ 'width': 375,
335
+ 'height': 812,
336
+ 'deviceScaleFactor': 3,
337
+ 'isMobile': true,
338
+ 'hasTouch': true,
339
+ 'isLandscape': false
340
+ }
341
+ },
342
+ {
343
+ 'name': 'iPhone X landscape',
344
+ 'userAgent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
345
+ 'viewport': {
346
+ 'width': 812,
347
+ 'height': 375,
348
+ 'deviceScaleFactor': 3,
349
+ 'isMobile': true,
350
+ 'hasTouch': true,
351
+ 'isLandscape': true
352
+ }
353
+ },
354
+ {
355
+ 'name': 'Kindle Fire HDX',
356
+ 'userAgent': 'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true',
357
+ 'viewport': {
358
+ 'width': 800,
359
+ 'height': 1280,
360
+ 'deviceScaleFactor': 2,
361
+ 'isMobile': true,
362
+ 'hasTouch': true,
363
+ 'isLandscape': false
364
+ }
365
+ },
366
+ {
367
+ 'name': 'Kindle Fire HDX landscape',
368
+ 'userAgent': 'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true',
369
+ 'viewport': {
370
+ 'width': 1280,
371
+ 'height': 800,
372
+ 'deviceScaleFactor': 2,
373
+ 'isMobile': true,
374
+ 'hasTouch': true,
375
+ 'isLandscape': true
376
+ }
377
+ },
378
+ {
379
+ 'name': 'LG Optimus L70',
380
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/%s Mobile Safari/537.36',
381
+ 'viewport': {
382
+ 'width': 384,
383
+ 'height': 640,
384
+ 'deviceScaleFactor': 1.25,
385
+ 'isMobile': true,
386
+ 'hasTouch': true,
387
+ 'isLandscape': false
388
+ }
389
+ },
390
+ {
391
+ 'name': 'LG Optimus L70 landscape',
392
+ 'userAgent': 'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/%s Mobile Safari/537.36',
393
+ 'viewport': {
394
+ 'width': 640,
395
+ 'height': 384,
396
+ 'deviceScaleFactor': 1.25,
397
+ 'isMobile': true,
398
+ 'hasTouch': true,
399
+ 'isLandscape': true
400
+ }
401
+ },
402
+ {
403
+ 'name': 'Microsoft Lumia 550',
404
+ 'userAgent': 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263',
405
+ 'viewport': {
406
+ 'width': 640,
407
+ 'height': 360,
408
+ 'deviceScaleFactor': 2,
409
+ 'isMobile': true,
410
+ 'hasTouch': true,
411
+ 'isLandscape': false
412
+ }
413
+ },
414
+ {
415
+ 'name': 'Microsoft Lumia 950',
416
+ 'userAgent': 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263',
417
+ 'viewport': {
418
+ 'width': 360,
419
+ 'height': 640,
420
+ 'deviceScaleFactor': 4,
421
+ 'isMobile': true,
422
+ 'hasTouch': true,
423
+ 'isLandscape': false
424
+ }
425
+ },
426
+ {
427
+ 'name': 'Microsoft Lumia 950 landscape',
428
+ 'userAgent': 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263',
429
+ 'viewport': {
430
+ 'width': 640,
431
+ 'height': 360,
432
+ 'deviceScaleFactor': 4,
433
+ 'isMobile': true,
434
+ 'hasTouch': true,
435
+ 'isLandscape': true
436
+ }
437
+ },
438
+ {
439
+ 'name': 'Nexus 10',
440
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
441
+ 'viewport': {
442
+ 'width': 800,
443
+ 'height': 1280,
444
+ 'deviceScaleFactor': 2,
445
+ 'isMobile': true,
446
+ 'hasTouch': true,
447
+ 'isLandscape': false
448
+ }
449
+ },
450
+ {
451
+ 'name': 'Nexus 10 landscape',
452
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
453
+ 'viewport': {
454
+ 'width': 1280,
455
+ 'height': 800,
456
+ 'deviceScaleFactor': 2,
457
+ 'isMobile': true,
458
+ 'hasTouch': true,
459
+ 'isLandscape': true
460
+ }
461
+ },
462
+ {
463
+ 'name': 'Nexus 4',
464
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
465
+ 'viewport': {
466
+ 'width': 384,
467
+ 'height': 640,
468
+ 'deviceScaleFactor': 2,
469
+ 'isMobile': true,
470
+ 'hasTouch': true,
471
+ 'isLandscape': false
472
+ }
473
+ },
474
+ {
475
+ 'name': 'Nexus 4 landscape',
476
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
477
+ 'viewport': {
478
+ 'width': 640,
479
+ 'height': 384,
480
+ 'deviceScaleFactor': 2,
481
+ 'isMobile': true,
482
+ 'hasTouch': true,
483
+ 'isLandscape': true
484
+ }
485
+ },
486
+ {
487
+ 'name': 'Nexus 5',
488
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
489
+ 'viewport': {
490
+ 'width': 360,
491
+ 'height': 640,
492
+ 'deviceScaleFactor': 3,
493
+ 'isMobile': true,
494
+ 'hasTouch': true,
495
+ 'isLandscape': false
496
+ }
497
+ },
498
+ {
499
+ 'name': 'Nexus 5 landscape',
500
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
501
+ 'viewport': {
502
+ 'width': 640,
503
+ 'height': 360,
504
+ 'deviceScaleFactor': 3,
505
+ 'isMobile': true,
506
+ 'hasTouch': true,
507
+ 'isLandscape': true
508
+ }
509
+ },
510
+ {
511
+ 'name': 'Nexus 5X',
512
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
513
+ 'viewport': {
514
+ 'width': 412,
515
+ 'height': 732,
516
+ 'deviceScaleFactor': 2.625,
517
+ 'isMobile': true,
518
+ 'hasTouch': true,
519
+ 'isLandscape': false
520
+ }
521
+ },
522
+ {
523
+ 'name': 'Nexus 5X landscape',
524
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
525
+ 'viewport': {
526
+ 'width': 732,
527
+ 'height': 412,
528
+ 'deviceScaleFactor': 2.625,
529
+ 'isMobile': true,
530
+ 'hasTouch': true,
531
+ 'isLandscape': true
532
+ }
533
+ },
534
+ {
535
+ 'name': 'Nexus 6',
536
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
537
+ 'viewport': {
538
+ 'width': 412,
539
+ 'height': 732,
540
+ 'deviceScaleFactor': 3.5,
541
+ 'isMobile': true,
542
+ 'hasTouch': true,
543
+ 'isLandscape': false
544
+ }
545
+ },
546
+ {
547
+ 'name': 'Nexus 6 landscape',
548
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
549
+ 'viewport': {
550
+ 'width': 732,
551
+ 'height': 412,
552
+ 'deviceScaleFactor': 3.5,
553
+ 'isMobile': true,
554
+ 'hasTouch': true,
555
+ 'isLandscape': true
556
+ }
557
+ },
558
+ {
559
+ 'name': 'Nexus 6P',
560
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
561
+ 'viewport': {
562
+ 'width': 412,
563
+ 'height': 732,
564
+ 'deviceScaleFactor': 3.5,
565
+ 'isMobile': true,
566
+ 'hasTouch': true,
567
+ 'isLandscape': false
568
+ }
569
+ },
570
+ {
571
+ 'name': 'Nexus 6P landscape',
572
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
573
+ 'viewport': {
574
+ 'width': 732,
575
+ 'height': 412,
576
+ 'deviceScaleFactor': 3.5,
577
+ 'isMobile': true,
578
+ 'hasTouch': true,
579
+ 'isLandscape': true
580
+ }
581
+ },
582
+ {
583
+ 'name': 'Nexus 7',
584
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
585
+ 'viewport': {
586
+ 'width': 600,
587
+ 'height': 960,
588
+ 'deviceScaleFactor': 2,
589
+ 'isMobile': true,
590
+ 'hasTouch': true,
591
+ 'isLandscape': false
592
+ }
593
+ },
594
+ {
595
+ 'name': 'Nexus 7 landscape',
596
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
597
+ 'viewport': {
598
+ 'width': 960,
599
+ 'height': 600,
600
+ 'deviceScaleFactor': 2,
601
+ 'isMobile': true,
602
+ 'hasTouch': true,
603
+ 'isLandscape': true
604
+ }
605
+ },
606
+ {
607
+ 'name': 'Nokia Lumia 520',
608
+ 'userAgent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)',
609
+ 'viewport': {
610
+ 'width': 320,
611
+ 'height': 533,
612
+ 'deviceScaleFactor': 1.5,
613
+ 'isMobile': true,
614
+ 'hasTouch': true,
615
+ 'isLandscape': false
616
+ }
617
+ },
618
+ {
619
+ 'name': 'Nokia Lumia 520 landscape',
620
+ 'userAgent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)',
621
+ 'viewport': {
622
+ 'width': 533,
623
+ 'height': 320,
624
+ 'deviceScaleFactor': 1.5,
625
+ 'isMobile': true,
626
+ 'hasTouch': true,
627
+ 'isLandscape': true
628
+ }
629
+ },
630
+ {
631
+ 'name': 'Nokia N9',
632
+ 'userAgent': 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
633
+ 'viewport': {
634
+ 'width': 480,
635
+ 'height': 854,
636
+ 'deviceScaleFactor': 1,
637
+ 'isMobile': true,
638
+ 'hasTouch': true,
639
+ 'isLandscape': false
640
+ }
641
+ },
642
+ {
643
+ 'name': 'Nokia N9 landscape',
644
+ 'userAgent': 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
645
+ 'viewport': {
646
+ 'width': 854,
647
+ 'height': 480,
648
+ 'deviceScaleFactor': 1,
649
+ 'isMobile': true,
650
+ 'hasTouch': true,
651
+ 'isLandscape': true
652
+ }
653
+ },
654
+ {
655
+ 'name': 'Pixel 2',
656
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36',
657
+ 'viewport': {
658
+ 'width': 411,
659
+ 'height': 731,
660
+ 'deviceScaleFactor': 2.625,
661
+ 'isMobile': true,
662
+ 'hasTouch': true,
663
+ 'isLandscape': false
664
+ }
665
+ },
666
+ {
667
+ 'name': 'Pixel 2 landscape',
668
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36',
669
+ 'viewport': {
670
+ 'width': 731,
671
+ 'height': 411,
672
+ 'deviceScaleFactor': 2.625,
673
+ 'isMobile': true,
674
+ 'hasTouch': true,
675
+ 'isLandscape': true
676
+ }
677
+ },
678
+ {
679
+ 'name': 'Pixel 2 XL',
680
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36',
681
+ 'viewport': {
682
+ 'width': 411,
683
+ 'height': 823,
684
+ 'deviceScaleFactor': 3.5,
685
+ 'isMobile': true,
686
+ 'hasTouch': true,
687
+ 'isLandscape': false
688
+ }
689
+ },
690
+ {
691
+ 'name': 'Pixel 2 XL landscape',
692
+ 'userAgent': 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36',
693
+ 'viewport': {
694
+ 'width': 823,
695
+ 'height': 411,
696
+ 'deviceScaleFactor': 3.5,
697
+ 'isMobile': true,
698
+ 'hasTouch': true,
699
+ 'isLandscape': true
700
+ }
701
+ }
702
+ ];
703
+ for (const device of module.exports)
704
+ module.exports[device.name] = device;