workosv2 2.15.0

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 (242) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +5 -0
  3. data/.github/pull_request_template.md +11 -0
  4. data/.github/renovate.json +5 -0
  5. data/.gitignore +49 -0
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +24 -0
  8. data/.ruby-version +1 -0
  9. data/.semaphore/rubygems.yml +24 -0
  10. data/.semaphore/semaphore.yml +51 -0
  11. data/Gemfile +5 -0
  12. data/Gemfile.lock +126 -0
  13. data/Gemfile.lock.old +127 -0
  14. data/LICENSE +21 -0
  15. data/README.md +53 -0
  16. data/bin/build +3 -0
  17. data/bin/console +3 -0
  18. data/bin/docs +5 -0
  19. data/bin/publish +3 -0
  20. data/bin/tapioca +29 -0
  21. data/codecov.yml +12 -0
  22. data/docs/WorkOS/APIError.html +160 -0
  23. data/docs/WorkOS/AuditLog.html +235 -0
  24. data/docs/WorkOS/AuditTrail.html +235 -0
  25. data/docs/WorkOS/AuthenticationError.html +160 -0
  26. data/docs/WorkOS/Base.html +287 -0
  27. data/docs/WorkOS/Client.html +504 -0
  28. data/docs/WorkOS/InvalidRequestError.html +160 -0
  29. data/docs/WorkOS/Profile.html +788 -0
  30. data/docs/WorkOS/RequestError.html +135 -0
  31. data/docs/WorkOS/SSO.html +691 -0
  32. data/docs/WorkOS/Types/ProfileStruct.html +135 -0
  33. data/docs/WorkOS/Types/Provider.html +135 -0
  34. data/docs/WorkOS/Types.html +128 -0
  35. data/docs/WorkOS/WorkOSError.html +447 -0
  36. data/docs/WorkOS.html +324 -0
  37. data/docs/class_list.html +51 -0
  38. data/docs/css/common.css +1 -0
  39. data/docs/css/full_list.css +58 -0
  40. data/docs/css/style.css +496 -0
  41. data/docs/file.README.html +252 -0
  42. data/docs/file_list.html +56 -0
  43. data/docs/frames.html +17 -0
  44. data/docs/index.html +250 -0
  45. data/docs/js/app.js +314 -0
  46. data/docs/js/full_list.js +216 -0
  47. data/docs/js/jquery.js +4 -0
  48. data/docs/method_list.html +267 -0
  49. data/docs/top-level-namespace.html +110 -0
  50. data/lib/workosv2/audit_log_export.rb +55 -0
  51. data/lib/workosv2/audit_logs.rb +114 -0
  52. data/lib/workosv2/audit_trail.rb +111 -0
  53. data/lib/workosv2/challenge.rb +55 -0
  54. data/lib/workosv2/client.rb +186 -0
  55. data/lib/workosv2/configuration.rb +17 -0
  56. data/lib/workosv2/connection.rb +66 -0
  57. data/lib/workosv2/deprecated_hash_wrapper.rb +76 -0
  58. data/lib/workosv2/directory.rb +65 -0
  59. data/lib/workosv2/directory_group.rb +68 -0
  60. data/lib/workosv2/directory_sync.rb +218 -0
  61. data/lib/workosv2/directory_user.rb +97 -0
  62. data/lib/workosv2/errors.rb +81 -0
  63. data/lib/workosv2/event.rb +51 -0
  64. data/lib/workosv2/events.rb +52 -0
  65. data/lib/workosv2/factor.rb +54 -0
  66. data/lib/workosv2/hash_provider.rb +19 -0
  67. data/lib/workosv2/mfa.rb +178 -0
  68. data/lib/workosv2/organization.rb +57 -0
  69. data/lib/workosv2/organizations.rb +188 -0
  70. data/lib/workosv2/passwordless.rb +85 -0
  71. data/lib/workosv2/portal.rb +66 -0
  72. data/lib/workosv2/profile.rb +76 -0
  73. data/lib/workosv2/profile_and_token.rb +29 -0
  74. data/lib/workosv2/sso.rb +297 -0
  75. data/lib/workosv2/types/audit_log_export_struct.rb +17 -0
  76. data/lib/workosv2/types/challenge_struct.rb +18 -0
  77. data/lib/workosv2/types/connection_struct.rb +20 -0
  78. data/lib/workosv2/types/directory_group_struct.rb +19 -0
  79. data/lib/workosv2/types/directory_struct.rb +19 -0
  80. data/lib/workosv2/types/directory_user_struct.rb +26 -0
  81. data/lib/workosv2/types/event_struct.rb +15 -0
  82. data/lib/workosv2/types/factor_struct.rb +18 -0
  83. data/lib/workosv2/types/intent_enum.rb +17 -0
  84. data/lib/workosv2/types/list_struct.rb +13 -0
  85. data/lib/workosv2/types/organization_struct.rb +17 -0
  86. data/lib/workosv2/types/passwordless_session_struct.rb +17 -0
  87. data/lib/workosv2/types/profile_struct.rb +21 -0
  88. data/lib/workosv2/types/provider_enum.rb +15 -0
  89. data/lib/workosv2/types/verify_challenge_struct.rb +13 -0
  90. data/lib/workosv2/types/webhook_struct.rb +15 -0
  91. data/lib/workosv2/types.rb +25 -0
  92. data/lib/workosv2/verify_challenge.rb +39 -0
  93. data/lib/workosv2/version.rb +6 -0
  94. data/lib/workosv2/webhook.rb +51 -0
  95. data/lib/workosv2/webhooks.rb +217 -0
  96. data/lib/workosv2.rb +79 -0
  97. data/sorbet/config +2 -0
  98. data/sorbet/rbi/gems/addressable@2.8.0.rbi +290 -0
  99. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  100. data/sorbet/rbi/gems/codecov@0.2.12.rbi +55 -0
  101. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  102. data/sorbet/rbi/gems/crack@0.4.5.rbi +57 -0
  103. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +185 -0
  104. data/sorbet/rbi/gems/docile@1.3.5.rbi +54 -0
  105. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +82 -0
  106. data/sorbet/rbi/gems/json@2.5.1.rbi +109 -0
  107. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  108. data/sorbet/rbi/gems/parallel@1.20.1.rbi +113 -0
  109. data/sorbet/rbi/gems/parser@3.0.1.0.rbi +1187 -0
  110. data/sorbet/rbi/gems/pry@0.14.2.rbi +8 -0
  111. data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +146 -0
  112. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +153 -0
  113. data/sorbet/rbi/gems/rake@13.0.3.rbi +807 -0
  114. data/sorbet/rbi/gems/rbi@0.0.16.rbi +2118 -0
  115. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +1117 -0
  116. data/sorbet/rbi/gems/rexml@3.2.5.rbi +709 -0
  117. data/sorbet/rbi/gems/rspec-core@3.9.3.rbi +2467 -0
  118. data/sorbet/rbi/gems/rspec-expectations@3.9.4.rbi +1569 -0
  119. data/sorbet/rbi/gems/rspec-mocks@3.9.1.rbi +1493 -0
  120. data/sorbet/rbi/gems/rspec-support@3.9.4.rbi +511 -0
  121. data/sorbet/rbi/gems/rspec@3.9.0.rbi +38 -0
  122. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +1881 -0
  123. data/sorbet/rbi/gems/rubocop@0.93.1.rbi +11497 -0
  124. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
  125. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +89 -0
  126. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +577 -0
  127. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.2.rbi +8 -0
  128. data/sorbet/rbi/gems/spoom@1.1.15.rbi +1549 -0
  129. data/sorbet/rbi/gems/tapioca@0.7.3.rbi +1718 -0
  130. data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
  131. data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +22 -0
  132. data/sorbet/rbi/gems/unparser@0.6.2.rbi +8 -0
  133. data/sorbet/rbi/gems/vcr@5.0.0.rbi +699 -0
  134. data/sorbet/rbi/gems/webmock@3.12.2.rbi +662 -0
  135. data/sorbet/rbi/gems/yard-sorbet@0.8.0.rbi +268 -0
  136. data/sorbet/rbi/gems/yard@0.9.26.rbi +4048 -0
  137. data/sorbet/tapioca/config.yml +13 -0
  138. data/sorbet/tapioca/require.rb +4 -0
  139. data/spec/lib/workos/audit_logs_spec.rb +151 -0
  140. data/spec/lib/workos/audit_trail_spec.rb +146 -0
  141. data/spec/lib/workos/configuration_spec.rb +61 -0
  142. data/spec/lib/workos/directory_sync_spec.rb +492 -0
  143. data/spec/lib/workos/directory_user_spec.rb +36 -0
  144. data/spec/lib/workos/event_spec.rb +88 -0
  145. data/spec/lib/workos/mfa_spec.rb +281 -0
  146. data/spec/lib/workos/organizations_spec.rb +257 -0
  147. data/spec/lib/workos/passwordless_spec.rb +77 -0
  148. data/spec/lib/workos/portal_spec.rb +87 -0
  149. data/spec/lib/workos/sso_spec.rb +650 -0
  150. data/spec/lib/workos/webhooks_spec.rb +236 -0
  151. data/spec/spec_helper.rb +56 -0
  152. data/spec/support/fixtures/vcr_cassettes/audit_logs/create_event.yml +59 -0
  153. data/spec/support/fixtures/vcr_cassettes/audit_logs/create_event_custom_idempotency_key.yml +60 -0
  154. data/spec/support/fixtures/vcr_cassettes/audit_logs/create_event_invalid.yml +59 -0
  155. data/spec/support/fixtures/vcr_cassettes/audit_logs/create_export.yml +76 -0
  156. data/spec/support/fixtures/vcr_cassettes/audit_logs/create_export_with_filters.yml +77 -0
  157. data/spec/support/fixtures/vcr_cassettes/audit_logs/get_export.yml +73 -0
  158. data/spec/support/fixtures/vcr_cassettes/audit_trail/create_event.yml +65 -0
  159. data/spec/support/fixtures/vcr_cassettes/audit_trail/create_event_custom_idempotency_key.yml +67 -0
  160. data/spec/support/fixtures/vcr_cassettes/audit_trail/create_event_invalid.yml +68 -0
  161. data/spec/support/fixtures/vcr_cassettes/audit_trail/create_events_duplicate_idempotency_key_and_payload.yml +131 -0
  162. data/spec/support/fixtures/vcr_cassettes/audit_trail/create_events_duplicate_idempotency_key_different_payload.yml +134 -0
  163. data/spec/support/fixtures/vcr_cassettes/audit_trail/get_events.yml +61 -0
  164. data/spec/support/fixtures/vcr_cassettes/base/execute_request_unauthenticated.yml +66 -0
  165. data/spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml +72 -0
  166. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_invalid_id.yml +83 -0
  167. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_valid_id.yml +84 -0
  168. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml +80 -0
  169. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group_with_invalid_id.yml +62 -0
  170. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml +83 -0
  171. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user_with_invalid_id.yml +62 -0
  172. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_after.yml +87 -0
  173. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_before.yml +89 -0
  174. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_domain.yml +84 -0
  175. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +85 -0
  176. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_no_options.yml +93 -0
  177. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +85 -0
  178. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +90 -0
  179. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +90 -0
  180. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +90 -0
  181. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_limit.yml +84 -0
  182. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_no_options.yml +84 -0
  183. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +82 -0
  184. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +186 -0
  185. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +88 -0
  186. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +194 -0
  187. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +186 -0
  188. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +189 -0
  189. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_no_options.yml +74 -0
  190. data/spec/support/fixtures/vcr_cassettes/events/list_events_with_after.yml +80 -0
  191. data/spec/support/fixtures/vcr_cassettes/events/list_events_with_event.yml +80 -0
  192. data/spec/support/fixtures/vcr_cassettes/events/list_events_with_no_options.yml +80 -0
  193. data/spec/support/fixtures/vcr_cassettes/events/list_events_with_range.yml +80 -0
  194. data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_generic_valid.yml +82 -0
  195. data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_sms_valid.yml +82 -0
  196. data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml +82 -0
  197. data/spec/support/fixtures/vcr_cassettes/mfa/delete_factor.yml +80 -0
  198. data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_generic_valid.yml +82 -0
  199. data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_sms_valid.yml +82 -0
  200. data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_totp_valid.yml +82 -0
  201. data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_invalid.yml +82 -0
  202. data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_valid.yml +82 -0
  203. data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_expired.yml +84 -0
  204. data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_invalid.yml +84 -0
  205. data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_valid.yml +82 -0
  206. data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_valid_is_false.yml +82 -0
  207. data/spec/support/fixtures/vcr_cassettes/organization/create.yml +84 -0
  208. data/spec/support/fixtures/vcr_cassettes/organization/create_invalid.yml +72 -0
  209. data/spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_different_payload.yml +155 -0
  210. data/spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_payload.yml +154 -0
  211. data/spec/support/fixtures/vcr_cassettes/organization/create_with_idempotency_key.yml +79 -0
  212. data/spec/support/fixtures/vcr_cassettes/organization/delete.yml +72 -0
  213. data/spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml +72 -0
  214. data/spec/support/fixtures/vcr_cassettes/organization/get.yml +84 -0
  215. data/spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml +72 -0
  216. data/spec/support/fixtures/vcr_cassettes/organization/list.yml +87 -0
  217. data/spec/support/fixtures/vcr_cassettes/organization/update.yml +84 -0
  218. data/spec/support/fixtures/vcr_cassettes/passwordless/create_session.yml +72 -0
  219. data/spec/support/fixtures/vcr_cassettes/passwordless/create_session_invalid.yml +73 -0
  220. data/spec/support/fixtures/vcr_cassettes/passwordless/send_session.yml +72 -0
  221. data/spec/support/fixtures/vcr_cassettes/passwordless/send_session_invalid.yml +73 -0
  222. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_audit_logs.yml +72 -0
  223. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml +72 -0
  224. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_invalid.yml +72 -0
  225. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_sso.yml +72 -0
  226. data/spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_invalid_id.yml +72 -0
  227. data/spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_valid_id.yml +70 -0
  228. data/spec/support/fixtures/vcr_cassettes/sso/get_connection_with_invalid_id.yml +72 -0
  229. data/spec/support/fixtures/vcr_cassettes/sso/get_connection_with_valid_id.yml +86 -0
  230. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +83 -0
  231. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +86 -0
  232. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +90 -0
  233. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_domain.yml +86 -0
  234. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +83 -0
  235. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +89 -0
  236. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_organization_id.yml +86 -0
  237. data/spec/support/fixtures/vcr_cassettes/sso/profile.yml +74 -0
  238. data/spec/support/profile.txt +1 -0
  239. data/spec/support/shared_examples/client_spec.rb +30 -0
  240. data/spec/support/webhook_payload.txt +1 -0
  241. data/workosv2.gemspec +38 -0
  242. metadata +531 -0
@@ -0,0 +1,1549 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `spoom` gem.
5
+ # Please instead update this file by running `bin/tapioca gem spoom`.
6
+
7
+ module Spoom
8
+ class << self
9
+ sig { params(cmd: ::String, arg: ::String, path: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
10
+ def exec(cmd, *arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
11
+ end
12
+ end
13
+
14
+ module Spoom::Cli; end
15
+
16
+ class Spoom::Cli::Bump < ::Thor
17
+ include ::Spoom::Colorize
18
+ include ::Spoom::Cli::Helper
19
+
20
+ sig { params(directory: ::String).void }
21
+ def bump(directory = T.unsafe(nil)); end
22
+
23
+ def config_files(path: T.unsafe(nil)); end
24
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
25
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
26
+ def undo_changes(files, from_strictness); end
27
+ end
28
+
29
+ class Spoom::Cli::Config < ::Thor
30
+ include ::Spoom::Colorize
31
+ include ::Spoom::Cli::Helper
32
+
33
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
34
+ def show; end
35
+ end
36
+
37
+ class Spoom::Cli::Coverage < ::Thor
38
+ include ::Spoom::Colorize
39
+ include ::Spoom::Cli::Helper
40
+
41
+ def bundle_install(path, sha); end
42
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
43
+ def message_no_data(file); end
44
+ def open(file = T.unsafe(nil)); end
45
+ def parse_time(string, option); end
46
+ def report; end
47
+ def snapshot; end
48
+ def timeline; end
49
+ end
50
+
51
+ Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
52
+
53
+ module Spoom::Cli::Helper
54
+ include ::Spoom::Colorize
55
+
56
+ requires_ancestor { Thor }
57
+
58
+ sig { params(string: ::String).returns(::String) }
59
+ def blue(string); end
60
+
61
+ sig { params(exit_code: ::Integer, block: T.nilable(T.proc.void)).void }
62
+ def check_sorbet_segfault(exit_code, &block); end
63
+
64
+ sig { returns(T::Boolean) }
65
+ def color?; end
66
+
67
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
68
+ def colorize(string, *color); end
69
+
70
+ sig { params(string: ::String).returns(::String) }
71
+ def cyan(string); end
72
+
73
+ sig { returns(::String) }
74
+ def exec_path; end
75
+
76
+ sig { params(string: ::String).returns(::String) }
77
+ def gray(string); end
78
+
79
+ sig { params(string: ::String).returns(::String) }
80
+ def green(string); end
81
+
82
+ sig { params(string: ::String).returns(::String) }
83
+ def highlight(string); end
84
+
85
+ sig { void }
86
+ def in_sorbet_project!; end
87
+
88
+ sig { returns(T::Boolean) }
89
+ def in_sorbet_project?; end
90
+
91
+ sig { params(string: ::String).returns(::String) }
92
+ def red(string); end
93
+
94
+ sig { params(message: ::String).void }
95
+ def say(message); end
96
+
97
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
98
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
99
+
100
+ sig { returns(::Spoom::Sorbet::Config) }
101
+ def sorbet_config; end
102
+
103
+ sig { returns(::String) }
104
+ def sorbet_config_file; end
105
+
106
+ sig { params(string: ::String).returns(::String) }
107
+ def yellow(string); end
108
+ end
109
+
110
+ class Spoom::Cli::LSP < ::Thor
111
+ include ::Spoom::Colorize
112
+ include ::Spoom::Cli::Helper
113
+
114
+ def defs(file, line, col); end
115
+ def find(query); end
116
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
117
+ def hover(file, line, col); end
118
+ def list; end
119
+ def lsp_client; end
120
+ def refs(file, line, col); end
121
+ def run(&block); end
122
+ def show; end
123
+ def sigs(file, line, col); end
124
+ def symbol_printer; end
125
+ def symbols(file); end
126
+ def to_uri(path); end
127
+ def types(file, line, col); end
128
+ end
129
+
130
+ class Spoom::Cli::Main < ::Thor
131
+ include ::Spoom::Colorize
132
+ include ::Spoom::Cli::Helper
133
+
134
+ def __print_version; end
135
+ def bump(*args); end
136
+ def config(*args); end
137
+ def coverage(*args); end
138
+ def files; end
139
+ def lsp(*args); end
140
+ def tc(*args); end
141
+
142
+ class << self
143
+ def exit_on_failure?; end
144
+ end
145
+ end
146
+
147
+ class Spoom::Cli::Run < ::Thor
148
+ include ::Spoom::Colorize
149
+ include ::Spoom::Cli::Helper
150
+
151
+ def colorize_message(message); end
152
+ def format_error(error, format); end
153
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
154
+ def tc(*paths_to_select); end
155
+ end
156
+
157
+ Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
158
+ Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
159
+ Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
160
+ Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
161
+
162
+ class Spoom::Color < ::T::Enum
163
+ enums do
164
+ CLEAR = new
165
+ BOLD = new
166
+ BLACK = new
167
+ RED = new
168
+ GREEN = new
169
+ YELLOW = new
170
+ BLUE = new
171
+ MAGENTA = new
172
+ CYAN = new
173
+ WHITE = new
174
+ LIGHT_BLACK = new
175
+ LIGHT_RED = new
176
+ LIGHT_GREEN = new
177
+ LIGHT_YELLOW = new
178
+ LIGHT_BLUE = new
179
+ LIGHT_MAGENTA = new
180
+ LIGHT_CYAN = new
181
+ LIGHT_WHITE = new
182
+ end
183
+
184
+ sig { returns(::String) }
185
+ def ansi_code; end
186
+ end
187
+
188
+ module Spoom::Colorize
189
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
190
+ def set_color(string, *color); end
191
+ end
192
+
193
+ class Spoom::Context
194
+ sig { params(absolute_path: ::String).void }
195
+ def initialize(absolute_path); end
196
+
197
+ sig { returns(::String) }
198
+ def absolute_path; end
199
+
200
+ sig { params(relative_path: ::String).returns(::String) }
201
+ def absolute_path_to(relative_path); end
202
+
203
+ sig { params(command: ::String, version: T.nilable(::String)).returns(::Spoom::ExecResult) }
204
+ def bundle(command, version: T.unsafe(nil)); end
205
+
206
+ sig { params(command: ::String, version: T.nilable(::String)).returns(::Spoom::ExecResult) }
207
+ def bundle_exec(command, version: T.unsafe(nil)); end
208
+
209
+ sig { params(version: T.nilable(::String)).returns(::Spoom::ExecResult) }
210
+ def bundle_install!(version: T.unsafe(nil)); end
211
+
212
+ sig { void }
213
+ def destroy!; end
214
+
215
+ sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
216
+ def exec(command, capture_err: T.unsafe(nil)); end
217
+
218
+ sig { returns(T::Boolean) }
219
+ def exist?; end
220
+
221
+ sig { params(relative_path: ::String).returns(T::Boolean) }
222
+ def file?(relative_path); end
223
+
224
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
225
+ def git(command); end
226
+
227
+ sig { params(ref: ::String).returns(::Spoom::ExecResult) }
228
+ def git_checkout!(ref: T.unsafe(nil)); end
229
+
230
+ sig { returns(T.nilable(::String)) }
231
+ def git_current_branch; end
232
+
233
+ sig { params(branch: ::String).void }
234
+ def git_init!(branch: T.unsafe(nil)); end
235
+
236
+ sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
237
+ def git_last_commit(short_sha: T.unsafe(nil)); end
238
+
239
+ sig { params(pattern: ::String).returns(T::Array[::String]) }
240
+ def glob(pattern = T.unsafe(nil)); end
241
+
242
+ sig { returns(T::Array[::String]) }
243
+ def list; end
244
+
245
+ sig { void }
246
+ def mkdir!; end
247
+
248
+ sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
249
+ def move!(from_relative_path, to_relative_path); end
250
+
251
+ sig { params(relative_path: ::String).returns(::String) }
252
+ def read(relative_path); end
253
+
254
+ sig { params(relative_path: ::String).returns(T.nilable(::String)) }
255
+ def read_file_strictness(relative_path); end
256
+
257
+ sig { returns(T.nilable(::String)) }
258
+ def read_gemfile; end
259
+
260
+ sig { returns(::String) }
261
+ def read_sorbet_config; end
262
+
263
+ sig { params(relative_path: ::String).void }
264
+ def remove!(relative_path); end
265
+
266
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
267
+ def srb(command); end
268
+
269
+ sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
270
+ def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
271
+
272
+ sig { params(contents: ::String, append: T::Boolean).void }
273
+ def write_gemfile!(contents, append: T.unsafe(nil)); end
274
+
275
+ sig { params(contents: ::String, append: T::Boolean).void }
276
+ def write_sorbet_config!(contents, append: T.unsafe(nil)); end
277
+
278
+ class << self
279
+ sig { params(name: T.nilable(::String)).returns(T.attached_class) }
280
+ def mktmp!(name = T.unsafe(nil)); end
281
+ end
282
+ end
283
+
284
+ module Spoom::Coverage
285
+ class << self
286
+ sig do
287
+ params(
288
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
289
+ palette: ::Spoom::Coverage::D3::ColorPalette,
290
+ path: ::String
291
+ ).returns(::Spoom::Coverage::Report)
292
+ end
293
+ def report(snapshots, palette:, path: T.unsafe(nil)); end
294
+
295
+ sig { params(path: ::String).returns(::Spoom::FileTree) }
296
+ def sigils_tree(path: T.unsafe(nil)); end
297
+
298
+ sig do
299
+ params(
300
+ path: ::String,
301
+ rbi: T::Boolean,
302
+ sorbet_bin: T.nilable(::String)
303
+ ).returns(::Spoom::Coverage::Snapshot)
304
+ end
305
+ def snapshot(path: T.unsafe(nil), rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
306
+
307
+ sig { params(path: ::String).returns(::Spoom::Sorbet::Config) }
308
+ def sorbet_config(path: T.unsafe(nil)); end
309
+ end
310
+ end
311
+
312
+ module Spoom::Coverage::Cards; end
313
+
314
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
315
+ sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
316
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
317
+
318
+ def body; end
319
+
320
+ sig { returns(T.nilable(::String)) }
321
+ def title; end
322
+ end
323
+
324
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
325
+
326
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
327
+ abstract!
328
+
329
+ sig { void }
330
+ def initialize; end
331
+
332
+ sig { abstract.returns(::String) }
333
+ def erb; end
334
+
335
+ sig { override.returns(::String) }
336
+ def html; end
337
+ end
338
+
339
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
340
+ sig { params(sigils_tree: ::Spoom::FileTree, title: ::String).void }
341
+ def initialize(sigils_tree:, title: T.unsafe(nil)); end
342
+ end
343
+
344
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
345
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
346
+ def initialize(snapshot:, title: T.unsafe(nil)); end
347
+
348
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
349
+ def pie_calls; end
350
+
351
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
352
+ def pie_sigils; end
353
+
354
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
355
+ def pie_sigs; end
356
+
357
+ sig { returns(::Spoom::Coverage::Snapshot) }
358
+ def snapshot; end
359
+ end
360
+
361
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
362
+
363
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
364
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
365
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
366
+
367
+ sig { override.returns(::String) }
368
+ def erb; end
369
+ end
370
+
371
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
372
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
373
+ def initialize(title:, timeline:); end
374
+ end
375
+
376
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
377
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
378
+ def initialize(snapshots:, title: T.unsafe(nil)); end
379
+ end
380
+
381
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
382
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
383
+ def initialize(snapshots:, title: T.unsafe(nil)); end
384
+ end
385
+
386
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
387
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
388
+ def initialize(snapshots:, title: T.unsafe(nil)); end
389
+ end
390
+
391
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
392
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
393
+ def initialize(snapshots:, title: T.unsafe(nil)); end
394
+ end
395
+
396
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
397
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
398
+ def initialize(snapshots:, title: T.unsafe(nil)); end
399
+ end
400
+
401
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
402
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
403
+ def initialize(snapshots:, title: T.unsafe(nil)); end
404
+ end
405
+
406
+ module Spoom::Coverage::D3
407
+ class << self
408
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
409
+ def header_script(palette); end
410
+
411
+ sig { returns(::String) }
412
+ def header_style; end
413
+ end
414
+ end
415
+
416
+ class Spoom::Coverage::D3::Base
417
+ abstract!
418
+
419
+ sig { params(id: ::String, data: T.untyped).void }
420
+ def initialize(id, data); end
421
+
422
+ sig { returns(::String) }
423
+ def html; end
424
+
425
+ sig { returns(::String) }
426
+ def id; end
427
+
428
+ sig { abstract.returns(::String) }
429
+ def script; end
430
+
431
+ sig { returns(::String) }
432
+ def tooltip; end
433
+
434
+ class << self
435
+ sig { returns(::String) }
436
+ def header_script; end
437
+
438
+ sig { returns(::String) }
439
+ def header_style; end
440
+ end
441
+ end
442
+
443
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
444
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
445
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
446
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
447
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
448
+
449
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
450
+ sig { override.returns(::String) }
451
+ def script; end
452
+
453
+ class << self
454
+ sig { returns(::String) }
455
+ def header_script; end
456
+
457
+ sig { returns(::String) }
458
+ def header_style; end
459
+ end
460
+ end
461
+
462
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
463
+ sig { params(id: ::String, sigils_tree: ::Spoom::FileTree).void }
464
+ def initialize(id, sigils_tree); end
465
+
466
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
467
+ def tree_node_score(node); end
468
+
469
+ sig { params(node: ::Spoom::FileTree::Node).returns(T.nilable(::String)) }
470
+ def tree_node_strictness(node); end
471
+
472
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
473
+ def tree_node_to_json(node); end
474
+ end
475
+
476
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
477
+ prop :ignore, ::String
478
+ prop :false, ::String
479
+ prop :true, ::String
480
+ prop :strict, ::String
481
+ prop :strong, ::String
482
+
483
+ class << self
484
+ def inherited(s); end
485
+ end
486
+ end
487
+
488
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
489
+ abstract!
490
+
491
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
492
+ def initialize(id, title, data); end
493
+
494
+ sig { override.returns(::String) }
495
+ def script; end
496
+
497
+ class << self
498
+ sig { returns(::String) }
499
+ def header_script; end
500
+
501
+ sig { returns(::String) }
502
+ def header_style; end
503
+ end
504
+ end
505
+
506
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
507
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
508
+ def initialize(id, title, snapshot); end
509
+
510
+ sig { override.returns(::String) }
511
+ def tooltip; end
512
+ end
513
+
514
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
515
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
516
+ def initialize(id, title, snapshot); end
517
+
518
+ sig { override.returns(::String) }
519
+ def tooltip; end
520
+ end
521
+
522
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
523
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
524
+ def initialize(id, title, snapshot); end
525
+
526
+ sig { override.returns(::String) }
527
+ def tooltip; end
528
+ end
529
+
530
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
531
+ abstract!
532
+
533
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
534
+ def initialize(id, data, keys); end
535
+
536
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
537
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
538
+
539
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
540
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
541
+
542
+ sig { abstract.returns(::String) }
543
+ def plot; end
544
+
545
+ sig { params(y: ::String).returns(::String) }
546
+ def points(y:); end
547
+
548
+ sig { override.returns(::String) }
549
+ def script; end
550
+
551
+ sig { returns(::String) }
552
+ def x_scale; end
553
+
554
+ sig { returns(::String) }
555
+ def x_ticks; end
556
+
557
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
558
+ def y_scale(min:, max:, ticks:); end
559
+
560
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
561
+ def y_ticks(ticks:, format:, padding:); end
562
+
563
+ class << self
564
+ sig { returns(::String) }
565
+ def header_script; end
566
+
567
+ sig { returns(::String) }
568
+ def header_style; end
569
+ end
570
+ end
571
+
572
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
573
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
574
+ def initialize(id, snapshots); end
575
+
576
+ sig { override.returns(::String) }
577
+ def tooltip; end
578
+ end
579
+
580
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
581
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
582
+ def initialize(id, snapshots); end
583
+
584
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
585
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
586
+
587
+ sig { override.returns(::String) }
588
+ def plot; end
589
+
590
+ sig { override.returns(::String) }
591
+ def script; end
592
+
593
+ sig { override.returns(::String) }
594
+ def tooltip; end
595
+ end
596
+
597
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
598
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
599
+ def initialize(id, snapshots); end
600
+
601
+ sig { override.returns(::String) }
602
+ def plot; end
603
+
604
+ sig { override.returns(::String) }
605
+ def tooltip; end
606
+ end
607
+
608
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
609
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
610
+ def initialize(id, snapshots); end
611
+
612
+ sig { override.returns(::String) }
613
+ def tooltip; end
614
+ end
615
+
616
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
617
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
618
+ def initialize(id, snapshots); end
619
+
620
+ sig { override.returns(::String) }
621
+ def tooltip; end
622
+ end
623
+
624
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
625
+ abstract!
626
+
627
+ def initialize(*args, **_arg1, &blk); end
628
+
629
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
630
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
631
+
632
+ sig { override.returns(::String) }
633
+ def plot; end
634
+
635
+ sig { override.returns(::String) }
636
+ def script; end
637
+ end
638
+
639
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
640
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
641
+ def initialize(id, snapshots); end
642
+
643
+ sig { override.returns(::String) }
644
+ def plot; end
645
+
646
+ sig { override.returns(::String) }
647
+ def tooltip; end
648
+ end
649
+
650
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
651
+ abstract!
652
+
653
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
654
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
655
+
656
+ sig { returns(::String) }
657
+ def body_html; end
658
+
659
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
660
+ def cards; end
661
+
662
+ sig { returns(::String) }
663
+ def footer_html; end
664
+
665
+ sig { returns(::String) }
666
+ def header_html; end
667
+
668
+ sig { returns(::String) }
669
+ def header_script; end
670
+
671
+ sig { returns(::String) }
672
+ def header_style; end
673
+
674
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
675
+ def palette; end
676
+
677
+ sig { returns(::String) }
678
+ def title; end
679
+ end
680
+
681
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
682
+
683
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
684
+ sig do
685
+ params(
686
+ project_name: ::String,
687
+ palette: ::Spoom::Coverage::D3::ColorPalette,
688
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
689
+ sigils_tree: ::Spoom::FileTree,
690
+ sorbet_intro_commit: T.nilable(::String),
691
+ sorbet_intro_date: T.nilable(::Time)
692
+ ).void
693
+ end
694
+ def initialize(project_name:, palette:, snapshots:, sigils_tree:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
695
+
696
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
697
+ def cards; end
698
+
699
+ sig { override.returns(::String) }
700
+ def header_html; end
701
+
702
+ sig { returns(::String) }
703
+ def project_name; end
704
+
705
+ sig { returns(::Spoom::FileTree) }
706
+ def sigils_tree; end
707
+
708
+ sig { returns(T::Array[::Spoom::Coverage::Snapshot]) }
709
+ def snapshots; end
710
+
711
+ sig { returns(T.nilable(::String)) }
712
+ def sorbet_intro_commit; end
713
+
714
+ sig { returns(T.nilable(::Time)) }
715
+ def sorbet_intro_date; end
716
+ end
717
+
718
+ class Spoom::Coverage::Snapshot < ::T::Struct
719
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
720
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
721
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
722
+ prop :duration, ::Integer, default: T.unsafe(nil)
723
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
724
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
725
+ prop :files, ::Integer, default: T.unsafe(nil)
726
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
727
+ prop :modules, ::Integer, default: T.unsafe(nil)
728
+ prop :classes, ::Integer, default: T.unsafe(nil)
729
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
730
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
731
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
732
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
733
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
734
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
735
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
736
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
737
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
738
+
739
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
740
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
741
+
742
+ sig { params(arg: T.untyped).returns(::String) }
743
+ def to_json(*arg); end
744
+
745
+ class << self
746
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
747
+ def from_json(json); end
748
+
749
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
750
+ def from_obj(obj); end
751
+
752
+ def inherited(s); end
753
+ end
754
+ end
755
+
756
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
757
+
758
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
759
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
760
+ def print_snapshot(snapshot); end
761
+
762
+ private
763
+
764
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
765
+ def percent(value, total); end
766
+
767
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
768
+ def print_map(hash, total); end
769
+ end
770
+
771
+ class Spoom::Coverage::Template
772
+ abstract!
773
+
774
+ sig { params(template: ::String).void }
775
+ def initialize(template:); end
776
+
777
+ sig { returns(::String) }
778
+ def erb; end
779
+
780
+ sig { returns(::Binding) }
781
+ def get_binding; end
782
+
783
+ sig { returns(::String) }
784
+ def html; end
785
+ end
786
+
787
+ class Spoom::Error < ::StandardError; end
788
+
789
+ class Spoom::ExecResult < ::T::Struct
790
+ const :out, ::String
791
+ const :err, ::String
792
+ const :status, T::Boolean
793
+ const :exit_code, ::Integer
794
+
795
+ sig { returns(::String) }
796
+ def to_s; end
797
+
798
+ class << self
799
+ def inherited(s); end
800
+ end
801
+ end
802
+
803
+ class Spoom::FileTree
804
+ sig { params(paths: T::Enumerable[::String], strip_prefix: T.nilable(::String)).void }
805
+ def initialize(paths = T.unsafe(nil), strip_prefix: T.unsafe(nil)); end
806
+
807
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
808
+ def add_path(path); end
809
+
810
+ sig { params(paths: T::Enumerable[::String]).void }
811
+ def add_paths(paths); end
812
+
813
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
814
+ def nodes; end
815
+
816
+ sig { returns(T::Array[::String]) }
817
+ def paths; end
818
+
819
+ sig do
820
+ params(
821
+ out: T.any(::IO, ::StringIO),
822
+ show_strictness: T::Boolean,
823
+ colors: T::Boolean,
824
+ indent_level: ::Integer
825
+ ).void
826
+ end
827
+ def print(out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
828
+
829
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
830
+ def roots; end
831
+
832
+ sig { returns(T.nilable(::String)) }
833
+ def strip_prefix; end
834
+
835
+ private
836
+
837
+ sig do
838
+ params(
839
+ node: ::Spoom::FileTree::Node,
840
+ collected_nodes: T::Array[::Spoom::FileTree::Node]
841
+ ).returns(T::Array[::Spoom::FileTree::Node])
842
+ end
843
+ def collect_nodes(node, collected_nodes = T.unsafe(nil)); end
844
+ end
845
+
846
+ class Spoom::FileTree::Node < ::T::Struct
847
+ const :parent, T.nilable(::Spoom::FileTree::Node)
848
+ const :name, ::String
849
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
850
+
851
+ sig { returns(::String) }
852
+ def path; end
853
+
854
+ class << self
855
+ def inherited(s); end
856
+ end
857
+ end
858
+
859
+ class Spoom::FileTree::TreePrinter < ::Spoom::Printer
860
+ sig do
861
+ params(
862
+ tree: ::Spoom::FileTree,
863
+ out: T.any(::IO, ::StringIO),
864
+ show_strictness: T::Boolean,
865
+ colors: T::Boolean,
866
+ indent_level: ::Integer
867
+ ).void
868
+ end
869
+ def initialize(tree:, out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
870
+
871
+ sig { params(node: ::Spoom::FileTree::Node).void }
872
+ def print_node(node); end
873
+
874
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
875
+ def print_nodes(nodes); end
876
+
877
+ sig { void }
878
+ def print_tree; end
879
+
880
+ sig { returns(::Spoom::FileTree) }
881
+ def tree; end
882
+
883
+ private
884
+
885
+ sig { params(node: ::Spoom::FileTree::Node).returns(T.nilable(::String)) }
886
+ def node_strictness(node); end
887
+
888
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
889
+ def strictness_color(strictness); end
890
+ end
891
+
892
+ module Spoom::Git
893
+ class << self
894
+ sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
895
+ def checkout(*arg, path: T.unsafe(nil)); end
896
+
897
+ sig { params(path: ::String).returns(T.nilable(::String)) }
898
+ def current_branch(path: T.unsafe(nil)); end
899
+
900
+ sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
901
+ def diff(*arg, path: T.unsafe(nil)); end
902
+
903
+ sig { params(command: ::String, arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
904
+ def exec(command, *arg, path: T.unsafe(nil)); end
905
+
906
+ sig { params(path: ::String, short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
907
+ def last_commit(path: T.unsafe(nil), short_sha: T.unsafe(nil)); end
908
+
909
+ sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
910
+ def log(*arg, path: T.unsafe(nil)); end
911
+
912
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
913
+ def parse_commit(string); end
914
+
915
+ sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
916
+ def show(*arg, path: T.unsafe(nil)); end
917
+
918
+ sig { params(path: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
919
+ def sorbet_intro_commit(path: T.unsafe(nil)); end
920
+
921
+ sig { params(path: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
922
+ def sorbet_removal_commit(path: T.unsafe(nil)); end
923
+
924
+ sig { params(path: ::String).returns(T::Boolean) }
925
+ def workdir_clean?(path: T.unsafe(nil)); end
926
+ end
927
+ end
928
+
929
+ class Spoom::Git::Commit < ::T::Struct
930
+ const :sha, ::String
931
+ const :time, ::Time
932
+
933
+ sig { returns(::Integer) }
934
+ def timestamp; end
935
+
936
+ class << self
937
+ def inherited(s); end
938
+ end
939
+ end
940
+
941
+ module Spoom::LSP; end
942
+
943
+ class Spoom::LSP::Client
944
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
945
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
946
+
947
+ sig { void }
948
+ def close; end
949
+
950
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
951
+ def definitions(uri, line, column); end
952
+
953
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
954
+ def document_symbols(uri); end
955
+
956
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
957
+ def hover(uri, line, column); end
958
+
959
+ sig { returns(::Integer) }
960
+ def next_id; end
961
+
962
+ sig { params(workspace_path: ::String).void }
963
+ def open(workspace_path); end
964
+
965
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
966
+ def read; end
967
+
968
+ sig { returns(T.nilable(::String)) }
969
+ def read_raw; end
970
+
971
+ sig do
972
+ params(
973
+ uri: ::String,
974
+ line: ::Integer,
975
+ column: ::Integer,
976
+ include_decl: T::Boolean
977
+ ).returns(T::Array[::Spoom::LSP::Location])
978
+ end
979
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
980
+
981
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
982
+ def send(message); end
983
+
984
+ sig { params(json_string: ::String).void }
985
+ def send_raw(json_string); end
986
+
987
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
988
+ def signatures(uri, line, column); end
989
+
990
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
991
+ def symbols(query); end
992
+
993
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
994
+ def type_definitions(uri, line, column); end
995
+ end
996
+
997
+ class Spoom::LSP::Diagnostic < ::T::Struct
998
+ include ::Spoom::LSP::PrintableSymbol
999
+
1000
+ const :range, ::Spoom::LSP::Range
1001
+ const :code, ::Integer
1002
+ const :message, ::String
1003
+ const :informations, ::Object
1004
+
1005
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1006
+ def accept_printer(printer); end
1007
+
1008
+ sig { returns(::String) }
1009
+ def to_s; end
1010
+
1011
+ class << self
1012
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
1013
+ def from_json(json); end
1014
+
1015
+ def inherited(s); end
1016
+ end
1017
+ end
1018
+
1019
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
1020
+ include ::Spoom::LSP::PrintableSymbol
1021
+
1022
+ const :name, ::String
1023
+ const :detail, T.nilable(::String)
1024
+ const :kind, ::Integer
1025
+ const :location, T.nilable(::Spoom::LSP::Location)
1026
+ const :range, T.nilable(::Spoom::LSP::Range)
1027
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
1028
+
1029
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1030
+ def accept_printer(printer); end
1031
+
1032
+ sig { returns(::String) }
1033
+ def kind_string; end
1034
+
1035
+ sig { returns(::String) }
1036
+ def to_s; end
1037
+
1038
+ class << self
1039
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
1040
+ def from_json(json); end
1041
+
1042
+ def inherited(s); end
1043
+ end
1044
+ end
1045
+
1046
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
1047
+ class Spoom::LSP::Error < ::StandardError; end
1048
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
1049
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
1050
+
1051
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
1052
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
1053
+ def initialize(uri, diagnostics); end
1054
+
1055
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
1056
+ def diagnostics; end
1057
+
1058
+ sig { returns(::String) }
1059
+ def uri; end
1060
+
1061
+ class << self
1062
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
1063
+ def from_json(json); end
1064
+ end
1065
+ end
1066
+
1067
+ class Spoom::LSP::Hover < ::T::Struct
1068
+ include ::Spoom::LSP::PrintableSymbol
1069
+
1070
+ const :contents, ::String
1071
+ const :range, T.nilable(T::Range[T.untyped])
1072
+
1073
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1074
+ def accept_printer(printer); end
1075
+
1076
+ sig { returns(::String) }
1077
+ def to_s; end
1078
+
1079
+ class << self
1080
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
1081
+ def from_json(json); end
1082
+
1083
+ def inherited(s); end
1084
+ end
1085
+ end
1086
+
1087
+ class Spoom::LSP::Location < ::T::Struct
1088
+ include ::Spoom::LSP::PrintableSymbol
1089
+
1090
+ const :uri, ::String
1091
+ const :range, ::Spoom::LSP::Range
1092
+
1093
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1094
+ def accept_printer(printer); end
1095
+
1096
+ sig { returns(::String) }
1097
+ def to_s; end
1098
+
1099
+ class << self
1100
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
1101
+ def from_json(json); end
1102
+
1103
+ def inherited(s); end
1104
+ end
1105
+ end
1106
+
1107
+ class Spoom::LSP::Message
1108
+ sig { void }
1109
+ def initialize; end
1110
+
1111
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1112
+ def as_json; end
1113
+
1114
+ sig { returns(::String) }
1115
+ def jsonrpc; end
1116
+
1117
+ sig { params(args: T.untyped).returns(::String) }
1118
+ def to_json(*args); end
1119
+ end
1120
+
1121
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
1122
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1123
+ def initialize(method, params); end
1124
+
1125
+ sig { returns(::String) }
1126
+ def method; end
1127
+
1128
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1129
+ def params; end
1130
+ end
1131
+
1132
+ class Spoom::LSP::Position < ::T::Struct
1133
+ include ::Spoom::LSP::PrintableSymbol
1134
+
1135
+ const :line, ::Integer
1136
+ const :char, ::Integer
1137
+
1138
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1139
+ def accept_printer(printer); end
1140
+
1141
+ sig { returns(::String) }
1142
+ def to_s; end
1143
+
1144
+ class << self
1145
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
1146
+ def from_json(json); end
1147
+
1148
+ def inherited(s); end
1149
+ end
1150
+ end
1151
+
1152
+ module Spoom::LSP::PrintableSymbol
1153
+ interface!
1154
+
1155
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1156
+ def accept_printer(printer); end
1157
+ end
1158
+
1159
+ class Spoom::LSP::Range < ::T::Struct
1160
+ include ::Spoom::LSP::PrintableSymbol
1161
+
1162
+ const :start, ::Spoom::LSP::Position
1163
+ const :end, ::Spoom::LSP::Position
1164
+
1165
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1166
+ def accept_printer(printer); end
1167
+
1168
+ sig { returns(::String) }
1169
+ def to_s; end
1170
+
1171
+ class << self
1172
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
1173
+ def from_json(json); end
1174
+
1175
+ def inherited(s); end
1176
+ end
1177
+ end
1178
+
1179
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
1180
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1181
+ def initialize(id, method, params); end
1182
+
1183
+ sig { returns(::Integer) }
1184
+ def id; end
1185
+
1186
+ sig { returns(::String) }
1187
+ def method; end
1188
+
1189
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1190
+ def params; end
1191
+ end
1192
+
1193
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
1194
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
1195
+ def initialize(code, message, data); end
1196
+
1197
+ sig { returns(::Integer) }
1198
+ def code; end
1199
+
1200
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1201
+ def data; end
1202
+
1203
+ class << self
1204
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
1205
+ def from_json(json); end
1206
+ end
1207
+ end
1208
+
1209
+ class Spoom::LSP::SignatureHelp < ::T::Struct
1210
+ include ::Spoom::LSP::PrintableSymbol
1211
+
1212
+ const :label, T.nilable(::String)
1213
+ const :doc, ::Object
1214
+ const :params, T::Array[T.untyped]
1215
+
1216
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1217
+ def accept_printer(printer); end
1218
+
1219
+ sig { returns(::String) }
1220
+ def to_s; end
1221
+
1222
+ class << self
1223
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
1224
+ def from_json(json); end
1225
+
1226
+ def inherited(s); end
1227
+ end
1228
+ end
1229
+
1230
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
1231
+ sig do
1232
+ params(
1233
+ out: T.any(::IO, ::StringIO),
1234
+ colors: T::Boolean,
1235
+ indent_level: ::Integer,
1236
+ prefix: T.nilable(::String)
1237
+ ).void
1238
+ end
1239
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
1240
+
1241
+ sig { params(uri: ::String).returns(::String) }
1242
+ def clean_uri(uri); end
1243
+
1244
+ sig { returns(T.nilable(::String)) }
1245
+ def prefix; end
1246
+
1247
+ sig { params(prefix: T.nilable(::String)).returns(T.nilable(::String)) }
1248
+ def prefix=(prefix); end
1249
+
1250
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
1251
+ def print_list(objects); end
1252
+
1253
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
1254
+ def print_object(object); end
1255
+
1256
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
1257
+ def print_objects(objects); end
1258
+
1259
+ sig { returns(T::Set[::Integer]) }
1260
+ def seen; end
1261
+
1262
+ sig { params(seen: T::Set[::Integer]).returns(T::Set[::Integer]) }
1263
+ def seen=(seen); end
1264
+ end
1265
+
1266
+ class Spoom::Printer
1267
+ include ::Spoom::Colorize
1268
+
1269
+ abstract!
1270
+
1271
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1272
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1273
+
1274
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
1275
+ def colorize(string, *color); end
1276
+
1277
+ sig { void }
1278
+ def dedent; end
1279
+
1280
+ sig { void }
1281
+ def indent; end
1282
+
1283
+ sig { returns(T.any(::IO, ::StringIO)) }
1284
+ def out; end
1285
+
1286
+ sig { params(out: T.any(::IO, ::StringIO)).returns(T.any(::IO, ::StringIO)) }
1287
+ def out=(out); end
1288
+
1289
+ sig { params(string: T.nilable(::String)).void }
1290
+ def print(string); end
1291
+
1292
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
1293
+ def print_colored(string, *color); end
1294
+
1295
+ sig { params(string: T.nilable(::String)).void }
1296
+ def printl(string); end
1297
+
1298
+ sig { void }
1299
+ def printn; end
1300
+
1301
+ sig { void }
1302
+ def printt; end
1303
+ end
1304
+
1305
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
1306
+
1307
+ module Spoom::Sorbet
1308
+ class << self
1309
+ sig do
1310
+ params(
1311
+ arg: ::String,
1312
+ path: ::String,
1313
+ capture_err: T::Boolean,
1314
+ sorbet_bin: T.nilable(::String)
1315
+ ).returns(::Spoom::ExecResult)
1316
+ end
1317
+ def srb(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1318
+
1319
+ sig { params(config: ::Spoom::Sorbet::Config, path: ::String).returns(T::Array[::String]) }
1320
+ def srb_files(config, path: T.unsafe(nil)); end
1321
+
1322
+ sig do
1323
+ params(
1324
+ arg: ::String,
1325
+ path: ::String,
1326
+ capture_err: T::Boolean,
1327
+ sorbet_bin: T.nilable(::String)
1328
+ ).returns(T.nilable(T::Hash[::String, ::Integer]))
1329
+ end
1330
+ def srb_metrics(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1331
+
1332
+ sig do
1333
+ params(
1334
+ arg: ::String,
1335
+ path: ::String,
1336
+ capture_err: T::Boolean,
1337
+ sorbet_bin: T.nilable(::String)
1338
+ ).returns(::Spoom::ExecResult)
1339
+ end
1340
+ def srb_tc(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1341
+
1342
+ sig do
1343
+ params(
1344
+ arg: ::String,
1345
+ path: ::String,
1346
+ capture_err: T::Boolean,
1347
+ sorbet_bin: T.nilable(::String)
1348
+ ).returns(T.nilable(::String))
1349
+ end
1350
+ def srb_version(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1351
+
1352
+ sig { params(gem: ::String, path: ::String).returns(T.nilable(::String)) }
1353
+ def version_from_gemfile_lock(gem: T.unsafe(nil), path: T.unsafe(nil)); end
1354
+ end
1355
+ end
1356
+
1357
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
1358
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
1359
+
1360
+ class Spoom::Sorbet::Config
1361
+ sig { void }
1362
+ def initialize; end
1363
+
1364
+ def allowed_extensions; end
1365
+
1366
+ sig { returns(::Spoom::Sorbet::Config) }
1367
+ def copy; end
1368
+
1369
+ def ignore; end
1370
+
1371
+ sig { returns(T::Boolean) }
1372
+ def no_stdlib; end
1373
+
1374
+ sig { params(no_stdlib: T::Boolean).returns(T::Boolean) }
1375
+ def no_stdlib=(no_stdlib); end
1376
+
1377
+ sig { returns(::String) }
1378
+ def options_string; end
1379
+
1380
+ sig { returns(T::Array[::String]) }
1381
+ def paths; end
1382
+
1383
+ class << self
1384
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
1385
+ def parse_file(sorbet_config_path); end
1386
+
1387
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
1388
+ def parse_string(sorbet_config); end
1389
+
1390
+ private
1391
+
1392
+ sig { params(line: ::String).returns(::String) }
1393
+ def parse_option(line); end
1394
+ end
1395
+ end
1396
+
1397
+ module Spoom::Sorbet::Errors
1398
+ class << self
1399
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
1400
+ def sort_errors_by_code(errors); end
1401
+ end
1402
+ end
1403
+
1404
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
1405
+
1406
+ class Spoom::Sorbet::Errors::Error
1407
+ include ::Comparable
1408
+
1409
+ sig do
1410
+ params(
1411
+ file: T.nilable(::String),
1412
+ line: T.nilable(::Integer),
1413
+ message: T.nilable(::String),
1414
+ code: T.nilable(::Integer),
1415
+ more: T::Array[::String]
1416
+ ).void
1417
+ end
1418
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
1419
+
1420
+ sig { params(other: T.untyped).returns(::Integer) }
1421
+ def <=>(other); end
1422
+
1423
+ def code; end
1424
+
1425
+ sig { returns(T.nilable(::String)) }
1426
+ def file; end
1427
+
1428
+ sig { returns(T::Set[::String]) }
1429
+ def files_from_error_sections; end
1430
+
1431
+ sig { returns(T.nilable(::Integer)) }
1432
+ def line; end
1433
+
1434
+ def message; end
1435
+
1436
+ sig { returns(T::Array[::String]) }
1437
+ def more; end
1438
+
1439
+ sig { returns(::String) }
1440
+ def to_s; end
1441
+ end
1442
+
1443
+ class Spoom::Sorbet::Errors::Parser
1444
+ sig { params(error_url_base: ::String).void }
1445
+ def initialize(error_url_base: T.unsafe(nil)); end
1446
+
1447
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
1448
+ def parse(output); end
1449
+
1450
+ private
1451
+
1452
+ sig { params(line: ::String).void }
1453
+ def append_error(line); end
1454
+
1455
+ sig { void }
1456
+ def close_error; end
1457
+
1458
+ sig { params(error_url_base: ::String).returns(::Regexp) }
1459
+ def error_line_match_regexp(error_url_base); end
1460
+
1461
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
1462
+ def match_error_line(line); end
1463
+
1464
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
1465
+ def open_error(error); end
1466
+
1467
+ class << self
1468
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
1469
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
1470
+ end
1471
+ end
1472
+
1473
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
1474
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
1475
+
1476
+ module Spoom::Sorbet::MetricsParser
1477
+ class << self
1478
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
1479
+ def parse_file(path, prefix = T.unsafe(nil)); end
1480
+
1481
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
1482
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
1483
+
1484
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
1485
+ def parse_string(string, prefix = T.unsafe(nil)); end
1486
+ end
1487
+ end
1488
+
1489
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
1490
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
1491
+
1492
+ module Spoom::Sorbet::Sigils
1493
+ class << self
1494
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
1495
+ def change_sigil_in_file(path, new_strictness); end
1496
+
1497
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
1498
+ def change_sigil_in_files(path_list, new_strictness); end
1499
+
1500
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
1501
+ def file_strictness(path); end
1502
+
1503
+ sig do
1504
+ params(
1505
+ directory: T.any(::Pathname, ::String),
1506
+ strictness: ::String,
1507
+ extension: ::String
1508
+ ).returns(T::Array[::String])
1509
+ end
1510
+ def files_with_sigil_strictness(directory, strictness, extension: T.unsafe(nil)); end
1511
+
1512
+ sig { params(strictness: ::String).returns(::String) }
1513
+ def sigil_string(strictness); end
1514
+
1515
+ sig { params(content: ::String).returns(T.nilable(::String)) }
1516
+ def strictness_in_content(content); end
1517
+
1518
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
1519
+ def update_sigil(content, new_strictness); end
1520
+
1521
+ sig { params(strictness: ::String).returns(T::Boolean) }
1522
+ def valid_strictness?(strictness); end
1523
+ end
1524
+ end
1525
+
1526
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
1527
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
1528
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
1529
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
1530
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
1531
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
1532
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
1533
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
1534
+
1535
+ class Spoom::Timeline
1536
+ sig { params(from: ::Time, to: ::Time, path: ::String).void }
1537
+ def initialize(from, to, path: T.unsafe(nil)); end
1538
+
1539
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
1540
+ def commits_for_dates(dates); end
1541
+
1542
+ sig { returns(T::Array[::Time]) }
1543
+ def months; end
1544
+
1545
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
1546
+ def ticks; end
1547
+ end
1548
+
1549
+ Spoom::VERSION = T.let(T.unsafe(nil), String)