UrgentcareCLI 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +60 -25
  4. data/Notes +1 -1
  5. data/README.md +5 -5
  6. data/Rakefile +2 -0
  7. data/UrgentCare.gemspec +3 -3
  8. data/background.jpg +0 -0
  9. data/lib/UrgentCare.rb +3 -0
  10. data/lib/UrgentCare/CLI.rb +6 -2
  11. data/lib/UrgentCare/version.rb +1 -1
  12. data/lib/Urgentcare/Scraper.rb +65 -23
  13. data/node_modules/.bin/rimraf +1 -0
  14. data/node_modules/.package-lock.json +250 -0
  15. data/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  16. data/node_modules/balanced-match/LICENSE.md +21 -0
  17. data/node_modules/balanced-match/README.md +97 -0
  18. data/node_modules/balanced-match/index.js +62 -0
  19. data/node_modules/balanced-match/package.json +48 -0
  20. data/node_modules/brace-expansion/LICENSE +21 -0
  21. data/node_modules/brace-expansion/README.md +129 -0
  22. data/node_modules/brace-expansion/index.js +201 -0
  23. data/node_modules/brace-expansion/package.json +47 -0
  24. data/node_modules/concat-map/.travis.yml +4 -0
  25. data/node_modules/concat-map/LICENSE +18 -0
  26. data/node_modules/concat-map/README.markdown +62 -0
  27. data/node_modules/concat-map/example/map.js +6 -0
  28. data/node_modules/concat-map/index.js +13 -0
  29. data/node_modules/concat-map/package.json +43 -0
  30. data/node_modules/concat-map/test/map.js +39 -0
  31. data/node_modules/core-util-is/LICENSE +19 -0
  32. data/node_modules/core-util-is/README.md +3 -0
  33. data/node_modules/core-util-is/float.patch +604 -0
  34. data/node_modules/core-util-is/lib/util.js +107 -0
  35. data/node_modules/core-util-is/package.json +32 -0
  36. data/node_modules/core-util-is/test.js +68 -0
  37. data/node_modules/fs.realpath/LICENSE +43 -0
  38. data/node_modules/fs.realpath/README.md +33 -0
  39. data/node_modules/fs.realpath/index.js +66 -0
  40. data/node_modules/fs.realpath/old.js +303 -0
  41. data/node_modules/fs.realpath/package.json +26 -0
  42. data/node_modules/glob/LICENSE +21 -0
  43. data/node_modules/glob/README.md +375 -0
  44. data/node_modules/glob/changelog.md +67 -0
  45. data/node_modules/glob/common.js +234 -0
  46. data/node_modules/glob/glob.js +788 -0
  47. data/node_modules/glob/package.json +51 -0
  48. data/node_modules/glob/sync.js +484 -0
  49. data/node_modules/immediate/LICENSE.txt +20 -0
  50. data/node_modules/immediate/README.md +93 -0
  51. data/node_modules/immediate/dist/immediate.js +75 -0
  52. data/node_modules/immediate/dist/immediate.min.js +1 -0
  53. data/node_modules/immediate/lib/browser.js +69 -0
  54. data/node_modules/immediate/lib/index.js +73 -0
  55. data/node_modules/immediate/package.json +42 -0
  56. data/node_modules/inflight/LICENSE +15 -0
  57. data/node_modules/inflight/README.md +37 -0
  58. data/node_modules/inflight/inflight.js +54 -0
  59. data/node_modules/inflight/package.json +29 -0
  60. data/node_modules/inherits/LICENSE +16 -0
  61. data/node_modules/inherits/README.md +42 -0
  62. data/node_modules/inherits/inherits.js +9 -0
  63. data/node_modules/inherits/inherits_browser.js +27 -0
  64. data/node_modules/inherits/package.json +29 -0
  65. data/node_modules/isarray/.npmignore +1 -0
  66. data/node_modules/isarray/.travis.yml +4 -0
  67. data/node_modules/isarray/Makefile +6 -0
  68. data/node_modules/isarray/README.md +60 -0
  69. data/node_modules/isarray/component.json +19 -0
  70. data/node_modules/isarray/index.js +5 -0
  71. data/node_modules/isarray/package.json +45 -0
  72. data/node_modules/isarray/test.js +20 -0
  73. data/node_modules/jszip/.codeclimate.yml +16 -0
  74. data/node_modules/jszip/.editorconfig +8 -0
  75. data/node_modules/jszip/.jshintignore +1 -0
  76. data/node_modules/jszip/.jshintrc +21 -0
  77. data/node_modules/jszip/.travis.yml +17 -0
  78. data/node_modules/jszip/CHANGES.md +163 -0
  79. data/node_modules/jszip/LICENSE.markdown +651 -0
  80. data/node_modules/jszip/README.markdown +35 -0
  81. data/node_modules/jszip/dist/jszip.js +30 -0
  82. data/node_modules/jszip/dist/jszip.min.js +13 -0
  83. data/node_modules/jszip/index.d.ts +270 -0
  84. data/node_modules/jszip/lib/base64.js +106 -0
  85. data/node_modules/jszip/lib/compressedObject.js +74 -0
  86. data/node_modules/jszip/lib/compressions.js +14 -0
  87. data/node_modules/jszip/lib/crc32.js +77 -0
  88. data/node_modules/jszip/lib/defaults.js +11 -0
  89. data/node_modules/jszip/lib/external.js +19 -0
  90. data/node_modules/jszip/lib/flate.js +85 -0
  91. data/node_modules/jszip/lib/generate/ZipFileWorker.js +540 -0
  92. data/node_modules/jszip/lib/generate/index.js +57 -0
  93. data/node_modules/jszip/lib/index.js +52 -0
  94. data/node_modules/jszip/lib/license_header.js +11 -0
  95. data/node_modules/jszip/lib/load.js +81 -0
  96. data/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  97. data/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  98. data/node_modules/jszip/lib/nodejsUtils.js +57 -0
  99. data/node_modules/jszip/lib/object.js +389 -0
  100. data/node_modules/jszip/lib/readable-stream-browser.js +9 -0
  101. data/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  102. data/node_modules/jszip/lib/reader/DataReader.js +116 -0
  103. data/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  104. data/node_modules/jszip/lib/reader/StringReader.js +38 -0
  105. data/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  106. data/node_modules/jszip/lib/reader/readerFor.js +28 -0
  107. data/node_modules/jszip/lib/signature.js +7 -0
  108. data/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  109. data/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  110. data/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  111. data/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  112. data/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  113. data/node_modules/jszip/lib/stream/StreamHelper.js +212 -0
  114. data/node_modules/jszip/lib/support.js +38 -0
  115. data/node_modules/jszip/lib/utf8.js +275 -0
  116. data/node_modules/jszip/lib/utils.js +476 -0
  117. data/node_modules/jszip/lib/zipEntries.js +262 -0
  118. data/node_modules/jszip/lib/zipEntry.js +294 -0
  119. data/node_modules/jszip/lib/zipObject.js +133 -0
  120. data/node_modules/jszip/package.json +63 -0
  121. data/node_modules/jszip/vendor/FileSaver.js +247 -0
  122. data/node_modules/lie/README.md +62 -0
  123. data/node_modules/lie/dist/lie.js +350 -0
  124. data/node_modules/lie/dist/lie.min.js +1 -0
  125. data/node_modules/lie/dist/lie.polyfill.js +358 -0
  126. data/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  127. data/node_modules/lie/lib/browser.js +273 -0
  128. data/node_modules/lie/lib/index.js +298 -0
  129. data/node_modules/lie/license.md +7 -0
  130. data/node_modules/lie/lie.d.ts +244 -0
  131. data/node_modules/lie/package.json +69 -0
  132. data/node_modules/lie/polyfill.js +4 -0
  133. data/node_modules/minimatch/LICENSE +15 -0
  134. data/node_modules/minimatch/README.md +209 -0
  135. data/node_modules/minimatch/minimatch.js +923 -0
  136. data/node_modules/minimatch/package.json +30 -0
  137. data/node_modules/once/LICENSE +15 -0
  138. data/node_modules/once/README.md +79 -0
  139. data/node_modules/once/once.js +42 -0
  140. data/node_modules/once/package.json +33 -0
  141. data/node_modules/pako/CHANGELOG.md +164 -0
  142. data/node_modules/pako/LICENSE +21 -0
  143. data/node_modules/pako/README.md +191 -0
  144. data/node_modules/pako/dist/pako.js +6818 -0
  145. data/node_modules/pako/dist/pako.min.js +1 -0
  146. data/node_modules/pako/dist/pako_deflate.js +3997 -0
  147. data/node_modules/pako/dist/pako_deflate.min.js +1 -0
  148. data/node_modules/pako/dist/pako_inflate.js +3300 -0
  149. data/node_modules/pako/dist/pako_inflate.min.js +1 -0
  150. data/node_modules/pako/index.js +14 -0
  151. data/node_modules/pako/lib/deflate.js +400 -0
  152. data/node_modules/pako/lib/inflate.js +423 -0
  153. data/node_modules/pako/lib/utils/common.js +105 -0
  154. data/node_modules/pako/lib/utils/strings.js +187 -0
  155. data/node_modules/pako/lib/zlib/README +59 -0
  156. data/node_modules/pako/lib/zlib/adler32.js +51 -0
  157. data/node_modules/pako/lib/zlib/constants.js +68 -0
  158. data/node_modules/pako/lib/zlib/crc32.js +59 -0
  159. data/node_modules/pako/lib/zlib/deflate.js +1874 -0
  160. data/node_modules/pako/lib/zlib/gzheader.js +58 -0
  161. data/node_modules/pako/lib/zlib/inffast.js +345 -0
  162. data/node_modules/pako/lib/zlib/inflate.js +1556 -0
  163. data/node_modules/pako/lib/zlib/inftrees.js +343 -0
  164. data/node_modules/pako/lib/zlib/messages.js +32 -0
  165. data/node_modules/pako/lib/zlib/trees.js +1222 -0
  166. data/node_modules/pako/lib/zlib/zstream.js +47 -0
  167. data/node_modules/pako/package.json +44 -0
  168. data/node_modules/path-is-absolute/index.js +20 -0
  169. data/node_modules/path-is-absolute/license +21 -0
  170. data/node_modules/path-is-absolute/package.json +43 -0
  171. data/node_modules/path-is-absolute/readme.md +59 -0
  172. data/node_modules/process-nextick-args/index.js +45 -0
  173. data/node_modules/process-nextick-args/license.md +19 -0
  174. data/node_modules/process-nextick-args/package.json +25 -0
  175. data/node_modules/process-nextick-args/readme.md +18 -0
  176. data/node_modules/readable-stream/.travis.yml +34 -0
  177. data/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  178. data/node_modules/readable-stream/GOVERNANCE.md +136 -0
  179. data/node_modules/readable-stream/LICENSE +47 -0
  180. data/node_modules/readable-stream/README.md +58 -0
  181. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  182. data/node_modules/readable-stream/duplex-browser.js +1 -0
  183. data/node_modules/readable-stream/duplex.js +1 -0
  184. data/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  185. data/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  186. data/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  187. data/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  188. data/node_modules/readable-stream/lib/_stream_writable.js +687 -0
  189. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
  190. data/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  191. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  192. data/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  193. data/node_modules/readable-stream/package.json +52 -0
  194. data/node_modules/readable-stream/passthrough.js +1 -0
  195. data/node_modules/readable-stream/readable-browser.js +7 -0
  196. data/node_modules/readable-stream/readable.js +19 -0
  197. data/node_modules/readable-stream/transform.js +1 -0
  198. data/node_modules/readable-stream/writable-browser.js +1 -0
  199. data/node_modules/readable-stream/writable.js +8 -0
  200. data/node_modules/rimraf/LICENSE +15 -0
  201. data/node_modules/rimraf/README.md +101 -0
  202. data/node_modules/rimraf/bin.js +50 -0
  203. data/node_modules/rimraf/package.json +29 -0
  204. data/node_modules/rimraf/rimraf.js +372 -0
  205. data/node_modules/safe-buffer/LICENSE +21 -0
  206. data/node_modules/safe-buffer/README.md +584 -0
  207. data/node_modules/safe-buffer/index.d.ts +187 -0
  208. data/node_modules/safe-buffer/index.js +62 -0
  209. data/node_modules/safe-buffer/package.json +37 -0
  210. data/node_modules/selenium-webdriver/CHANGES.md +1114 -0
  211. data/node_modules/selenium-webdriver/LICENSE +202 -0
  212. data/node_modules/selenium-webdriver/NOTICE +2 -0
  213. data/node_modules/selenium-webdriver/README.md +229 -0
  214. data/node_modules/selenium-webdriver/chrome.js +295 -0
  215. data/node_modules/selenium-webdriver/chromium.js +829 -0
  216. data/node_modules/selenium-webdriver/devtools/CDPConnection.js +35 -0
  217. data/node_modules/selenium-webdriver/edge.js +224 -0
  218. data/node_modules/selenium-webdriver/example/chrome_android.js +45 -0
  219. data/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js +46 -0
  220. data/node_modules/selenium-webdriver/example/firefox_channels.js +84 -0
  221. data/node_modules/selenium-webdriver/example/google_search.js +50 -0
  222. data/node_modules/selenium-webdriver/example/google_search_test.js +70 -0
  223. data/node_modules/selenium-webdriver/example/headless.js +63 -0
  224. data/node_modules/selenium-webdriver/example/logging.js +64 -0
  225. data/node_modules/selenium-webdriver/firefox.js +789 -0
  226. data/node_modules/selenium-webdriver/http/index.js +324 -0
  227. data/node_modules/selenium-webdriver/http/util.js +172 -0
  228. data/node_modules/selenium-webdriver/ie.js +503 -0
  229. data/node_modules/selenium-webdriver/index.js +825 -0
  230. data/node_modules/selenium-webdriver/io/exec.js +162 -0
  231. data/node_modules/selenium-webdriver/io/index.js +348 -0
  232. data/node_modules/selenium-webdriver/io/zip.js +223 -0
  233. data/node_modules/selenium-webdriver/lib/atoms/find-elements.js +123 -0
  234. data/node_modules/selenium-webdriver/lib/atoms/get-attribute.js +101 -0
  235. data/node_modules/selenium-webdriver/lib/atoms/is-displayed.js +101 -0
  236. data/node_modules/selenium-webdriver/lib/atoms/mutation-listener.js +55 -0
  237. data/node_modules/selenium-webdriver/lib/by.js +415 -0
  238. data/node_modules/selenium-webdriver/lib/capabilities.js +553 -0
  239. data/node_modules/selenium-webdriver/lib/command.js +206 -0
  240. data/node_modules/selenium-webdriver/lib/error.js +605 -0
  241. data/node_modules/selenium-webdriver/lib/http.js +704 -0
  242. data/node_modules/selenium-webdriver/lib/input.js +946 -0
  243. data/node_modules/selenium-webdriver/lib/logging.js +661 -0
  244. data/node_modules/selenium-webdriver/lib/promise.js +285 -0
  245. data/node_modules/selenium-webdriver/lib/proxy.js +212 -0
  246. data/node_modules/selenium-webdriver/lib/session.js +77 -0
  247. data/node_modules/selenium-webdriver/lib/symbols.js +37 -0
  248. data/node_modules/selenium-webdriver/lib/until.js +429 -0
  249. data/node_modules/selenium-webdriver/lib/webdriver.js +2919 -0
  250. data/node_modules/selenium-webdriver/net/index.js +107 -0
  251. data/node_modules/selenium-webdriver/net/portprober.js +75 -0
  252. data/node_modules/selenium-webdriver/opera.js +406 -0
  253. data/node_modules/selenium-webdriver/package.json +54 -0
  254. data/node_modules/selenium-webdriver/proxy.js +32 -0
  255. data/node_modules/selenium-webdriver/remote/index.js +624 -0
  256. data/node_modules/selenium-webdriver/safari.js +168 -0
  257. data/node_modules/selenium-webdriver/testing/index.js +504 -0
  258. data/node_modules/set-immediate-shim/index.js +7 -0
  259. data/node_modules/set-immediate-shim/package.json +34 -0
  260. data/node_modules/set-immediate-shim/readme.md +31 -0
  261. data/node_modules/string_decoder/.travis.yml +50 -0
  262. data/node_modules/string_decoder/LICENSE +48 -0
  263. data/node_modules/string_decoder/README.md +47 -0
  264. data/node_modules/string_decoder/lib/string_decoder.js +296 -0
  265. data/node_modules/string_decoder/package.json +31 -0
  266. data/node_modules/tmp/CHANGELOG.md +288 -0
  267. data/node_modules/tmp/LICENSE +21 -0
  268. data/node_modules/tmp/README.md +365 -0
  269. data/node_modules/tmp/lib/tmp.js +780 -0
  270. data/node_modules/tmp/node_modules/.bin/rimraf +1 -0
  271. data/node_modules/tmp/node_modules/rimraf/CHANGELOG.md +65 -0
  272. data/node_modules/tmp/node_modules/rimraf/LICENSE +15 -0
  273. data/node_modules/tmp/node_modules/rimraf/README.md +101 -0
  274. data/node_modules/tmp/node_modules/rimraf/bin.js +68 -0
  275. data/node_modules/tmp/node_modules/rimraf/package.json +32 -0
  276. data/node_modules/tmp/node_modules/rimraf/rimraf.js +360 -0
  277. data/node_modules/tmp/package.json +58 -0
  278. data/node_modules/util-deprecate/History.md +16 -0
  279. data/node_modules/util-deprecate/LICENSE +24 -0
  280. data/node_modules/util-deprecate/README.md +53 -0
  281. data/node_modules/util-deprecate/browser.js +67 -0
  282. data/node_modules/util-deprecate/node.js +6 -0
  283. data/node_modules/util-deprecate/package.json +27 -0
  284. data/node_modules/wrappy/LICENSE +15 -0
  285. data/node_modules/wrappy/README.md +36 -0
  286. data/node_modules/wrappy/package.json +29 -0
  287. data/node_modules/wrappy/wrappy.js +33 -0
  288. data/node_modules/ws/LICENSE +21 -0
  289. data/node_modules/ws/README.md +496 -0
  290. data/node_modules/ws/browser.js +8 -0
  291. data/node_modules/ws/index.js +10 -0
  292. data/node_modules/ws/lib/buffer-util.js +129 -0
  293. data/node_modules/ws/lib/constants.js +10 -0
  294. data/node_modules/ws/lib/event-target.js +184 -0
  295. data/node_modules/ws/lib/extension.js +223 -0
  296. data/node_modules/ws/lib/limiter.js +55 -0
  297. data/node_modules/ws/lib/permessage-deflate.js +517 -0
  298. data/node_modules/ws/lib/receiver.js +507 -0
  299. data/node_modules/ws/lib/sender.js +405 -0
  300. data/node_modules/ws/lib/stream.js +165 -0
  301. data/node_modules/ws/lib/validation.js +104 -0
  302. data/node_modules/ws/lib/websocket-server.js +418 -0
  303. data/node_modules/ws/lib/websocket.js +942 -0
  304. data/node_modules/ws/package.json +56 -0
  305. data/package-lock.json +458 -0
  306. data/package.json +5 -0
  307. data/selenium.log +1 -0
  308. metadata +314 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81add6e9dc74720ae8da85002dfd13eaaa9fa68a7e9f377c66f1e1704f6c0702
4
- data.tar.gz: 40eec143b8cc9275e28e0228325a7d1760ebb1b59156ac75ea23af64ab93171f
3
+ metadata.gz: 3c7d7f7c7940a50af93e3b08b06dcb6a43fa72c5dd4379260df6bcf510dd5f96
4
+ data.tar.gz: 63ad2142c211738b52ab1855b7f107da5f91af97a38df3961a31f5748589083d
5
5
  SHA512:
6
- metadata.gz: 832d3f1947b47f0c3774f8838f5fb9472e6ced50b1f2b66618d087872f1dacf080331cd4b538ec7ff5c3e5f4927a8b5484b48465c986e37458a6bc863ddb7312
7
- data.tar.gz: de6668874de46c92aed884cd5ff063a6c7dc00ee9f591bdb499fb3c360fecd3877f89f04207f0f7d95bbb59868f6f6eeb17a3fca3347ff97a62af9c2b0119190
6
+ metadata.gz: ddd3ed88816a1ba5c23916993ddaa85f961fbb924738ee7cc227d2e6252b4c6216cf4c6cc2181a64ff2976e97259bdcd0404368cc84297a183746241b2355e2f
7
+ data.tar.gz: 92e97e4f81a2534f9965035790f94571c59423602ad4bb617d7f961bc0bfe6e13492244dfd98032101bfe69865f3fc8a5aac40d236149f3259d6c61caee5b435
data/Gemfile CHANGED
@@ -4,6 +4,9 @@ source "https://rubygems.org"
4
4
  # Specify your gem's dependencies in project.gemspec
5
5
  gemspec #doesn't need list of other dependencies?
6
6
  gem "nokogiri"
7
+ gem "watir"
7
8
  gem "pry"
8
9
  gem "rake"
9
10
  gem 'project'
11
+ gem 'capybara'
12
+ gem 'webdrivers'
data/Gemfile.lock CHANGED
@@ -1,49 +1,84 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- UrgentcareCLI (0.1.0)
5
- nokogiri (~> 1.8.2)
4
+ UrgentcareCLI (0.1.1)
5
+ bundler (>= 2.2.10)
6
+ nokogiri (>= 1.11.4)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- coderay (1.1.2)
11
- diff-lcs (1.3)
12
- method_source (0.9.0)
13
- mini_portile2 (2.3.0)
14
- nokogiri (1.8.2)
15
- mini_portile2 (~> 2.3.0)
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
+ capybara (3.35.3)
14
+ addressable
15
+ mini_mime (>= 0.1.3)
16
+ nokogiri (~> 1.8)
17
+ rack (>= 1.6.0)
18
+ rack-test (>= 0.6.3)
19
+ regexp_parser (>= 1.5, < 3.0)
20
+ xpath (~> 3.2)
21
+ childprocess (3.0.0)
22
+ coderay (1.1.3)
23
+ diff-lcs (1.4.4)
24
+ method_source (1.0.0)
25
+ mini_mime (1.1.0)
26
+ mini_portile2 (2.5.3)
27
+ nokogiri (1.11.7)
28
+ mini_portile2 (~> 2.5.0)
29
+ racc (~> 1.4)
16
30
  project (1.3.0)
17
31
  rspec (>= 1.2.9)
18
- pry (0.11.3)
19
- coderay (~> 1.1.0)
20
- method_source (~> 0.9.0)
21
- rake (12.3.1)
22
- rspec (3.7.0)
23
- rspec-core (~> 3.7.0)
24
- rspec-expectations (~> 3.7.0)
25
- rspec-mocks (~> 3.7.0)
26
- rspec-core (3.7.1)
27
- rspec-support (~> 3.7.0)
28
- rspec-expectations (3.7.0)
32
+ pry (0.14.1)
33
+ coderay (~> 1.1)
34
+ method_source (~> 1.0)
35
+ public_suffix (4.0.6)
36
+ racc (1.5.2)
37
+ rack (2.2.3)
38
+ rack-test (1.1.0)
39
+ rack (>= 1.0, < 3)
40
+ rake (13.0.3)
41
+ regexp_parser (2.1.1)
42
+ rspec (3.10.0)
43
+ rspec-core (~> 3.10.0)
44
+ rspec-expectations (~> 3.10.0)
45
+ rspec-mocks (~> 3.10.0)
46
+ rspec-core (3.10.1)
47
+ rspec-support (~> 3.10.0)
48
+ rspec-expectations (3.10.1)
29
49
  diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.7.0)
31
- rspec-mocks (3.7.0)
50
+ rspec-support (~> 3.10.0)
51
+ rspec-mocks (3.10.2)
32
52
  diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.7.0)
34
- rspec-support (3.7.1)
53
+ rspec-support (~> 3.10.0)
54
+ rspec-support (3.10.2)
55
+ rubyzip (2.3.0)
56
+ selenium-webdriver (3.142.7)
57
+ childprocess (>= 0.5, < 4.0)
58
+ rubyzip (>= 1.2.2)
59
+ watir (6.19.1)
60
+ regexp_parser (>= 1.2, < 3)
61
+ selenium-webdriver (>= 3.142.7)
62
+ webdrivers (4.6.0)
63
+ nokogiri (~> 1.6)
64
+ rubyzip (>= 1.3.0)
65
+ selenium-webdriver (>= 3.0, < 4.0)
66
+ xpath (3.2.0)
67
+ nokogiri (~> 1.8)
35
68
 
36
69
  PLATFORMS
37
70
  ruby
38
71
 
39
72
  DEPENDENCIES
40
73
  UrgentcareCLI!
41
- bundler (~> 1.16)
74
+ capybara
42
75
  nokogiri
43
76
  project
44
77
  pry
45
78
  rake
46
79
  rspec (~> 3.0)
80
+ watir
81
+ webdrivers
47
82
 
48
83
  BUNDLED WITH
49
- 1.16.1
84
+ 2.2.18
data/Notes CHANGED
@@ -30,7 +30,7 @@ Require bundler, the mother of all gems. Then tell it to require
30
30
  which requires all gems. This makes sure that the files are
31
31
  loaded in the correct order.
32
32
 
33
- :: is a unary operator that allows: constants, instance methods and class
33
+ :: is a turnary operator that allows: constants, instance methods and class
34
34
  methods defined within a class or module, to be accessed from anywhere outside
35
35
  the class or module.
36
36
 
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # UrgentCare
2
2
 
3
- CLI Urgent Care returns current wait times at urgent care centers based on location.
3
+ CLI Urgent Care is a Command Line Interface application that returns current wait times at Carewell Urgent Care centers for towns in Massachusetts. Urgent care is usually needed quickly but no serious enough to require an emergency room visit. This uses the Nokogiri and Watir gems to scrape information from the website.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'project'
10
+ gem 'UrgentcareCLI', '~> 0.1.1'
11
11
  ```
12
12
 
13
13
  And then execute:
@@ -16,15 +16,15 @@ And then execute:
16
16
 
17
17
  Or install it yourself as:
18
18
 
19
- $ gem install project
19
+ $ gem install UrgentcareCLI
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ TODO: Run ./bin/Urgentcare to start the application. Select a town number from the menu to see more detailed information about that location. The detailed information gives the name, phone number, address, and earliest available appointment time at that location.
24
24
 
25
25
  ## Development
26
26
 
27
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
27
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
28
28
 
29
29
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
30
30
 
data/Rakefile CHANGED
@@ -1,5 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
+ require "watirspec/rake_tasks"
4
+ WatirSpec::RakeTasks.new
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
data/UrgentCare.gemspec CHANGED
@@ -29,11 +29,11 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ["lib"]
31
31
 
32
- spec.add_development_dependency "bundler", "~> 1.16" #locks gems to current versions
33
- spec.add_development_dependency "rake", "~> 10.0" #bundle update to update
32
+ spec.add_dependency "bundler", ">= 2.2.10" #locks gems to current versions
33
+ spec.add_development_dependency "rake", "~> 13.0" #bundle update to update
34
34
  spec.add_development_dependency "rspec", "~> 3.0"
35
35
  spec.add_development_dependency "pry", "~> 0.11.3"
36
36
  #spec.add_development_dependency "open-uri"
37
37
 
38
- spec.add_dependency "nokogiri", "~> 1.8.2"
38
+ spec.add_dependency "nokogiri", ">= 1.11.4"
39
39
  end
data/background.jpg ADDED
File without changes
data/lib/UrgentCare.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  require 'pry'
2
2
  require 'nokogiri'
3
3
  require 'open-uri'
4
+ require 'watir'
5
+ require 'capybara'
6
+
4
7
 
5
8
  require_relative "./Urgentcare/CLI"
6
9
  require_relative "./Urgentcare/version" #why was this not a relative path?
@@ -14,6 +14,7 @@ class Urgentcare::CLI
14
14
  puts " "
15
15
 
16
16
  Urgentcare::Scraper.new.get_clinics
17
+ # binding.pry
17
18
  @clinics = Urgentcare::Office.all
18
19
  @clinics.each_with_index do |office, i|
19
20
  puts "#{i + 1}. #{office.name}"
@@ -36,11 +37,14 @@ class Urgentcare::CLI
36
37
  the_office = Urgentcare::Office.all
37
38
  if @index != "Exit" ||@index != "exit"
38
39
  puts " "
40
+ puts "---"
39
41
  puts "Office Name: #{the_office[@index].name}"
40
42
  puts "Office Number: #{the_office[@index].phone_number}"
41
- puts "Office URL: https://www.www.carewellurgentcare.com#{the_office[@index].url}"
42
- puts "Next Available Time: #{the_office[@index].next_available}"
43
+ puts "Office URL: #{the_office[@index].url}"
44
+ puts "Office Next Available Appointment: #{the_office[@index].next_available}"
45
+ puts "---"
43
46
  puts " "
47
+
44
48
  else
45
49
  puts "No results found. Please try again."
46
50
  end
@@ -1,3 +1,3 @@
1
1
  module Urgentcare
2
- VERSION = "0.1.0" #increment a version with each release
2
+ VERSION = "0.1.1" #increment a version with each release
3
3
  end
@@ -1,36 +1,78 @@
1
1
  class Urgentcare::Scraper
2
2
 
3
+ def self.logInfo(message)
4
+ output = "%s %s" % [message, Time.now.strftime("%T")]
5
+ #puts output
6
+ end
7
+
8
+ def self.send_cmd(driver, cmd, params={})
9
+ bridge = driver.send(:bridge)
10
+ resource = "session/#{bridge.session_id}/chromium/send_command_and_get_result"
11
+ response = bridge.http.call(:post, resource, {'cmd':cmd, 'params': params})
12
+ raise response[:value] if response[:status]
13
+ return response[:value]
14
+ end
15
+
16
+ logInfo("location 1")
17
+ #Selenium::WebDriver.logger.level = :debug
18
+
19
+ @@client = Selenium::WebDriver::Remote::Http::Default.new
20
+ logInfo("location 2")
21
+ @@client.read_timeout = 3000 # seconds – default is 60
22
+ logInfo("location 3")
23
+
24
+ @@browser = Watir::Browser.new :chrome, headless: true, http_client: @@client
25
+ logInfo("location 4")
26
+ #decrease loading page time
27
+ send_cmd(@@browser.driver, "Network.setBlockedURLs", {'urls': ["*careuc.netmng.com*"]})
28
+ send_cmd(@@browser.driver, "Network.enable")
29
+ logInfo("location 4a")
30
+
31
+
32
+ @@clinic_page = @@browser.goto('https://www.carewellurgentcare.com/centers/')
33
+ logInfo("location 5")
34
+
3
35
  def get_page # page that lists clinics in Boston and surrounding area
4
- @doc = Nokogiri::HTML(open('https://www.carewellurgentcare.com/locations/'))
36
+ self.class.logInfo("getPage")
37
+ #@@clinic_page
38
+ doc = @@browser.div(id: 'et-main-area').wait_until(&:present?)
39
+ inner = Nokogiri::HTML(doc.inner_html)
5
40
  end
6
41
 
7
- def get_clinics
8
- url_array = []
9
- digits_array = []
10
- get_page.css('.et_pb_column_1_4').each_with_index do |location, index|
11
- if index.odd?
12
- url_array.push(location)
13
- else
14
- digits_array.push(location)
15
- end
42
+ def get_clinics #called first in CLI
43
+ self.class.logInfo("get clinics")
44
+ new_page = get_page.css('.centers-list')
45
+ new_page.each_with_index do |office_details, index|
46
+ self.class.logInfo("new page loop")
47
+ make_office(office_details, index)
48
+ url = office_details.css('a')[2]['href']
49
+ get_waittime(url)
16
50
  end
17
- merge_arrays(digits_array, url_array)
18
51
  end
52
+
53
+ def get_waittime(url) #retrieve waittime and add to new office model
54
+ self.class.logInfo("get waittime")
19
55
 
20
- def merge_arrays(digits_array, url_array)
21
- digits_array[0..16].zip(url_array[0..16]).each_with_index do |office_details, index|
22
- make_office(office_details)
23
- end
56
+ # @@clinic_page
57
+ # @@new_browser = Watir::Browser.new :chrome, headless: false, http_client: @@client
58
+ @@new_browser = @@browser
59
+ @@town_page = @@new_browser.goto(url)
60
+ js_doc = @@new_browser.div(id: 'left-area').iframe.wait_until(&:present?)
61
+ @wait_time = js_doc.button(data_id: "timeSelector").text.gsub("\n", " ")
62
+ Urgentcare::Office.all[0].next_available = @wait_time
63
+ #@@town_page.wait_until(timeout: 50) { @@town_page.iframe.exists? }
64
+ #js_doc = @@new_browser.div(class: 'container').wait_until(&:present?)
65
+ #time = Nokogiri::HTML(js_doc.inner_html)
66
+ #@@browser.div(id: 'reservationForm').wait_until(&:present?)
24
67
  end
25
68
 
26
- def make_office(office_details)
69
+ def make_office(office_details, index)
70
+ self.class.logInfo("make office")
71
+
27
72
  office = Urgentcare::Office.new
28
- office.name = office_details[0].css('strong').text.strip.tr("\n", ' ').gsub('Next Available:', ', ').gsub(' MA, ', ' ').gsub(' MA ,', ' ').gsub(' RI, ', ', ').strip.split(',')[0]
29
- office.url = office_details[1].css('a')[1]['href']
30
- office.phone_number = office_details[0].css('a[href]').text
31
- doc_d = Nokogiri::HTML(open("https://www.carewellurgentcare.com#{office.url}"))
32
- doc_i = doc_d.css('.locat').attr('src').text
33
- doc_n = Nokogiri::HTML(open(doc_i.to_s))
34
- office.next_available = doc_n.css('.panel-heading').text.strip.gsub("\r\n", ' ').split(',')[0]
73
+ office.name = office_details.css('h2').text
74
+ office.url = office_details.css('a')[2][name="href"]
75
+ office.phone_number = office_details.css('a[href]').text.gsub("Get DirectionsBook Urgent Care AppointmentBook COVID-19 TestBook Telemed Appointment", " ")
76
+ office.next_available = @wait_time
35
77
  end
36
78
  end
@@ -0,0 +1 @@
1
+ ../rimraf/bin.js
@@ -0,0 +1,250 @@
1
+ {
2
+ "name": "Pamela-cli-app",
3
+ "lockfileVersion": 2,
4
+ "requires": true,
5
+ "packages": {
6
+ "node_modules/balanced-match": {
7
+ "version": "1.0.2",
8
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
9
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
10
+ },
11
+ "node_modules/brace-expansion": {
12
+ "version": "1.1.11",
13
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
14
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
15
+ "dependencies": {
16
+ "balanced-match": "^1.0.0",
17
+ "concat-map": "0.0.1"
18
+ }
19
+ },
20
+ "node_modules/concat-map": {
21
+ "version": "0.0.1",
22
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
23
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
24
+ },
25
+ "node_modules/core-util-is": {
26
+ "version": "1.0.2",
27
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
28
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
29
+ },
30
+ "node_modules/fs.realpath": {
31
+ "version": "1.0.0",
32
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
33
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
34
+ },
35
+ "node_modules/glob": {
36
+ "version": "7.1.7",
37
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
38
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
39
+ "dependencies": {
40
+ "fs.realpath": "^1.0.0",
41
+ "inflight": "^1.0.4",
42
+ "inherits": "2",
43
+ "minimatch": "^3.0.4",
44
+ "once": "^1.3.0",
45
+ "path-is-absolute": "^1.0.0"
46
+ },
47
+ "engines": {
48
+ "node": "*"
49
+ },
50
+ "funding": {
51
+ "url": "https://github.com/sponsors/isaacs"
52
+ }
53
+ },
54
+ "node_modules/immediate": {
55
+ "version": "3.0.6",
56
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
57
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
58
+ },
59
+ "node_modules/inflight": {
60
+ "version": "1.0.6",
61
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
62
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
63
+ "dependencies": {
64
+ "once": "^1.3.0",
65
+ "wrappy": "1"
66
+ }
67
+ },
68
+ "node_modules/inherits": {
69
+ "version": "2.0.4",
70
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
71
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
72
+ },
73
+ "node_modules/isarray": {
74
+ "version": "1.0.0",
75
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
76
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
77
+ },
78
+ "node_modules/jszip": {
79
+ "version": "3.6.0",
80
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz",
81
+ "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==",
82
+ "dependencies": {
83
+ "lie": "~3.3.0",
84
+ "pako": "~1.0.2",
85
+ "readable-stream": "~2.3.6",
86
+ "set-immediate-shim": "~1.0.1"
87
+ }
88
+ },
89
+ "node_modules/lie": {
90
+ "version": "3.3.0",
91
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
92
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
93
+ "dependencies": {
94
+ "immediate": "~3.0.5"
95
+ }
96
+ },
97
+ "node_modules/minimatch": {
98
+ "version": "3.0.4",
99
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
100
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
101
+ "dependencies": {
102
+ "brace-expansion": "^1.1.7"
103
+ },
104
+ "engines": {
105
+ "node": "*"
106
+ }
107
+ },
108
+ "node_modules/once": {
109
+ "version": "1.4.0",
110
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
111
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
112
+ "dependencies": {
113
+ "wrappy": "1"
114
+ }
115
+ },
116
+ "node_modules/pako": {
117
+ "version": "1.0.11",
118
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
119
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
120
+ },
121
+ "node_modules/path-is-absolute": {
122
+ "version": "1.0.1",
123
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
124
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
125
+ "engines": {
126
+ "node": ">=0.10.0"
127
+ }
128
+ },
129
+ "node_modules/process-nextick-args": {
130
+ "version": "2.0.1",
131
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
132
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
133
+ },
134
+ "node_modules/readable-stream": {
135
+ "version": "2.3.7",
136
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
137
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
138
+ "dependencies": {
139
+ "core-util-is": "~1.0.0",
140
+ "inherits": "~2.0.3",
141
+ "isarray": "~1.0.0",
142
+ "process-nextick-args": "~2.0.0",
143
+ "safe-buffer": "~5.1.1",
144
+ "string_decoder": "~1.1.1",
145
+ "util-deprecate": "~1.0.1"
146
+ }
147
+ },
148
+ "node_modules/rimraf": {
149
+ "version": "2.7.1",
150
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
151
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
152
+ "dependencies": {
153
+ "glob": "^7.1.3"
154
+ },
155
+ "bin": {
156
+ "rimraf": "bin.js"
157
+ }
158
+ },
159
+ "node_modules/safe-buffer": {
160
+ "version": "5.1.2",
161
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
162
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
163
+ },
164
+ "node_modules/selenium-webdriver": {
165
+ "version": "4.0.0-beta.3",
166
+ "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.3.tgz",
167
+ "integrity": "sha512-R0mGHpQkSKgIWiPgcKDcckh4A6aaK0KTyWxs5ieuiI7zsXQ+Kb6neph+dNoeqq3jSBGyv3ONo2w3oohoL4D/Rg==",
168
+ "dependencies": {
169
+ "jszip": "^3.5.0",
170
+ "rimraf": "^2.7.1",
171
+ "tmp": "^0.2.1",
172
+ "ws": "^7.3.1"
173
+ },
174
+ "engines": {
175
+ "node": ">= 10.15.0"
176
+ }
177
+ },
178
+ "node_modules/set-immediate-shim": {
179
+ "version": "1.0.1",
180
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
181
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
182
+ "engines": {
183
+ "node": ">=0.10.0"
184
+ }
185
+ },
186
+ "node_modules/string_decoder": {
187
+ "version": "1.1.1",
188
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
189
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
190
+ "dependencies": {
191
+ "safe-buffer": "~5.1.0"
192
+ }
193
+ },
194
+ "node_modules/tmp": {
195
+ "version": "0.2.1",
196
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
197
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
198
+ "dependencies": {
199
+ "rimraf": "^3.0.0"
200
+ },
201
+ "engines": {
202
+ "node": ">=8.17.0"
203
+ }
204
+ },
205
+ "node_modules/tmp/node_modules/rimraf": {
206
+ "version": "3.0.2",
207
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
208
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
209
+ "dependencies": {
210
+ "glob": "^7.1.3"
211
+ },
212
+ "bin": {
213
+ "rimraf": "bin.js"
214
+ },
215
+ "funding": {
216
+ "url": "https://github.com/sponsors/isaacs"
217
+ }
218
+ },
219
+ "node_modules/util-deprecate": {
220
+ "version": "1.0.2",
221
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
222
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
223
+ },
224
+ "node_modules/wrappy": {
225
+ "version": "1.0.2",
226
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
227
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
228
+ },
229
+ "node_modules/ws": {
230
+ "version": "7.4.6",
231
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
232
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
233
+ "engines": {
234
+ "node": ">=8.3.0"
235
+ },
236
+ "peerDependencies": {
237
+ "bufferutil": "^4.0.1",
238
+ "utf-8-validate": "^5.0.2"
239
+ },
240
+ "peerDependenciesMeta": {
241
+ "bufferutil": {
242
+ "optional": true
243
+ },
244
+ "utf-8-validate": {
245
+ "optional": true
246
+ }
247
+ }
248
+ }
249
+ }
250
+ }