lunchmoney 1.3.0 → 1.4.1

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/build_and_publish_yard_docs.yml +2 -2
  4. data/.github/workflows/ci.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/.simplecov +2 -2
  7. data/Gemfile +2 -3
  8. data/Gemfile.lock +90 -84
  9. data/lib/lunchmoney/api.rb +1 -0
  10. data/lib/lunchmoney/calls/categories.rb +0 -2
  11. data/lib/lunchmoney/calls/transactions.rb +0 -1
  12. data/lib/lunchmoney/deprecate.rb +35 -0
  13. data/lib/lunchmoney/objects/asset.rb +6 -1
  14. data/lib/lunchmoney/objects/plaid_account.rb +6 -1
  15. data/lib/lunchmoney/objects/transaction.rb +9 -1
  16. data/lib/lunchmoney/version.rb +1 -1
  17. data/sorbet/rbi/annotations/activesupport.rbi +36 -0
  18. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  19. data/sorbet/rbi/gems/{activesupport@7.1.3.2.rbi → activesupport@7.2.2.1.rbi} +1407 -1292
  20. data/sorbet/rbi/gems/{addressable@2.8.6.rbi → addressable@2.8.7.rbi} +2 -1
  21. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  22. data/sorbet/rbi/gems/{bigdecimal@3.1.7.rbi → bigdecimal@3.1.9.rbi} +1 -0
  23. data/sorbet/rbi/gems/{chef-utils@18.4.2.rbi → chef-utils@18.5.0.rbi} +1 -0
  24. data/sorbet/rbi/gems/{concurrent-ruby@1.2.3.rbi → concurrent-ruby@1.3.5.rbi} +108 -41
  25. data/sorbet/rbi/gems/{connection_pool@2.4.1.rbi → connection_pool@2.5.0.rbi} +1 -0
  26. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +1 -0
  27. data/sorbet/rbi/gems/{dotenv@3.1.2.rbi → dotenv@3.1.7.rbi} +21 -29
  28. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +25 -15
  29. data/sorbet/rbi/gems/{faraday-net_http@3.1.0.rbi → faraday-net_http@3.4.0.rbi} +30 -29
  30. data/sorbet/rbi/gems/{faraday@2.9.0.rbi → faraday@2.12.2.rbi} +104 -49
  31. data/sorbet/rbi/gems/{hashdiff@1.1.0.rbi → hashdiff@1.1.2.rbi} +3 -2
  32. data/sorbet/rbi/gems/{i18n@1.14.4.rbi → i18n@1.14.7.rbi} +109 -80
  33. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.10.2.rbi} +697 -146
  34. data/sorbet/rbi/gems/language_server-protocol@3.17.0.4.rbi +9 -0
  35. data/sorbet/rbi/gems/logger@1.6.6.rbi +940 -0
  36. data/sorbet/rbi/gems/{minitest@5.22.3.rbi → minitest@5.25.5.rbi} +319 -302
  37. data/sorbet/rbi/gems/{mixlib-shellout@3.2.7.rbi → mixlib-shellout@3.2.8.rbi} +1 -0
  38. data/sorbet/rbi/gems/{mocha@2.2.0.rbi → mocha@2.7.1.rbi} +174 -149
  39. data/sorbet/rbi/gems/{net-http@0.4.1.rbi → net-http@0.6.0.rbi} +360 -181
  40. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +32 -21
  41. data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.7.1.rbi} +256 -203
  42. data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@1.4.0.rbi} +15882 -12137
  43. data/sorbet/rbi/gems/{public_suffix@5.0.4.rbi → public_suffix@6.0.1.rbi} +1 -0
  44. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +34 -33
  45. data/sorbet/rbi/gems/{rack@3.0.10.rbi → rack@3.1.9.rbi} +704 -989
  46. data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.2.1.rbi} +56 -55
  47. data/sorbet/rbi/gems/rbi@0.3.1.rbi +6599 -0
  48. data/sorbet/rbi/gems/rbs@3.9.0.rbi +6978 -0
  49. data/sorbet/rbi/gems/{regexp_parser@2.9.1.rbi → regexp_parser@2.10.0.rbi} +195 -172
  50. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.4.1.rbi} +844 -279
  51. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.38.0.rbi} +1380 -732
  52. data/sorbet/rbi/gems/{rubocop-minitest@0.35.0.rbi → rubocop-minitest@0.36.0.rbi} +13 -10
  53. data/sorbet/rbi/gems/{rubocop-rails@2.24.1.rbi → rubocop-rails@2.29.1.rbi} +9604 -6343
  54. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.3.rbi → rubocop-sorbet@0.8.7.rbi} +168 -67
  55. data/sorbet/rbi/gems/{rubocop@1.63.5.rbi → rubocop@1.71.2.rbi} +6831 -4378
  56. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  57. data/sorbet/rbi/gems/spoom@1.6.1.rbi +7274 -0
  58. data/sorbet/rbi/gems/{tapioca@0.14.1.rbi → tapioca@0.16.11.rbi} +471 -384
  59. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.3.2.rbi} +58 -31
  60. data/sorbet/rbi/gems/{toys-core@0.15.5.rbi → toys-core@0.15.6.rbi} +1 -0
  61. data/sorbet/rbi/gems/{toys@0.15.5.rbi → toys@0.15.6.rbi} +4 -3
  62. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  63. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  64. data/sorbet/rbi/gems/{uri@0.13.0.rbi → uri@1.0.3.rbi} +278 -256
  65. data/sorbet/rbi/gems/{vcr@6.2.0.rbi → vcr@6.3.1.rbi} +72 -68
  66. data/sorbet/rbi/gems/{webmock@3.23.0.rbi → webmock@3.25.1.rbi} +102 -78
  67. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  68. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +394 -235
  69. metadata +55 -58
  70. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3426
  71. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  72. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
  73. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +0 -93
  74. data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +0 -966
  75. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10077
  76. data/sorbet/rbi/gems/rbi@0.1.13.rbi +0 -3078
  77. data/sorbet/rbi/gems/spoom@1.3.2.rbi +0 -4421
  78. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: false
2
2
 
3
3
  # DO NOT EDIT MANUALLY
4
4
  # This is an autogenerated file for types exported from the `tapioca` gem.
@@ -55,30 +55,16 @@ module RBI; end
55
55
 
56
56
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
57
57
  class RBI::Tree < ::RBI::NodeWithComments
58
- # source://rbi/0.1.13/lib/rbi/model.rb#119
59
- sig do
60
- params(
61
- loc: T.nilable(::RBI::Loc),
62
- comments: T::Array[::RBI::Comment],
63
- block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
64
- ).void
65
- end
58
+ # source://rbi/0.3.1/lib/rbi/model.rb#117
66
59
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
67
60
 
68
- # source://rbi/0.1.13/lib/rbi/model.rb#126
69
- sig { params(node: ::RBI::Node).void }
61
+ # source://rbi/0.3.1/lib/rbi/model.rb#124
70
62
  def <<(node); end
71
63
 
72
- # source://rbi/0.1.13/lib/rbi/printer.rb#226
73
- sig { override.params(v: ::RBI::Printer).void }
74
- def accept_printer(v); end
75
-
76
- # source://rbi/0.1.13/lib/rbi/rewriters/add_sig_templates.rb#66
77
- sig { params(with_todo_comment: T::Boolean).void }
64
+ # source://rbi/0.3.1/lib/rbi/rewriters/add_sig_templates.rb#63
78
65
  def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
79
66
 
80
- # source://rbi/0.1.13/lib/rbi/rewriters/annotate.rb#49
81
- sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
67
+ # source://rbi/0.3.1/lib/rbi/rewriters/annotate.rb#46
82
68
  def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
83
69
 
84
70
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#38
@@ -103,31 +89,19 @@ class RBI::Tree < ::RBI::NodeWithComments
103
89
  sig { params(name: ::String).void }
104
90
  def create_include(name); end
105
91
 
106
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#89
92
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#90
107
93
  sig do
108
94
  params(
109
95
  name: ::String,
110
96
  parameters: T::Array[::RBI::TypedParam],
111
- return_type: ::String,
112
- class_method: T::Boolean,
113
- visibility: ::RBI::Visibility,
114
- comments: T::Array[::RBI::Comment]
115
- ).void
116
- end
117
- def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
118
-
119
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#113
120
- sig do
121
- params(
122
- name: ::String,
123
- sigs: T::Array[::RBI::Sig],
124
- parameters: T::Array[::RBI::Param],
97
+ return_type: T.nilable(::String),
125
98
  class_method: T::Boolean,
126
99
  visibility: ::RBI::Visibility,
127
- comments: T::Array[::RBI::Comment]
100
+ comments: T::Array[::RBI::Comment],
101
+ block: T.nilable(T.proc.params(node: ::RBI::Method).void)
128
102
  ).void
129
103
  end
130
- def create_method_with_sigs(name, sigs:, parameters: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
104
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil), &block); end
131
105
 
132
106
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
133
107
  sig { params(name: ::String).void }
@@ -141,16 +115,6 @@ class RBI::Tree < ::RBI::NodeWithComments
141
115
  sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
142
116
  def create_path(constant, &block); end
143
117
 
144
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#135
145
- sig do
146
- params(
147
- parameters: T::Hash[T.any(::String, ::Symbol), ::String],
148
- type_parameters: T::Array[::String],
149
- return_type: ::String
150
- ).returns(::RBI::Sig)
151
- end
152
- def create_sig(parameters:, type_parameters: T.unsafe(nil), return_type: T.unsafe(nil)); end
153
-
154
118
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#74
155
119
  sig do
156
120
  params(
@@ -164,75 +128,69 @@ class RBI::Tree < ::RBI::NodeWithComments
164
128
  end
165
129
  def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
166
130
 
167
- # source://rbi/0.1.13/lib/rbi/rewriters/deannotate.rb#41
168
- sig { params(annotation: ::String).void }
131
+ # source://rbi/0.3.1/lib/rbi/rewriters/deannotate.rb#38
169
132
  def deannotate!(annotation); end
170
133
 
171
- # source://rbi/0.1.13/lib/rbi/model.rb#132
172
- sig { returns(T::Boolean) }
134
+ # source://rbi/0.3.1/lib/rbi/model.rb#130
173
135
  def empty?; end
174
136
 
175
- # source://rbi/0.1.13/lib/rbi/rewriters/filter_versions.rb#118
176
- sig { params(version: ::Gem::Version).void }
137
+ # source://rbi/0.3.1/lib/rbi/rewriters/filter_versions.rb#113
177
138
  def filter_versions!(version); end
178
139
 
179
- # source://rbi/0.1.13/lib/rbi/rewriters/group_nodes.rb#38
180
- sig { void }
140
+ # source://rbi/0.3.1/lib/rbi/rewriters/flatten_singleton_methods.rb#57
141
+ def flatten_singleton_methods!; end
142
+
143
+ # source://rbi/0.3.1/lib/rbi/rewriters/flatten_visibilities.rb#57
144
+ def flatten_visibilities!; end
145
+
146
+ # source://rbi/0.3.1/lib/rbi/rewriters/group_nodes.rb#78
181
147
  def group_nodes!; end
182
148
 
183
- # source://rbi/0.1.13/lib/rbi/index.rb#68
184
- sig { returns(::RBI::Index) }
149
+ # source://rbi/0.3.1/lib/rbi/index.rb#64
185
150
  def index; end
186
151
 
187
- # source://rbi/0.1.13/lib/rbi/rewriters/merge_trees.rb#324
188
- sig do
189
- params(
190
- other: ::RBI::Tree,
191
- left_name: ::String,
192
- right_name: ::String,
193
- keep: ::RBI::Rewriters::Merge::Keep
194
- ).returns(::RBI::MergeTree)
195
- end
152
+ # source://rbi/0.3.1/lib/rbi/rewriters/merge_trees.rb#314
196
153
  def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
197
154
 
198
- # source://rbi/0.1.13/lib/rbi/rewriters/nest_non_public_methods.rb#46
199
- sig { void }
200
- def nest_non_public_methods!; end
155
+ # source://rbi/0.3.1/lib/rbi/rewriters/nest_non_public_members.rb#43
156
+ def nest_non_public_members!; end
201
157
 
202
- # source://rbi/0.1.13/lib/rbi/rewriters/nest_singleton_methods.rb#36
203
- sig { void }
158
+ # source://rbi/0.3.1/lib/rbi/rewriters/nest_singleton_methods.rb#33
204
159
  def nest_singleton_methods!; end
205
160
 
206
- # source://rbi/0.1.13/lib/rbi/model.rb#110
207
- sig { returns(T::Array[::RBI::Node]) }
161
+ # source://rbi/0.3.1/lib/rbi/rewriters/nest_top_level_members.rb#60
162
+ def nest_top_level_members!; end
163
+
164
+ # source://rbi/0.3.1/lib/rbi/model.rb#114
208
165
  def nodes; end
209
166
 
210
- # source://rbi/0.1.13/lib/rbi/printer.rb#233
211
- sig { override.returns(T::Boolean) }
212
- def oneline?; end
167
+ # source://rbi/0.3.1/lib/rbi/rewriters/attr_to_methods.rb#50
168
+ def replace_attributes_with_methods!; end
213
169
 
214
- # source://rbi/0.1.13/lib/rbi/rewriters/sort_nodes.rb#119
215
- sig { void }
170
+ # source://rbi/0.3.1/lib/rbi/rewriters/sort_nodes.rb#116
216
171
  def sort_nodes!; end
217
172
 
173
+ # source://rbi/0.3.1/lib/rbi/rewriters/translate_rbs_sigs.rb#82
174
+ def translate_rbs_sigs!; end
175
+
218
176
  private
219
177
 
220
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#150
178
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#123
221
179
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
222
180
  def create_node(node); end
223
181
 
224
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#145
182
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#118
225
183
  sig { returns(T::Hash[::String, ::RBI::Node]) }
226
184
  def nodes_cache; end
227
185
  end
228
186
 
229
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#160
187
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#133
230
188
  class RBI::TypedParam < ::T::Struct
231
189
  const :param, ::RBI::Param
232
190
  const :type, ::String
233
191
 
234
192
  class << self
235
- # source://sorbet-runtime/0.5.11305/lib/types/struct.rb#13
193
+ # source://sorbet-runtime/0.5.11953/lib/types/struct.rb#13
236
194
  def inherited(s); end
237
195
  end
238
196
  end
@@ -276,6 +234,25 @@ module T::Generic::TypeStoragePatch
276
234
  def type_template(variance = T.unsafe(nil), &bounds_proc); end
277
235
  end
278
236
 
237
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#54
238
+ module T::Helpers
239
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#56
240
+ def requires_ancestor(&block); end
241
+ end
242
+
243
+ class T::InexactStruct
244
+ include ::T::Props
245
+ include ::T::Props::Plugin
246
+ include ::T::Props::Optional
247
+ include ::T::Props::PrettyPrintable
248
+ include ::T::Props::Serializable
249
+ include ::T::Props::WeakConstructor
250
+ include ::T::Props::Constructor
251
+ extend ::T::Props::ClassMethods
252
+ extend ::T::Props::Plugin::ClassMethods
253
+ extend ::T::Props::Serializable::ClassMethods
254
+ end
255
+
279
256
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
280
257
  module T::Private::Methods
281
258
  class << self
@@ -344,7 +321,16 @@ module T::Private::Methods::ProcBindPatch
344
321
  def finalize_proc(decl); end
345
322
  end
346
323
 
347
- class T::Types::Proc < ::T::Types::Base; end
324
+ module T::Private::Retry; end
325
+ module T::Private::Retry::RETRY; end
326
+
327
+ class T::Types::Proc < ::T::Types::Base
328
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#7
329
+ def initialize(arg_types, returns, bind = T.unsafe(nil)); end
330
+
331
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#15
332
+ def name; end
333
+ end
348
334
 
349
335
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#6
350
336
  module T::Types::ProcBindPatch
@@ -401,7 +387,7 @@ end
401
387
  # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
402
388
  module Tapioca
403
389
  class << self
404
- # source://tapioca//lib/tapioca.rb#19
390
+ # source://tapioca//lib/tapioca.rb#20
405
391
  sig do
406
392
  type_parameters(:Result)
407
393
  .params(
@@ -412,7 +398,7 @@ module Tapioca
412
398
  end
413
399
  end
414
400
 
415
- # source://tapioca//lib/tapioca.rb#37
401
+ # source://tapioca//lib/tapioca.rb#39
416
402
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
417
403
 
418
404
  # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
@@ -452,13 +438,13 @@ module Tapioca::BundlerExt::AutoRequireHook
452
438
  end
453
439
  end
454
440
 
455
- # source://tapioca//lib/tapioca.rb#60
441
+ # source://tapioca//lib/tapioca.rb#62
456
442
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
457
443
 
458
- # source://tapioca//lib/tapioca.rb#59
444
+ # source://tapioca//lib/tapioca.rb#61
459
445
  Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
460
446
 
461
- # source://tapioca//lib/tapioca.rb#58
447
+ # source://tapioca//lib/tapioca.rb#60
462
448
  Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
463
449
 
464
450
  # source://tapioca//lib/tapioca/cli.rb#5
@@ -467,24 +453,24 @@ class Tapioca::Cli < ::Thor
467
453
  include ::Tapioca::ConfigHelper
468
454
  include ::Tapioca::EnvHelper
469
455
 
470
- # source://tapioca//lib/tapioca/cli.rb#361
456
+ # source://tapioca//lib/tapioca/cli.rb#372
471
457
  def __print_version; end
472
458
 
473
- # source://tapioca//lib/tapioca/cli.rb#343
459
+ # source://tapioca//lib/tapioca/cli.rb#354
474
460
  def annotations; end
475
461
 
476
- # source://tapioca//lib/tapioca/cli.rb#315
462
+ # source://tapioca//lib/tapioca/cli.rb#326
477
463
  def check_shims; end
478
464
 
479
465
  # source://tapioca//lib/tapioca/cli.rb#46
480
466
  def configure; end
481
467
 
482
- # source://tapioca//lib/tapioca/cli.rb#143
468
+ # source://tapioca//lib/tapioca/cli.rb#146
483
469
  def dsl(*constant_or_paths); end
484
470
 
485
471
  # @raise [MalformattedArgumentError]
486
472
  #
487
- # source://tapioca//lib/tapioca/cli.rb#259
473
+ # source://tapioca//lib/tapioca/cli.rb#269
488
474
  def gem(*gems); end
489
475
 
490
476
  # source://tapioca//lib/tapioca/cli.rb#27
@@ -498,11 +484,19 @@ class Tapioca::Cli < ::Thor
498
484
 
499
485
  private
500
486
 
501
- # source://tapioca//lib/tapioca/cli.rb#375
487
+ # source://tapioca//lib/tapioca/cli.rb#399
502
488
  def print_init_next_steps; end
503
489
 
504
490
  class << self
505
- # source://tapioca//lib/tapioca/cli.rb#367
491
+ # source://tapioca//lib/tapioca/cli.rb#383
492
+ def addon_mode; end
493
+
494
+ # source://tapioca//lib/tapioca/cli.rb#386
495
+ sig { void }
496
+ def addon_mode!; end
497
+
498
+ # source://tapioca//lib/tapioca/cli.rb#391
499
+ sig { returns(T::Boolean) }
506
500
  def exit_on_failure?; end
507
501
  end
508
502
  end
@@ -539,7 +533,7 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
539
533
 
540
534
  abstract!
541
535
 
542
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#32
536
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#34
543
537
  sig do
544
538
  params(
545
539
  requested_constants: T::Array[::String],
@@ -557,22 +551,24 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
557
551
  gem_dir: ::String,
558
552
  rbi_formatter: ::Tapioca::RBIFormatter,
559
553
  app_root: ::String,
560
- halt_upon_load_error: T::Boolean
554
+ halt_upon_load_error: T::Boolean,
555
+ compiler_options: T::Hash[::String, T.untyped],
556
+ lsp_addon: T::Boolean
561
557
  ).void
562
558
  end
563
- def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, skip_constant: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
559
+ def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, skip_constant: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil), compiler_options: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
564
560
 
565
561
  private
566
562
 
567
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#97
563
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
568
564
  sig { returns(T::Array[::String]) }
569
565
  def all_requested_constants; end
570
566
 
571
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#289
567
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#313
572
568
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
573
569
  def build_error_for_files(cause, files); end
574
570
 
575
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#213
571
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#237
576
572
  sig do
577
573
  params(
578
574
  constant_name: ::String,
@@ -583,75 +579,75 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
583
579
  end
584
580
  def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
585
581
 
586
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#150
582
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#172
587
583
  sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
588
584
  def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
589
585
 
590
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#173
586
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#197
591
587
  sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
592
588
  def constantize_compilers(compiler_names); end
593
589
 
594
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#349
590
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#373
595
591
  sig { returns(T::Array[::String]) }
596
592
  def constants_from_requested_paths; end
597
593
 
598
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
594
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#133
599
595
  sig { returns(::Tapioca::Dsl::Pipeline) }
600
596
  def create_pipeline; end
601
597
 
602
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#252
598
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#276
603
599
  sig { params(constant_name: ::String).returns(::Pathname) }
604
600
  def dsl_rbi_filename(constant_name); end
605
601
 
606
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#136
602
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#158
607
603
  sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
608
604
  def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
609
605
 
610
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
606
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#368
611
607
  sig { params(constant: ::String).returns(::String) }
612
608
  def generate_command_for(constant); end
613
609
 
614
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#73
610
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#79
615
611
  sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
616
612
  def generate_dsl_rbi_files(outpath, quiet:); end
617
613
 
618
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#110
614
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
619
615
  sig { void }
620
616
  def load_application; end
621
617
 
622
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#231
618
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#255
623
619
  sig { params(dir: ::Pathname).void }
624
620
  def perform_dsl_verification(dir); end
625
621
 
626
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#105
622
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#115
627
623
  sig { returns(::Tapioca::Dsl::Pipeline) }
628
624
  def pipeline; end
629
625
 
630
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#240
626
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#264
631
627
  sig { params(files: T::Set[::Pathname]).void }
632
628
  def purge_stale_dsl_rbi_files(files); end
633
629
 
634
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#339
630
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#363
635
631
  sig { params(constant: ::String).returns(::String) }
636
632
  def rbi_filename_for(constant); end
637
633
 
638
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#320
634
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
639
635
  sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
640
636
  def rbi_files_in(path); end
641
637
 
642
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#298
638
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322
643
639
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
644
640
  def report_diff_and_exit_if_out_of_date(diff, command); end
645
641
 
646
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#193
642
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#217
647
643
  sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
648
644
  def resolve(name); end
649
645
 
650
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#327
646
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#351
651
647
  sig { params(class_name: ::String).returns(::String) }
652
648
  def underscore(class_name); end
653
649
 
654
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#257
650
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#281
655
651
  sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
656
652
  def verify_dsl_rbi(tmp_dir:); end
657
653
  end
@@ -665,7 +661,7 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
665
661
 
666
662
  abstract!
667
663
 
668
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32
664
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#33
669
665
  sig do
670
666
  params(
671
667
  gem_names: T::Array[::String],
@@ -683,83 +679,71 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
683
679
  auto_strictness: T::Boolean,
684
680
  dsl_dir: ::String,
685
681
  rbi_formatter: ::Tapioca::RBIFormatter,
686
- halt_upon_load_error: T::Boolean
682
+ halt_upon_load_error: T::Boolean,
683
+ lsp_addon: T.nilable(T::Boolean)
687
684
  ).void
688
685
  end
689
- def initialize(gem_names:, exclude:, include_dependencies:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
686
+ def initialize(gem_names:, exclude:, include_dependencies:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
690
687
 
691
688
  private
692
689
 
693
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#223
690
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#200
694
691
  sig { returns(T::Array[::String]) }
695
692
  def added_rbis; end
696
693
 
697
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#284
694
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#261
698
695
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
699
696
  def build_error_for_files(cause, files); end
700
697
 
701
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110
698
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#80
702
699
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
703
700
  def compile_gem_rbi(gem); end
704
701
 
705
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#218
702
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#195
706
703
  sig { params(gem_name: ::String).returns(::Pathname) }
707
704
  def existing_rbi(gem_name); end
708
705
 
709
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
706
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#243
710
707
  sig { returns(T::Hash[::String, ::String]) }
711
708
  def existing_rbis; end
712
709
 
713
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#230
710
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#207
714
711
  sig { params(gem_name: ::String).returns(::Pathname) }
715
712
  def expected_rbi(gem_name); end
716
713
 
717
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#272
714
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#249
718
715
  sig { returns(T::Hash[::String, ::String]) }
719
716
  def expected_rbis; end
720
717
 
721
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98
722
- sig do
723
- params(
724
- gem: ::Tapioca::Gemfile::GemSpec,
725
- dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
726
- ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
727
- end
728
- def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
729
-
730
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#235
718
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#212
731
719
  sig { params(gem_name: ::String).returns(T::Boolean) }
732
720
  def gem_rbi_exists?(gem_name); end
733
721
 
734
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#279
722
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#256
735
723
  sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
736
724
  def gem_rbi_filename(gem_name, version); end
737
725
 
738
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77
739
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
740
- def gems_to_generate(gem_names); end
741
-
742
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#289
726
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
743
727
  sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
744
728
  def merge_with_exported_rbi(gem, file); end
745
729
 
746
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#260
730
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#237
747
731
  sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
748
732
  def move(old_filename, new_filename); end
749
733
 
750
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#170
734
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#147
751
735
  sig { void }
752
736
  def perform_additions; end
753
737
 
754
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#143
738
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#120
755
739
  sig { void }
756
740
  def perform_removals; end
757
741
 
758
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#213
742
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#190
759
743
  sig { returns(T::Array[::String]) }
760
744
  def removed_rbis; end
761
745
 
762
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#240
746
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#217
763
747
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
764
748
  def report_diff_and_exit_if_out_of_date(diff, command); end
765
749
  end
@@ -780,11 +764,11 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
780
764
 
781
765
  private
782
766
 
783
- # source://tapioca//lib/tapioca/commands/annotations.rb#193
767
+ # source://tapioca//lib/tapioca/commands/annotations.rb#197
784
768
  sig { params(name: ::String, content: ::String).returns(::String) }
785
769
  def add_header(name, content); end
786
770
 
787
- # source://tapioca//lib/tapioca/commands/annotations.rb#213
771
+ # source://tapioca//lib/tapioca/commands/annotations.rb#217
788
772
  sig { params(name: ::String, content: ::String).returns(::String) }
789
773
  def apply_typed_override(name, content); end
790
774
 
@@ -793,18 +777,18 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
793
777
  def execute; end
794
778
 
795
779
  # source://tapioca//lib/tapioca/commands/annotations.rb#136
796
- sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
797
- def fetch_annotation(repo_uris, gem_name); end
780
+ sig { params(repo_uris: T::Array[::String], gem_info: ::Tapioca::GemInfo).void }
781
+ def fetch_annotation(repo_uris, gem_info); end
798
782
 
799
783
  # source://tapioca//lib/tapioca/commands/annotations.rb#113
800
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
801
- def fetch_annotations(gem_names); end
784
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).returns(T::Array[::String]) }
785
+ def fetch_annotations(project_gems); end
802
786
 
803
- # source://tapioca//lib/tapioca/commands/annotations.rb#152
787
+ # source://tapioca//lib/tapioca/commands/annotations.rb#156
804
788
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
805
789
  def fetch_file(repo_uri, path); end
806
790
 
807
- # source://tapioca//lib/tapioca/commands/annotations.rb#169
791
+ # source://tapioca//lib/tapioca/commands/annotations.rb#173
808
792
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
809
793
  def fetch_http_file(repo_uri, path); end
810
794
 
@@ -816,31 +800,35 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
816
800
  sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
817
801
  def fetch_indexes; end
818
802
 
819
- # source://tapioca//lib/tapioca/commands/annotations.rb#161
803
+ # source://tapioca//lib/tapioca/commands/annotations.rb#165
820
804
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
821
805
  def fetch_local_file(repo_uri, path); end
822
806
 
807
+ # source://tapioca//lib/tapioca/commands/annotations.rb#229
808
+ sig { params(gem_version: ::Gem::Version, content: ::String).returns(::String) }
809
+ def filter_versions(gem_version, content); end
810
+
823
811
  # source://tapioca//lib/tapioca/commands/annotations.rb#50
824
- sig { returns(T::Array[::String]) }
812
+ sig { returns(T::Array[::Tapioca::GemInfo]) }
825
813
  def list_gemfile_gems; end
826
814
 
827
- # source://tapioca//lib/tapioca/commands/annotations.rb#225
815
+ # source://tapioca//lib/tapioca/commands/annotations.rb#237
828
816
  sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
829
817
  def merge_files(gem_name, contents); end
830
818
 
831
819
  # source://tapioca//lib/tapioca/commands/annotations.rb#60
832
- sig { params(project_gems: T::Array[::String]).void }
820
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).void }
833
821
  def remove_expired_annotations(project_gems); end
834
822
 
835
- # source://tapioca//lib/tapioca/commands/annotations.rb#252
823
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
836
824
  sig { returns(T::Hash[::String, T.nilable(::String)]) }
837
825
  def repo_tokens; end
838
826
 
839
- # source://tapioca//lib/tapioca/commands/annotations.rb#280
827
+ # source://tapioca//lib/tapioca/commands/annotations.rb#292
840
828
  sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
841
829
  def say_http_error(path, repo_uri, message:); end
842
830
 
843
- # source://tapioca//lib/tapioca/commands/annotations.rb#264
831
+ # source://tapioca//lib/tapioca/commands/annotations.rb#276
844
832
  sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
845
833
  def token_for(repo_uri); end
846
834
  end
@@ -888,7 +876,7 @@ class Tapioca::Commands::Command
888
876
  sig { void }
889
877
  def initialize; end
890
878
 
891
- # source://thor/1.3.1/lib/thor/base.rb#155
879
+ # source://thor/1.3.2/lib/thor/base.rb#155
892
880
  sig { returns(::Thor::Actions) }
893
881
  def file_writer; end
894
882
 
@@ -1013,6 +1001,19 @@ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
1013
1001
  # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
1014
1002
  sig { override.void }
1015
1003
  def execute; end
1004
+
1005
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#74
1006
+ sig do
1007
+ params(
1008
+ gem: ::Tapioca::Gemfile::GemSpec,
1009
+ dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
1010
+ ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
1011
+ end
1012
+ def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
1013
+
1014
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#51
1015
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1016
+ def gems_to_generate(gem_names); end
1016
1017
  end
1017
1018
 
1018
1019
  # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
@@ -1102,11 +1103,11 @@ module Tapioca::ConfigHelper
1102
1103
 
1103
1104
  private
1104
1105
 
1105
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#151
1106
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#153
1106
1107
  sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
1107
1108
  def build_error(msg); end
1108
1109
 
1109
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#176
1110
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#178
1110
1111
  sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
1111
1112
  def build_error_message(config_file, errors); end
1112
1113
 
@@ -1122,7 +1123,7 @@ module Tapioca::ConfigHelper
1122
1123
  sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
1123
1124
  def filter_defaults(options); end
1124
1125
 
1125
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#194
1126
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#196
1126
1127
  sig do
1127
1128
  params(
1128
1129
  options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
@@ -1145,58 +1146,58 @@ module Tapioca::ConfigHelper
1145
1146
  def validate_config_options(command_options, config_key, config_options); end
1146
1147
  end
1147
1148
 
1148
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#146
1149
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#148
1149
1150
  class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1150
1151
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1151
1152
 
1152
1153
  class << self
1153
- # source://sorbet-runtime/0.5.11305/lib/types/struct.rb#13
1154
+ # source://sorbet-runtime/0.5.11953/lib/types/struct.rb#13
1154
1155
  def inherited(s); end
1155
1156
  end
1156
1157
  end
1157
1158
 
1158
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#141
1159
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#143
1159
1160
  class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1160
1161
  const :message, ::String
1161
1162
  const :colors, T::Array[::Symbol]
1162
1163
 
1163
1164
  class << self
1164
- # source://sorbet-runtime/0.5.11305/lib/types/struct.rb#13
1165
+ # source://sorbet-runtime/0.5.11953/lib/types/struct.rb#13
1165
1166
  def inherited(s); end
1166
1167
  end
1167
1168
  end
1168
1169
 
1169
- # source://tapioca//lib/tapioca.rb#44
1170
+ # source://tapioca//lib/tapioca.rb#46
1170
1171
  Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1171
1172
 
1172
- # source://tapioca//lib/tapioca.rb#40
1173
+ # source://tapioca//lib/tapioca.rb#42
1173
1174
  Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1174
1175
 
1175
- # source://tapioca//lib/tapioca.rb#56
1176
+ # source://tapioca//lib/tapioca.rb#58
1176
1177
  Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1177
1178
 
1178
- # source://tapioca//lib/tapioca.rb#41
1179
+ # source://tapioca//lib/tapioca.rb#43
1179
1180
  Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1180
1181
 
1181
- # source://tapioca//lib/tapioca.rb#46
1182
+ # source://tapioca//lib/tapioca.rb#48
1182
1183
  Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1183
1184
 
1184
- # source://tapioca//lib/tapioca.rb#38
1185
+ # source://tapioca//lib/tapioca.rb#40
1185
1186
  Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1186
1187
 
1187
- # source://tapioca//lib/tapioca.rb#39
1188
+ # source://tapioca//lib/tapioca.rb#41
1188
1189
  Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1189
1190
 
1190
1191
  # source://tapioca//lib/tapioca/rbi_formatter.rb#31
1191
1192
  Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1192
1193
 
1193
- # source://tapioca//lib/tapioca.rb#55
1194
+ # source://tapioca//lib/tapioca.rb#57
1194
1195
  Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1195
1196
 
1196
- # source://tapioca//lib/tapioca.rb#42
1197
+ # source://tapioca//lib/tapioca.rb#44
1197
1198
  Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1198
1199
 
1199
- # source://tapioca//lib/tapioca.rb#43
1200
+ # source://tapioca//lib/tapioca.rb#45
1200
1201
  Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1201
1202
 
1202
1203
  # source://tapioca//lib/tapioca/dsl/compilers.rb#5
@@ -1218,17 +1219,24 @@ class Tapioca::Dsl::Compiler
1218
1219
 
1219
1220
  ConstantType = type_member { { upper: Module } }
1220
1221
 
1221
- # source://tapioca//lib/tapioca/dsl/compiler.rb#64
1222
- sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1223
- def initialize(pipeline, root, constant); end
1222
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#110
1223
+ sig do
1224
+ params(
1225
+ pipeline: ::Tapioca::Dsl::Pipeline,
1226
+ root: ::RBI::Tree,
1227
+ constant: ConstantType,
1228
+ options: T::Hash[::String, T.untyped]
1229
+ ).void
1230
+ end
1231
+ def initialize(pipeline, root, constant, options = T.unsafe(nil)); end
1224
1232
 
1225
1233
  # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1226
1234
  #
1227
- # source://tapioca//lib/tapioca/dsl/compiler.rb#81
1235
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#128
1228
1236
  sig { params(error: ::String).void }
1229
1237
  def add_error(error); end
1230
1238
 
1231
- # source://tapioca//lib/tapioca/dsl/compiler.rb#72
1239
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#119
1232
1240
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1233
1241
  def compiler_enabled?(compiler_name); end
1234
1242
 
@@ -1238,58 +1246,79 @@ class Tapioca::Dsl::Compiler
1238
1246
 
1239
1247
  # @abstract
1240
1248
  #
1241
- # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1249
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#124
1242
1250
  sig { abstract.void }
1243
1251
  def decorate; end
1244
1252
 
1253
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#26
1254
+ sig { returns(T::Hash[::String, T.untyped]) }
1255
+ def options; end
1256
+
1245
1257
  # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1246
1258
  sig { returns(::RBI::Tree) }
1247
1259
  def root; end
1248
1260
 
1249
1261
  private
1250
1262
 
1251
- # source://tapioca//lib/tapioca/dsl/compiler.rb#130
1263
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#177
1252
1264
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1253
1265
  def compile_method_parameters_to_rbi(method_def); end
1254
1266
 
1255
- # source://tapioca//lib/tapioca/dsl/compiler.rb#166
1267
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#213
1256
1268
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1257
1269
  def compile_method_return_type_to_rbi(method_def); end
1258
1270
 
1259
- # source://tapioca//lib/tapioca/dsl/compiler.rb#120
1271
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#167
1260
1272
  sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1261
1273
  def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1262
1274
 
1263
1275
  # Get the types of each parameter from a method signature
1264
1276
  #
1265
- # source://tapioca//lib/tapioca/dsl/compiler.rb#94
1277
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#141
1266
1278
  sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1267
1279
  def parameters_types_from_signature(method_def, signature); end
1268
1280
 
1269
1281
  class << self
1270
1282
  # @abstract
1271
1283
  #
1272
- # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1284
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#39
1273
1285
  sig { abstract.returns(T::Enumerable[::Module]) }
1274
1286
  def gather_constants; end
1275
1287
 
1276
- # source://tapioca//lib/tapioca/dsl/compiler.rb#29
1288
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1277
1289
  sig { params(constant: ::Module).returns(T::Boolean) }
1278
1290
  def handles?(constant); end
1279
1291
 
1280
- # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1292
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#42
1281
1293
  sig { returns(T::Set[::Module]) }
1282
1294
  def processable_constants; end
1283
1295
 
1296
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#50
1297
+ sig { params(constants: T::Array[::Module]).void }
1298
+ def requested_constants=(constants); end
1299
+
1300
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1301
+ sig { void }
1302
+ def reset_state; end
1303
+
1284
1304
  private
1285
1305
 
1286
- # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1306
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#82
1287
1307
  sig { returns(T::Enumerable[T::Class[T.anything]]) }
1288
1308
  def all_classes; end
1289
1309
 
1290
- # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1310
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1291
1311
  sig { returns(T::Enumerable[::Module]) }
1292
1312
  def all_modules; end
1313
+
1314
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#68
1315
+ sig do
1316
+ type_parameters(:U)
1317
+ .params(
1318
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
1319
+ ).returns(T::Array[T.type_parameter(:U)])
1320
+ end
1321
+ def descendants_of(klass); end
1293
1322
  end
1294
1323
  end
1295
1324
 
@@ -1308,7 +1337,7 @@ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1308
1337
 
1309
1338
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1310
1339
  class Tapioca::Dsl::Pipeline
1311
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#38
1340
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#40
1312
1341
  sig do
1313
1342
  params(
1314
1343
  requested_constants: T::Array[::Module],
@@ -1317,24 +1346,26 @@ class Tapioca::Dsl::Pipeline
1317
1346
  excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1318
1347
  error_handler: T.proc.params(error: ::String).void,
1319
1348
  skipped_constants: T::Array[::Module],
1320
- number_of_workers: T.nilable(::Integer)
1349
+ number_of_workers: T.nilable(::Integer),
1350
+ compiler_options: T::Hash[::String, T.untyped],
1351
+ lsp_addon: T::Boolean
1321
1352
  ).void
1322
1353
  end
1323
- def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), skipped_constants: T.unsafe(nil), number_of_workers: T.unsafe(nil)); end
1354
+ def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), skipped_constants: T.unsafe(nil), number_of_workers: T.unsafe(nil), compiler_options: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
1324
1355
 
1325
1356
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1326
1357
  sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1327
1358
  def active_compilers; end
1328
1359
 
1329
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#99
1360
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#110
1330
1361
  sig { params(error: ::String).void }
1331
1362
  def add_error(error); end
1332
1363
 
1333
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#104
1364
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#115
1334
1365
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1335
1366
  def compiler_enabled?(compiler_name); end
1336
1367
 
1337
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#113
1368
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1338
1369
  sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1339
1370
  def compilers; end
1340
1371
 
@@ -1354,7 +1385,7 @@ class Tapioca::Dsl::Pipeline
1354
1385
  sig { returns(T::Array[::Pathname]) }
1355
1386
  def requested_paths; end
1356
1387
 
1357
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#64
1388
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#70
1358
1389
  sig do
1359
1390
  type_parameters(:T)
1360
1391
  .params(
@@ -1369,15 +1400,15 @@ class Tapioca::Dsl::Pipeline
1369
1400
 
1370
1401
  private
1371
1402
 
1372
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#220
1403
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#231
1373
1404
  sig { void }
1374
1405
  def abort_if_pending_migrations!; end
1375
1406
 
1376
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#165
1407
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#177
1377
1408
  sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1378
1409
  def filter_anonymous_and_reloaded_constants(constants); end
1379
1410
 
1380
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#130
1411
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#141
1381
1412
  sig do
1382
1413
  params(
1383
1414
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
@@ -1386,7 +1417,7 @@ class Tapioca::Dsl::Pipeline
1386
1417
  end
1387
1418
  def gather_active_compilers(requested_compilers, excluded_compilers); end
1388
1419
 
1389
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#144
1420
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#155
1390
1421
  sig do
1391
1422
  params(
1392
1423
  requested_constants: T::Array[::Module],
@@ -1396,12 +1427,12 @@ class Tapioca::Dsl::Pipeline
1396
1427
  end
1397
1428
  def gather_constants(requested_constants, requested_paths, skipped_constants); end
1398
1429
 
1399
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#194
1430
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#206
1400
1431
  sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1401
1432
  def rbi_for_constant(constant); end
1402
1433
 
1403
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#213
1404
- sig { params(error: ::String).returns(T.noreturn) }
1434
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#225
1435
+ sig { params(error: ::String).void }
1405
1436
  def report_error(error); end
1406
1437
  end
1407
1438
 
@@ -1604,6 +1635,10 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1604
1635
  sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1605
1636
  def initialize_method_for(constant); end
1606
1637
 
1638
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#216
1639
+ sig { params(method: ::UnboundMethod).returns(T.untyped) }
1640
+ def lookup_signature_of(method); end
1641
+
1607
1642
  # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1608
1643
  sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1609
1644
  def method_names_by_visibility(mod); end
@@ -1696,7 +1731,7 @@ end
1696
1731
  class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1697
1732
  private
1698
1733
 
1699
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#25
1734
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#28
1700
1735
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1701
1736
  def ignore?(event); end
1702
1737
 
@@ -1831,7 +1866,7 @@ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1831
1866
 
1832
1867
  private
1833
1868
 
1834
- # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1869
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#35
1835
1870
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1836
1871
  def ignore?(event); end
1837
1872
 
@@ -1933,49 +1968,60 @@ class Tapioca::Gem::Pipeline
1933
1968
  include ::Tapioca::SorbetHelper
1934
1969
  include ::Tapioca::RBIHelper
1935
1970
 
1936
- # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1937
- sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean, include_loc: T::Boolean).void }
1938
- def initialize(gem, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1971
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#27
1972
+ sig do
1973
+ params(
1974
+ gem: ::Tapioca::Gemfile::GemSpec,
1975
+ error_handler: T.proc.params(error: ::String).void,
1976
+ include_doc: T::Boolean,
1977
+ include_loc: T::Boolean
1978
+ ).void
1979
+ end
1980
+ def initialize(gem, error_handler:, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1939
1981
 
1940
- # source://tapioca//lib/tapioca/gem/pipeline.rb#48
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1941
1983
  sig { returns(::RBI::Tree) }
1942
1984
  def compile; end
1943
1985
 
1944
- # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1986
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#135
1945
1987
  sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1946
1988
  def constant_in_gem?(name); end
1947
1989
 
1990
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1991
+ sig { returns(T.proc.params(error: ::String).void) }
1992
+ def error_handler; end
1993
+
1948
1994
  # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1949
1995
  sig { returns(::Tapioca::Gemfile::GemSpec) }
1950
1996
  def gem; end
1951
1997
 
1952
- # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1998
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1953
1999
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1954
2000
  def method_in_gem?(method); end
1955
2001
 
1956
2002
  # Helpers
1957
2003
  #
1958
- # source://tapioca//lib/tapioca/gem/pipeline.rb#147
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#163
1959
2005
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
1960
2006
  def name_of(constant); end
1961
2007
 
1962
- # source://tapioca//lib/tapioca/gem/pipeline.rb#71
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#87
1963
2009
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1964
2010
  def push_const(symbol, constant, node); end
1965
2011
 
1966
- # source://tapioca//lib/tapioca/gem/pipeline.rb#61
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#77
1967
2013
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1968
2014
  def push_constant(symbol, constant); end
1969
2015
 
1970
- # source://tapioca//lib/tapioca/gem/pipeline.rb#66
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#82
1971
2017
  sig { params(symbol: ::String, constant: ::Module).void }
1972
2018
  def push_foreign_constant(symbol, constant); end
1973
2019
 
1974
- # source://tapioca//lib/tapioca/gem/pipeline.rb#85
2020
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#101
1975
2021
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1976
2022
  def push_foreign_scope(symbol, constant, node); end
1977
2023
 
1978
- # source://tapioca//lib/tapioca/gem/pipeline.rb#99
2024
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#115
1979
2025
  sig do
1980
2026
  params(
1981
2027
  symbol: ::String,
@@ -1988,137 +2034,137 @@ class Tapioca::Gem::Pipeline
1988
2034
  end
1989
2035
  def push_method(symbol, constant, method, node, signature, parameters); end
1990
2036
 
1991
- # source://tapioca//lib/tapioca/gem/pipeline.rb#78
2037
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#94
1992
2038
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1993
2039
  def push_scope(symbol, constant, node); end
1994
2040
 
1995
2041
  # Events handling
1996
2042
  #
1997
- # source://tapioca//lib/tapioca/gem/pipeline.rb#56
2043
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#72
1998
2044
  sig { params(symbol: ::String).void }
1999
2045
  def push_symbol(symbol); end
2000
2046
 
2001
2047
  # Constants and properties filtering
2002
2048
  #
2003
- # source://tapioca//lib/tapioca/gem/pipeline.rb#106
2049
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
2004
2050
  sig { params(symbol_name: ::String).returns(T::Boolean) }
2005
2051
  def symbol_in_payload?(symbol_name); end
2006
2052
 
2007
2053
  private
2008
2054
 
2009
- # source://tapioca//lib/tapioca/gem/pipeline.rb#440
2055
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#456
2010
2056
  sig { params(name: ::String).void }
2011
2057
  def add_to_alias_namespace(name); end
2012
2058
 
2013
- # source://tapioca//lib/tapioca/gem/pipeline.rb#445
2059
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#461
2014
2060
  sig { params(name: ::String).returns(T::Boolean) }
2015
2061
  def alias_namespaced?(name); end
2016
2062
 
2017
- # source://tapioca//lib/tapioca/gem/pipeline.rb#244
2063
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#260
2018
2064
  sig { params(name: ::String, constant: ::Module).void }
2019
2065
  def compile_alias(name, constant); end
2020
2066
 
2021
- # source://tapioca//lib/tapioca/gem/pipeline.rb#230
2067
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#246
2022
2068
  sig { params(symbol: ::String, constant: ::BasicObject).void }
2023
2069
  def compile_constant(symbol, constant); end
2024
2070
 
2025
2071
  # Compiling
2026
2072
  #
2027
- # source://tapioca//lib/tapioca/gem/pipeline.rb#219
2073
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#235
2028
2074
  sig { params(symbol: ::String, constant: ::Module).void }
2029
2075
  def compile_foreign_constant(symbol, constant); end
2030
2076
 
2031
- # source://tapioca//lib/tapioca/gem/pipeline.rb#298
2077
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#314
2032
2078
  sig { params(name: ::String, constant: ::Module).void }
2033
2079
  def compile_module(name, constant); end
2034
2080
 
2035
- # source://tapioca//lib/tapioca/gem/pipeline.rb#265
2081
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#281
2036
2082
  sig { params(name: ::String, value: ::BasicObject).void }
2037
2083
  def compile_object(name, value); end
2038
2084
 
2039
- # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2085
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#325
2040
2086
  sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2041
2087
  def compile_scope(name, constant); end
2042
2088
 
2043
- # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2089
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#339
2044
2090
  sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2045
2091
  def compile_superclass(constant); end
2046
2092
 
2047
- # source://tapioca//lib/tapioca/gem/pipeline.rb#421
2093
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#437
2048
2094
  sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2049
2095
  def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2050
2096
 
2051
- # source://tapioca//lib/tapioca/gem/pipeline.rb#177
2097
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#193
2052
2098
  sig { params(event: ::Tapioca::Gem::Event).void }
2053
2099
  def dispatch(event); end
2054
2100
 
2055
2101
  # Helpers
2056
2102
  #
2057
- # source://tapioca//lib/tapioca/gem/pipeline.rb#464
2103
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2058
2104
  sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2059
2105
  def generic_name_of(constant); end
2060
2106
 
2061
- # source://tapioca//lib/tapioca/gem/pipeline.rb#433
2107
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#449
2062
2108
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2063
2109
  def get_file_candidates(constant); end
2064
2110
 
2065
- # source://tapioca//lib/tapioca/gem/pipeline.rb#162
2111
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#178
2066
2112
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2067
2113
  def load_bootstrap_symbols(gem); end
2068
2114
 
2069
- # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2115
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#496
2070
2116
  sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2071
2117
  def name_of_proxy_target(constant, class_name); end
2072
2118
 
2073
2119
  # Events handling
2074
2120
  #
2075
- # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2121
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#188
2076
2122
  sig { returns(::Tapioca::Gem::Event) }
2077
2123
  def next_event; end
2078
2124
 
2079
- # source://tapioca//lib/tapioca/gem/pipeline.rb#200
2125
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#216
2080
2126
  sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2081
2127
  def on_constant(event); end
2082
2128
 
2083
- # source://tapioca//lib/tapioca/gem/pipeline.rb#212
2129
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#228
2084
2130
  sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2085
2131
  def on_node(event); end
2086
2132
 
2087
- # source://tapioca//lib/tapioca/gem/pipeline.rb#191
2133
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#207
2088
2134
  sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2089
2135
  def on_symbol(event); end
2090
2136
 
2091
- # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2137
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#468
2092
2138
  sig { params(name: ::String).void }
2093
2139
  def seen!(name); end
2094
2140
 
2095
- # source://tapioca//lib/tapioca/gem/pipeline.rb#457
2141
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#473
2096
2142
  sig { params(name: ::String).returns(T::Boolean) }
2097
2143
  def seen?(name); end
2098
2144
 
2099
- # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2145
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#407
2100
2146
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2101
2147
  def skip_alias?(name, constant); end
2102
2148
 
2103
- # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2149
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#395
2104
2150
  sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2105
2151
  def skip_constant?(name, constant); end
2106
2152
 
2107
- # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2153
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#424
2108
2154
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2109
2155
  def skip_foreign_constant?(name, constant); end
2110
2156
 
2111
- # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2157
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#429
2112
2158
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2113
2159
  def skip_module?(name, constant); end
2114
2160
 
2115
- # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2161
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#416
2116
2162
  sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2117
2163
  def skip_object?(name, constant); end
2118
2164
 
2119
2165
  # Constants and properties filtering
2120
2166
  #
2121
- # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2167
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#390
2122
2168
  sig { params(name: ::String).returns(T::Boolean) }
2123
2169
  def skip_symbol?(name); end
2124
2170
  end
@@ -2127,7 +2173,7 @@ end
2127
2173
  # "(eval at /path/to/file.rb:123)"
2128
2174
  # and we are just interested in the "/path/to/file.rb" part
2129
2175
  #
2130
- # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2176
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#132
2131
2177
  Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2132
2178
 
2133
2179
  # source://tapioca//lib/tapioca/gem/pipeline.rb#11
@@ -2180,6 +2226,21 @@ module Tapioca::GemHelper
2180
2226
  def path_in_dir?(path, dir); end
2181
2227
  end
2182
2228
 
2229
+ # source://tapioca//lib/tapioca/gem_info.rb#5
2230
+ class Tapioca::GemInfo < ::T::Struct
2231
+ const :name, ::String
2232
+ const :version, ::Gem::Version
2233
+
2234
+ class << self
2235
+ # source://tapioca//lib/tapioca/gem_info.rb#13
2236
+ sig { params(spec: ::Bundler::LazySpecification).returns(::Tapioca::GemInfo) }
2237
+ def from_spec(spec); end
2238
+
2239
+ # source://sorbet-runtime/0.5.11953/lib/types/struct.rb#13
2240
+ def inherited(s); end
2241
+ end
2242
+ end
2243
+
2183
2244
  # source://tapioca//lib/tapioca/gemfile.rb#7
2184
2245
  class Tapioca::Gemfile
2185
2246
  # source://tapioca//lib/tapioca/gemfile.rb#27
@@ -2208,7 +2269,7 @@ class Tapioca::Gemfile
2208
2269
 
2209
2270
  private
2210
2271
 
2211
- # source://tapioca//lib/tapioca/gemfile.rb#92
2272
+ # source://tapioca//lib/tapioca/gemfile.rb#101
2212
2273
  sig { returns(::String) }
2213
2274
  def dir; end
2214
2275
 
@@ -2216,7 +2277,7 @@ class Tapioca::Gemfile
2216
2277
  sig { returns(::File) }
2217
2278
  def gemfile; end
2218
2279
 
2219
- # source://tapioca//lib/tapioca/gemfile.rb#87
2280
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2220
2281
  sig { returns(T::Array[::Symbol]) }
2221
2282
  def groups; end
2222
2283
 
@@ -2233,125 +2294,128 @@ class Tapioca::Gemfile
2233
2294
  sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2234
2295
  def materialize_deps; end
2235
2296
 
2236
- # source://tapioca//lib/tapioca/gemfile.rb#82
2297
+ # source://tapioca//lib/tapioca/gemfile.rb#91
2237
2298
  sig { returns(::Bundler::Runtime) }
2238
2299
  def runtime; end
2239
2300
  end
2240
2301
 
2241
- # source://tapioca//lib/tapioca/gemfile.rb#96
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#105
2242
2303
  class Tapioca::Gemfile::GemSpec
2243
2304
  include ::Tapioca::GemHelper
2244
2305
 
2245
- # source://tapioca//lib/tapioca/gemfile.rb#136
2306
+ # source://tapioca//lib/tapioca/gemfile.rb#145
2246
2307
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2247
2308
  def initialize(spec); end
2248
2309
 
2249
- # source://tapioca//lib/tapioca/gemfile.rb#146
2310
+ # source://tapioca//lib/tapioca/gemfile.rb#155
2250
2311
  sig { params(other: ::BasicObject).returns(T::Boolean) }
2251
2312
  def ==(other); end
2252
2313
 
2253
- # source://tapioca//lib/tapioca/gemfile.rb#171
2314
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2254
2315
  sig { params(path: ::String).returns(T::Boolean) }
2255
2316
  def contains_path?(path); end
2256
2317
 
2257
- # source://tapioca//lib/tapioca/gemfile.rb#161
2318
+ # source://tapioca//lib/tapioca/gemfile.rb#170
2258
2319
  sig { returns(T::Array[::Gem::Dependency]) }
2259
2320
  def dependencies; end
2260
2321
 
2261
- # source://tapioca//lib/tapioca/gemfile.rb#201
2322
+ # source://tapioca//lib/tapioca/gemfile.rb#210
2262
2323
  sig { returns(T::Boolean) }
2263
2324
  def export_rbi_files?; end
2264
2325
 
2265
- # source://tapioca//lib/tapioca/gemfile.rb#196
2326
+ # source://tapioca//lib/tapioca/gemfile.rb#205
2266
2327
  sig { returns(T::Array[::String]) }
2267
2328
  def exported_rbi_files; end
2268
2329
 
2269
- # source://tapioca//lib/tapioca/gemfile.rb#206
2330
+ # source://tapioca//lib/tapioca/gemfile.rb#215
2270
2331
  sig { returns(::RBI::MergeTree) }
2271
2332
  def exported_rbi_tree; end
2272
2333
 
2273
- # source://tapioca//lib/tapioca/gemfile.rb#133
2334
+ # source://tapioca//lib/tapioca/gemfile.rb#142
2274
2335
  sig { returns(T::Array[::Pathname]) }
2275
2336
  def files; end
2276
2337
 
2277
- # source://tapioca//lib/tapioca/gemfile.rb#130
2338
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2278
2339
  sig { returns(::String) }
2279
2340
  def full_gem_path; end
2280
2341
 
2281
- # source://tapioca//lib/tapioca/gemfile.rb#151
2342
+ # source://tapioca//lib/tapioca/gemfile.rb#160
2282
2343
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2283
2344
  def ignore?(gemfile_dir); end
2284
2345
 
2285
- # source://tapioca//lib/tapioca/gemfile.rb#156
2346
+ # source://tapioca//lib/tapioca/gemfile.rb#165
2286
2347
  sig { returns(::String) }
2287
2348
  def name; end
2288
2349
 
2289
- # source://tapioca//lib/tapioca/gemfile.rb#180
2350
+ # source://tapioca//lib/tapioca/gemfile.rb#189
2290
2351
  sig { void }
2291
2352
  def parse_yard_docs; end
2292
2353
 
2293
- # source://tapioca//lib/tapioca/gemfile.rb#166
2354
+ # source://tapioca//lib/tapioca/gemfile.rb#175
2294
2355
  sig { returns(::String) }
2295
2356
  def rbi_file_name; end
2296
2357
 
2297
- # source://tapioca//lib/tapioca/gemfile.rb#218
2358
+ # source://tapioca//lib/tapioca/gemfile.rb#227
2298
2359
  sig { params(file: ::Pathname).returns(::Pathname) }
2299
2360
  def relative_path_for(file); end
2300
2361
 
2301
2362
  # @return [String]
2302
2363
  #
2303
- # source://tapioca//lib/tapioca/gemfile.rb#130
2364
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2304
2365
  def version; end
2305
2366
 
2306
2367
  private
2307
2368
 
2308
- # source://tapioca//lib/tapioca/gemfile.rb#229
2369
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2309
2370
  sig { returns(T::Array[::Pathname]) }
2310
2371
  def collect_files; end
2311
2372
 
2312
- # source://tapioca//lib/tapioca/gemfile.rb#244
2373
+ # source://tapioca//lib/tapioca/gemfile.rb#253
2313
2374
  sig { returns(T.nilable(T::Boolean)) }
2314
2375
  def default_gem?; end
2315
2376
 
2316
- # source://tapioca//lib/tapioca/gemfile.rb#303
2377
+ # source://tapioca//lib/tapioca/gemfile.rb#312
2317
2378
  sig { returns(T::Boolean) }
2318
2379
  def gem_ignored?; end
2319
2380
 
2320
- # source://tapioca//lib/tapioca/gemfile.rb#282
2381
+ # source://tapioca//lib/tapioca/gemfile.rb#291
2321
2382
  sig { params(path: ::String).returns(T::Boolean) }
2322
2383
  def has_parent_gemspec?(path); end
2323
2384
 
2324
- # source://tapioca//lib/tapioca/gemfile.rb#249
2385
+ # source://tapioca//lib/tapioca/gemfile.rb#258
2325
2386
  sig { returns(::Regexp) }
2326
2387
  def require_paths_prefix_matcher; end
2327
2388
 
2328
- # source://tapioca//lib/tapioca/gemfile.rb#261
2389
+ # source://tapioca//lib/tapioca/gemfile.rb#270
2329
2390
  sig { params(file: ::String).returns(::Pathname) }
2330
2391
  def resolve_to_ruby_lib_dir(file); end
2331
2392
 
2332
- # source://tapioca//lib/tapioca/gemfile.rb#275
2393
+ # source://tapioca//lib/tapioca/gemfile.rb#284
2333
2394
  sig { returns(::String) }
2334
2395
  def version_string; end
2335
2396
 
2336
2397
  class << self
2337
- # source://tapioca//lib/tapioca/gemfile.rb#104
2398
+ # source://tapioca//lib/tapioca/gemfile.rb#113
2338
2399
  sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2339
2400
  def spec_lookup_by_file_path; end
2340
2401
  end
2341
2402
  end
2342
2403
 
2343
- # source://tapioca//lib/tapioca/gemfile.rb#116
2404
+ # source://tapioca//lib/tapioca/gemfile.rb#125
2344
2405
  Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2345
2406
 
2346
2407
  # source://tapioca//lib/tapioca/gemfile.rb#10
2347
2408
  Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2348
2409
 
2410
+ # source://tapioca//lib/tapioca.rb#33
2411
+ Tapioca::LIB_ROOT_DIR = T.let(T.unsafe(nil), String)
2412
+
2349
2413
  # source://tapioca//lib/tapioca/loaders/loader.rb#5
2350
2414
  module Tapioca::Loaders; end
2351
2415
 
2352
2416
  # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2353
2417
  class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2354
- # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2418
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#74
2355
2419
  sig do
2356
2420
  params(
2357
2421
  tapioca_path: ::String,
@@ -2362,26 +2426,40 @@ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2362
2426
  end
2363
2427
  def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2364
2428
 
2365
- # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2429
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#36
2366
2430
  sig { override.void }
2367
2431
  def load; end
2368
2432
 
2433
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#43
2434
+ sig { void }
2435
+ def load_dsl_extensions_and_compilers; end
2436
+
2437
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#49
2438
+ sig { void }
2439
+ def reload_custom_compilers; end
2440
+
2369
2441
  protected
2370
2442
 
2371
- # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2443
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#120
2372
2444
  sig { void }
2373
2445
  def load_application; end
2374
2446
 
2375
- # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2447
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#100
2376
2448
  sig { void }
2377
2449
  def load_dsl_compilers; end
2378
2450
 
2379
- # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2451
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#85
2380
2452
  sig { void }
2381
2453
  def load_dsl_extensions; end
2382
2454
 
2455
+ private
2456
+
2457
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#136
2458
+ sig { void }
2459
+ def load_custom_dsl_compilers; end
2460
+
2383
2461
  class << self
2384
- # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2462
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#20
2385
2463
  sig do
2386
2464
  params(
2387
2465
  tapioca_path: ::String,
@@ -2467,16 +2545,16 @@ class Tapioca::Loaders::Loader
2467
2545
  # @param engine [T.class_of(Rails::Engine)]
2468
2546
  # @return [Array<String>]
2469
2547
  #
2470
- # source://sorbet-runtime/0.5.11305/lib/types/private/methods/_methods.rb#257
2471
- def eager_load_paths(*args, **_arg1, &blk); end
2548
+ # source://tapioca//lib/tapioca/loaders/loader.rb#234
2549
+ def eager_load_paths(engine); end
2472
2550
 
2473
- # source://tapioca//lib/tapioca/loaders/loader.rb#188
2551
+ # source://tapioca//lib/tapioca/loaders/loader.rb#199
2474
2552
  sig { void }
2475
2553
  def eager_load_rails_app; end
2476
2554
 
2477
2555
  # @return [Array<T.class_of(Rails::Engine)>]
2478
2556
  #
2479
- # source://tapioca//lib/tapioca/loaders/loader.rb#167
2557
+ # source://tapioca//lib/tapioca/loaders/loader.rb#178
2480
2558
  def engines; end
2481
2559
 
2482
2560
  # source://tapioca//lib/tapioca/loaders/loader.rb#29
@@ -2490,11 +2568,11 @@ class Tapioca::Loaders::Loader
2490
2568
  end
2491
2569
  def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2492
2570
 
2493
- # source://tapioca//lib/tapioca/loaders/loader.rb#125
2571
+ # source://tapioca//lib/tapioca/loaders/loader.rb#136
2494
2572
  sig { void }
2495
2573
  def load_engines_in_classic_mode; end
2496
2574
 
2497
- # source://tapioca//lib/tapioca/loaders/loader.rb#103
2575
+ # source://tapioca//lib/tapioca/loaders/loader.rb#114
2498
2576
  sig { void }
2499
2577
  def load_engines_in_zeitwerk_mode; end
2500
2578
 
@@ -2509,26 +2587,26 @@ class Tapioca::Loaders::Loader
2509
2587
  end
2510
2588
  def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2511
2589
 
2512
- # source://tapioca//lib/tapioca/loaders/loader.rb#78
2590
+ # source://tapioca//lib/tapioca/loaders/loader.rb#89
2513
2591
  sig { void }
2514
2592
  def load_rails_engines; end
2515
2593
 
2516
- # source://tapioca//lib/tapioca/loaders/loader.rb#209
2594
+ # source://tapioca//lib/tapioca/loaders/loader.rb#220
2517
2595
  sig { params(file: T.nilable(::String)).void }
2518
2596
  def require_helper(file); end
2519
2597
 
2520
- # source://tapioca//lib/tapioca/loaders/loader.rb#92
2598
+ # source://tapioca//lib/tapioca/loaders/loader.rb#103
2521
2599
  def run_initializers; end
2522
2600
 
2523
- # source://tapioca//lib/tapioca/loaders/loader.rb#181
2601
+ # source://tapioca//lib/tapioca/loaders/loader.rb#192
2524
2602
  sig { params(path: ::String).void }
2525
2603
  def safe_require(path); end
2526
2604
 
2527
- # source://tapioca//lib/tapioca/loaders/loader.rb#150
2605
+ # source://tapioca//lib/tapioca/loaders/loader.rb#161
2528
2606
  sig { params(blk: T.proc.void).void }
2529
2607
  def with_rails_application(&blk); end
2530
2608
 
2531
- # source://tapioca//lib/tapioca/loaders/loader.rb#143
2609
+ # source://tapioca//lib/tapioca/loaders/loader.rb#154
2532
2610
  sig { returns(T::Boolean) }
2533
2611
  def zeitwerk_mode?; end
2534
2612
  end
@@ -2575,19 +2653,19 @@ module Tapioca::RBIFilesHelper
2575
2653
 
2576
2654
  private
2577
2655
 
2578
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#209
2656
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#223
2579
2657
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2580
2658
  def extract_empty_scopes(nodes); end
2581
2659
 
2582
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#214
2660
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2583
2661
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2584
2662
  def extract_methods_and_attrs(nodes); end
2585
2663
 
2586
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2664
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#238
2587
2665
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2588
2666
  def extract_mixins(nodes); end
2589
2667
 
2590
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2668
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#248
2591
2669
  sig do
2592
2670
  params(
2593
2671
  nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
@@ -2595,7 +2673,7 @@ module Tapioca::RBIFilesHelper
2595
2673
  end
2596
2674
  def extract_nodes_with_sigs(nodes); end
2597
2675
 
2598
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#202
2676
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#216
2599
2677
  sig do
2600
2678
  params(
2601
2679
  nodes: T::Array[::RBI::Node],
@@ -2605,7 +2683,7 @@ module Tapioca::RBIFilesHelper
2605
2683
  end
2606
2684
  def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2607
2685
 
2608
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2686
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#280
2609
2687
  sig { params(path: ::String).returns(::String) }
2610
2688
  def gem_name_from_rbi_path(path); end
2611
2689
 
@@ -2617,7 +2695,7 @@ module Tapioca::RBIFilesHelper
2617
2695
  sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2618
2696
  def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2619
2697
 
2620
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2698
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#253
2621
2699
  sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2622
2700
  def update_gem_rbis_strictnesses(errors, gem_dir); end
2623
2701
  end
@@ -2687,7 +2765,7 @@ module Tapioca::RBIHelper
2687
2765
  sig { params(name: ::String).returns(T::Boolean) }
2688
2766
  def valid_method_name?(name); end
2689
2767
 
2690
- # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#123
2768
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#114
2691
2769
  sig { params(name: ::String).returns(T::Boolean) }
2692
2770
  def valid_parameter_name?(name); end
2693
2771
 
@@ -2897,7 +2975,7 @@ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2897
2975
  def initialize(raw_type, underlying_type); end
2898
2976
 
2899
2977
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2900
- sig { params(obj: T.untyped).returns(T::Boolean) }
2978
+ sig { override.params(obj: T.untyped).returns(T::Boolean) }
2901
2979
  def valid?(obj); end
2902
2980
  end
2903
2981
 
@@ -2906,7 +2984,7 @@ module Tapioca::Runtime::Reflection
2906
2984
  extend ::Tapioca::Runtime::AttachedClassOf
2907
2985
  extend ::Tapioca::Runtime::Reflection
2908
2986
 
2909
- # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2987
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2910
2988
  sig { params(constant: ::Module).returns(T.untyped) }
2911
2989
  def abstract_type_of(constant); end
2912
2990
 
@@ -2950,7 +3028,7 @@ module Tapioca::Runtime::Reflection
2950
3028
  # class D < C; end
2951
3029
  # descendants_of(C) # => [B, A, D]
2952
3030
  #
2953
- # source://tapioca//lib/tapioca/runtime/reflection.rb#167
3031
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#172
2954
3032
  sig do
2955
3033
  type_parameters(:U)
2956
3034
  .params(
@@ -2959,11 +3037,11 @@ module Tapioca::Runtime::Reflection
2959
3037
  end
2960
3038
  def descendants_of(klass); end
2961
3039
 
2962
- # source://tapioca//lib/tapioca/runtime/reflection.rb#189
3040
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#200
2963
3041
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2964
3042
  def file_candidates_for(constant); end
2965
3043
 
2966
- # source://tapioca//lib/tapioca/runtime/reflection.rb#202
3044
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#213
2967
3045
  sig { params(constant: ::Module).returns(T::Boolean) }
2968
3046
  def final_module?(constant); end
2969
3047
 
@@ -2971,7 +3049,7 @@ module Tapioca::Runtime::Reflection
2971
3049
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2972
3050
  def inherited_ancestors_of(constant); end
2973
3051
 
2974
- # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3052
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#150
2975
3053
  sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
2976
3054
  def method_of(constant, method); end
2977
3055
 
@@ -2979,7 +3057,7 @@ module Tapioca::Runtime::Reflection
2979
3057
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
2980
3058
  def name_of(constant); end
2981
3059
 
2982
- # source://tapioca//lib/tapioca/runtime/reflection.rb#140
3060
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
2983
3061
  sig { params(type: ::T::Types::Base).returns(::String) }
2984
3062
  def name_of_type(type); end
2985
3063
 
@@ -3004,21 +3082,26 @@ module Tapioca::Runtime::Reflection
3004
3082
  def qualified_name_of(constant); end
3005
3083
 
3006
3084
  # Examines the call stack to identify the closest location where a "require" is performed
3007
- # by searching for the label "<top (required)>". If none is found, it returns the location
3085
+ # by searching for the label "<top (required)>" or "block in <class:...>" in the
3086
+ # case of an ActiveSupport.on_load hook. If none is found, it returns the location
3008
3087
  # labeled "<main>", which is the original call site.
3009
3088
  #
3010
- # source://tapioca//lib/tapioca/runtime/reflection.rb#179
3089
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#185
3011
3090
  sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
3012
3091
  def resolve_loc(locations); end
3013
3092
 
3014
- # source://tapioca//lib/tapioca/runtime/reflection.rb#207
3093
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#218
3015
3094
  sig { params(constant: ::Module).returns(T::Boolean) }
3016
3095
  def sealed_module?(constant); end
3017
3096
 
3018
- # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3097
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#138
3019
3098
  sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3020
3099
  def signature_of(method); end
3021
3100
 
3101
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3102
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3103
+ def signature_of!(method); end
3104
+
3022
3105
  # source://tapioca//lib/tapioca/runtime/reflection.rb#72
3023
3106
  sig { params(constant: ::Module).returns(T::Class[T.anything]) }
3024
3107
  def singleton_class_of(constant); end
@@ -3029,23 +3112,23 @@ module Tapioca::Runtime::Reflection
3029
3112
 
3030
3113
  private
3031
3114
 
3032
- # source://tapioca//lib/tapioca/runtime/reflection.rb#244
3115
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3033
3116
  sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
3034
3117
  def child_module_for_parent_with_name(parent, name); end
3035
3118
 
3036
- # source://tapioca//lib/tapioca/runtime/reflection.rb#260
3119
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#271
3037
3120
  sig { params(name: ::String).returns(T::Boolean) }
3038
3121
  def has_aliased_namespace?(name); end
3039
3122
 
3040
- # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3123
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#266
3041
3124
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3042
3125
  def method_defined_by_forwardable_module?(method); end
3043
3126
 
3044
- # source://tapioca//lib/tapioca/runtime/reflection.rb#230
3127
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#241
3045
3128
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3046
3129
  def methods_for(constant); end
3047
3130
 
3048
- # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3131
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#225
3049
3132
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3050
3133
  def relevant_methods_for(constant); end
3051
3134
  end
@@ -3229,9 +3312,9 @@ end
3229
3312
 
3230
3313
  class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3231
3314
  enums do
3232
- Prepend = new
3233
- Include = new
3234
3315
  Extend = new
3316
+ Include = new
3317
+ Prepend = new
3235
3318
  end
3236
3319
  end
3237
3320
 
@@ -3277,10 +3360,10 @@ module Tapioca::Runtime::Trackers::Tracker
3277
3360
  end
3278
3361
  end
3279
3362
 
3280
- # source://tapioca//lib/tapioca.rb#33
3363
+ # source://tapioca//lib/tapioca.rb#35
3281
3364
  Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3282
3365
 
3283
- # source://tapioca//lib/tapioca.rb#32
3366
+ # source://tapioca//lib/tapioca.rb#34
3284
3367
  Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3285
3368
 
3286
3369
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
@@ -3316,6 +3399,58 @@ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3316
3399
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3317
3400
  Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3318
3401
 
3402
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3403
+ class Tapioca::SourceURI < ::URI::File
3404
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#72
3405
+ sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3406
+ def check_host(v); end
3407
+
3408
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#55
3409
+ sig { returns(T.nilable(::String)) }
3410
+ def gem_name; end
3411
+
3412
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#29
3413
+ sig { returns(T.nilable(::String)) }
3414
+ def gem_version; end
3415
+
3416
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#60
3417
+ sig { returns(T.nilable(::String)) }
3418
+ def line_number; end
3419
+
3420
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#65
3421
+ sig { params(v: T.nilable(::String)).void }
3422
+ def set_path(v); end
3423
+
3424
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#84
3425
+ sig { returns(::String) }
3426
+ def to_s; end
3427
+
3428
+ class << self
3429
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#42
3430
+ sig do
3431
+ params(
3432
+ gem_name: ::String,
3433
+ gem_version: T.nilable(::String),
3434
+ path: ::String,
3435
+ line_number: T.nilable(::String)
3436
+ ).returns(T.attached_class)
3437
+ end
3438
+ def build(gem_name:, gem_version:, path:, line_number:); end
3439
+ end
3440
+ end
3441
+
3442
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3443
+ Tapioca::SourceURI::COMPONENT = T.let(T.unsafe(nil), Array)
3444
+
3445
+ # `uri` for Ruby 3.4 switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
3446
+ # warning on a few methods and delegates them to RFC2396, namely `extract`/`make_regexp`/`escape`/`unescape`.
3447
+ # On earlier versions of the uri gem, the RFC2396_PARSER constant doesn't exist, so it needs some special
3448
+ # handling to select a parser that doesn't emit deprecations. While it was backported to Ruby 3.1, users may
3449
+ # have the uri gem in their own bundle and thus not use a compatible version.
3450
+ #
3451
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#26
3452
+ Tapioca::SourceURI::PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)
3453
+
3319
3454
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3320
3455
  module Tapioca::Static; end
3321
3456
 
@@ -3375,10 +3510,10 @@ module Tapioca::Static::SymbolLoader
3375
3510
 
3376
3511
  # @return [Array<T.class_of(Rails::Engine)>]
3377
3512
  #
3378
- # source://sorbet-runtime/0.5.11305/lib/types/private/methods/_methods.rb#257
3379
- def engines(*args, **_arg1, &blk); end
3513
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#71
3514
+ def engines; end
3380
3515
 
3381
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3516
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#84
3382
3517
  sig { params(input: ::String, table_type: ::String).returns(::String) }
3383
3518
  def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3384
3519
  end
@@ -3412,10 +3547,10 @@ end
3412
3547
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3413
3548
  Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3414
3549
 
3415
- # source://tapioca//lib/tapioca.rb#35
3550
+ # source://tapioca//lib/tapioca.rb#37
3416
3551
  Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3417
3552
 
3418
- # source://tapioca//lib/tapioca.rb#34
3553
+ # source://tapioca//lib/tapioca.rb#36
3419
3554
  Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3420
3555
 
3421
3556
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
@@ -3483,59 +3618,11 @@ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3483
3618
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3484
3619
  class Tapioca::TypeVariableModule::Type < ::T::Enum
3485
3620
  enums do
3621
+ HasAttachedClass = new
3486
3622
  Member = new
3487
3623
  Template = new
3488
- HasAttachedClass = new
3489
3624
  end
3490
3625
  end
3491
3626
 
3492
3627
  # source://tapioca//lib/tapioca/version.rb#5
3493
3628
  Tapioca::VERSION = T.let(T.unsafe(nil), String)
3494
-
3495
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#6
3496
- module URI
3497
- include ::URI::RFC2396_REGEXP
3498
- end
3499
-
3500
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3501
- class URI::Source < ::URI::File
3502
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3503
- sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3504
- def check_host(v); end
3505
-
3506
- # source://uri/0.13.0/uri/generic.rb#243
3507
- def gem_name; end
3508
-
3509
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3510
- sig { returns(T.nilable(::String)) }
3511
- def gem_version; end
3512
-
3513
- # source://uri/0.13.0/uri/generic.rb#283
3514
- def line_number; end
3515
-
3516
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3517
- sig { params(v: T.nilable(::String)).void }
3518
- def set_path(v); end
3519
-
3520
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3521
- sig { returns(::String) }
3522
- def to_s; end
3523
-
3524
- class << self
3525
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3526
- sig do
3527
- params(
3528
- gem_name: ::String,
3529
- gem_version: T.nilable(::String),
3530
- path: ::String,
3531
- line_number: T.nilable(::String)
3532
- ).returns(::URI::Source)
3533
- end
3534
- def build(gem_name:, gem_version:, path:, line_number:); end
3535
- end
3536
- end
3537
-
3538
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3539
- URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3540
-
3541
- class URI::WSS < ::URI::WS; end