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,1718 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `tapioca` gem.
5
+ # Please instead update this file by running `bin/tapioca gem tapioca`.
6
+
7
+ class Module
8
+ def autoload(const_name, path); end
9
+ end
10
+
11
+ module RBI; end
12
+
13
+ class RBI::Tree < ::RBI::NodeWithComments
14
+ sig do
15
+ params(
16
+ loc: T.nilable(::RBI::Loc),
17
+ comments: T::Array[::RBI::Comment],
18
+ block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
19
+ ).void
20
+ end
21
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
22
+
23
+ sig { params(node: ::RBI::Node).void }
24
+ def <<(node); end
25
+
26
+ sig { override.params(v: ::RBI::Printer).void }
27
+ def accept_printer(v); end
28
+
29
+ sig { params(with_todo_comment: T::Boolean).void }
30
+ def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
31
+
32
+ sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
33
+ def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
34
+
35
+ sig do
36
+ params(
37
+ name: ::String,
38
+ superclass_name: T.nilable(::String),
39
+ block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)
40
+ ).returns(::RBI::Scope)
41
+ end
42
+ def create_class(name, superclass_name: T.unsafe(nil), &block); end
43
+
44
+ sig { params(name: ::String, value: ::String).void }
45
+ def create_constant(name, value:); end
46
+
47
+ sig { params(name: ::String).void }
48
+ def create_extend(name); end
49
+
50
+ sig { params(name: ::String).void }
51
+ def create_include(name); end
52
+
53
+ sig do
54
+ params(
55
+ name: ::String,
56
+ parameters: T::Array[::RBI::TypedParam],
57
+ return_type: ::String,
58
+ class_method: T::Boolean,
59
+ visibility: ::RBI::Visibility
60
+ ).void
61
+ end
62
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil)); end
63
+
64
+ sig { params(name: ::String).void }
65
+ def create_mixes_in_class_methods(name); end
66
+
67
+ sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
68
+ def create_module(name, &block); end
69
+
70
+ sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).void }
71
+ def create_path(constant, &block); end
72
+
73
+ sig do
74
+ params(
75
+ name: ::String,
76
+ type: ::String,
77
+ variance: ::Symbol,
78
+ fixed: T.nilable(::String),
79
+ upper: T.nilable(::String),
80
+ lower: T.nilable(::String)
81
+ ).void
82
+ end
83
+ def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
84
+
85
+ sig { params(annotation: ::String).void }
86
+ def deannotate!(annotation); end
87
+
88
+ sig { returns(T::Boolean) }
89
+ def empty?; end
90
+
91
+ sig { void }
92
+ def group_nodes!; end
93
+
94
+ sig { returns(::RBI::Index) }
95
+ def index; end
96
+
97
+ sig do
98
+ params(
99
+ other: ::RBI::Tree,
100
+ left_name: ::String,
101
+ right_name: ::String,
102
+ keep: ::RBI::Rewriters::Merge::Keep
103
+ ).returns(::RBI::MergeTree)
104
+ end
105
+ def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
106
+
107
+ sig { void }
108
+ def nest_non_public_methods!; end
109
+
110
+ sig { void }
111
+ def nest_singleton_methods!; end
112
+
113
+ sig { returns(T::Array[::RBI::Node]) }
114
+ def nodes; end
115
+
116
+ sig { override.returns(T::Boolean) }
117
+ def oneline?; end
118
+
119
+ sig { void }
120
+ def sort_nodes!; end
121
+
122
+ private
123
+
124
+ sig { params(node: ::RBI::Node).returns(::RBI::Node) }
125
+ def create_node(node); end
126
+
127
+ sig { returns(T::Hash[::String, ::RBI::Node]) }
128
+ def nodes_cache; end
129
+
130
+ sig { params(name: ::String).returns(T::Boolean) }
131
+ def valid_method_name?(name); end
132
+ end
133
+
134
+ RBI::Tree::SPECIAL_METHOD_NAMES = T.let(T.unsafe(nil), Array)
135
+
136
+ class RBI::TypedParam < ::T::Struct
137
+ const :param, ::RBI::Param
138
+ const :type, ::String
139
+
140
+ class << self
141
+ def inherited(s); end
142
+ end
143
+ end
144
+
145
+ RBI::VERSION = T.let(T.unsafe(nil), String)
146
+
147
+ module T::Generic::TypeStoragePatch
148
+ def [](*types); end
149
+ def type_member(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
150
+ def type_template(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
151
+ end
152
+
153
+ module T::Types::Simple::GenericPatch
154
+ def name; end
155
+ end
156
+
157
+ module T::Types::Simple::NamePatch
158
+ def name; end
159
+ end
160
+
161
+ module T::Utils::CoercePatch
162
+ def coerce(val); end
163
+ end
164
+
165
+ module Tapioca
166
+ class << self
167
+ sig do
168
+ type_parameters(:Result)
169
+ .params(
170
+ blk: T.proc.returns(T.type_parameter(:Result))
171
+ ).returns(T.type_parameter(:Result))
172
+ end
173
+ def silence_warnings(&blk); end
174
+ end
175
+ end
176
+
177
+ Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
178
+
179
+ class Tapioca::Cli < ::Thor
180
+ include ::Tapioca::CliHelper
181
+ include ::Tapioca::ConfigHelper
182
+ include ::Tapioca::ShimsHelper
183
+
184
+ def __print_version; end
185
+ def check_shims; end
186
+ def dsl(*constants); end
187
+ def gem(*gems); end
188
+ def init; end
189
+ def require; end
190
+ def todo; end
191
+
192
+ class << self
193
+ def exit_on_failure?; end
194
+ end
195
+ end
196
+
197
+ Tapioca::Cli::FILE_HEADER_OPTION_DESC = T.let(T.unsafe(nil), String)
198
+
199
+ module Tapioca::CliHelper
200
+ requires_ancestor { Thor::Shell }
201
+
202
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(::Tapioca::RBIFormatter) }
203
+ def rbi_formatter(options); end
204
+
205
+ sig { params(message: ::String, color: T.any(::Symbol, T::Array[::Symbol])).void }
206
+ def say_error(message = T.unsafe(nil), *color); end
207
+ end
208
+
209
+ module Tapioca::Commands; end
210
+
211
+ class Tapioca::Commands::Command
212
+ include ::Thor::Base
213
+ include ::Thor::Invocation
214
+ include ::Thor::Shell
215
+ include ::Tapioca::CliHelper
216
+ extend ::Thor::Base::ClassMethods
217
+ extend ::Thor::Invocation::ClassMethods
218
+
219
+ abstract!
220
+
221
+ sig { void }
222
+ def initialize; end
223
+
224
+ sig { abstract.void }
225
+ def execute; end
226
+
227
+ sig { returns(::Thor::Actions) }
228
+ def file_writer; end
229
+
230
+ private
231
+
232
+ sig do
233
+ params(
234
+ path: T.any(::Pathname, ::String),
235
+ content: ::String,
236
+ force: T::Boolean,
237
+ skip: T::Boolean,
238
+ verbose: T::Boolean
239
+ ).void
240
+ end
241
+ def create_file(path, content, force: T.unsafe(nil), skip: T.unsafe(nil), verbose: T.unsafe(nil)); end
242
+
243
+ sig { params(command: ::Symbol, args: ::String).returns(::String) }
244
+ def default_command(command, *args); end
245
+
246
+ sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void }
247
+ def remove_file(path, verbose: T.unsafe(nil)); end
248
+ end
249
+
250
+ class Tapioca::Commands::Command::FileWriter < ::Thor
251
+ include ::Thor::Actions
252
+ extend ::Thor::Actions::ClassMethods
253
+ end
254
+
255
+ class Tapioca::Commands::Dsl < ::Tapioca::Commands::Command
256
+ sig do
257
+ params(
258
+ requested_constants: T::Array[::String],
259
+ outpath: ::Pathname,
260
+ only: T::Array[::String],
261
+ exclude: T::Array[::String],
262
+ file_header: T::Boolean,
263
+ compiler_path: ::String,
264
+ tapioca_path: ::String,
265
+ should_verify: T::Boolean,
266
+ quiet: T::Boolean,
267
+ verbose: T::Boolean,
268
+ number_of_workers: T.nilable(::Integer),
269
+ rbi_formatter: ::Tapioca::RBIFormatter
270
+ ).void
271
+ end
272
+ def initialize(requested_constants:, outpath:, only:, exclude:, file_header:, compiler_path:, tapioca_path:, should_verify: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), rbi_formatter: T.unsafe(nil)); end
273
+
274
+ sig { override.void }
275
+ def execute; end
276
+
277
+ private
278
+
279
+ sig { void }
280
+ def abort_if_pending_migrations!; end
281
+
282
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
283
+ def build_error_for_files(cause, files); end
284
+
285
+ sig do
286
+ params(
287
+ constant_name: ::String,
288
+ rbi: ::RBI::File,
289
+ outpath: ::Pathname,
290
+ quiet: T::Boolean
291
+ ).returns(T.nilable(::Pathname))
292
+ end
293
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
294
+
295
+ sig { params(constant_names: T::Array[::String]).returns(T::Array[::Module]) }
296
+ def constantize(constant_names); end
297
+
298
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
299
+ def constantize_compilers(compiler_names); end
300
+
301
+ sig { params(constant_name: ::String).returns(::Pathname) }
302
+ def dsl_rbi_filename(constant_name); end
303
+
304
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
305
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
306
+
307
+ sig { params(constant: ::String).returns(::String) }
308
+ def generate_command_for(constant); end
309
+
310
+ sig { params(eager_load: T::Boolean).void }
311
+ def load_application(eager_load:); end
312
+
313
+ sig { void }
314
+ def load_dsl_compilers; end
315
+
316
+ sig { void }
317
+ def load_dsl_extensions; end
318
+
319
+ sig { returns(::Tapioca::Runtime::Loader) }
320
+ def loader; end
321
+
322
+ sig { params(dir: ::Pathname).void }
323
+ def perform_dsl_verification(dir); end
324
+
325
+ sig { params(files: T::Set[::Pathname]).void }
326
+ def purge_stale_dsl_rbi_files(files); end
327
+
328
+ sig { params(constant: ::String).returns(::String) }
329
+ def rbi_filename_for(constant); end
330
+
331
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
332
+ def rbi_files_in(path); end
333
+
334
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
335
+ def report_diff_and_exit_if_out_of_date(diff, command); end
336
+
337
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
338
+ def resolve(name); end
339
+
340
+ sig { params(class_name: ::String).returns(::String) }
341
+ def underscore(class_name); end
342
+
343
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
344
+ def verify_dsl_rbi(tmp_dir:); end
345
+ end
346
+
347
+ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
348
+ include ::Tapioca::SorbetHelper
349
+
350
+ sig do
351
+ params(
352
+ gem_names: T::Array[::String],
353
+ exclude: T::Array[::String],
354
+ prerequire: T.nilable(::String),
355
+ postrequire: ::String,
356
+ typed_overrides: T::Hash[::String, ::String],
357
+ outpath: ::Pathname,
358
+ file_header: T::Boolean,
359
+ doc: T::Boolean,
360
+ include_exported_rbis: T::Boolean,
361
+ number_of_workers: T.nilable(::Integer),
362
+ auto_strictness: T::Boolean,
363
+ dsl_dir: ::String,
364
+ rbi_formatter: ::Tapioca::RBIFormatter
365
+ ).void
366
+ end
367
+ def initialize(gem_names:, exclude:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, doc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil)); end
368
+
369
+ sig { override.void }
370
+ def execute; end
371
+
372
+ sig { params(should_verify: T::Boolean).void }
373
+ def sync(should_verify: T.unsafe(nil)); end
374
+
375
+ private
376
+
377
+ sig { returns(T::Array[::String]) }
378
+ def added_rbis; end
379
+
380
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
381
+ def build_error_for_files(cause, files); end
382
+
383
+ sig { returns(::Tapioca::Gemfile) }
384
+ def bundle; end
385
+
386
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
387
+ def compile_gem_rbi(gem); end
388
+
389
+ sig { params(gem_name: ::String).returns(::Pathname) }
390
+ def existing_rbi(gem_name); end
391
+
392
+ sig { returns(T::Hash[::String, ::String]) }
393
+ def existing_rbis; end
394
+
395
+ sig { params(gem_name: ::String).returns(::Pathname) }
396
+ def expected_rbi(gem_name); end
397
+
398
+ sig { returns(T::Hash[::String, ::String]) }
399
+ def expected_rbis; end
400
+
401
+ sig { params(file: ::String, error: ::LoadError).void }
402
+ def explain_failed_require(file, error); end
403
+
404
+ sig { params(path: ::String).returns(::String) }
405
+ def gem_name_from_rbi_path(path); end
406
+
407
+ sig { params(gem_name: ::String).returns(T::Boolean) }
408
+ def gem_rbi_exists?(gem_name); end
409
+
410
+ sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
411
+ def gem_rbi_filename(gem_name, version); end
412
+
413
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
414
+ def gems_to_generate(gem_names); end
415
+
416
+ sig { returns(::Tapioca::Runtime::Loader) }
417
+ def loader; end
418
+
419
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
420
+ def merge_with_exported_rbi(gem, file); end
421
+
422
+ sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
423
+ def move(old_filename, new_filename); end
424
+
425
+ sig { void }
426
+ def perform_additions; end
427
+
428
+ sig { void }
429
+ def perform_removals; end
430
+
431
+ sig { void }
432
+ def perform_sync_verification; end
433
+
434
+ sig { returns(T::Array[::String]) }
435
+ def removed_rbis; end
436
+
437
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
438
+ def report_diff_and_exit_if_out_of_date(diff, command); end
439
+
440
+ sig { void }
441
+ def require_gem_file; end
442
+
443
+ sig { params(gem_names: T::Array[::String], gem_dir: ::String, dsl_dir: ::String).void }
444
+ def update_strictnesses(gem_names, gem_dir: T.unsafe(nil), dsl_dir: T.unsafe(nil)); end
445
+ end
446
+
447
+ class Tapioca::Commands::Init < ::Tapioca::Commands::Command
448
+ sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void }
449
+ def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end
450
+
451
+ sig { override.void }
452
+ def execute; end
453
+
454
+ private
455
+
456
+ sig { void }
457
+ def create_binstub; end
458
+
459
+ sig { void }
460
+ def create_post_require; end
461
+
462
+ sig { void }
463
+ def create_sorbet_config; end
464
+
465
+ sig { void }
466
+ def create_tapioca_config; end
467
+
468
+ sig { returns(::Bundler::Installer) }
469
+ def installer; end
470
+
471
+ sig { returns(::Bundler::StubSpecification) }
472
+ def spec; end
473
+ end
474
+
475
+ class Tapioca::Commands::Require < ::Tapioca::Commands::Command
476
+ sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
477
+ def initialize(requires_path:, sorbet_config_path:); end
478
+
479
+ sig { override.void }
480
+ def execute; end
481
+ end
482
+
483
+ class Tapioca::Commands::Todo < ::Tapioca::Commands::Command
484
+ include ::Tapioca::SorbetHelper
485
+
486
+ sig { params(todo_file: ::String, file_header: T::Boolean).void }
487
+ def initialize(todo_file:, file_header:); end
488
+
489
+ sig { override.void }
490
+ def execute; end
491
+
492
+ private
493
+
494
+ sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
495
+ def rbi(constants, command:); end
496
+
497
+ sig { returns(T::Array[::String]) }
498
+ def unresolved_constants; end
499
+ end
500
+
501
+ module Tapioca::ConfigHelper
502
+ requires_ancestor { Thor }
503
+
504
+ sig { params(args: T.untyped, local_options: T.untyped, config: T.untyped).void }
505
+ def initialize(args = T.unsafe(nil), local_options = T.unsafe(nil), config = T.unsafe(nil)); end
506
+
507
+ sig { returns(::String) }
508
+ def command_name; end
509
+
510
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
511
+ def defaults; end
512
+
513
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
514
+ def options; end
515
+
516
+ private
517
+
518
+ sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
519
+ def build_error(msg); end
520
+
521
+ sig do
522
+ params(
523
+ options: ::Thor::CoreExt::HashWithIndifferentAccess
524
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
525
+ end
526
+ def config_options(options); end
527
+
528
+ sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
529
+ def filter_defaults(options); end
530
+
531
+ sig do
532
+ params(
533
+ options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
534
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
535
+ end
536
+ def merge_options(*options); end
537
+
538
+ sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).void }
539
+ def print_errors(config_file, errors); end
540
+
541
+ sig { params(config_file: ::String, config: T::Hash[T.untyped, T.untyped]).void }
542
+ def validate_config!(config_file, config); end
543
+
544
+ sig do
545
+ params(
546
+ command_options: T::Hash[::Symbol, ::Thor::Option],
547
+ config_key: ::String,
548
+ config_options: T::Hash[T.untyped, T.untyped]
549
+ ).returns(T::Array[::Tapioca::ConfigHelper::ConfigError])
550
+ end
551
+ def validate_config_options(command_options, config_key, config_options); end
552
+ end
553
+
554
+ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
555
+ const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
556
+
557
+ class << self
558
+ def inherited(s); end
559
+ end
560
+ end
561
+
562
+ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
563
+ const :message, ::String
564
+ const :colors, T::Array[::Symbol]
565
+
566
+ class << self
567
+ def inherited(s); end
568
+ end
569
+ end
570
+
571
+ Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
572
+ Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
573
+ Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
574
+ Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
575
+ Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
576
+ Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
577
+ Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
578
+ Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
579
+ module Tapioca::Dsl; end
580
+
581
+ class Tapioca::Dsl::Compiler
582
+ extend T::Generic
583
+ include ::Tapioca::Runtime::Reflection
584
+ include ::Tapioca::SignaturesHelper
585
+ include ::Tapioca::Dsl::Helpers::ParamHelper
586
+ extend ::Tapioca::Runtime::Reflection
587
+
588
+ abstract!
589
+
590
+ ConstantType = type_member { { upper: Module } }
591
+
592
+ sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
593
+ def initialize(pipeline, root, constant); end
594
+
595
+ sig { params(error: ::String).void }
596
+ def add_error(error); end
597
+
598
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
599
+ def compiler_enabled?(compiler_name); end
600
+
601
+ sig { returns(ConstantType) }
602
+ def constant; end
603
+
604
+ sig { abstract.void }
605
+ def decorate; end
606
+
607
+ sig { returns(::RBI::Tree) }
608
+ def root; end
609
+
610
+ private
611
+
612
+ sig { params(type: ::String).returns(::String) }
613
+ def as_nilable_type(type); end
614
+
615
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
616
+ def compile_method_parameters_to_rbi(method_def); end
617
+
618
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
619
+ def compile_method_return_type_to_rbi(method_def); end
620
+
621
+ sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
622
+ def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
623
+
624
+ sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
625
+ def parameters_types_from_signature(method_def, signature); end
626
+
627
+ sig { params(name: ::String).returns(T::Boolean) }
628
+ def valid_parameter_name?(name); end
629
+
630
+ class << self
631
+ sig { abstract.returns(T::Enumerable[::Module]) }
632
+ def gather_constants; end
633
+
634
+ sig { params(constant: ::Module).returns(T::Boolean) }
635
+ def handles?(constant); end
636
+
637
+ sig { returns(T::Set[::Module]) }
638
+ def processable_constants; end
639
+
640
+ private
641
+
642
+ sig { returns(T::Enumerable[::Class]) }
643
+ def all_classes; end
644
+
645
+ sig { returns(T::Enumerable[::Module]) }
646
+ def all_modules; end
647
+ end
648
+ end
649
+
650
+ module Tapioca::Dsl::Compilers; end
651
+ Tapioca::Dsl::Compilers::DIRECTORY = T.let(T.unsafe(nil), String)
652
+ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
653
+ module Tapioca::Dsl::Helpers; end
654
+
655
+ module Tapioca::Dsl::Helpers::ParamHelper
656
+ include ::Tapioca::SignaturesHelper
657
+
658
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
659
+ def create_block_param(name, type:); end
660
+
661
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
662
+ def create_kw_opt_param(name, type:, default:); end
663
+
664
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
665
+ def create_kw_param(name, type:); end
666
+
667
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
668
+ def create_kw_rest_param(name, type:); end
669
+
670
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
671
+ def create_opt_param(name, type:, default:); end
672
+
673
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
674
+ def create_param(name, type:); end
675
+
676
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
677
+ def create_rest_param(name, type:); end
678
+
679
+ sig { params(param: ::RBI::Param, type: ::String).returns(::RBI::TypedParam) }
680
+ def create_typed_param(param, type); end
681
+ end
682
+
683
+ class Tapioca::Dsl::Pipeline
684
+ sig do
685
+ params(
686
+ requested_constants: T::Array[::Module],
687
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
688
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
689
+ error_handler: T.proc.params(error: ::String).void,
690
+ number_of_workers: T.nilable(::Integer)
691
+ ).void
692
+ end
693
+ def initialize(requested_constants:, requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), number_of_workers: T.unsafe(nil)); end
694
+
695
+ sig { params(error: ::String).void }
696
+ def add_error(error); end
697
+
698
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
699
+ def compiler_enabled?(compiler_name); end
700
+
701
+ sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
702
+ def compilers; end
703
+
704
+ sig { returns(T.proc.params(error: ::String).void) }
705
+ def error_handler; end
706
+
707
+ sig { returns(T::Array[::String]) }
708
+ def errors; end
709
+
710
+ sig { returns(T::Array[::Module]) }
711
+ def requested_constants; end
712
+
713
+ sig do
714
+ type_parameters(:T)
715
+ .params(
716
+ blk: T.proc.params(constant: ::Module, rbi: ::RBI::File).returns(T.type_parameter(:T))
717
+ ).returns(T::Array[T.type_parameter(:T)])
718
+ end
719
+ def run(&blk); end
720
+
721
+ private
722
+
723
+ sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
724
+ def filter_anonymous_and_reloaded_constants(constants); end
725
+
726
+ sig do
727
+ params(
728
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
729
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)]
730
+ ).returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)])
731
+ end
732
+ def gather_compilers(requested_compilers, excluded_compilers); end
733
+
734
+ sig { params(requested_constants: T::Array[::Module]).returns(T::Set[::Module]) }
735
+ def gather_constants(requested_constants); end
736
+
737
+ sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
738
+ def rbi_for_constant(constant); end
739
+
740
+ sig { params(error: ::String).returns(T.noreturn) }
741
+ def report_error(error); end
742
+ end
743
+
744
+ class Tapioca::Error < ::StandardError; end
745
+
746
+ class Tapioca::Executor
747
+ sig { params(queue: T::Array[T.untyped], number_of_workers: T.nilable(::Integer)).void }
748
+ def initialize(queue, number_of_workers: T.unsafe(nil)); end
749
+
750
+ sig do
751
+ type_parameters(:T)
752
+ .params(
753
+ block: T.proc.params(item: T.untyped).returns(T.type_parameter(:T))
754
+ ).returns(T::Array[T.type_parameter(:T)])
755
+ end
756
+ def run_in_parallel(&block); end
757
+ end
758
+
759
+ Tapioca::Executor::MINIMUM_ITEMS_PER_WORKER = T.let(T.unsafe(nil), Integer)
760
+ module Tapioca::Gem; end
761
+
762
+ class Tapioca::Gem::ConstNodeAdded < ::Tapioca::Gem::NodeAdded
763
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
764
+ def initialize(symbol, constant, node); end
765
+
766
+ sig { returns(::RBI::Const) }
767
+ def node; end
768
+ end
769
+
770
+ class Tapioca::Gem::ConstantFound < ::Tapioca::Gem::Event
771
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
772
+ def initialize(symbol, constant); end
773
+
774
+ sig { returns(::BasicObject) }
775
+ def constant; end
776
+
777
+ sig { returns(::String) }
778
+ def symbol; end
779
+ end
780
+
781
+ class Tapioca::Gem::Event
782
+ abstract!
783
+
784
+ def initialize(*args, **_arg1, &blk); end
785
+ end
786
+
787
+ module Tapioca::Gem::Listeners; end
788
+
789
+ class Tapioca::Gem::Listeners::Base
790
+ abstract!
791
+
792
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
793
+ def initialize(pipeline); end
794
+
795
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
796
+ def dispatch(event); end
797
+
798
+ private
799
+
800
+ sig { params(event: ::Tapioca::Gem::ConstNodeAdded).void }
801
+ def on_const(event); end
802
+
803
+ sig { params(event: ::Tapioca::Gem::MethodNodeAdded).void }
804
+ def on_method(event); end
805
+
806
+ sig { params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
807
+ def on_scope(event); end
808
+ end
809
+
810
+ class Tapioca::Gem::Listeners::DynamicMixins < ::Tapioca::Gem::Listeners::Base
811
+ include ::Tapioca::Runtime::Reflection
812
+
813
+ private
814
+
815
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
816
+ def on_scope(event); end
817
+ end
818
+
819
+ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
820
+ include ::Tapioca::Runtime::Reflection
821
+
822
+ private
823
+
824
+ sig { params(tree: ::RBI::Tree, module_name: ::String, mod: ::Module, for_visibility: T::Array[::Symbol]).void }
825
+ def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil)); end
826
+
827
+ sig do
828
+ params(
829
+ tree: ::RBI::Tree,
830
+ symbol_name: ::String,
831
+ constant: ::Module,
832
+ method: T.nilable(::UnboundMethod),
833
+ visibility: ::RBI::Visibility
834
+ ).void
835
+ end
836
+ def compile_method(tree, symbol_name, constant, method, visibility = T.unsafe(nil)); end
837
+
838
+ sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
839
+ def initialize_method_for(constant); end
840
+
841
+ sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
842
+ def method_names_by_visibility(mod); end
843
+
844
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
845
+ def on_scope(event); end
846
+
847
+ sig { params(constant: ::Module, method_name: ::String).returns(T::Boolean) }
848
+ def struct_method?(constant, method_name); end
849
+
850
+ sig { params(name: ::String).returns(T::Boolean) }
851
+ def valid_method_name?(name); end
852
+
853
+ sig { params(name: ::String).returns(T::Boolean) }
854
+ def valid_parameter_name?(name); end
855
+ end
856
+
857
+ Tapioca::Gem::Listeners::Methods::SPECIAL_METHOD_NAMES = T.let(T.unsafe(nil), Array)
858
+
859
+ class Tapioca::Gem::Listeners::Mixins < ::Tapioca::Gem::Listeners::Base
860
+ include ::Tapioca::Runtime::Reflection
861
+
862
+ private
863
+
864
+ sig do
865
+ params(
866
+ tree: ::RBI::Tree,
867
+ mods: T::Array[::Module],
868
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
869
+ ).void
870
+ end
871
+ def add_mixins(tree, mods, mixin_type); end
872
+
873
+ sig { params(mixin_name: ::String).returns(T::Boolean) }
874
+ def filtered_mixin?(mixin_name); end
875
+
876
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
877
+ def interesting_ancestors_of(constant); end
878
+
879
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
880
+ def on_scope(event); end
881
+ end
882
+
883
+ class Tapioca::Gem::Listeners::RemoveEmptyPayloadScopes < ::Tapioca::Gem::Listeners::Base
884
+ include ::Tapioca::Runtime::Reflection
885
+
886
+ private
887
+
888
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
889
+ def on_scope(event); end
890
+ end
891
+
892
+ class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
893
+ private
894
+
895
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
896
+ def on_scope(event); end
897
+ end
898
+
899
+ class Tapioca::Gem::Listeners::SorbetHelpers < ::Tapioca::Gem::Listeners::Base
900
+ include ::Tapioca::Runtime::Reflection
901
+
902
+ private
903
+
904
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
905
+ def on_scope(event); end
906
+ end
907
+
908
+ class Tapioca::Gem::Listeners::SorbetProps < ::Tapioca::Gem::Listeners::Base
909
+ private
910
+
911
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
912
+ def on_scope(event); end
913
+ end
914
+
915
+ class Tapioca::Gem::Listeners::SorbetRequiredAncestors < ::Tapioca::Gem::Listeners::Base
916
+ private
917
+
918
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
919
+ def on_scope(event); end
920
+ end
921
+
922
+ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Base
923
+ include ::Tapioca::Runtime::Reflection
924
+ include ::Tapioca::SignaturesHelper
925
+
926
+ private
927
+
928
+ sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
929
+ def compile_signature(signature, parameters); end
930
+
931
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
932
+ def on_method(event); end
933
+
934
+ sig { params(signature: T.untyped).returns(T::Boolean) }
935
+ def signature_final?(signature); end
936
+ end
937
+
938
+ Tapioca::Gem::Listeners::SorbetSignatures::TYPE_PARAMETER_MATCHER = T.let(T.unsafe(nil), Regexp)
939
+
940
+ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::Base
941
+ include ::Tapioca::Runtime::Reflection
942
+
943
+ private
944
+
945
+ sig { params(tree: ::RBI::Tree, constant: ::Module).void }
946
+ def compile_type_variable_declarations(tree, constant); end
947
+
948
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
949
+ def on_scope(event); end
950
+ end
951
+
952
+ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
953
+ include ::Tapioca::Runtime::Reflection
954
+
955
+ private
956
+
957
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
958
+ def on_scope(event); end
959
+ end
960
+
961
+ class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
962
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
963
+ def initialize(pipeline); end
964
+
965
+ private
966
+
967
+ sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
968
+ def documentation_comments(name, sigs: T.unsafe(nil)); end
969
+
970
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
971
+ def on_const(event); end
972
+
973
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
974
+ def on_method(event); end
975
+
976
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
977
+ def on_scope(event); end
978
+ end
979
+
980
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
981
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
982
+
983
+ class Tapioca::Gem::MethodNodeAdded < ::Tapioca::Gem::NodeAdded
984
+ sig do
985
+ params(
986
+ symbol: ::String,
987
+ constant: ::Module,
988
+ node: ::RBI::Method,
989
+ signature: T.untyped,
990
+ parameters: T::Array[[::Symbol, ::String]]
991
+ ).void
992
+ end
993
+ def initialize(symbol, constant, node, signature, parameters); end
994
+
995
+ sig { returns(::RBI::Method) }
996
+ def node; end
997
+
998
+ sig { returns(T::Array[[::Symbol, ::String]]) }
999
+ def parameters; end
1000
+
1001
+ sig { returns(T.untyped) }
1002
+ def signature; end
1003
+ end
1004
+
1005
+ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1006
+ abstract!
1007
+
1008
+ sig { params(symbol: ::String, constant: ::Module).void }
1009
+ def initialize(symbol, constant); end
1010
+
1011
+ sig { returns(::Module) }
1012
+ def constant; end
1013
+
1014
+ sig { returns(::String) }
1015
+ def symbol; end
1016
+ end
1017
+
1018
+ class Tapioca::Gem::Pipeline
1019
+ include ::Tapioca::Runtime::Reflection
1020
+ include ::Tapioca::SignaturesHelper
1021
+
1022
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean).void }
1023
+ def initialize(gem, include_doc: T.unsafe(nil)); end
1024
+
1025
+ sig { returns(::RBI::Tree) }
1026
+ def compile; end
1027
+
1028
+ sig { returns(::Tapioca::Gemfile::GemSpec) }
1029
+ def gem; end
1030
+
1031
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1032
+ def method_in_gem?(method); end
1033
+
1034
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1035
+ def name_of(constant); end
1036
+
1037
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1038
+ def push_const(symbol, constant, node); end
1039
+
1040
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1041
+ def push_constant(symbol, constant); end
1042
+
1043
+ sig do
1044
+ params(
1045
+ symbol: ::String,
1046
+ constant: ::Module,
1047
+ node: ::RBI::Method,
1048
+ signature: T.untyped,
1049
+ parameters: T::Array[[::Symbol, ::String]]
1050
+ ).void
1051
+ end
1052
+ def push_method(symbol, constant, node, signature, parameters); end
1053
+
1054
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1055
+ def push_scope(symbol, constant, node); end
1056
+
1057
+ sig { params(symbol: ::String).void }
1058
+ def push_symbol(symbol); end
1059
+
1060
+ sig { params(symbol_name: ::String).returns(T::Boolean) }
1061
+ def symbol_in_payload?(symbol_name); end
1062
+
1063
+ private
1064
+
1065
+ sig { params(name: ::String).void }
1066
+ def add_to_alias_namespace(name); end
1067
+
1068
+ sig { params(name: ::String).returns(T::Boolean) }
1069
+ def alias_namespaced?(name); end
1070
+
1071
+ sig { params(name: ::String, constant: ::Module).void }
1072
+ def compile_alias(name, constant); end
1073
+
1074
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1075
+ def compile_constant(symbol, constant); end
1076
+
1077
+ sig { params(name: ::String, constant: ::Module).void }
1078
+ def compile_module(name, constant); end
1079
+
1080
+ sig { params(name: ::String, value: ::BasicObject).void }
1081
+ def compile_object(name, value); end
1082
+
1083
+ sig { params(constant: ::Class).returns(T.nilable(::String)) }
1084
+ def compile_superclass(constant); end
1085
+
1086
+ sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
1087
+ def defined_in_gem?(constant, strict: T.unsafe(nil)); end
1088
+
1089
+ sig { params(event: ::Tapioca::Gem::Event).void }
1090
+ def dispatch(event); end
1091
+
1092
+ sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
1093
+ def generic_name_of(constant); end
1094
+
1095
+ sig { params(constant: ::Module).returns(T::Array[::String]) }
1096
+ def get_file_candidates(constant); end
1097
+
1098
+ sig { params(name: ::String).void }
1099
+ def mark_seen(name); end
1100
+
1101
+ sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
1102
+ def name_of_proxy_target(constant, class_name); end
1103
+
1104
+ sig { returns(::Tapioca::Gem::Event) }
1105
+ def next_event; end
1106
+
1107
+ sig { params(event: ::Tapioca::Gem::ConstantFound).void }
1108
+ def on_constant(event); end
1109
+
1110
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1111
+ def on_node(event); end
1112
+
1113
+ sig { params(event: ::Tapioca::Gem::SymbolFound).void }
1114
+ def on_symbol(event); end
1115
+
1116
+ sig { params(name: ::String).returns(T::Boolean) }
1117
+ def seen?(name); end
1118
+ end
1119
+
1120
+ Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
1121
+
1122
+ class Tapioca::Gem::ScopeNodeAdded < ::Tapioca::Gem::NodeAdded
1123
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1124
+ def initialize(symbol, constant, node); end
1125
+
1126
+ sig { returns(::RBI::Scope) }
1127
+ def node; end
1128
+ end
1129
+
1130
+ class Tapioca::Gem::SymbolFound < ::Tapioca::Gem::Event
1131
+ sig { params(symbol: ::String).void }
1132
+ def initialize(symbol); end
1133
+
1134
+ sig { returns(::String) }
1135
+ def symbol; end
1136
+ end
1137
+
1138
+ class Tapioca::Gemfile
1139
+ sig { void }
1140
+ def initialize; end
1141
+
1142
+ sig { returns(::Bundler::Definition) }
1143
+ def definition; end
1144
+
1145
+ sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1146
+ def dependencies; end
1147
+
1148
+ sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
1149
+ def gem(gem_name); end
1150
+
1151
+ sig { returns(T::Array[::String]) }
1152
+ def missing_specs; end
1153
+
1154
+ sig { void }
1155
+ def require_bundle; end
1156
+
1157
+ private
1158
+
1159
+ sig { returns(::String) }
1160
+ def dir; end
1161
+
1162
+ sig { returns(::File) }
1163
+ def gemfile; end
1164
+
1165
+ sig { returns(T::Array[::Symbol]) }
1166
+ def groups; end
1167
+
1168
+ sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
1169
+ def load_dependencies; end
1170
+
1171
+ def lockfile; end
1172
+
1173
+ sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
1174
+ def materialize_deps; end
1175
+
1176
+ sig { returns(::Bundler::Runtime) }
1177
+ def runtime; end
1178
+ end
1179
+
1180
+ class Tapioca::Gemfile::GemSpec
1181
+ sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
1182
+ def initialize(spec); end
1183
+
1184
+ sig { params(path: ::String).returns(T::Boolean) }
1185
+ def contains_path?(path); end
1186
+
1187
+ sig { returns(T::Boolean) }
1188
+ def export_rbi_files?; end
1189
+
1190
+ sig { returns(T::Array[::String]) }
1191
+ def exported_rbi_files; end
1192
+
1193
+ sig { returns(::RBI::MergeTree) }
1194
+ def exported_rbi_tree; end
1195
+
1196
+ sig { returns(T::Array[::Pathname]) }
1197
+ def files; end
1198
+
1199
+ sig { returns(::String) }
1200
+ def full_gem_path; end
1201
+
1202
+ sig { params(gemfile_dir: ::String).returns(T::Boolean) }
1203
+ def ignore?(gemfile_dir); end
1204
+
1205
+ sig { returns(::String) }
1206
+ def name; end
1207
+
1208
+ sig { void }
1209
+ def parse_yard_docs; end
1210
+
1211
+ sig { returns(::String) }
1212
+ def rbi_file_name; end
1213
+
1214
+ def version; end
1215
+
1216
+ private
1217
+
1218
+ sig { returns(T::Array[::Pathname]) }
1219
+ def collect_files; end
1220
+
1221
+ sig { returns(T.nilable(T::Boolean)) }
1222
+ def default_gem?; end
1223
+
1224
+ sig { returns(T::Boolean) }
1225
+ def gem_ignored?; end
1226
+
1227
+ sig { params(gemfile_dir: ::String).returns(T::Boolean) }
1228
+ def gem_in_app_dir?(gemfile_dir); end
1229
+
1230
+ sig { returns(T::Boolean) }
1231
+ def gem_in_bundle_path?; end
1232
+
1233
+ sig { params(path: ::String).returns(T::Boolean) }
1234
+ def has_parent_gemspec?(path); end
1235
+
1236
+ sig { returns(::Regexp) }
1237
+ def require_paths_prefix_matcher; end
1238
+
1239
+ sig { params(file: ::String).returns(::Pathname) }
1240
+ def resolve_to_ruby_lib_dir(file); end
1241
+
1242
+ sig { params(path: T.any(::Pathname, ::String)).returns(::String) }
1243
+ def to_realpath(path); end
1244
+
1245
+ sig { returns(::String) }
1246
+ def version_string; end
1247
+ end
1248
+
1249
+ Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
1250
+ Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
1251
+
1252
+ class Tapioca::RBIFormatter < ::RBI::Formatter
1253
+ sig { params(file: ::RBI::File).void }
1254
+ def write_empty_body_comment!(file); end
1255
+
1256
+ sig { params(file: ::RBI::File, command: ::String, reason: T.nilable(::String)).void }
1257
+ def write_header!(file, command, reason: T.unsafe(nil)); end
1258
+ end
1259
+
1260
+ module Tapioca::Runtime; end
1261
+
1262
+ class Tapioca::Runtime::DynamicMixinCompiler
1263
+ include ::Tapioca::Runtime::Reflection
1264
+
1265
+ sig { params(constant: ::Module).void }
1266
+ def initialize(constant); end
1267
+
1268
+ def class_attribute_predicates; end
1269
+
1270
+ sig { returns(T::Array[::Symbol]) }
1271
+ def class_attribute_readers; end
1272
+
1273
+ def class_attribute_writers; end
1274
+
1275
+ sig { params(tree: ::RBI::Tree).void }
1276
+ def compile_class_attributes(tree); end
1277
+
1278
+ sig { params(tree: ::RBI::Tree).returns([T::Array[::Module], T::Array[::Module]]) }
1279
+ def compile_mixes_in_class_methods(tree); end
1280
+
1281
+ sig { returns(T::Array[::Module]) }
1282
+ def dynamic_extends; end
1283
+
1284
+ def dynamic_includes; end
1285
+
1286
+ sig { returns(T::Boolean) }
1287
+ def empty_attributes?; end
1288
+
1289
+ sig { params(qualified_mixin_name: ::String).returns(T::Boolean) }
1290
+ def filtered_mixin?(qualified_mixin_name); end
1291
+
1292
+ def instance_attribute_predicates; end
1293
+
1294
+ sig { returns(T::Array[::Symbol]) }
1295
+ def instance_attribute_readers; end
1296
+
1297
+ def instance_attribute_writers; end
1298
+
1299
+ sig { params(mod: ::Module, dynamic_extends: T::Array[::Module]).returns(T::Boolean) }
1300
+ def module_included_by_another_dynamic_extend?(mod, dynamic_extends); end
1301
+ end
1302
+
1303
+ module Tapioca::Runtime::GenericTypeRegistry
1304
+ class << self
1305
+ sig { params(instance: ::Object).returns(T::Boolean) }
1306
+ def generic_type_instance?(instance); end
1307
+
1308
+ sig { params(constant: ::Module).returns(T.nilable(T::Array[::Tapioca::TypeVariableModule])) }
1309
+ def lookup_type_variables(constant); end
1310
+
1311
+ sig { params(constant: T.untyped, types: T.untyped).returns(::Module) }
1312
+ def register_type(constant, types); end
1313
+
1314
+ sig { params(constant: T.untyped, type_variable: ::Tapioca::TypeVariableModule).void }
1315
+ def register_type_variable(constant, type_variable); end
1316
+
1317
+ private
1318
+
1319
+ sig { params(constant: ::Module, name: ::String).returns(::Module) }
1320
+ def create_generic_type(constant, name); end
1321
+
1322
+ sig { params(constant: ::Class).returns(::Class) }
1323
+ def create_safe_subclass(constant); end
1324
+
1325
+ sig { params(constant: ::Module).returns(T::Array[::Tapioca::TypeVariableModule]) }
1326
+ def lookup_or_initialize_type_variables(constant); end
1327
+ end
1328
+ end
1329
+
1330
+ class Tapioca::Runtime::Loader
1331
+ sig do
1332
+ params(
1333
+ gemfile: ::Tapioca::Gemfile,
1334
+ initialize_file: T.nilable(::String),
1335
+ require_file: T.nilable(::String)
1336
+ ).void
1337
+ end
1338
+ def load_bundle(gemfile, initialize_file, require_file); end
1339
+
1340
+ sig { params(environment_load: T::Boolean, eager_load: T::Boolean).void }
1341
+ def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil)); end
1342
+
1343
+ private
1344
+
1345
+ sig { void }
1346
+ def eager_load_rails_app; end
1347
+
1348
+ sig { void }
1349
+ def load_rails_engines; end
1350
+
1351
+ sig { returns(T::Array[T.untyped]) }
1352
+ def rails_engines; end
1353
+
1354
+ sig { params(file: T.nilable(::String)).void }
1355
+ def require_helper(file); end
1356
+
1357
+ sig { params(path: ::String).void }
1358
+ def safe_require(path); end
1359
+
1360
+ sig { void }
1361
+ def silence_deprecations; end
1362
+ end
1363
+
1364
+ module Tapioca::Runtime::Reflection
1365
+ extend ::Tapioca::Runtime::Reflection
1366
+
1367
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
1368
+ def ancestors_of(constant); end
1369
+
1370
+ sig { params(object: ::BasicObject, other: ::BasicObject).returns(T::Boolean) }
1371
+ def are_equal?(object, other); end
1372
+
1373
+ sig { params(object: ::BasicObject).returns(::Class) }
1374
+ def class_of(object); end
1375
+
1376
+ sig { params(symbol: ::String, inherit: T::Boolean, namespace: ::Module).returns(::BasicObject) }
1377
+ def constantize(symbol, inherit: T.unsafe(nil), namespace: T.unsafe(nil)); end
1378
+
1379
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
1380
+ def constants_of(constant); end
1381
+
1382
+ sig do
1383
+ type_parameters(:U)
1384
+ .params(
1385
+ klass: T.all(::Class, T.type_parameter(:U))
1386
+ ).returns(T::Array[T.type_parameter(:U)])
1387
+ end
1388
+ def descendants_of(klass); end
1389
+
1390
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
1391
+ def inherited_ancestors_of(constant); end
1392
+
1393
+ sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
1394
+ def method_of(constant, method); end
1395
+
1396
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1397
+ def name_of(constant); end
1398
+
1399
+ sig { params(type: ::T::Types::Base).returns(::String) }
1400
+ def name_of_type(type); end
1401
+
1402
+ sig { params(object: ::BasicObject).returns(::Integer) }
1403
+ def object_id_of(object); end
1404
+
1405
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
1406
+ def private_instance_methods_of(constant); end
1407
+
1408
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
1409
+ def protected_instance_methods_of(constant); end
1410
+
1411
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
1412
+ def public_instance_methods_of(constant); end
1413
+
1414
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1415
+ def qualified_name_of(constant); end
1416
+
1417
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
1418
+ def signature_of(method); end
1419
+
1420
+ sig { params(constant: ::Module).returns(::Class) }
1421
+ def singleton_class_of(constant); end
1422
+
1423
+ sig { params(constant: ::Class).returns(T.nilable(::Class)) }
1424
+ def superclass_of(constant); end
1425
+ end
1426
+
1427
+ Tapioca::Runtime::Reflection::ANCESTORS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1428
+ Tapioca::Runtime::Reflection::CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1429
+ Tapioca::Runtime::Reflection::CONSTANTS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1430
+ Tapioca::Runtime::Reflection::EQUAL_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1431
+ Tapioca::Runtime::Reflection::METHOD_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1432
+ Tapioca::Runtime::Reflection::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1433
+ Tapioca::Runtime::Reflection::OBJECT_ID_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1434
+ Tapioca::Runtime::Reflection::PRIVATE_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1435
+ Tapioca::Runtime::Reflection::PROTECTED_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1436
+ Tapioca::Runtime::Reflection::PUBLIC_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1437
+ Tapioca::Runtime::Reflection::SINGLETON_CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1438
+ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
1439
+ module Tapioca::Runtime::Trackers; end
1440
+
1441
+ module Tapioca::Runtime::Trackers::Autoload
1442
+ class << self
1443
+ sig { void }
1444
+ def eager_load_all!; end
1445
+
1446
+ sig { params(constant_name: ::String).void }
1447
+ def register(constant_name); end
1448
+
1449
+ sig do
1450
+ type_parameters(:Result)
1451
+ .params(
1452
+ block: T.proc.returns(T.type_parameter(:Result))
1453
+ ).returns(T.type_parameter(:Result))
1454
+ end
1455
+ def with_disabled_exits(&block); end
1456
+ end
1457
+ end
1458
+
1459
+ Tapioca::Runtime::Trackers::Autoload::NOOP_METHOD = T.let(T.unsafe(nil), Proc)
1460
+
1461
+ module Tapioca::Runtime::Trackers::ConstantDefinition
1462
+ extend ::Tapioca::Runtime::Reflection
1463
+
1464
+ class << self
1465
+ def files_for(klass); end
1466
+ end
1467
+ end
1468
+
1469
+ module Tapioca::Runtime::Trackers::Mixin
1470
+ class << self
1471
+ sig do
1472
+ params(
1473
+ constant: ::Module
1474
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, T::Array[::String]]])
1475
+ end
1476
+ def mixin_locations_for(constant); end
1477
+
1478
+ sig do
1479
+ params(
1480
+ constant: ::Module,
1481
+ mod: ::Module,
1482
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
1483
+ locations: T.nilable(T::Array[::Thread::Backtrace::Location])
1484
+ ).void
1485
+ end
1486
+ def register(constant, mod, mixin_type, locations); end
1487
+ end
1488
+ end
1489
+
1490
+ class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
1491
+ enums do
1492
+ Prepend = new
1493
+ Include = new
1494
+ Extend = new
1495
+ end
1496
+ end
1497
+
1498
+ module Tapioca::Runtime::Trackers::RequiredAncestor
1499
+ class << self
1500
+ sig { params(requiring: ::T::Helpers, block: T.proc.returns(::Module)).void }
1501
+ def register(requiring, block); end
1502
+
1503
+ sig { params(mod: ::Module).returns(T::Array[T.proc.returns(::Module)]) }
1504
+ def required_ancestors_blocks_by(mod); end
1505
+
1506
+ sig { params(mod: ::Module).returns(T::Array[T.nilable(::Module)]) }
1507
+ def required_ancestors_by(mod); end
1508
+ end
1509
+ end
1510
+
1511
+ Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
1512
+ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
1513
+
1514
+ module Tapioca::ShimsHelper
1515
+ requires_ancestor { Thor::Shell }
1516
+
1517
+ sig { params(index: ::RBI::Index, shim_rbi_dir: ::String).returns(T::Hash[::String, T::Array[::RBI::Node]]) }
1518
+ def duplicated_nodes_from_index(index, shim_rbi_dir); end
1519
+
1520
+ sig { params(index: ::RBI::Index, kind: ::String, dir: ::String).void }
1521
+ def index_rbis(index, kind, dir); end
1522
+
1523
+ private
1524
+
1525
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
1526
+ def extract_methods_and_attrs(nodes); end
1527
+
1528
+ sig do
1529
+ params(
1530
+ nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
1531
+ ).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)])
1532
+ end
1533
+ def extract_nodes_with_sigs(nodes); end
1534
+
1535
+ sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String).returns(T::Array[::RBI::Node]) }
1536
+ def extract_shims(nodes, shim_rbi_dir); end
1537
+
1538
+ sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String).returns(T::Boolean) }
1539
+ def shims_have_duplicates?(nodes, shim_rbi_dir); end
1540
+ end
1541
+
1542
+ module Tapioca::SignaturesHelper
1543
+ sig { params(sig_string: ::String).returns(::String) }
1544
+ def sanitize_signature_types(sig_string); end
1545
+ end
1546
+
1547
+ module Tapioca::SorbetHelper
1548
+ sig { params(sorbet_args: ::String).returns(::Tapioca::SorbetHelper::CmdResult) }
1549
+ def sorbet(*sorbet_args); end
1550
+
1551
+ sig { returns(::String) }
1552
+ def sorbet_path; end
1553
+
1554
+ sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
1555
+ def sorbet_supports?(feature, version: T.unsafe(nil)); end
1556
+ end
1557
+
1558
+ class Tapioca::SorbetHelper::CmdResult < ::T::Struct
1559
+ const :out, ::String
1560
+ const :err, ::String
1561
+ const :status, T::Boolean
1562
+
1563
+ class << self
1564
+ def inherited(s); end
1565
+ end
1566
+ end
1567
+
1568
+ Tapioca::SorbetHelper::FEATURE_REQUIREMENTS = T.let(T.unsafe(nil), Hash)
1569
+ Tapioca::SorbetHelper::SORBET_BIN = T.let(T.unsafe(nil), Pathname)
1570
+ Tapioca::SorbetHelper::SORBET_EXE_PATH_ENV_VAR = T.let(T.unsafe(nil), String)
1571
+ Tapioca::SorbetHelper::SORBET_GEM_SPEC = T.let(T.unsafe(nil), Gem::Specification)
1572
+ module Tapioca::Static; end
1573
+
1574
+ class Tapioca::Static::RequiresCompiler
1575
+ sig { params(sorbet_path: ::String).void }
1576
+ def initialize(sorbet_path); end
1577
+
1578
+ sig { returns(::String) }
1579
+ def compile; end
1580
+
1581
+ private
1582
+
1583
+ sig { params(config: ::Spoom::Sorbet::Config).returns(T::Array[::String]) }
1584
+ def collect_files(config); end
1585
+
1586
+ sig { params(file_path: ::String).returns(T::Enumerable[::String]) }
1587
+ def collect_requires(file_path); end
1588
+
1589
+ sig { params(config: ::Spoom::Sorbet::Config, file_path: ::Pathname).returns(T::Boolean) }
1590
+ def file_ignored_by_sorbet?(config, file_path); end
1591
+
1592
+ sig { params(path: ::Pathname).returns(T::Array[::String]) }
1593
+ def path_parts(path); end
1594
+ end
1595
+
1596
+ module Tapioca::Static::SymbolLoader
1597
+ extend ::Tapioca::SorbetHelper
1598
+ extend ::Tapioca::Runtime::Reflection
1599
+
1600
+ class << self
1601
+ sig { returns(T::Set[::String]) }
1602
+ def engine_symbols; end
1603
+
1604
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
1605
+ def gem_symbols(gem); end
1606
+
1607
+ sig { returns(T::Set[::String]) }
1608
+ def payload_symbols; end
1609
+
1610
+ private
1611
+
1612
+ sig { returns(T::Set[::String]) }
1613
+ def load_engine_symbols; end
1614
+
1615
+ sig { params(input: ::String, table_type: ::String).returns(::String) }
1616
+ def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
1617
+
1618
+ sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
1619
+ def symbols_from_paths(paths); end
1620
+ end
1621
+ end
1622
+
1623
+ class Tapioca::Static::SymbolTableParser
1624
+ sig { void }
1625
+ def initialize; end
1626
+
1627
+ sig { params(name: ::String).returns(::String) }
1628
+ def fully_qualified_name(name); end
1629
+
1630
+ sig { params(object: T::Hash[::String, T.untyped]).void }
1631
+ def parse_object(object); end
1632
+
1633
+ sig { returns(T::Set[::String]) }
1634
+ def symbols; end
1635
+
1636
+ class << self
1637
+ sig { params(json_string: ::String).returns(T::Set[::String]) }
1638
+ def parse_json(json_string); end
1639
+ end
1640
+ end
1641
+
1642
+ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
1643
+ Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
1644
+
1645
+ class Tapioca::TypeVariable < ::T::Types::TypeVariable
1646
+ def initialize(name, variance); end
1647
+
1648
+ def name; end
1649
+ end
1650
+
1651
+ module Tapioca::TypeVariableHelper
1652
+ extend ::Tapioca::SorbetHelper
1653
+
1654
+ class << self
1655
+ sig do
1656
+ params(
1657
+ type: ::String,
1658
+ variance: ::Symbol,
1659
+ fixed: T.nilable(::String),
1660
+ upper: T.nilable(::String),
1661
+ lower: T.nilable(::String)
1662
+ ).returns(::String)
1663
+ end
1664
+ def serialize_type_variable(type, variance, fixed, upper, lower); end
1665
+ end
1666
+ end
1667
+
1668
+ class Tapioca::TypeVariableModule < ::Module
1669
+ sig do
1670
+ params(
1671
+ context: ::Module,
1672
+ type: ::Tapioca::TypeVariableModule::Type,
1673
+ variance: ::Symbol,
1674
+ fixed: T.untyped,
1675
+ lower: T.untyped,
1676
+ upper: T.untyped,
1677
+ bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
1678
+ ).void
1679
+ end
1680
+ def initialize(context, type, variance, fixed, lower, upper, bounds_proc); end
1681
+
1682
+ sig { returns(::Tapioca::TypeVariable) }
1683
+ def coerce_to_type_variable; end
1684
+
1685
+ sig { returns(T.nilable(::String)) }
1686
+ def name; end
1687
+
1688
+ sig { returns(::String) }
1689
+ def serialize; end
1690
+
1691
+ private
1692
+
1693
+ sig do
1694
+ params(
1695
+ fixed: T.untyped,
1696
+ lower: T.untyped,
1697
+ upper: T.untyped
1698
+ ).returns(T.proc.returns(T::Hash[::Symbol, T.untyped]))
1699
+ end
1700
+ def build_bounds_proc(fixed, lower, upper); end
1701
+
1702
+ sig do
1703
+ type_parameters(:Result)
1704
+ .params(
1705
+ block: T.proc.returns(T.type_parameter(:Result))
1706
+ ).returns(T.type_parameter(:Result))
1707
+ end
1708
+ def with_bound_name_pre_3_0(&block); end
1709
+ end
1710
+
1711
+ class Tapioca::TypeVariableModule::Type < ::T::Enum
1712
+ enums do
1713
+ Member = new
1714
+ Template = new
1715
+ end
1716
+ end
1717
+
1718
+ Tapioca::VERSION = T.let(T.unsafe(nil), String)