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,125 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module Args
8
+ class Parser
9
+ autoload :Node, 'cli/kit/args/parser/node'
10
+
11
+ Error = Class.new(Args::Error)
12
+
13
+ class InvalidOptionError < Error
14
+ #: (String option) -> void
15
+ def initialize(option)
16
+ super("invalid option -- '#{option}'")
17
+ end
18
+ end
19
+
20
+ class OptionRequiresAnArgumentError < Error
21
+ #: (String option) -> void
22
+ def initialize(option)
23
+ super("option requires an argument -- '#{option}'")
24
+ end
25
+ end
26
+
27
+ #: (Array[Tokenizer::Token] tokens) -> Array[Node]
28
+ def parse(tokens)
29
+ nodes = [] #: Array[Node]
30
+ args = tokens #: Array[Tokenizer::Token?]
31
+ args << nil # to make each_cons pass (args.last, nil) on the final round.
32
+ state = :init
33
+ # TODO: test that "--height -- 3" is parsed correctly.
34
+ args.each_cons(2) do |(arg, next_arg)|
35
+ case state
36
+ when :skip
37
+ state = :init
38
+ when :init
39
+ state, val = parse_token(
40
+ arg, #: as !nil
41
+ next_arg,
42
+ )
43
+ nodes << val
44
+ when :unparsed
45
+ unless arg.is_a?(Tokenizer::Token::UnparsedArgument)
46
+ raise(Error, 'bug: non-unparsed argument after unparsed argument')
47
+ end
48
+
49
+ unparsed = nodes.last
50
+ unless unparsed.is_a?(Node::Unparsed)
51
+ # :nocov: not actually possible, in theory
52
+ raise(Error, 'bug: parser failed to recognize first unparsed argument')
53
+ # :nocov:
54
+ end
55
+
56
+ unparsed.value << arg.value
57
+ end
58
+ end
59
+ nodes
60
+ end
61
+
62
+ #: (Definition definition) -> void
63
+ def initialize(definition)
64
+ @defn = definition
65
+ end
66
+
67
+ private
68
+
69
+ #: (Tokenizer::Token token, Tokenizer::Token? next_token) -> [Symbol, Parser::Node]
70
+ def parse_token(token, next_token)
71
+ case token
72
+ when Tokenizer::Token::LongOptionName
73
+ case @defn.lookup_long(token.value)
74
+ when Definition::Option
75
+ [:skip, parse_option(token, next_token)]
76
+ when Definition::Flag
77
+ [:init, Node::LongFlag.new(token.value)]
78
+ else
79
+ raise(InvalidOptionError, token.value)
80
+ end
81
+ when Tokenizer::Token::ShortOptionName
82
+ case @defn.lookup_short(token.value)
83
+ when Definition::Option
84
+ [:skip, parse_option(token, next_token)]
85
+ when Definition::Flag
86
+ [:init, Node::ShortFlag.new(token.value)]
87
+ else
88
+ raise(InvalidOptionError, token.value)
89
+ end
90
+ when Tokenizer::Token::OptionValue
91
+ raise(Error, "bug: unexpected option value in argument parse sequence: #{token.value}")
92
+ when Tokenizer::Token::PositionalArgument
93
+ [:init, Node::Argument.new(token.value)]
94
+ when Tokenizer::Token::OptionValueOrPositionalArgument
95
+ [:init, Node::Argument.new(token.value)]
96
+ when Tokenizer::Token::UnparsedArgument
97
+ [:unparsed, Node::Unparsed.new([token.value])]
98
+ else
99
+ raise(Error, "bug: unexpected token type: #{token.class}")
100
+ end
101
+ end
102
+
103
+ #: (Tokenizer::Token::OptionName arg, Tokenizer::Token? next_arg) -> Node
104
+ def parse_option(arg, next_arg)
105
+ case next_arg
106
+ when nil, Tokenizer::Token::LongOptionName,
107
+ Tokenizer::Token::ShortOptionName, Tokenizer::Token::PositionalArgument
108
+ raise(OptionRequiresAnArgumentError, arg.value)
109
+ when Tokenizer::Token::OptionValue, Tokenizer::Token::OptionValueOrPositionalArgument
110
+ case arg
111
+ when Tokenizer::Token::LongOptionName
112
+ Node::LongOption.new(arg.value, next_arg.value)
113
+ when Tokenizer::Token::ShortOptionName
114
+ Node::ShortOption.new(arg.value, next_arg.value)
115
+ else
116
+ raise(Error, "bug: unexpected token type: #{arg.class}")
117
+ end
118
+ else
119
+ raise(Error, "bug: unexpected argument type: #{next_arg.class}")
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,130 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module Args
8
+ module Tokenizer
9
+ Error = Class.new(Args::Error)
10
+
11
+ class InvalidShortOption < Error
12
+ #: (String short_option) -> void
13
+ def initialize(short_option)
14
+ super("invalid short option: '-#{short_option}'")
15
+ end
16
+ end
17
+
18
+ class InvalidCharInShortOption < Error
19
+ #: (String short_option, String char) -> void
20
+ def initialize(short_option, char)
21
+ super("invalid character '#{char}' in short option: '-#{short_option}'")
22
+ end
23
+ end
24
+
25
+ class Token
26
+ #: String
27
+ attr_reader :value
28
+
29
+ #: (String value) -> void
30
+ def initialize(value)
31
+ @value = value
32
+ end
33
+
34
+ #: -> String
35
+ def inspect
36
+ "#<#{self.class.name} #{@value}>"
37
+ end
38
+
39
+ #: (untyped other) -> bool
40
+ def ==(other)
41
+ self.class == other.class && @value == other.value
42
+ end
43
+
44
+ OptionName = Class.new(Token)
45
+ LongOptionName = Class.new(OptionName)
46
+ ShortOptionName = Class.new(OptionName)
47
+
48
+ OptionValue = Class.new(Token)
49
+ PositionalArgument = Class.new(Token)
50
+ OptionValueOrPositionalArgument = Class.new(Token)
51
+ UnparsedArgument = Class.new(Token)
52
+ end
53
+
54
+ class << self
55
+ #: (Array[String] raw_args) -> Array[Token]
56
+ def tokenize(raw_args)
57
+ args = []
58
+
59
+ mode = :init
60
+
61
+ raw_args.each do |arg|
62
+ case mode
63
+ when :unparsed
64
+ args << Token::UnparsedArgument.new(arg)
65
+ when :init
66
+ case arg
67
+ when '--'
68
+ mode = :unparsed
69
+ when /\A--./
70
+ name, value = arg.split('=', 2)
71
+ name = name #: as !nil
72
+ args << Token::LongOptionName.new(
73
+ name[2..-1], #: as !nil
74
+ )
75
+ if value
76
+ args << Token::OptionValue.new(value)
77
+ end
78
+ when /\A-./
79
+ args.concat(tokenize_short_option(
80
+ arg[1..-1], #: as !nil
81
+ ))
82
+ else
83
+ args << if args.last.is_a?(Token::OptionName)
84
+ Token::OptionValueOrPositionalArgument.new(arg)
85
+ else
86
+ Token::PositionalArgument.new(arg)
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+ args
93
+ end
94
+
95
+ #: (String arg) -> Array[Token]
96
+ def tokenize_short_option(arg)
97
+ args = []
98
+ mode = :init
99
+ number = +''
100
+ arg.each_char do |char|
101
+ case mode
102
+ when :numeric
103
+ case char
104
+ when /[0-9]/
105
+ number << char
106
+ else
107
+ raise(InvalidShortOption, arg)
108
+ end
109
+ when :init
110
+ case char
111
+ when /[a-zA-Z]/
112
+ args << Token::ShortOptionName.new(char)
113
+ when /[0-9]/
114
+ mode = :numeric
115
+ number << char
116
+ else
117
+ raise(InvalidCharInShortOption.new(arg, char))
118
+ end
119
+ end
120
+ end
121
+ if number != ''
122
+ args << Token::OptionValue.new(number)
123
+ end
124
+ args
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,16 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module Args
8
+ Error = Class.new(StandardError)
9
+
10
+ autoload :Definition, 'cli/kit/args/definition'
11
+ autoload :Parser, 'cli/kit/args/parser'
12
+ autoload :Evaluation, 'cli/kit/args/evaluation'
13
+ autoload :Tokenizer, 'cli/kit/args/tokenizer'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,30 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ # @abstract
8
+ class BaseCommand
9
+ include CLI::Kit::CommandHelp
10
+ extend CLI::Kit::CommandHelp::ClassMethods
11
+
12
+ class << self
13
+ #: -> bool
14
+ def defined?
15
+ true
16
+ end
17
+
18
+ #: (Array[String] args, String command_name) -> void
19
+ def call(args, command_name)
20
+ new.call(args, command_name)
21
+ end
22
+ end
23
+
24
+ #: -> bool
25
+ def has_subcommands?
26
+ false
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,268 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module CommandHelp
8
+ include Kernel # for sorbet
9
+
10
+ #: (Array[String] args, String name) -> void
11
+ def call(args, name)
12
+ begin
13
+ opts = self.class.opts_class
14
+ opts_inst = opts.new
15
+ defn = Args::Definition.new
16
+ opts_inst.define!(defn)
17
+ tokens = Args::Tokenizer.tokenize(args)
18
+ parse = Args::Parser.new(defn).parse(tokens)
19
+ evl = Args::Evaluation.new(defn, parse)
20
+ opts_inst.evaluate!(evl)
21
+ rescue Args::Evaluation::TooManyPositions, Args::Evaluation::MissingRequiredPosition => e
22
+ STDERR.puts CLI::UI.fmt("{{red:{{bold:Error: #{e.message}}}}}")
23
+ STDERR.puts
24
+ STDERR.puts self.class.build_help
25
+ raise(AbortSilent)
26
+ rescue Args::Error => e
27
+ raise(Abort, e)
28
+ end
29
+
30
+ if opts_inst.helpflag
31
+ puts self.class.build_help
32
+ else
33
+ invoke_wrapper(opts_inst, name)
34
+ end
35
+ end
36
+
37
+ # use to implement error handling
38
+ #: (untyped op, String name) -> void
39
+ def invoke_wrapper(op, name)
40
+ invoke(op, name)
41
+ end
42
+
43
+ #: (untyped op, String name) -> void
44
+ def invoke(op, name)
45
+ raise(NotImplementedError, '#invoke must be implemented, or #call overridden')
46
+ end
47
+
48
+ class << self
49
+ #: String
50
+ attr_writer :tool_name
51
+
52
+ #: Integer
53
+ attr_writer :max_desc_length
54
+
55
+ #: -> String
56
+ def _tool_name
57
+ unless @tool_name
58
+ raise 'You must set CLI::Kit::CommandHelp.tool_name='
59
+ end
60
+
61
+ @tool_name
62
+ end
63
+
64
+ #: -> Integer
65
+ def _max_desc_length
66
+ @max_desc_length || 80
67
+ end
68
+ end
69
+
70
+ module ClassMethods
71
+ include Kernel # for sorbet
72
+
73
+ DEFAULT_HELP_SECTIONS = [
74
+ :desc,
75
+ :long_desc,
76
+ :usage,
77
+ :examples,
78
+ :options,
79
+ ]
80
+
81
+ #: -> String
82
+ def build_help
83
+ h = (@help_sections || DEFAULT_HELP_SECTIONS).map do |section|
84
+ case section
85
+ when :desc
86
+ build_desc
87
+ when :long_desc
88
+ @long_desc
89
+ when :usage
90
+ @usage_section ||= build_usage
91
+ when :examples
92
+ @examples_section ||= build_examples
93
+ when :options
94
+ @options_section ||= build_options
95
+ else
96
+ raise "Unknown help section: #{section}"
97
+ end
98
+ end.compact.map(&:chomp).join("\n\n") + "\n"
99
+ CLI::UI.fmt(h)
100
+ end
101
+
102
+ #: -> String
103
+ def _command_name
104
+ return @command_name if @command_name
105
+
106
+ last_camel = send(:name).split('::').last
107
+ last_camel.gsub(/([a-z])([A-Z])/, '\1-\2').downcase
108
+ end
109
+
110
+ #: -> String
111
+ def _desc
112
+ @desc
113
+ end
114
+
115
+ #: -> String
116
+ def build_desc
117
+ out = +"{{command:#{CommandHelp._tool_name} #{_command_name}}}"
118
+ if @desc
119
+ out << ": #{@desc}"
120
+ end
121
+ "{{bold:#{out}}}"
122
+ end
123
+
124
+ #: -> untyped
125
+ def opts_class
126
+ uself = self #: as untyped
127
+ uself.const_get(:Opts) # rubocop:disable Sorbet/ConstantsFromStrings
128
+ rescue NameError
129
+ Class.new(CLI::Kit::Opts)
130
+ end
131
+
132
+ #: -> String?
133
+ def build_options
134
+ opts = opts_class
135
+ return unless opts
136
+
137
+ methods = []
138
+ loop do
139
+ methods.concat(opts.public_instance_methods(false))
140
+ break if opts.superclass == CLI::Kit::Opts
141
+
142
+ opts = opts.superclass
143
+ end
144
+
145
+ @defn = Args::Definition.new
146
+ o = opts.new
147
+ o.define!(@defn)
148
+
149
+ return if @defn.options.empty? && @defn.flags.empty?
150
+
151
+ merged = @defn.options #: Array[(Args::Definition::Option | Args::Definition::Flag)]
152
+ merged += @defn.flags
153
+ merged.sort_by!(&:name)
154
+ "{{bold:Options:}}\n" + merged.map do |o|
155
+ if o.is_a?(Args::Definition::Option)
156
+ z = ' ' + [o.short&.prepend('-'), o.long&.prepend('--')].compact.join(', ') + ' VALUE'
157
+ default = if o.dynamic_default?
158
+ '(generated default)'
159
+ elsif o.default.nil?
160
+ '(no default)'
161
+ else
162
+ "(default: #{o.default.inspect})"
163
+ end
164
+ z << if o.desc
165
+ " {{italic:{{gray:# #{o.desc} #{default}}}}}"
166
+ else
167
+ " {{italic:{{gray:# #{default}}}}}"
168
+ end
169
+ else
170
+ z = ' ' + [o.short&.prepend('-'), o.long&.prepend('--')].compact.join(', ')
171
+ if o.desc
172
+ z << " {{italic:{{gray:# #{o.desc}}}}}"
173
+ end
174
+ end
175
+ z
176
+ end.join("\n")
177
+ end
178
+
179
+ #: (Array[Symbol] sections) -> void
180
+ def help_sections(sections)
181
+ @help_sections = sections
182
+ end
183
+
184
+ #: (String command_name) -> void
185
+ def command_name(command_name)
186
+ if @command_name
187
+ raise(ArgumentError, "Command name already set to #{@command_name}")
188
+ end
189
+
190
+ @command_name = command_name
191
+ end
192
+
193
+ #: (String desc) -> void
194
+ def desc(desc)
195
+ # A limit of 80 characters has been chosen to fit on standard terminal configurations. `long_desc` is
196
+ # available when descriptions don't fit nicely in that space. If you're using CLI::Kit for an application
197
+ # where you control the runtime environments and know that terminals will have more than 80 columns
198
+ # available, you can use
199
+ #
200
+ # CLI::Kit::CommandHelp.max_desc_length =
201
+ #
202
+ # to increase this limit.
203
+ if desc.size > CommandHelp._max_desc_length
204
+ raise(ArgumentError, "description must be #{CommandHelp._max_desc_length} characters or less")
205
+ end
206
+ if @desc
207
+ raise(ArgumentError, 'description already set')
208
+ end
209
+
210
+ @desc = desc
211
+ end
212
+
213
+ #: (String long_desc) -> void
214
+ def long_desc(long_desc)
215
+ if @long_desc
216
+ raise(ArgumentError, 'long description already set')
217
+ end
218
+
219
+ @long_desc = long_desc
220
+ end
221
+
222
+ #: -> String
223
+ def build_usage
224
+ '{{bold:Usage:}}' + case (@usage || []).size
225
+ when 0
226
+ " {{command:#{CommandHelp._tool_name} #{_command_name}}} [options]\n"
227
+ when 1
228
+ " {{command:#{CommandHelp._tool_name} #{_command_name}}} #{@usage.first}\n"
229
+ else
230
+ "\n" + @usage.map do |usage|
231
+ " {{command:#{CommandHelp._tool_name} #{_command_name}}} #{usage}\n"
232
+ end.join
233
+ end
234
+ end
235
+
236
+ #: -> String?
237
+ def build_examples
238
+ return unless @examples
239
+
240
+ cmd_prefix = " {{command:#{CommandHelp._tool_name} #{_command_name}}}"
241
+ "{{bold:Examples:}}\n" + @examples.map do |command, explanation|
242
+ cmd = "#{cmd_prefix} #{command}"
243
+ exp = "{{italic:{{gray:# #{explanation}}}}}"
244
+
245
+ width = CLI::UI::ANSI.printing_width(CLI::UI.fmt("#{cmd} #{exp}"))
246
+ if width > CLI::UI::Terminal.width
247
+ " #{exp}\n#{cmd}"
248
+ else
249
+ "#{cmd} #{exp}"
250
+ end
251
+ end.join("\n\n")
252
+ end
253
+
254
+ #: (String usage) -> void
255
+ def usage(usage)
256
+ @usage ||= []
257
+ @usage << usage
258
+ end
259
+
260
+ #: (String command, String? explanation) -> void
261
+ def example(command, explanation)
262
+ @examples ||= []
263
+ @examples << [command, explanation]
264
+ end
265
+ end
266
+ end
267
+ end
268
+ end