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,286 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module Args
8
+ class Definition
9
+ Error = Class.new(Args::Error)
10
+ ConflictingFlag = Class.new(Error)
11
+ InvalidFlag = Class.new(Error)
12
+ InvalidLookup = Class.new(Error)
13
+ InvalidPosition = Class.new(Error)
14
+
15
+ #: Array[Flag]
16
+ attr_reader :flags
17
+
18
+ #: Array[Option]
19
+ attr_reader :options
20
+
21
+ #: Array[Position]
22
+ attr_reader :positions
23
+
24
+ #: (Symbol name, ?short: String?, ?long: String?, ?desc: String?) -> void
25
+ def add_flag(name, short: nil, long: nil, desc: nil)
26
+ short, long = strip_prefixes_and_validate(short, long)
27
+ flag = Flag.new(name: name, short: short, long: long, desc: desc)
28
+ add_resolution(flag)
29
+ @flags << flag
30
+ end
31
+
32
+ #: (Symbol name, ?short: String?, ?long: String?, ?desc: String?, ?default: (String | ^-> String | Array[String] | ^-> Array[String])?, ?required: bool, ?multi: bool) -> void
33
+ def add_option(name, short: nil, long: nil, desc: nil, default: nil, required: false, multi: false)
34
+ short, long = strip_prefixes_and_validate(short, long)
35
+ option = Option.new(
36
+ name: name, short: short, long: long, desc: desc, default: default,
37
+ required: required, multi: multi
38
+ )
39
+ add_resolution(option)
40
+ @options << option
41
+ end
42
+
43
+ #: (Symbol name, required: bool, multi: bool, ?desc: String?, ?default: (String | ^-> String)?, ?skip: (^-> bool | ^(String arg0) -> bool)?) -> void
44
+ def add_position(name, required:, multi:, desc: nil, default: nil, skip: nil)
45
+ position = Position.new(
46
+ name: name, desc: desc, required: required, multi: multi,
47
+ default: default, skip: skip
48
+ )
49
+ validate_order(position)
50
+ add_name_resolution(position)
51
+ @positions << position
52
+ end
53
+
54
+ #: -> void
55
+ def initialize
56
+ @flags = []
57
+ @options = []
58
+ @by_short = {}
59
+ @by_long = {}
60
+ @by_name = {}
61
+ @positions = []
62
+ end
63
+
64
+ module OptBase
65
+ #: Symbol
66
+ attr_reader :name
67
+
68
+ #: String?
69
+ attr_reader :desc
70
+ end
71
+
72
+ module OptValue
73
+ #: -> (String | Array[String])?
74
+ def default
75
+ if @default.is_a?(Proc)
76
+ @default.call
77
+ else
78
+ @default
79
+ end
80
+ end
81
+
82
+ #: -> bool
83
+ def dynamic_default?
84
+ @default.is_a?(Proc)
85
+ end
86
+
87
+ #: -> bool
88
+ def required?
89
+ @required
90
+ end
91
+
92
+ #: -> bool
93
+ def multi?
94
+ @multi
95
+ end
96
+
97
+ #: -> bool
98
+ def optional?
99
+ !required?
100
+ end
101
+ end
102
+
103
+ class Flag
104
+ include OptBase
105
+
106
+ #: String?
107
+ attr_reader :short
108
+
109
+ #: String?
110
+ attr_reader :long
111
+
112
+ #: -> String
113
+ def as_written_by_user
114
+ long ? "--#{long}" : "-#{short}"
115
+ end
116
+
117
+ #: (name: Symbol, ?short: String?, ?long: String?, ?desc: String?) -> void
118
+ def initialize(name:, short: nil, long: nil, desc: nil)
119
+ if long&.start_with?('-') || short&.start_with?('-')
120
+ raise(ArgumentError, 'invalid - prefix')
121
+ end
122
+
123
+ @name = name
124
+ @short = short
125
+ @long = long
126
+ @desc = desc
127
+ end
128
+ end
129
+
130
+ class Position
131
+ include OptBase
132
+ include OptValue
133
+
134
+ #: (name: Symbol, desc: String?, required: bool, multi: bool, ?default: (String | ^-> String)?, ?skip: (^-> bool | ^(String arg0) -> bool)?) -> void
135
+ def initialize(name:, desc:, required:, multi:, default: nil, skip: nil)
136
+ if multi && (default || required)
137
+ raise(ArgumentError, 'multi-valued positions cannot have a default or required value')
138
+ end
139
+
140
+ @name = name
141
+ @desc = desc
142
+ @required = required
143
+ @multi = multi
144
+ @default = default
145
+ @skip = skip
146
+ end
147
+
148
+ #: (String arg) -> bool
149
+ def skip?(arg)
150
+ if @skip.nil?
151
+ false
152
+ elsif @skip.arity == 0
153
+ prc = @skip #: as ^() -> bool
154
+ prc.call
155
+ else
156
+ prc = @skip #: as ^(String) -> bool
157
+ prc.call(arg)
158
+ end
159
+ end
160
+ end
161
+
162
+ class Option < Flag
163
+ include OptValue
164
+
165
+ #: (name: Symbol, ?short: String?, ?long: String?, ?desc: String?, ?default: (String | ^-> String | Array[String] | ^-> Array[String])?, ?required: bool, ?multi: bool) -> void
166
+ def initialize(name:, short: nil, long: nil, desc: nil, default: nil, required: false, multi: false)
167
+ if multi && required
168
+ raise(ArgumentError, 'multi-valued options cannot have a required value')
169
+ end
170
+
171
+ super(name: name, short: short, long: long, desc: desc)
172
+ @default = default
173
+ @required = required
174
+ @multi = multi
175
+ end
176
+ end
177
+
178
+ #: (Symbol name) -> Flag?
179
+ def lookup_flag(name)
180
+ flagopt = @by_name[name]
181
+ if flagopt.class == Flag
182
+ flagopt
183
+ end
184
+ end
185
+
186
+ #: (Symbol name) -> Option?
187
+ def lookup_option(name)
188
+ flagopt = @by_name[name]
189
+ if flagopt.class == Option
190
+ flagopt
191
+ end
192
+ end
193
+
194
+ #: (String name) -> (Flag | Option)?
195
+ def lookup_short(name)
196
+ raise(InvalidLookup, "invalid '-' prefix") if name.start_with?('-')
197
+
198
+ @by_short[name]
199
+ end
200
+
201
+ #: (String name) -> (Flag | Option)?
202
+ def lookup_long(name)
203
+ raise(InvalidLookup, "invalid '-' prefix") if name.start_with?('-')
204
+
205
+ @by_long[name]
206
+ end
207
+
208
+ #: (Symbol name) -> Position?
209
+ def lookup_position(name)
210
+ position = @by_name[name]
211
+ if position.class == Position
212
+ position
213
+ end
214
+ end
215
+
216
+ private
217
+
218
+ #: (Position position) -> void
219
+ def validate_order(position)
220
+ raise(InvalidPosition, 'Cannot have any more positional arguments after multi') if @positions.last&.multi?
221
+ end
222
+
223
+ #: (String short) -> String
224
+ def strip_short_prefix(short)
225
+ unless short.match?(/^-[^-]/)
226
+ raise(InvalidFlag, "Short flag '#{short}' does not start with '-'")
227
+ end
228
+ if short.size != 2
229
+ raise(InvalidFlag, 'Short flag must be a single character')
230
+ end
231
+
232
+ short.sub(/^-/, '')
233
+ end
234
+
235
+ #: (String long) -> String
236
+ def strip_long_prefix(long)
237
+ unless long.match?(/^--[^-]/)
238
+ raise(InvalidFlag, "Long flag '#{long}' does not start with '--'")
239
+ end
240
+
241
+ long.sub(/^--/, '')
242
+ end
243
+
244
+ #: (String? short, String? long) -> [String?, String?]
245
+ def strip_prefixes_and_validate(short, long)
246
+ if short.nil? && long.nil?
247
+ raise(Error, 'One or more of short and long must be specified')
248
+ end
249
+
250
+ short = strip_short_prefix(short) if short
251
+ long = strip_long_prefix(long) if long
252
+
253
+ [short, long]
254
+ end
255
+
256
+ #: (Flag flagopt) -> void
257
+ def add_resolution(flagopt)
258
+ if flagopt.short
259
+ if (existing = @by_short[flagopt.short])
260
+ raise(ConflictingFlag, "Short flag '#{flagopt.short}' already defined by #{existing.name}")
261
+ end
262
+
263
+ @by_short[flagopt.short] = flagopt
264
+ end
265
+ if flagopt.long
266
+ if (existing = @by_long[flagopt.long])
267
+ raise(ConflictingFlag, "Long flag '#{flagopt.long}' already defined by #{existing.name}")
268
+ end
269
+
270
+ @by_long[flagopt.long] = flagopt
271
+ end
272
+ add_name_resolution(flagopt)
273
+ end
274
+
275
+ #: ((Flag | Position) arg) -> void
276
+ def add_name_resolution(arg)
277
+ if (existing = @by_name[arg.name])
278
+ raise(ConflictingFlag, "Flag '#{arg.name}' already defined by #{existing.name}")
279
+ end
280
+
281
+ @by_name[arg.name] = arg
282
+ end
283
+ end
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,215 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module Args
8
+ class Evaluation
9
+ Error = Class.new(Args::Error)
10
+
11
+ class MissingRequiredOption < Error
12
+ #: (String name) -> void
13
+ def initialize(name)
14
+ super("missing required option `#{name}'")
15
+ end
16
+ end
17
+
18
+ class MissingRequiredPosition < Error
19
+ #: -> void
20
+ def initialize
21
+ super('more arguments required')
22
+ end
23
+ end
24
+
25
+ class TooManyPositions < Error
26
+ #: -> void
27
+ def initialize
28
+ super('too many arguments')
29
+ end
30
+ end
31
+
32
+ class FlagProxy
33
+ #: (Symbol sym) -> bool
34
+ def method_missing(sym)
35
+ flag = @evaluation.defn.lookup_flag(sym)
36
+ unless flag
37
+ raise NoMethodError, "undefined flag `#{sym}' for #{self}"
38
+ end
39
+
40
+ @evaluation.send(:lookup_flag, flag)
41
+ end
42
+
43
+ #: (Symbol sym, ?bool include_private) -> bool
44
+ def respond_to_missing?(sym, include_private = false)
45
+ !!@evaluation.defn.lookup_flag(sym)
46
+ end
47
+
48
+ #: (Evaluation evaluation) -> void
49
+ def initialize(evaluation)
50
+ @evaluation = evaluation
51
+ end
52
+ end
53
+
54
+ class OptionProxy
55
+ #: (Symbol sym) -> (String | Array[String])?
56
+ def method_missing(sym)
57
+ opt = @evaluation.defn.lookup_option(sym)
58
+ unless opt
59
+ raise NoMethodError, "undefined option `#{sym}' for #{self}"
60
+ end
61
+
62
+ @evaluation.send(:lookup_option, opt)
63
+ end
64
+
65
+ #: (Symbol sym, ?bool include_private) -> bool
66
+ def respond_to_missing?(sym, include_private = false)
67
+ !!@evaluation.defn.lookup_option(sym)
68
+ end
69
+
70
+ #: (Evaluation evaluation) -> void
71
+ def initialize(evaluation)
72
+ @evaluation = evaluation
73
+ end
74
+ end
75
+
76
+ class PositionProxy
77
+ #: (Symbol sym) -> (String | Array[String])?
78
+ def method_missing(sym)
79
+ position = @evaluation.defn.lookup_position(sym)
80
+ unless position
81
+ raise NoMethodError, "undefined position `#{sym}' for #{self}"
82
+ end
83
+
84
+ @evaluation.send(:lookup_position, position)
85
+ end
86
+
87
+ #: (Symbol sym, ?bool include_private) -> bool
88
+ def respond_to_missing?(sym, include_private = false)
89
+ !!@evaluation.defn.lookup_position(sym)
90
+ end
91
+
92
+ #: (Evaluation evaluation) -> void
93
+ def initialize(evaluation)
94
+ @evaluation = evaluation
95
+ end
96
+ end
97
+
98
+ #: -> FlagProxy
99
+ def flag
100
+ @flag_proxy ||= FlagProxy.new(self)
101
+ end
102
+
103
+ #: -> OptionProxy
104
+ def opt
105
+ @option_proxy ||= OptionProxy.new(self)
106
+ end
107
+
108
+ #: -> PositionProxy
109
+ def position
110
+ @position_proxy ||= PositionProxy.new(self)
111
+ end
112
+
113
+ #: Definition
114
+ attr_reader :defn
115
+
116
+ #: Array[Parser::Node]
117
+ attr_reader :parse
118
+
119
+ #: -> Array[String]
120
+ def unparsed
121
+ @unparsed ||= begin
122
+ nodes = parse.select { |node| node.is_a?(Parser::Node::Unparsed) } #: as Array[Parser::Node::Unparsed]
123
+ nodes.flat_map(&:value)
124
+ end
125
+ end
126
+
127
+ #: (Definition defn, Array[Parser::Node] parse) -> void
128
+ def initialize(defn, parse)
129
+ @defn = defn
130
+ @parse = parse
131
+ check_required_options!
132
+ end
133
+
134
+ #: -> void
135
+ def check_required_options!
136
+ @defn.options.each do |opt|
137
+ next unless opt.required?
138
+
139
+ node = @parse.detect do |node|
140
+ node.is_a?(Parser::Node::Option) && node.name.to_sym == opt.name
141
+ end
142
+ unless node
143
+ raise(MissingRequiredOption, opt.as_written_by_user)
144
+ end
145
+
146
+ node = node #: as Parser::Node::Option
147
+ if node.value.nil?
148
+ raise(MissingRequiredOption, opt.as_written_by_user)
149
+ end
150
+ end
151
+ end
152
+
153
+ #: -> void
154
+ def resolve_positions!
155
+ args_i = 0
156
+ @position_values = Hash.new
157
+ @defn.positions.each do |position|
158
+ raise(MissingRequiredPosition) if position.required? && args_i >= args.size
159
+ next if args_i >= args.size || position.skip?(
160
+ args[args_i], #: as !nil
161
+ )
162
+
163
+ if position.multi?
164
+ @position_values[position.name] = args[args_i..]
165
+ args_i = args.size
166
+ else
167
+ @position_values[position.name] = args[args_i] #: as !nil
168
+ args_i += 1
169
+ end
170
+ end
171
+ raise(TooManyPositions) if args_i < args.size
172
+ end
173
+
174
+ #: (Definition::Flag flag) -> bool
175
+ def lookup_flag(flag)
176
+ if flag.short
177
+ flags = parse.select { |node| node.is_a?(Parser::Node::ShortFlag) } #: as Array[Parser::Node::ShortFlag]
178
+ return true if flags.any? { |node| node.value == flag.short }
179
+ end
180
+ if flag.long
181
+ flags = parse.select { |node| node.is_a?(Parser::Node::LongFlag) } #: as Array[Parser::Node::LongFlag]
182
+ return true if flags.any? { |node| node.value == flag.long }
183
+ end
184
+ false
185
+ end
186
+
187
+ #: (Definition::Option opt) -> (String | Array[String])?
188
+ def lookup_option(opt)
189
+ opts = parse.select { |node| node.is_a?(Parser::Node::ShortOption) || node.is_a?(Parser::Node::LongOption) } #: as Array[Parser::Node::ShortOption | Parser::Node::LongOption]
190
+ matches = opts.select { |node| (opt.short && node.name == opt.short) || (opt.long && node.name == opt.long) }
191
+ if (last = matches.last)
192
+ return (opt.multi? ? matches.map(&:value) : last.value)
193
+ end
194
+
195
+ opt.default
196
+ end
197
+
198
+ #: (Definition::Position position) -> (String | Array[String])?
199
+ def lookup_position(position)
200
+ @position_values.fetch(position.name) { position.multi? ? [] : position.default }
201
+ end
202
+
203
+ private
204
+
205
+ #: -> Array[String]
206
+ def args
207
+ @args ||= begin
208
+ nodes = parse.select { |node| node.is_a?(Parser::Node::Argument) } #: as Array[Parser::Node::Argument]
209
+ nodes.map(&:value)
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,128 @@
1
+ # typed: true
2
+
3
+ require 'cli/kit'
4
+
5
+ module CLI
6
+ module Kit
7
+ module Args
8
+ class Parser
9
+ class Node
10
+ #: -> void
11
+ def initialize
12
+ end
13
+
14
+ #: (untyped other) -> bool
15
+ def ==(other)
16
+ self.class == other.class
17
+ end
18
+
19
+ class Option < Node
20
+ #: String
21
+ attr_reader :name
22
+
23
+ #: String
24
+ attr_reader :value
25
+
26
+ #: (String name, String value) -> void
27
+ def initialize(name, value)
28
+ @name = name
29
+ @value = value
30
+ super()
31
+ end
32
+ private_class_method(:new) # don't instantiate this class directly
33
+
34
+ #: -> String
35
+ def inspect
36
+ "#<#{self.class.name} #{@name}=#{@value}>"
37
+ end
38
+
39
+ #: (untyped other) -> bool
40
+ def ==(other)
41
+ !!(super(other) && @value == other.value && @name == other.name)
42
+ end
43
+ end
44
+
45
+ class LongOption < Option
46
+ public_class_method(:new)
47
+ end
48
+
49
+ class ShortOption < Option
50
+ public_class_method(:new)
51
+ end
52
+
53
+ class Flag < Node
54
+ #: String
55
+ attr_reader :value
56
+
57
+ #: (String value) -> void
58
+ def initialize(value)
59
+ @value = value
60
+ super()
61
+ end
62
+ private_class_method(:new) # don't instantiate this class directly
63
+
64
+ #: -> String
65
+ def inspect
66
+ "#<#{self.class.name} #{@value}>"
67
+ end
68
+
69
+ #: (untyped other) -> bool
70
+ def ==(other)
71
+ !!(super(other) && @value == other.value)
72
+ end
73
+ end
74
+
75
+ class LongFlag < Flag
76
+ public_class_method(:new)
77
+ end
78
+
79
+ class ShortFlag < Flag
80
+ public_class_method(:new)
81
+ end
82
+
83
+ class Argument < Node
84
+ #: String
85
+ attr_reader :value
86
+
87
+ #: (String value) -> void
88
+ def initialize(value)
89
+ @value = value
90
+ super()
91
+ end
92
+
93
+ #: -> String
94
+ def inspect
95
+ "#<#{self.class.name} #{@value}>"
96
+ end
97
+
98
+ #: (untyped other) -> bool
99
+ def ==(other)
100
+ !!(super(other) && @value == other.value)
101
+ end
102
+ end
103
+
104
+ class Unparsed < Node
105
+ #: Array[String]
106
+ attr_reader :value
107
+
108
+ #: (Array[String] value) -> void
109
+ def initialize(value)
110
+ @value = value
111
+ super()
112
+ end
113
+
114
+ #: -> String
115
+ def inspect
116
+ "#<#{self.class.name} #{@value.join(" ")}>"
117
+ end
118
+
119
+ #: (untyped other) -> bool
120
+ def ==(other)
121
+ !!(super(other) && @value == other.value)
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end