fluid_cli 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1 -0
  3. data/dev.yml +5 -0
  4. data/exe/fluid +24 -0
  5. data/lib/fluid_cli/api.rb +135 -0
  6. data/lib/fluid_cli/assets/post_auth_page/index.html.erb +34 -0
  7. data/lib/fluid_cli/assets/post_auth_page/style.css +58 -0
  8. data/lib/fluid_cli/command.rb +55 -0
  9. data/lib/fluid_cli/commands/help.rb +21 -0
  10. data/lib/fluid_cli/commands/login.rb +30 -0
  11. data/lib/fluid_cli/commands/logout.rb +38 -0
  12. data/lib/fluid_cli/commands/switch.rb +23 -0
  13. data/lib/fluid_cli/commands/theme/common/company_helper.rb +15 -0
  14. data/lib/fluid_cli/commands/theme/common/root_helper.rb +95 -0
  15. data/lib/fluid_cli/commands/theme/dev.rb +61 -0
  16. data/lib/fluid_cli/commands/theme/help.rb +21 -0
  17. data/lib/fluid_cli/commands/theme/init.rb +46 -0
  18. data/lib/fluid_cli/commands/theme/pull.rb +68 -0
  19. data/lib/fluid_cli/commands/theme/push.rb +132 -0
  20. data/lib/fluid_cli/commands/theme.rb +23 -0
  21. data/lib/fluid_cli/commands/whoami.rb +23 -0
  22. data/lib/fluid_cli/commands.rb +19 -0
  23. data/lib/fluid_cli/company_switcher.rb +69 -0
  24. data/lib/fluid_cli/context.rb +691 -0
  25. data/lib/fluid_cli/db.rb +114 -0
  26. data/lib/fluid_cli/entry_point.rb +10 -0
  27. data/lib/fluid_cli/environment.rb +32 -0
  28. data/lib/fluid_cli/file_system_listener.rb +29 -0
  29. data/lib/fluid_cli/form.rb +42 -0
  30. data/lib/fluid_cli/git.rb +319 -0
  31. data/lib/fluid_cli/http_request.rb +54 -0
  32. data/lib/fluid_cli/identity_auth/servlet.rb +39 -0
  33. data/lib/fluid_cli/identity_auth.rb +126 -0
  34. data/lib/fluid_cli/options.rb +38 -0
  35. data/lib/fluid_cli/theme/dev_server/certificate_manager.rb +79 -0
  36. data/lib/fluid_cli/theme/dev_server/errors.rb +9 -0
  37. data/lib/fluid_cli/theme/dev_server/header_hash.rb +98 -0
  38. data/lib/fluid_cli/theme/dev_server/hooks/file_change_hook.rb +39 -0
  39. data/lib/fluid_cli/theme/dev_server/hot_reload/resources/hot-reload-no-script.html +27 -0
  40. data/lib/fluid_cli/theme/dev_server/hot_reload/resources/hot_reload.js +28 -0
  41. data/lib/fluid_cli/theme/dev_server/hot_reload/resources/sse_client.js +43 -0
  42. data/lib/fluid_cli/theme/dev_server/hot_reload/resources/theme.js +16 -0
  43. data/lib/fluid_cli/theme/dev_server/hot_reload/script_injector.rb +54 -0
  44. data/lib/fluid_cli/theme/dev_server/hot_reload.rb +75 -0
  45. data/lib/fluid_cli/theme/dev_server/local_assets.rb +92 -0
  46. data/lib/fluid_cli/theme/dev_server/proxy.rb +235 -0
  47. data/lib/fluid_cli/theme/dev_server/proxy_param_builder.rb +82 -0
  48. data/lib/fluid_cli/theme/dev_server/reload_mode.rb +34 -0
  49. data/lib/fluid_cli/theme/dev_server/sse.rb +75 -0
  50. data/lib/fluid_cli/theme/dev_server/watcher.rb +57 -0
  51. data/lib/fluid_cli/theme/dev_server/web_server.rb +140 -0
  52. data/lib/fluid_cli/theme/dev_server.rb +289 -0
  53. data/lib/fluid_cli/theme/development_theme.rb +101 -0
  54. data/lib/fluid_cli/theme/file.rb +105 -0
  55. data/lib/fluid_cli/theme/forms/select.rb +33 -0
  56. data/lib/fluid_cli/theme/mime_type.rb +34 -0
  57. data/lib/fluid_cli/theme/presenters/theme_presenter.rb +49 -0
  58. data/lib/fluid_cli/theme/presenters/themes_presenter.rb +31 -0
  59. data/lib/fluid_cli/theme/root.rb +62 -0
  60. data/lib/fluid_cli/theme/syncer/checksums.rb +66 -0
  61. data/lib/fluid_cli/theme/syncer/downloader.rb +54 -0
  62. data/lib/fluid_cli/theme/syncer/error_reporter.rb +45 -0
  63. data/lib/fluid_cli/theme/syncer/merger.rb +53 -0
  64. data/lib/fluid_cli/theme/syncer/operation.rb +58 -0
  65. data/lib/fluid_cli/theme/syncer/standard_reporter.rb +32 -0
  66. data/lib/fluid_cli/theme/syncer/unsupported_script_warning.rb +90 -0
  67. data/lib/fluid_cli/theme/syncer/uploader/forms/apply_to_all.rb +41 -0
  68. data/lib/fluid_cli/theme/syncer/uploader/forms/apply_to_all_form.rb +37 -0
  69. data/lib/fluid_cli/theme/syncer/uploader/forms/base_strategy_form.rb +64 -0
  70. data/lib/fluid_cli/theme/syncer/uploader/forms/select_delete_strategy.rb +29 -0
  71. data/lib/fluid_cli/theme/syncer/uploader/forms/select_update_strategy.rb +30 -0
  72. data/lib/fluid_cli/theme/syncer/uploader/json_delete_handler.rb +49 -0
  73. data/lib/fluid_cli/theme/syncer/uploader/json_update_handler.rb +71 -0
  74. data/lib/fluid_cli/theme/syncer/uploader.rb +105 -0
  75. data/lib/fluid_cli/theme/syncer.rb +412 -0
  76. data/lib/fluid_cli/theme/theme.rb +186 -0
  77. data/lib/fluid_cli/theme/ui/sync_progress_bar.rb +22 -0
  78. data/lib/fluid_cli/thread_pool/job.rb +35 -0
  79. data/lib/fluid_cli/thread_pool.rb +49 -0
  80. data/lib/fluid_cli/version.rb +3 -0
  81. data/lib/fluid_cli.rb +59 -0
  82. data/vendor/deps/base64/.document +5 -0
  83. data/vendor/deps/base64/.gitignore +9 -0
  84. data/vendor/deps/base64/BSDL +22 -0
  85. data/vendor/deps/base64/COPYING +56 -0
  86. data/vendor/deps/base64/Gemfile +9 -0
  87. data/vendor/deps/base64/LEGAL +60 -0
  88. data/vendor/deps/base64/README.md +48 -0
  89. data/vendor/deps/base64/Rakefile +31 -0
  90. data/vendor/deps/base64/base64.gemspec +28 -0
  91. data/vendor/deps/base64/bin/console +14 -0
  92. data/vendor/deps/base64/bin/setup +8 -0
  93. data/vendor/deps/base64/lib/base64.rb +382 -0
  94. data/vendor/deps/base64/sig/base64.rbs +358 -0
  95. data/vendor/deps/base64/test/base64/test_base64.rb +115 -0
  96. data/vendor/deps/base64/test_sig/test_base64.rb +44 -0
  97. data/vendor/deps/cli-kit/REVISION +1 -0
  98. data/vendor/deps/cli-kit/lib/cli/kit/args/definition.rb +286 -0
  99. data/vendor/deps/cli-kit/lib/cli/kit/args/evaluation.rb +215 -0
  100. data/vendor/deps/cli-kit/lib/cli/kit/args/parser/node.rb +128 -0
  101. data/vendor/deps/cli-kit/lib/cli/kit/args/parser.rb +125 -0
  102. data/vendor/deps/cli-kit/lib/cli/kit/args/tokenizer.rb +130 -0
  103. data/vendor/deps/cli-kit/lib/cli/kit/args.rb +16 -0
  104. data/vendor/deps/cli-kit/lib/cli/kit/base_command.rb +30 -0
  105. data/vendor/deps/cli-kit/lib/cli/kit/command_help.rb +268 -0
  106. data/vendor/deps/cli-kit/lib/cli/kit/command_registry.rb +150 -0
  107. data/vendor/deps/cli-kit/lib/cli/kit/config.rb +137 -0
  108. data/vendor/deps/cli-kit/lib/cli/kit/core_ext.rb +28 -0
  109. data/vendor/deps/cli-kit/lib/cli/kit/error_handler.rb +166 -0
  110. data/vendor/deps/cli-kit/lib/cli/kit/executor.rb +92 -0
  111. data/vendor/deps/cli-kit/lib/cli/kit/ini.rb +91 -0
  112. data/vendor/deps/cli-kit/lib/cli/kit/levenshtein.rb +92 -0
  113. data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +94 -0
  114. data/vendor/deps/cli-kit/lib/cli/kit/opts.rb +248 -0
  115. data/vendor/deps/cli-kit/lib/cli/kit/parse_args.rb +55 -0
  116. data/vendor/deps/cli-kit/lib/cli/kit/resolver.rb +66 -0
  117. data/vendor/deps/cli-kit/lib/cli/kit/support/test_helper.rb +260 -0
  118. data/vendor/deps/cli-kit/lib/cli/kit/support.rb +11 -0
  119. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +290 -0
  120. data/vendor/deps/cli-kit/lib/cli/kit/util.rb +118 -0
  121. data/vendor/deps/cli-kit/lib/cli/kit/version.rb +7 -0
  122. data/vendor/deps/cli-kit/lib/cli/kit.rb +139 -0
  123. data/vendor/deps/cli-ui/REVISION +1 -0
  124. data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +218 -0
  125. data/vendor/deps/cli-ui/lib/cli/ui/color.rb +101 -0
  126. data/vendor/deps/cli-ui/lib/cli/ui/formatter.rb +219 -0
  127. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +67 -0
  128. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style/box.rb +179 -0
  129. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style/bracket.rb +152 -0
  130. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +127 -0
  131. data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +286 -0
  132. data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +92 -0
  133. data/vendor/deps/cli-ui/lib/cli/ui/os.rb +63 -0
  134. data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +64 -0
  135. data/vendor/deps/cli-ui/lib/cli/ui/progress.rb +132 -0
  136. data/vendor/deps/cli-ui/lib/cli/ui/progress_reporter.rb +209 -0
  137. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +583 -0
  138. data/vendor/deps/cli-ui/lib/cli/ui/prompt/options_handler.rb +36 -0
  139. data/vendor/deps/cli-ui/lib/cli/ui/prompt.rb +381 -0
  140. data/vendor/deps/cli-ui/lib/cli/ui/spinner/async.rb +48 -0
  141. data/vendor/deps/cli-ui/lib/cli/ui/spinner/spin_group.rb +602 -0
  142. data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +79 -0
  143. data/vendor/deps/cli-ui/lib/cli/ui/stdout_router.rb +399 -0
  144. data/vendor/deps/cli-ui/lib/cli/ui/table.rb +83 -0
  145. data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +55 -0
  146. data/vendor/deps/cli-ui/lib/cli/ui/truncater.rb +106 -0
  147. data/vendor/deps/cli-ui/lib/cli/ui/version.rb +8 -0
  148. data/vendor/deps/cli-ui/lib/cli/ui/widgets/base.rb +46 -0
  149. data/vendor/deps/cli-ui/lib/cli/ui/widgets/status.rb +79 -0
  150. data/vendor/deps/cli-ui/lib/cli/ui/widgets.rb +89 -0
  151. data/vendor/deps/cli-ui/lib/cli/ui/work_queue.rb +142 -0
  152. data/vendor/deps/cli-ui/lib/cli/ui/wrap.rb +61 -0
  153. data/vendor/deps/cli-ui/lib/cli/ui.rb +359 -0
  154. data/vendor/deps/cli-ui/vendor/reentrant_mutex.rb +78 -0
  155. data/vendor/deps/debug/CONTRIBUTING.md +573 -0
  156. data/vendor/deps/debug/Gemfile +10 -0
  157. data/vendor/deps/debug/LICENSE.txt +22 -0
  158. data/vendor/deps/debug/README.md +996 -0
  159. data/vendor/deps/debug/Rakefile +57 -0
  160. data/vendor/deps/debug/TODO.md +23 -0
  161. data/vendor/deps/debug/debug.gemspec +33 -0
  162. data/vendor/deps/debug/exe/rdbg +53 -0
  163. data/vendor/deps/debug/ext/debug/Makefile +273 -0
  164. data/vendor/deps/debug/ext/debug/debug.c +228 -0
  165. data/vendor/deps/debug/ext/debug/debug_version.h +1 -0
  166. data/vendor/deps/debug/ext/debug/extconf.rb +27 -0
  167. data/vendor/deps/debug/ext/debug/iseq_collector.c +93 -0
  168. data/vendor/deps/debug/lib/debug/abbrev_command.rb +77 -0
  169. data/vendor/deps/debug/lib/debug/breakpoint.rb +556 -0
  170. data/vendor/deps/debug/lib/debug/client.rb +263 -0
  171. data/vendor/deps/debug/lib/debug/color.rb +123 -0
  172. data/vendor/deps/debug/lib/debug/config.rb +592 -0
  173. data/vendor/deps/debug/lib/debug/console.rb +224 -0
  174. data/vendor/deps/debug/lib/debug/dap_custom/traceInspector.rb +336 -0
  175. data/vendor/deps/debug/lib/debug/debug.bundle +0 -0
  176. data/vendor/deps/debug/lib/debug/frame_info.rb +190 -0
  177. data/vendor/deps/debug/lib/debug/irb_integration.rb +37 -0
  178. data/vendor/deps/debug/lib/debug/local.rb +115 -0
  179. data/vendor/deps/debug/lib/debug/open.rb +13 -0
  180. data/vendor/deps/debug/lib/debug/open_nonstop.rb +15 -0
  181. data/vendor/deps/debug/lib/debug/prelude.rb +50 -0
  182. data/vendor/deps/debug/lib/debug/server.rb +534 -0
  183. data/vendor/deps/debug/lib/debug/server_cdp.rb +1348 -0
  184. data/vendor/deps/debug/lib/debug/server_dap.rb +1108 -0
  185. data/vendor/deps/debug/lib/debug/session.rb +2667 -0
  186. data/vendor/deps/debug/lib/debug/source_repository.rb +150 -0
  187. data/vendor/deps/debug/lib/debug/start.rb +5 -0
  188. data/vendor/deps/debug/lib/debug/thread_client.rb +1457 -0
  189. data/vendor/deps/debug/lib/debug/tracer.rb +241 -0
  190. data/vendor/deps/debug/lib/debug/version.rb +5 -0
  191. data/vendor/deps/debug/lib/debug.rb +9 -0
  192. data/vendor/deps/debug/misc/README.md.erb +660 -0
  193. data/vendor/deps/listen/.github/release-drafter.yml +17 -0
  194. data/vendor/deps/listen/.github/workflows/development.yml +67 -0
  195. data/vendor/deps/listen/.github/workflows/push.yml +12 -0
  196. data/vendor/deps/listen/.gitignore +28 -0
  197. data/vendor/deps/listen/.rspec +3 -0
  198. data/vendor/deps/listen/.rubocop.yml +283 -0
  199. data/vendor/deps/listen/.yardopts +11 -0
  200. data/vendor/deps/listen/CHANGELOG.md +1 -0
  201. data/vendor/deps/listen/CONTRIBUTING.md +45 -0
  202. data/vendor/deps/listen/Gemfile +33 -0
  203. data/vendor/deps/listen/Guardfile +26 -0
  204. data/vendor/deps/listen/LICENSE.txt +22 -0
  205. data/vendor/deps/listen/README.md +490 -0
  206. data/vendor/deps/listen/Rakefile +154 -0
  207. data/vendor/deps/listen/bin/listen +11 -0
  208. data/vendor/deps/listen/lib/listen/adapter/base.rb +129 -0
  209. data/vendor/deps/listen/lib/listen/adapter/bsd.rb +104 -0
  210. data/vendor/deps/listen/lib/listen/adapter/config.rb +31 -0
  211. data/vendor/deps/listen/lib/listen/adapter/darwin.rb +77 -0
  212. data/vendor/deps/listen/lib/listen/adapter/linux.rb +108 -0
  213. data/vendor/deps/listen/lib/listen/adapter/polling.rb +40 -0
  214. data/vendor/deps/listen/lib/listen/adapter/windows.rb +96 -0
  215. data/vendor/deps/listen/lib/listen/adapter.rb +43 -0
  216. data/vendor/deps/listen/lib/listen/backend.rb +40 -0
  217. data/vendor/deps/listen/lib/listen/change.rb +69 -0
  218. data/vendor/deps/listen/lib/listen/cli.rb +65 -0
  219. data/vendor/deps/listen/lib/listen/directory.rb +93 -0
  220. data/vendor/deps/listen/lib/listen/error.rb +11 -0
  221. data/vendor/deps/listen/lib/listen/event/config.rb +39 -0
  222. data/vendor/deps/listen/lib/listen/event/loop.rb +92 -0
  223. data/vendor/deps/listen/lib/listen/event/processor.rb +128 -0
  224. data/vendor/deps/listen/lib/listen/event/queue.rb +52 -0
  225. data/vendor/deps/listen/lib/listen/file.rb +95 -0
  226. data/vendor/deps/listen/lib/listen/fsm.rb +131 -0
  227. data/vendor/deps/listen/lib/listen/listener/config.rb +41 -0
  228. data/vendor/deps/listen/lib/listen/listener.rb +136 -0
  229. data/vendor/deps/listen/lib/listen/logger.rb +65 -0
  230. data/vendor/deps/listen/lib/listen/monotonic_time.rb +27 -0
  231. data/vendor/deps/listen/lib/listen/options.rb +24 -0
  232. data/vendor/deps/listen/lib/listen/queue_optimizer.rb +129 -0
  233. data/vendor/deps/listen/lib/listen/record/entry.rb +66 -0
  234. data/vendor/deps/listen/lib/listen/record/symlink_detector.rb +47 -0
  235. data/vendor/deps/listen/lib/listen/record.rb +122 -0
  236. data/vendor/deps/listen/lib/listen/silencer/controller.rb +50 -0
  237. data/vendor/deps/listen/lib/listen/silencer.rb +106 -0
  238. data/vendor/deps/listen/lib/listen/thread.rb +54 -0
  239. data/vendor/deps/listen/lib/listen/version.rb +5 -0
  240. data/vendor/deps/listen/lib/listen.rb +47 -0
  241. data/vendor/deps/listen/listen.gemspec +40 -0
  242. data/vendor/deps/listen/spec/acceptance/listen_spec.rb +320 -0
  243. data/vendor/deps/listen/spec/lib/listen/adapter/base_spec.rb +101 -0
  244. data/vendor/deps/listen/spec/lib/listen/adapter/bsd_spec.rb +13 -0
  245. data/vendor/deps/listen/spec/lib/listen/adapter/config_spec.rb +122 -0
  246. data/vendor/deps/listen/spec/lib/listen/adapter/darwin_spec.rb +82 -0
  247. data/vendor/deps/listen/spec/lib/listen/adapter/linux_spec.rb +199 -0
  248. data/vendor/deps/listen/spec/lib/listen/adapter/polling_spec.rb +83 -0
  249. data/vendor/deps/listen/spec/lib/listen/adapter/windows_spec.rb +13 -0
  250. data/vendor/deps/listen/spec/lib/listen/adapter_spec.rb +69 -0
  251. data/vendor/deps/listen/spec/lib/listen/backend_spec.rb +82 -0
  252. data/vendor/deps/listen/spec/lib/listen/change_spec.rb +102 -0
  253. data/vendor/deps/listen/spec/lib/listen/cli_spec.rb +116 -0
  254. data/vendor/deps/listen/spec/lib/listen/directory_spec.rb +284 -0
  255. data/vendor/deps/listen/spec/lib/listen/event/config_spec.rb +33 -0
  256. data/vendor/deps/listen/spec/lib/listen/event/loop_spec.rb +118 -0
  257. data/vendor/deps/listen/spec/lib/listen/event/processor_spec.rb +250 -0
  258. data/vendor/deps/listen/spec/lib/listen/event/queue_spec.rb +118 -0
  259. data/vendor/deps/listen/spec/lib/listen/file_spec.rb +254 -0
  260. data/vendor/deps/listen/spec/lib/listen/fsm_spec.rb +147 -0
  261. data/vendor/deps/listen/spec/lib/listen/listener/config_spec.rb +29 -0
  262. data/vendor/deps/listen/spec/lib/listen/listener_spec.rb +321 -0
  263. data/vendor/deps/listen/spec/lib/listen/logger_spec.rb +212 -0
  264. data/vendor/deps/listen/spec/lib/listen/monotonic_time_spec.rb +58 -0
  265. data/vendor/deps/listen/spec/lib/listen/queue_optimizer_spec.rb +111 -0
  266. data/vendor/deps/listen/spec/lib/listen/record_spec.rb +424 -0
  267. data/vendor/deps/listen/spec/lib/listen/silencer/controller_spec.rb +97 -0
  268. data/vendor/deps/listen/spec/lib/listen/silencer_spec.rb +109 -0
  269. data/vendor/deps/listen/spec/lib/listen/thread_spec.rb +133 -0
  270. data/vendor/deps/listen/spec/lib/listen_spec.rb +25 -0
  271. data/vendor/deps/listen/spec/spec_helper.rb +49 -0
  272. data/vendor/deps/listen/spec/support/acceptance_helper.rb +260 -0
  273. data/vendor/deps/listen/spec/support/fixtures_helper.rb +32 -0
  274. data/vendor/deps/listen/spec/support/platform_helper.rb +17 -0
  275. data/vendor/deps/observer/.github/dependabot.yml +6 -0
  276. data/vendor/deps/observer/.github/workflows/test.yml +33 -0
  277. data/vendor/deps/observer/.gitignore +8 -0
  278. data/vendor/deps/observer/BSDL +22 -0
  279. data/vendor/deps/observer/COPYING +56 -0
  280. data/vendor/deps/observer/Gemfile +9 -0
  281. data/vendor/deps/observer/README.md +139 -0
  282. data/vendor/deps/observer/Rakefile +10 -0
  283. data/vendor/deps/observer/bin/console +14 -0
  284. data/vendor/deps/observer/bin/setup +8 -0
  285. data/vendor/deps/observer/lib/observer.rb +229 -0
  286. data/vendor/deps/observer/observer.gemspec +32 -0
  287. data/vendor/deps/observer/test/test_observer.rb +66 -0
  288. data/vendor/deps/webrick/.gitignore +9 -0
  289. data/vendor/deps/webrick/Gemfile +3 -0
  290. data/vendor/deps/webrick/LICENSE.txt +22 -0
  291. data/vendor/deps/webrick/README.md +61 -0
  292. data/vendor/deps/webrick/Rakefile +10 -0
  293. data/vendor/deps/webrick/lib/webrick/accesslog.rb +157 -0
  294. data/vendor/deps/webrick/lib/webrick/cgi.rb +313 -0
  295. data/vendor/deps/webrick/lib/webrick/compat.rb +36 -0
  296. data/vendor/deps/webrick/lib/webrick/config.rb +158 -0
  297. data/vendor/deps/webrick/lib/webrick/cookie.rb +172 -0
  298. data/vendor/deps/webrick/lib/webrick/htmlutils.rb +30 -0
  299. data/vendor/deps/webrick/lib/webrick/httpauth/authenticator.rb +117 -0
  300. data/vendor/deps/webrick/lib/webrick/httpauth/basicauth.rb +116 -0
  301. data/vendor/deps/webrick/lib/webrick/httpauth/digestauth.rb +395 -0
  302. data/vendor/deps/webrick/lib/webrick/httpauth/htdigest.rb +132 -0
  303. data/vendor/deps/webrick/lib/webrick/httpauth/htgroup.rb +97 -0
  304. data/vendor/deps/webrick/lib/webrick/httpauth/htpasswd.rb +158 -0
  305. data/vendor/deps/webrick/lib/webrick/httpauth/userdb.rb +53 -0
  306. data/vendor/deps/webrick/lib/webrick/httpauth.rb +96 -0
  307. data/vendor/deps/webrick/lib/webrick/httpproxy.rb +354 -0
  308. data/vendor/deps/webrick/lib/webrick/httprequest.rb +636 -0
  309. data/vendor/deps/webrick/lib/webrick/httpresponse.rb +564 -0
  310. data/vendor/deps/webrick/lib/webrick/https.rb +152 -0
  311. data/vendor/deps/webrick/lib/webrick/httpserver.rb +294 -0
  312. data/vendor/deps/webrick/lib/webrick/httpservlet/abstract.rb +152 -0
  313. data/vendor/deps/webrick/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  314. data/vendor/deps/webrick/lib/webrick/httpservlet/cgihandler.rb +126 -0
  315. data/vendor/deps/webrick/lib/webrick/httpservlet/erbhandler.rb +88 -0
  316. data/vendor/deps/webrick/lib/webrick/httpservlet/filehandler.rb +552 -0
  317. data/vendor/deps/webrick/lib/webrick/httpservlet/prochandler.rb +47 -0
  318. data/vendor/deps/webrick/lib/webrick/httpservlet.rb +23 -0
  319. data/vendor/deps/webrick/lib/webrick/httpstatus.rb +194 -0
  320. data/vendor/deps/webrick/lib/webrick/httputils.rb +512 -0
  321. data/vendor/deps/webrick/lib/webrick/httpversion.rb +76 -0
  322. data/vendor/deps/webrick/lib/webrick/log.rb +156 -0
  323. data/vendor/deps/webrick/lib/webrick/server.rb +381 -0
  324. data/vendor/deps/webrick/lib/webrick/ssl.rb +215 -0
  325. data/vendor/deps/webrick/lib/webrick/utils.rb +265 -0
  326. data/vendor/deps/webrick/lib/webrick/version.rb +18 -0
  327. data/vendor/deps/webrick/lib/webrick.rb +232 -0
  328. data/vendor/deps/webrick/webrick.gemspec +74 -0
  329. metadata +412 -0
@@ -0,0 +1,92 @@
1
+ # typed: true
2
+
3
+ # Copyright (c) 2014-2016 Yuki Nishijima
4
+
5
+ # MIT License
6
+
7
+ # Permission is hereby granted, free of charge, to any person obtaining
8
+ # a copy of this software and associated documentation files (the
9
+ # "Software"), to deal in the Software without restriction, including
10
+ # without limitation the rights to use, copy, modify, merge, publish,
11
+ # distribute, sublicense, and/or sell copies of the Software, and to
12
+ # permit persons to whom the Software is furnished to do so, subject to
13
+ # the following conditions:
14
+
15
+ # The above copyright notice and this permission notice shall be
16
+ # included in all copies or substantial portions of the Software.
17
+
18
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
+
26
+ require 'cli/kit'
27
+
28
+ module CLI
29
+ module Kit
30
+ module Levenshtein
31
+
32
+
33
+ # This code is based directly on the Text gem implementation
34
+ # Copyright (c) 2006-2013 Paul Battley, Michael Neumann, Tim Fletcher.
35
+ #
36
+ # Returns a value representing the "cost" of transforming str1 into str2
37
+ #: (String str1, String str2) -> Integer
38
+ def distance(str1, str2)
39
+ n = str1.length
40
+ m = str2.length
41
+ return m if n.zero?
42
+ return n if m.zero?
43
+
44
+ d = (0..m).to_a
45
+ x = 0
46
+
47
+ # to avoid duplicating an enumerable object, create it outside of the loop
48
+ str2_codepoints = str2.codepoints
49
+
50
+ str1.each_codepoint.with_index(1) do |char1, i|
51
+ j = 0
52
+ while j < m
53
+ cost = char1 == str2_codepoints[j] ? 0 : 1
54
+ a = d[j] #: as !nil
55
+ b = d[j + 1] #: as !nil
56
+ x = min3(
57
+ b + 1,
58
+ i + 1, # deletion
59
+ a + cost, # substitution
60
+ )
61
+ d[j] = i
62
+ i = x
63
+
64
+ j += 1
65
+ end
66
+ d[m] = x
67
+ end
68
+
69
+ x
70
+ end
71
+ module_function :distance
72
+
73
+ private
74
+
75
+ # detects the minimum value out of three arguments. This method is
76
+ # faster than `[a, b, c].min` and puts less GC pressure.
77
+ # See https://github.com/yuki24/did_you_mean/pull/1 for a performance
78
+ # benchmark.
79
+ #: (Integer a, Integer b, Integer c) -> Integer
80
+ def min3(a, b, c)
81
+ if a < b && a < c
82
+ a
83
+ elsif b < c
84
+ b
85
+ else
86
+ c
87
+ end
88
+ end
89
+ module_function :min3
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,94 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+ require 'logger'
5
+ require 'fileutils'
6
+
7
+ module CLI
8
+ module Kit
9
+ class Logger
10
+ MAX_LOG_SIZE = 5 * 1024 * 1000 # 5MB
11
+ MAX_NUM_LOGS = 10
12
+
13
+ # Constructor for CLI::Kit::Logger
14
+ #
15
+ # @param debug_log_file [String] path to the file where debug logs should be stored
16
+ #: (debug_log_file: String, ?env_debug_name: String) -> void
17
+ def initialize(debug_log_file:, env_debug_name: 'DEBUG')
18
+ FileUtils.mkpath(File.dirname(debug_log_file))
19
+ @debug_logger = ::Logger.new(debug_log_file, MAX_NUM_LOGS, MAX_LOG_SIZE)
20
+ @env_debug_name = env_debug_name
21
+ end
22
+
23
+ # Functionally equivalent to Logger#info
24
+ # Also logs to the debug file, taking into account CLI::UI::StdoutRouter.current_id
25
+ #
26
+ # @param msg [String] the message to log
27
+ # @param debug [Boolean] determines if the debug logger will receive the log (default true)
28
+ #: (String msg, ?debug: bool) -> void
29
+ def info(msg, debug: true)
30
+ $stdout.puts CLI::UI.fmt(msg)
31
+ @debug_logger.info(format_debug(msg)) if debug
32
+ end
33
+
34
+ # Functionally equivalent to Logger#warn
35
+ # Also logs to the debug file, taking into account CLI::UI::StdoutRouter.current_id
36
+ #
37
+ # @param msg [String] the message to log
38
+ # @param debug [Boolean] determines if the debug logger will receive the log (default true)
39
+ #: (String msg, ?debug: bool) -> void
40
+ def warn(msg, debug: true)
41
+ $stdout.puts CLI::UI.fmt("{{yellow:#{msg}}}")
42
+ @debug_logger.warn(format_debug(msg)) if debug
43
+ end
44
+
45
+ # Functionally equivalent to Logger#error
46
+ # Also logs to the debug file, taking into account CLI::UI::StdoutRouter.current_id
47
+ #
48
+ # @param msg [String] the message to log
49
+ # @param debug [Boolean] determines if the debug logger will receive the log (default true)
50
+ #: (String msg, ?debug: bool) -> void
51
+ def error(msg, debug: true)
52
+ $stderr.puts CLI::UI.fmt("{{red:#{msg}}}")
53
+ @debug_logger.error(format_debug(msg)) if debug
54
+ end
55
+
56
+ # Functionally equivalent to Logger#fatal
57
+ # Also logs to the debug file, taking into account CLI::UI::StdoutRouter.current_id
58
+ #
59
+ # @param msg [String] the message to log
60
+ # @param debug [Boolean] determines if the debug logger will receive the log (default true)
61
+ #: (String msg, ?debug: bool) -> void
62
+ def fatal(msg, debug: true)
63
+ $stderr.puts CLI::UI.fmt("{{red:{{bold:Fatal:}} #{msg}}}")
64
+ @debug_logger.fatal(format_debug(msg)) if debug
65
+ end
66
+
67
+ # Similar to Logger#debug, however will not output to STDOUT unless DEBUG env var is set
68
+ # Logs to the debug file, taking into account CLI::UI::StdoutRouter.current_id
69
+ #
70
+ # @param msg [String] the message to log
71
+ #: (String msg) -> void
72
+ def debug(msg)
73
+ $stdout.puts CLI::UI.fmt(msg) if debug?
74
+ @debug_logger.debug(format_debug(msg))
75
+ end
76
+
77
+ private
78
+
79
+ #: (String msg) -> String
80
+ def format_debug(msg)
81
+ msg = CLI::UI.fmt(msg)
82
+ return msg unless CLI::UI::StdoutRouter.current_id
83
+
84
+ "[#{CLI::UI::StdoutRouter.current_id&.fetch(:id, nil)}] #{msg}"
85
+ end
86
+
87
+ #: -> bool
88
+ def debug?
89
+ val = ENV[@env_debug_name]
90
+ !!val && val != '0' && val != ''
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,248 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ class Opts
8
+ module Mixin
9
+ include Kernel
10
+
11
+ module MixinClassMethods
12
+ #: (Module included_module) -> void
13
+ def include(included_module)
14
+ super
15
+ return unless included_module.is_a?(MixinClassMethods)
16
+
17
+ included_module.tracked_methods.each { |m| track_method(m) }
18
+ end
19
+
20
+ # No signature - Sorbet uses method_added internally, so can't verify it
21
+ def method_added(method_name) # rubocop:disable Sorbet/EnforceSignatures
22
+ super
23
+ track_method(method_name)
24
+ end
25
+
26
+ #: (Symbol method_name) -> void
27
+ def track_method(method_name)
28
+ @tracked_methods ||= []
29
+ @tracked_methods << method_name unless @tracked_methods.include?(method_name)
30
+ end
31
+
32
+ #: -> Array[Symbol]
33
+ def tracked_methods
34
+ @tracked_methods || []
35
+ end
36
+ end
37
+
38
+ class << self
39
+ #: (Module klass) -> void
40
+ def included(klass)
41
+ klass.extend(MixinClassMethods)
42
+ end
43
+ end
44
+
45
+ #: (?name: Symbol, ?short: String?, ?long: String?, ?desc: String?, ?default: (String | ^-> String)?) -> String?
46
+ def option(name: infer_name, short: nil, long: nil, desc: nil, default: nil)
47
+ unless default.nil?
48
+ raise(ArgumentError, 'declare options with non-nil defaults using `option!` instead of `option`')
49
+ end
50
+
51
+ case @obj
52
+ when Args::Definition
53
+ @obj.add_option(
54
+ name, short: short, long: long, desc: desc, default: default
55
+ )
56
+ '(result unavailable)'
57
+ when Args::Evaluation
58
+ @obj.opt.send(name)
59
+ end
60
+ end
61
+
62
+ #: (?name: Symbol, ?short: String?, ?long: String?, ?desc: String?, ?default: (String | ^-> String)?) -> String
63
+ def option!(name: infer_name, short: nil, long: nil, desc: nil, default: nil)
64
+ case @obj
65
+ when Args::Definition
66
+ @obj.add_option(
67
+ name, short: short, long: long, desc: desc, default: default
68
+ )
69
+ '(result unavailable)'
70
+ when Args::Evaluation
71
+ @obj.opt.send(name)
72
+ end
73
+ end
74
+
75
+ #: (?name: Symbol, ?short: String?, ?long: String?, ?desc: String?, ?default: (Array[String] | ^-> Array[String])) -> Array[String]
76
+ def multi_option(name: infer_name, short: nil, long: nil, desc: nil, default: [])
77
+ case @obj
78
+ when Args::Definition
79
+ @obj.add_option(
80
+ name, short: short, long: long, desc: desc, default: default, multi: true
81
+ )
82
+ ['(result unavailable)']
83
+ when Args::Evaluation
84
+ @obj.opt.send(name)
85
+ end
86
+ end
87
+
88
+ #: (?name: Symbol, ?short: String?, ?long: String?, ?desc: String?) -> bool
89
+ def flag(name: infer_name, short: nil, long: nil, desc: nil)
90
+ case @obj
91
+ when Args::Definition
92
+ @obj.add_flag(name, short: short, long: long, desc: desc)
93
+ false
94
+ when Args::Evaluation
95
+ @obj.flag.send(name)
96
+ end
97
+ end
98
+
99
+ #: (?name: Symbol, ?desc: String?) -> String
100
+ def position!(name: infer_name, desc: nil)
101
+ case @obj
102
+ when Args::Definition
103
+ @obj.add_position(name, desc: desc, required: true, multi: false)
104
+ '(result unavailable)'
105
+ when Args::Evaluation
106
+ @obj.position.send(name)
107
+ end
108
+ end
109
+
110
+ #: (?name: Symbol, ?desc: String?, ?default: (String | ^-> String)?, ?skip: (^-> bool | ^(String arg0) -> bool)?) -> String?
111
+ def position(name: infer_name, desc: nil, default: nil, skip: nil)
112
+ case @obj
113
+ when Args::Definition
114
+ @obj.add_position(name, desc: desc, required: false, multi: false, default: default, skip: skip)
115
+ '(result unavailable)'
116
+ when Args::Evaluation
117
+ @obj.position.send(name)
118
+ end
119
+ end
120
+
121
+ #: (?name: Symbol, ?desc: String?) -> Array[String]
122
+ def rest(name: infer_name, desc: nil)
123
+ case @obj
124
+ when Args::Definition
125
+ @obj.add_position(name, desc: desc, required: false, multi: true)
126
+ ['(result unavailable)']
127
+ when Args::Evaluation
128
+ @obj.position.send(name)
129
+ end
130
+ end
131
+
132
+ private
133
+
134
+ #: (String? label) -> Symbol?
135
+ def symbolize(label)
136
+ return if label.nil?
137
+
138
+ label.split('#').last&.to_sym
139
+ end
140
+
141
+ #: -> Symbol
142
+ def infer_name
143
+ to_skip = 1
144
+ Kernel.caller_locations.each do |loc|
145
+ next if loc.path =~ /sorbet-runtime/
146
+
147
+ if to_skip > 0
148
+ to_skip -= 1
149
+ next
150
+ end
151
+ return symbolize(loc.label) #: as !nil
152
+ end
153
+ raise(ArgumentError, 'could not infer name')
154
+ end
155
+ end
156
+ include(Mixin)
157
+
158
+ DEFAULT_OPTIONS = [:helpflag]
159
+
160
+ #: -> bool
161
+ def helpflag
162
+ flag(name: :help, short: '-h', long: '--help', desc: 'Show this help message')
163
+ end
164
+
165
+ #: -> Array[String]
166
+ def unparsed
167
+ obj = assert_result!
168
+ obj.unparsed
169
+ end
170
+
171
+ #: ?{ (Symbol arg0, String? arg1) -> void } -> untyped
172
+ def each_option(&block)
173
+ return enum_for(:each_option) unless block_given?
174
+
175
+ obj = assert_result!
176
+ obj.defn.options.each do |opt|
177
+ name = opt.name
178
+ value = obj.opt.send(name)
179
+ yield(name, value)
180
+ end
181
+ end
182
+
183
+ #: ?{ (Symbol arg0, bool arg1) -> void } -> untyped
184
+ def each_flag(&block)
185
+ return enum_for(:each_flag) unless block_given?
186
+
187
+ obj = assert_result!
188
+ obj.defn.flags.each do |flag|
189
+ name = flag.name
190
+ value = obj.flag.send(name)
191
+ yield(name, value)
192
+ end
193
+ end
194
+
195
+ #: (String name) -> (String | bool)?
196
+ def [](name)
197
+ obj = assert_result!
198
+ if obj.opt.respond_to?(name)
199
+ obj.opt.send(name)
200
+ elsif obj.flag.respond_to?(name)
201
+ obj.flag.send(name)
202
+ end
203
+ end
204
+
205
+ #: (String name) -> String?
206
+ def lookup_option(name)
207
+ obj = assert_result!
208
+ obj.opt.send(name)
209
+ rescue NoMethodError
210
+ # TODO: should we raise a KeyError?
211
+ nil
212
+ end
213
+
214
+ #: (String name) -> bool
215
+ def lookup_flag(name)
216
+ obj = assert_result!
217
+ obj.flag.send(name)
218
+ rescue NoMethodError
219
+ false
220
+ end
221
+
222
+ #: -> Args::Evaluation
223
+ def assert_result!
224
+ raise(NotImplementedError, 'not implemented') if @obj.is_a?(Args::Definition)
225
+
226
+ @obj
227
+ end
228
+
229
+ #: (Args::Definition defn) -> void
230
+ def define!(defn)
231
+ @obj = defn
232
+ klass = self.class #: as Mixin::MixinClassMethods
233
+ klass.tracked_methods.each do |m|
234
+ send(m)
235
+ end
236
+ DEFAULT_OPTIONS.each do |m|
237
+ send(m)
238
+ end
239
+ end
240
+
241
+ #: (Args::Evaluation ev) -> void
242
+ def evaluate!(ev)
243
+ @obj = ev
244
+ ev.resolve_positions!
245
+ end
246
+ end
247
+ end
248
+ end
@@ -0,0 +1,55 @@
1
+ # typed: true
2
+
3
+ module CLI
4
+ module Kit
5
+ module ParseArgs
6
+ # because sorbet type-checking takes the pedantic route that module doesn't include Kernel, therefore
7
+ # this is necessary (even tho it's ~probably fine~)
8
+ include Kernel
9
+
10
+ # untyped is used in two places. The interpretation of dynamic values from the provided `opts`
11
+ # and the resulting args[:opts] is pretty broad. There seems to be minimal value in expressing a
12
+ # tighter subset of untyped.
13
+
14
+ #: ((Array | String) args, Hash[Symbol, Array[untyped]] opts_defn) -> Hash[Symbol, untyped]
15
+ def parse_args(args, opts_defn)
16
+ start_opts, parser_config = opts_defn.reduce([{}, []]) do |(ini, pcfg), (n, cfg)|
17
+ (vals, desc, short, klass) = cfg
18
+ (init_val, def_val) = Array(vals)
19
+
20
+ [
21
+ init_val.nil? ? ini : ini.merge(n => init_val),
22
+ pcfg + [[n, short, desc, def_val, klass]],
23
+ ]
24
+ end
25
+
26
+ require('optparse')
27
+
28
+ acc_opts = {}
29
+ prsr = OptionParser.new do |opt_p|
30
+ parser_config.each do |(n, short, desc, def_val, klass)|
31
+ (_, mark) = short.split(' ')
32
+ long = "--#{n.to_s.tr("_", "-")}" + (mark.nil? ? '' : " #{mark}")
33
+ opt_args = klass.nil? ? [short, long, desc] : [short, long, klass, desc]
34
+
35
+ unsafe_opt_p = opt_p #: as untyped
36
+ unsafe_opt_p.on(*opt_args) do |v|
37
+ acc_opts[n] = if acc_opts.key?(n)
38
+ Array(acc_opts[n]) + Array(v || def_val)
39
+ else
40
+ v || def_val
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ arg_v = (args.is_a?(Array) ? args : args.strip.split(/\s+/)).map(&:strip)
47
+ sub = prsr.parse(arg_v)
48
+
49
+ { opts: start_opts.merge(acc_opts) }.tap do |a|
50
+ a[:sub] = sub if sub
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,66 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ class Resolver
8
+ #: (tool_name: String, command_registry: CLI::Kit::CommandRegistry) -> void
9
+ def initialize(tool_name:, command_registry:)
10
+ @tool_name = tool_name
11
+ @command_registry = command_registry
12
+ end
13
+
14
+ #: (Array[String] args) -> [singleton(CLI::Kit::BaseCommand), String, Array[String]]
15
+ def call(args)
16
+ args = args.dup
17
+ command_name = args.shift
18
+
19
+ command, resolved_name = @command_registry.lookup_command(command_name)
20
+
21
+ if command.nil?
22
+ command_not_found(command_name)
23
+ raise CLI::Kit::AbortSilent # Already output message
24
+ end
25
+
26
+ [command, resolved_name, args]
27
+ end
28
+
29
+ private
30
+
31
+ #: (String? name) -> void
32
+ def command_not_found(name)
33
+ CLI::UI::Frame.open('Command not found', color: :red, timing: false) do
34
+ $stderr.puts(CLI::UI.fmt("{{command:#{@tool_name} #{name}}} was not found"))
35
+ end
36
+
37
+ cmds = commands_and_aliases
38
+ if cmds.all? { |cmd| cmd.is_a?(String) }
39
+ possible_matches = cmds.min_by(2) do |cmd|
40
+ CLI::Kit::Levenshtein.distance(cmd, name)
41
+ end
42
+
43
+ # We don't want to match against any possible command
44
+ # so reject anything that is too far away
45
+ possible_matches.reject! do |possible_match|
46
+ CLI::Kit::Levenshtein.distance(possible_match, name) > 3
47
+ end
48
+
49
+ # If we have any matches left, tell the user
50
+ if possible_matches.any?
51
+ CLI::UI::Frame.open('{{bold:Did you mean?}}', timing: false, color: :blue) do
52
+ possible_matches.each do |possible_match|
53
+ $stderr.puts CLI::UI.fmt("{{command:#{@tool_name} #{possible_match}}}")
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ #: -> Array[String]
61
+ def commands_and_aliases
62
+ @command_registry.command_names + @command_registry.aliases.keys
63
+ end
64
+ end
65
+ end
66
+ end