activerecord-ejection_seat 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -8
  3. data/.ruby-version +1 -0
  4. data/.tool-versions +1 -0
  5. data/Gemfile +2 -2
  6. data/Gemfile.lock +42 -55
  7. data/README.md +16 -6
  8. data/Rakefile +6 -6
  9. data/activerecord-ejection_seat.gemspec +40 -0
  10. data/lib/activerecord-ejection_seat/attributes_builder.rb +42 -0
  11. data/lib/activerecord-ejection_seat/ejectable.rb +7 -10
  12. data/lib/activerecord-ejection_seat/props_builder.rb +35 -23
  13. data/lib/activerecord-ejection_seat/version.rb +2 -2
  14. data/lib/activerecord-ejection_seat.rb +6 -3
  15. data/sorbet/rbi/gems/activemodel@7.0.4.1.rbi +6022 -0
  16. data/sorbet/rbi/gems/activerecord@7.0.4.1.rbi +37791 -0
  17. data/sorbet/rbi/gems/activesupport@7.0.4.1.rbi +18127 -0
  18. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11626 -2
  19. data/sorbet/rbi/gems/minitest@5.17.0.rbi +2319 -0
  20. data/sorbet/rbi/gems/{parser@3.1.3.0.rbi → parser@3.2.0.0.rbi} +907 -821
  21. data/sorbet/rbi/gems/{prettier_print@1.1.0.rbi → prettier_print@1.2.0.rbi} +0 -0
  22. data/sorbet/rbi/gems/{rubocop-ast@1.24.0.rbi → rubocop-ast@1.24.1.rbi} +702 -458
  23. data/sorbet/rbi/gems/rubocop-minitest@0.26.1.rbi +2320 -0
  24. data/sorbet/rbi/gems/{rubocop@1.41.0.rbi → rubocop@1.43.0.rbi} +2743 -625
  25. data/sorbet/rbi/gems/{ruby-lsp@0.3.7.rbi → ruby-lsp@0.3.8.rbi} +2 -1
  26. data/sorbet/rbi/gems/{sqlite3@1.5.4.rbi → sqlite3@1.6.0.rbi} +73 -0
  27. data/sorbet/rbi/gems/{syntax_tree@4.3.0.rbi → syntax_tree@5.2.0.rbi} +0 -0
  28. data/sorbet/rbi/gems/{tapioca@0.10.4.rbi → tapioca@0.10.5.rbi} +279 -96
  29. data/sorbet/rbi/gems/{unicode-display_width@2.3.0.rbi → unicode-display_width@2.4.2.rbi} +26 -7
  30. data/sorbet/rbi/gems/{unparser@0.6.5.rbi → unparser@0.6.7.rbi} +323 -64
  31. data/sorbet/rbi/gems/{yard-sorbet@0.7.0.rbi → yard-sorbet@0.8.0.rbi} +91 -41
  32. data/sorbet/rbi/shims/location.rbi +13 -0
  33. data/sorbet/rbi/shims/post.rbi +16 -0
  34. data/sorbet/rbi/shims/user.rbi +19 -0
  35. data/sorbet/rbi/todo.rbi +0 -4
  36. data/sorbet/tapioca/require.rb +16 -2
  37. metadata +29 -27
  38. data/sorbet/rbi/gems/activemodel@7.0.4.rbi +0 -8
  39. data/sorbet/rbi/gems/activerecord@7.0.4.rbi +0 -11
  40. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +0 -93
  41. data/sorbet/rbi/gems/minitest@5.16.3.rbi +0 -8
  42. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +0 -10588
  43. data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +0 -7817
  44. data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +0 -4994
  45. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +0 -1477
  46. data/sorbet/rbi/gems/rspec@3.12.0.rbi +0 -10
  47. data/sorbet/rbi/gems/rubocop-rspec@2.16.0.rbi +0 -7650
@@ -170,22 +170,22 @@ class RBI::Tree < ::RBI::NodeWithComments
170
170
 
171
171
  private
172
172
 
173
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
173
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#116
174
174
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
175
175
  def create_node(node); end
176
176
 
177
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#106
177
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
178
178
  sig { returns(T::Hash[::String, ::RBI::Node]) }
179
179
  def nodes_cache; end
180
180
  end
181
181
 
182
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#121
182
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#126
183
183
  class RBI::TypedParam < ::T::Struct
184
184
  const :param, ::RBI::Param
185
185
  const :type, ::String
186
186
 
187
187
  class << self
188
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
188
+ # source://sorbet-runtime/0.5.10624/lib/types/struct.rb#13
189
189
  def inherited(s); end
190
190
  end
191
191
  end
@@ -232,7 +232,7 @@ module T::Private::Methods
232
232
  end
233
233
  end
234
234
 
235
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#29
235
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#29
236
236
  T::Private::Methods::ARG_NOT_PROVIDED = T.let(T.unsafe(nil), Object)
237
237
 
238
238
  class T::Private::Methods::Declaration < ::Struct
@@ -289,7 +289,7 @@ class T::Private::Methods::DeclarationBlock < ::Struct
289
289
  end
290
290
  end
291
291
 
292
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#30
292
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#30
293
293
  T::Private::Methods::PROC_TYPE = T.let(T.unsafe(nil), Object)
294
294
 
295
295
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#29
@@ -298,7 +298,7 @@ module T::Private::Methods::ProcBindPatch
298
298
  def finalize_proc(decl); end
299
299
  end
300
300
 
301
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#581
301
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#581
302
302
  T::Private::Methods::TOP_SELF = T.let(T.unsafe(nil), Object)
303
303
 
304
304
  class T::Types::Proc < ::T::Types::Base; end
@@ -372,13 +372,13 @@ end
372
372
  # source://tapioca//lib/tapioca.rb#37
373
373
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
374
374
 
375
- # source://tapioca//lib/tapioca.rb#57
375
+ # source://tapioca//lib/tapioca.rb#60
376
376
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
377
377
 
378
- # source://tapioca//lib/tapioca.rb#56
378
+ # source://tapioca//lib/tapioca.rb#59
379
379
  Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
380
380
 
381
- # source://tapioca//lib/tapioca.rb#55
381
+ # source://tapioca//lib/tapioca.rb#58
382
382
  Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
383
383
 
384
384
  # source://tapioca//lib/tapioca/cli.rb#5
@@ -387,40 +387,40 @@ class Tapioca::Cli < ::Thor
387
387
  include ::Tapioca::ConfigHelper
388
388
  include ::Tapioca::EnvHelper
389
389
 
390
- # source://tapioca//lib/tapioca/cli.rb#327
390
+ # source://tapioca//lib/tapioca/cli.rb#332
391
391
  def __print_version; end
392
392
 
393
- # source://tapioca//lib/tapioca/cli.rb#307
393
+ # source://tapioca//lib/tapioca/cli.rb#312
394
394
  def annotations; end
395
395
 
396
- # source://tapioca//lib/tapioca/cli.rb#279
396
+ # source://tapioca//lib/tapioca/cli.rb#282
397
397
  def check_shims; end
398
398
 
399
- # source://tapioca//lib/tapioca/cli.rb#38
399
+ # source://tapioca//lib/tapioca/cli.rb#41
400
400
  def configure; end
401
401
 
402
- # source://tapioca//lib/tapioca/cli.rb#130
402
+ # source://tapioca//lib/tapioca/cli.rb#133
403
403
  def dsl(*constants); end
404
404
 
405
- # source://tapioca//lib/tapioca/cli.rb#231
405
+ # source://tapioca//lib/tapioca/cli.rb#234
406
406
  def gem(*gems); end
407
407
 
408
408
  # source://tapioca//lib/tapioca/cli.rb#27
409
409
  def init; end
410
410
 
411
- # source://tapioca//lib/tapioca/cli.rb#49
411
+ # source://tapioca//lib/tapioca/cli.rb#52
412
412
  def require; end
413
413
 
414
- # source://tapioca//lib/tapioca/cli.rb#68
414
+ # source://tapioca//lib/tapioca/cli.rb#71
415
415
  def todo; end
416
416
 
417
417
  private
418
418
 
419
- # source://tapioca//lib/tapioca/cli.rb#341
419
+ # source://tapioca//lib/tapioca/cli.rb#346
420
420
  def print_init_next_steps; end
421
421
 
422
422
  class << self
423
- # source://tapioca//lib/tapioca/cli.rb#333
423
+ # source://tapioca//lib/tapioca/cli.rb#338
424
424
  def exit_on_failure?; end
425
425
  end
426
426
  end
@@ -448,6 +448,7 @@ end
448
448
  # source://tapioca//lib/tapioca/commands.rb#5
449
449
  module Tapioca::Commands; end
450
450
 
451
+ # source://tapioca//lib/tapioca/commands/annotations.rb#6
451
452
  class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker
452
453
  # source://tapioca//lib/tapioca/commands/annotations.rb#18
453
454
  sig do
@@ -528,6 +529,30 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
528
529
  def token_for(repo_uri); end
529
530
  end
530
531
 
532
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#6
533
+ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker
534
+ include ::Tapioca::SorbetHelper
535
+ include ::Tapioca::RBIFilesHelper
536
+
537
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#22
538
+ sig do
539
+ params(
540
+ gem_rbi_dir: ::String,
541
+ dsl_rbi_dir: ::String,
542
+ annotations_rbi_dir: ::String,
543
+ shim_rbi_dir: ::String,
544
+ todo_rbi_file: ::String,
545
+ payload: T::Boolean,
546
+ number_of_workers: T.nilable(::Integer)
547
+ ).void
548
+ end
549
+ def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end
550
+
551
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#42
552
+ sig { override.void }
553
+ def execute; end
554
+ end
555
+
531
556
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
532
557
  #
533
558
  # source://tapioca//lib/tapioca/commands/command.rb#6
@@ -632,6 +657,115 @@ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
632
657
  def spec; end
633
658
  end
634
659
 
660
+ # source://tapioca//lib/tapioca/commands/dsl.rb#6
661
+ class Tapioca::Commands::Dsl < ::Tapioca::Commands::CommandWithoutTracker
662
+ include ::Tapioca::SorbetHelper
663
+ include ::Tapioca::RBIFilesHelper
664
+
665
+ # source://tapioca//lib/tapioca/commands/dsl.rb#28
666
+ sig do
667
+ params(
668
+ requested_constants: T::Array[::String],
669
+ outpath: ::Pathname,
670
+ only: T::Array[::String],
671
+ exclude: T::Array[::String],
672
+ file_header: T::Boolean,
673
+ tapioca_path: ::String,
674
+ should_verify: T::Boolean,
675
+ quiet: T::Boolean,
676
+ verbose: T::Boolean,
677
+ number_of_workers: T.nilable(::Integer),
678
+ auto_strictness: T::Boolean,
679
+ gem_dir: ::String,
680
+ rbi_formatter: ::Tapioca::RBIFormatter,
681
+ app_root: ::String
682
+ ).void
683
+ end
684
+ def initialize(requested_constants:, outpath:, only:, exclude:, file_header:, tapioca_path:, should_verify: 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)); end
685
+
686
+ # source://tapioca//lib/tapioca/commands/dsl.rb#90
687
+ sig { override.void }
688
+ def execute; end
689
+
690
+ # source://tapioca//lib/tapioca/commands/dsl.rb#63
691
+ sig { void }
692
+ def list_compilers; end
693
+
694
+ private
695
+
696
+ # source://tapioca//lib/tapioca/commands/dsl.rb#317
697
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
698
+ def build_error_for_files(cause, files); end
699
+
700
+ # source://tapioca//lib/tapioca/commands/dsl.rb#241
701
+ sig do
702
+ params(
703
+ constant_name: ::String,
704
+ rbi: ::RBI::File,
705
+ outpath: ::Pathname,
706
+ quiet: T::Boolean
707
+ ).returns(T.nilable(::Pathname))
708
+ end
709
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
710
+
711
+ # source://tapioca//lib/tapioca/commands/dsl.rb#179
712
+ sig { params(constant_names: T::Array[::String]).returns(T::Array[::Module]) }
713
+ def constantize(constant_names); end
714
+
715
+ # source://tapioca//lib/tapioca/commands/dsl.rb#202
716
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
717
+ def constantize_compilers(compiler_names); end
718
+
719
+ # source://tapioca//lib/tapioca/commands/dsl.rb#153
720
+ sig { returns(::Tapioca::Dsl::Pipeline) }
721
+ def create_pipeline; end
722
+
723
+ # source://tapioca//lib/tapioca/commands/dsl.rb#280
724
+ sig { params(constant_name: ::String).returns(::Pathname) }
725
+ def dsl_rbi_filename(constant_name); end
726
+
727
+ # source://tapioca//lib/tapioca/commands/dsl.rb#166
728
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
729
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
730
+
731
+ # source://tapioca//lib/tapioca/commands/dsl.rb#370
732
+ sig { params(constant: ::String).returns(::String) }
733
+ def generate_command_for(constant); end
734
+
735
+ # source://tapioca//lib/tapioca/commands/dsl.rb#259
736
+ sig { params(dir: ::Pathname).void }
737
+ def perform_dsl_verification(dir); end
738
+
739
+ # source://tapioca//lib/tapioca/commands/dsl.rb#268
740
+ sig { params(files: T::Set[::Pathname]).void }
741
+ def purge_stale_dsl_rbi_files(files); end
742
+
743
+ # source://tapioca//lib/tapioca/commands/dsl.rb#365
744
+ sig { params(constant: ::String).returns(::String) }
745
+ def rbi_filename_for(constant); end
746
+
747
+ # source://tapioca//lib/tapioca/commands/dsl.rb#346
748
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
749
+ def rbi_files_in(path); end
750
+
751
+ # source://tapioca//lib/tapioca/commands/dsl.rb#326
752
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
753
+ def report_diff_and_exit_if_out_of_date(diff, command); end
754
+
755
+ # source://tapioca//lib/tapioca/commands/dsl.rb#221
756
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
757
+ def resolve(name); end
758
+
759
+ # source://tapioca//lib/tapioca/commands/dsl.rb#353
760
+ sig { params(class_name: ::String).returns(::String) }
761
+ def underscore(class_name); end
762
+
763
+ # source://tapioca//lib/tapioca/commands/dsl.rb#285
764
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
765
+ def verify_dsl_rbi(tmp_dir:); end
766
+ end
767
+
768
+ # source://tapioca//lib/tapioca/commands/gem.rb#6
635
769
  class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
636
770
  include ::Tapioca::SorbetHelper
637
771
  include ::Tapioca::RBIFilesHelper
@@ -667,11 +801,11 @@ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
667
801
 
668
802
  private
669
803
 
670
- # source://tapioca//lib/tapioca/commands/gem.rb#281
804
+ # source://tapioca//lib/tapioca/commands/gem.rb#283
671
805
  sig { returns(T::Array[::String]) }
672
806
  def added_rbis; end
673
807
 
674
- # source://tapioca//lib/tapioca/commands/gem.rb#342
808
+ # source://tapioca//lib/tapioca/commands/gem.rb#344
675
809
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
676
810
  def build_error_for_files(cause, files); end
677
811
 
@@ -679,27 +813,27 @@ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
679
813
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
680
814
  def compile_gem_rbi(gem); end
681
815
 
682
- # source://tapioca//lib/tapioca/commands/gem.rb#276
816
+ # source://tapioca//lib/tapioca/commands/gem.rb#278
683
817
  sig { params(gem_name: ::String).returns(::Pathname) }
684
818
  def existing_rbi(gem_name); end
685
819
 
686
- # source://tapioca//lib/tapioca/commands/gem.rb#324
820
+ # source://tapioca//lib/tapioca/commands/gem.rb#326
687
821
  sig { returns(T::Hash[::String, ::String]) }
688
822
  def existing_rbis; end
689
823
 
690
- # source://tapioca//lib/tapioca/commands/gem.rb#288
824
+ # source://tapioca//lib/tapioca/commands/gem.rb#290
691
825
  sig { params(gem_name: ::String).returns(::Pathname) }
692
826
  def expected_rbi(gem_name); end
693
827
 
694
- # source://tapioca//lib/tapioca/commands/gem.rb#330
828
+ # source://tapioca//lib/tapioca/commands/gem.rb#332
695
829
  sig { returns(T::Hash[::String, ::String]) }
696
830
  def expected_rbis; end
697
831
 
698
- # source://tapioca//lib/tapioca/commands/gem.rb#293
832
+ # source://tapioca//lib/tapioca/commands/gem.rb#295
699
833
  sig { params(gem_name: ::String).returns(T::Boolean) }
700
834
  def gem_rbi_exists?(gem_name); end
701
835
 
702
- # source://tapioca//lib/tapioca/commands/gem.rb#337
836
+ # source://tapioca//lib/tapioca/commands/gem.rb#339
703
837
  sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
704
838
  def gem_rbi_filename(gem_name, version); end
705
839
 
@@ -707,35 +841,69 @@ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
707
841
  sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
708
842
  def gems_to_generate(gem_names); end
709
843
 
710
- # source://tapioca//lib/tapioca/commands/gem.rb#347
844
+ # source://tapioca//lib/tapioca/commands/gem.rb#349
711
845
  sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
712
846
  def merge_with_exported_rbi(gem, file); end
713
847
 
714
- # source://tapioca//lib/tapioca/commands/gem.rb#318
848
+ # source://tapioca//lib/tapioca/commands/gem.rb#320
715
849
  sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
716
850
  def move(old_filename, new_filename); end
717
851
 
718
- # source://tapioca//lib/tapioca/commands/gem.rb#229
852
+ # source://tapioca//lib/tapioca/commands/gem.rb#231
719
853
  sig { void }
720
854
  def perform_additions; end
721
855
 
722
- # source://tapioca//lib/tapioca/commands/gem.rb#202
856
+ # source://tapioca//lib/tapioca/commands/gem.rb#204
723
857
  sig { void }
724
858
  def perform_removals; end
725
859
 
726
- # source://tapioca//lib/tapioca/commands/gem.rb#183
860
+ # source://tapioca//lib/tapioca/commands/gem.rb#185
727
861
  sig { params(exclude: T::Array[::String]).void }
728
862
  def perform_sync_verification(exclude: T.unsafe(nil)); end
729
863
 
730
- # source://tapioca//lib/tapioca/commands/gem.rb#271
864
+ # source://tapioca//lib/tapioca/commands/gem.rb#273
731
865
  sig { returns(T::Array[::String]) }
732
866
  def removed_rbis; end
733
867
 
734
- # source://tapioca//lib/tapioca/commands/gem.rb#298
868
+ # source://tapioca//lib/tapioca/commands/gem.rb#300
735
869
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
736
870
  def report_diff_and_exit_if_out_of_date(diff, command); end
737
871
  end
738
872
 
873
+ # source://tapioca//lib/tapioca/commands/require.rb#6
874
+ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker
875
+ # source://tapioca//lib/tapioca/commands/require.rb#13
876
+ sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
877
+ def initialize(requires_path:, sorbet_config_path:); end
878
+
879
+ # source://tapioca//lib/tapioca/commands/require.rb#21
880
+ sig { override.void }
881
+ def execute; end
882
+ end
883
+
884
+ # source://tapioca//lib/tapioca/commands/todo.rb#6
885
+ class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker
886
+ include ::Tapioca::SorbetHelper
887
+
888
+ # source://tapioca//lib/tapioca/commands/todo.rb#15
889
+ sig { params(todo_file: ::String, file_header: T::Boolean).void }
890
+ def initialize(todo_file:, file_header:); end
891
+
892
+ # source://tapioca//lib/tapioca/commands/todo.rb#23
893
+ sig { override.void }
894
+ def execute; end
895
+
896
+ private
897
+
898
+ # source://tapioca//lib/tapioca/commands/todo.rb#49
899
+ sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
900
+ def rbi(constants, command:); end
901
+
902
+ # source://tapioca//lib/tapioca/commands/todo.rb#69
903
+ sig { returns(T::Array[::String]) }
904
+ def unresolved_constants; end
905
+ end
906
+
739
907
  # source://tapioca//lib/tapioca/helpers/config_helper.rb#5
740
908
  module Tapioca::ConfigHelper
741
909
  requires_ancestor { Thor }
@@ -806,7 +974,7 @@ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
806
974
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
807
975
 
808
976
  class << self
809
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
977
+ # source://sorbet-runtime/0.5.10624/lib/types/struct.rb#13
810
978
  def inherited(s); end
811
979
  end
812
980
  end
@@ -817,7 +985,7 @@ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
817
985
  const :colors, T::Array[::Symbol]
818
986
 
819
987
  class << self
820
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
988
+ # source://sorbet-runtime/0.5.10624/lib/types/struct.rb#13
821
989
  def inherited(s); end
822
990
  end
823
991
  end
@@ -828,7 +996,7 @@ Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
828
996
  # source://tapioca//lib/tapioca.rb#40
829
997
  Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
830
998
 
831
- # source://tapioca//lib/tapioca.rb#53
999
+ # source://tapioca//lib/tapioca.rb#56
832
1000
  Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
833
1001
 
834
1002
  # source://tapioca//lib/tapioca.rb#41
@@ -846,7 +1014,7 @@ Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
846
1014
  # source://tapioca//lib/tapioca/rbi_formatter.rb#29
847
1015
  Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
848
1016
 
849
- # source://tapioca//lib/tapioca.rb#52
1017
+ # source://tapioca//lib/tapioca.rb#55
850
1018
  Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
851
1019
 
852
1020
  # source://tapioca//lib/tapioca.rb#42
@@ -1104,7 +1272,7 @@ end
1104
1272
  class Tapioca::Gem::Event
1105
1273
  abstract!
1106
1274
 
1107
- # source://sorbet-runtime/0.5.10597/lib/types/private/abstract/declare.rb#37
1275
+ # source://sorbet-runtime/0.5.10624/lib/types/private/abstract/declare.rb#37
1108
1276
  def initialize(*args, **_arg1, &blk); end
1109
1277
  end
1110
1278
 
@@ -1445,29 +1613,29 @@ end
1445
1613
 
1446
1614
  # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#7
1447
1615
  class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
1448
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1616
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#27
1449
1617
  sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1450
1618
  def initialize(pipeline); end
1451
1619
 
1452
1620
  private
1453
1621
 
1454
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#51
1622
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#54
1455
1623
  sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
1456
1624
  def documentation_comments(name, sigs: T.unsafe(nil)); end
1457
1625
 
1458
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#95
1626
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#98
1459
1627
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1460
1628
  def ignore?(event); end
1461
1629
 
1462
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#32
1630
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#35
1463
1631
  sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1464
1632
  def on_const(event); end
1465
1633
 
1466
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#42
1634
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#45
1467
1635
  sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1468
1636
  def on_method(event); end
1469
1637
 
1470
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#37
1638
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#40
1471
1639
  sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1472
1640
  def on_scope(event); end
1473
1641
  end
@@ -1475,7 +1643,7 @@ end
1475
1643
  # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#10
1476
1644
  Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
1477
1645
 
1478
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#21
1646
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1479
1647
  Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
1480
1648
 
1481
1649
  # source://tapioca//lib/tapioca/gem/events.rb#105
@@ -1812,90 +1980,90 @@ end
1812
1980
  class Tapioca::Gemfile::GemSpec
1813
1981
  include ::Tapioca::GemHelper
1814
1982
 
1815
- # source://tapioca//lib/tapioca/gemfile.rb#170
1983
+ # source://tapioca//lib/tapioca/gemfile.rb#174
1816
1984
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
1817
1985
  def initialize(spec); end
1818
1986
 
1819
- # source://tapioca//lib/tapioca/gemfile.rb#180
1987
+ # source://tapioca//lib/tapioca/gemfile.rb#184
1820
1988
  sig { params(other: ::BasicObject).returns(T::Boolean) }
1821
1989
  def ==(other); end
1822
1990
 
1823
- # source://tapioca//lib/tapioca/gemfile.rb#200
1991
+ # source://tapioca//lib/tapioca/gemfile.rb#204
1824
1992
  sig { params(path: ::String).returns(T::Boolean) }
1825
1993
  def contains_path?(path); end
1826
1994
 
1827
- # source://tapioca//lib/tapioca/gemfile.rb#219
1995
+ # source://tapioca//lib/tapioca/gemfile.rb#223
1828
1996
  sig { returns(T::Boolean) }
1829
1997
  def export_rbi_files?; end
1830
1998
 
1831
- # source://tapioca//lib/tapioca/gemfile.rb#214
1999
+ # source://tapioca//lib/tapioca/gemfile.rb#218
1832
2000
  sig { returns(T::Array[::String]) }
1833
2001
  def exported_rbi_files; end
1834
2002
 
1835
- # source://tapioca//lib/tapioca/gemfile.rb#224
2003
+ # source://tapioca//lib/tapioca/gemfile.rb#228
1836
2004
  sig { returns(::RBI::MergeTree) }
1837
2005
  def exported_rbi_tree; end
1838
2006
 
1839
- # source://tapioca//lib/tapioca/gemfile.rb#167
2007
+ # source://tapioca//lib/tapioca/gemfile.rb#171
1840
2008
  sig { returns(T::Array[::Pathname]) }
1841
2009
  def files; end
1842
2010
 
1843
- # source://tapioca//lib/tapioca/gemfile.rb#164
2011
+ # source://tapioca//lib/tapioca/gemfile.rb#168
1844
2012
  sig { returns(::String) }
1845
2013
  def full_gem_path; end
1846
2014
 
1847
- # source://tapioca//lib/tapioca/gemfile.rb#185
2015
+ # source://tapioca//lib/tapioca/gemfile.rb#189
1848
2016
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
1849
2017
  def ignore?(gemfile_dir); end
1850
2018
 
1851
- # source://tapioca//lib/tapioca/gemfile.rb#190
2019
+ # source://tapioca//lib/tapioca/gemfile.rb#194
1852
2020
  sig { returns(::String) }
1853
2021
  def name; end
1854
2022
 
1855
- # source://tapioca//lib/tapioca/gemfile.rb#209
2023
+ # source://tapioca//lib/tapioca/gemfile.rb#213
1856
2024
  sig { void }
1857
2025
  def parse_yard_docs; end
1858
2026
 
1859
- # source://tapioca//lib/tapioca/gemfile.rb#195
2027
+ # source://tapioca//lib/tapioca/gemfile.rb#199
1860
2028
  sig { returns(::String) }
1861
2029
  def rbi_file_name; end
1862
2030
 
1863
- # source://tapioca//lib/tapioca/gemfile.rb#236
2031
+ # source://tapioca//lib/tapioca/gemfile.rb#240
1864
2032
  sig { params(file: ::Pathname).returns(::Pathname) }
1865
2033
  def relative_path_for(file); end
1866
2034
 
1867
2035
  # @return [String]
1868
2036
  #
1869
- # source://tapioca//lib/tapioca/gemfile.rb#164
2037
+ # source://tapioca//lib/tapioca/gemfile.rb#168
1870
2038
  def version; end
1871
2039
 
1872
2040
  private
1873
2041
 
1874
- # source://tapioca//lib/tapioca/gemfile.rb#247
2042
+ # source://tapioca//lib/tapioca/gemfile.rb#251
1875
2043
  sig { returns(T::Array[::Pathname]) }
1876
2044
  def collect_files; end
1877
2045
 
1878
- # source://tapioca//lib/tapioca/gemfile.rb#262
2046
+ # source://tapioca//lib/tapioca/gemfile.rb#266
1879
2047
  sig { returns(T.nilable(T::Boolean)) }
1880
2048
  def default_gem?; end
1881
2049
 
1882
- # source://tapioca//lib/tapioca/gemfile.rb#320
2050
+ # source://tapioca//lib/tapioca/gemfile.rb#324
1883
2051
  sig { returns(T::Boolean) }
1884
2052
  def gem_ignored?; end
1885
2053
 
1886
- # source://tapioca//lib/tapioca/gemfile.rb#299
2054
+ # source://tapioca//lib/tapioca/gemfile.rb#303
1887
2055
  sig { params(path: ::String).returns(T::Boolean) }
1888
2056
  def has_parent_gemspec?(path); end
1889
2057
 
1890
- # source://tapioca//lib/tapioca/gemfile.rb#267
2058
+ # source://tapioca//lib/tapioca/gemfile.rb#271
1891
2059
  sig { returns(::Regexp) }
1892
2060
  def require_paths_prefix_matcher; end
1893
2061
 
1894
- # source://tapioca//lib/tapioca/gemfile.rb#278
2062
+ # source://tapioca//lib/tapioca/gemfile.rb#282
1895
2063
  sig { params(file: ::String).returns(::Pathname) }
1896
2064
  def resolve_to_ruby_lib_dir(file); end
1897
2065
 
1898
- # source://tapioca//lib/tapioca/gemfile.rb#292
2066
+ # source://tapioca//lib/tapioca/gemfile.rb#296
1899
2067
  sig { returns(::String) }
1900
2068
  def version_string; end
1901
2069
 
@@ -1952,7 +2120,7 @@ end
1952
2120
 
1953
2121
  # source://tapioca//lib/tapioca/loaders/gem.rb#6
1954
2122
  class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
1955
- # source://tapioca//lib/tapioca/loaders/gem.rb#44
2123
+ # source://tapioca//lib/tapioca/loaders/gem.rb#46
1956
2124
  sig do
1957
2125
  params(
1958
2126
  bundle: ::Tapioca::Gemfile,
@@ -1963,17 +2131,17 @@ class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
1963
2131
  end
1964
2132
  def initialize(bundle:, prerequire:, postrequire:, default_command:); end
1965
2133
 
1966
- # source://tapioca//lib/tapioca/loaders/gem.rb#30
2134
+ # source://tapioca//lib/tapioca/loaders/gem.rb#32
1967
2135
  sig { override.void }
1968
2136
  def load; end
1969
2137
 
1970
2138
  protected
1971
2139
 
1972
- # source://tapioca//lib/tapioca/loaders/gem.rb#74
2140
+ # source://tapioca//lib/tapioca/loaders/gem.rb#76
1973
2141
  sig { params(file: ::String, error: ::LoadError).void }
1974
2142
  def explain_failed_require(file, error); end
1975
2143
 
1976
- # source://tapioca//lib/tapioca/loaders/gem.rb#54
2144
+ # source://tapioca//lib/tapioca/loaders/gem.rb#56
1977
2145
  sig { void }
1978
2146
  def require_gem_file; end
1979
2147
 
@@ -2005,7 +2173,7 @@ class Tapioca::Loaders::Loader
2005
2173
 
2006
2174
  abstract!
2007
2175
 
2008
- # source://sorbet-runtime/0.5.10597/lib/types/private/abstract/declare.rb#37
2176
+ # source://sorbet-runtime/0.5.10624/lib/types/private/abstract/declare.rb#37
2009
2177
  def initialize(*args, **_arg1, &blk); end
2010
2178
 
2011
2179
  # @abstract
@@ -2016,7 +2184,7 @@ class Tapioca::Loaders::Loader
2016
2184
 
2017
2185
  private
2018
2186
 
2019
- # source://tapioca//lib/tapioca/loaders/loader.rb#109
2187
+ # source://tapioca//lib/tapioca/loaders/loader.rb#112
2020
2188
  sig { void }
2021
2189
  def eager_load_rails_app; end
2022
2190
 
@@ -2034,23 +2202,23 @@ class Tapioca::Loaders::Loader
2034
2202
  sig { params(environment_load: T::Boolean, eager_load: T::Boolean, app_root: ::String).void }
2035
2203
  def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil), app_root: T.unsafe(nil)); end
2036
2204
 
2037
- # source://tapioca//lib/tapioca/loaders/loader.rb#57
2205
+ # source://tapioca//lib/tapioca/loaders/loader.rb#60
2038
2206
  sig { void }
2039
2207
  def load_rails_engines; end
2040
2208
 
2041
- # source://tapioca//lib/tapioca/loaders/loader.rb#80
2209
+ # source://tapioca//lib/tapioca/loaders/loader.rb#83
2042
2210
  sig { returns(T::Array[T.untyped]) }
2043
2211
  def rails_engines; end
2044
2212
 
2045
- # source://tapioca//lib/tapioca/loaders/loader.rb#135
2213
+ # source://tapioca//lib/tapioca/loaders/loader.rb#138
2046
2214
  sig { params(file: T.nilable(::String)).void }
2047
2215
  def require_helper(file); end
2048
2216
 
2049
- # source://tapioca//lib/tapioca/loaders/loader.rb#94
2217
+ # source://tapioca//lib/tapioca/loaders/loader.rb#97
2050
2218
  sig { params(path: ::String).void }
2051
2219
  def safe_require(path); end
2052
2220
 
2053
- # source://tapioca//lib/tapioca/loaders/loader.rb#101
2221
+ # source://tapioca//lib/tapioca/loaders/loader.rb#104
2054
2222
  sig { void }
2055
2223
  def silence_deprecations; end
2056
2224
  end
@@ -2105,11 +2273,11 @@ module Tapioca::RBIFilesHelper
2105
2273
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2106
2274
  def extract_methods_and_attrs(nodes); end
2107
2275
 
2108
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#221
2276
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2109
2277
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2110
2278
  def extract_mixins(nodes); end
2111
2279
 
2112
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2280
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2113
2281
  sig do
2114
2282
  params(
2115
2283
  nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
@@ -2127,7 +2295,7 @@ module Tapioca::RBIFilesHelper
2127
2295
  end
2128
2296
  def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2129
2297
 
2130
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#260
2298
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2131
2299
  sig { params(path: ::String).returns(::String) }
2132
2300
  def gem_name_from_rbi_path(path); end
2133
2301
 
@@ -2139,7 +2307,7 @@ module Tapioca::RBIFilesHelper
2139
2307
  sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2140
2308
  def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2141
2309
 
2142
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#233
2310
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2143
2311
  sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2144
2312
  def update_gem_rbis_strictnesses(errors, gem_dir); end
2145
2313
  end
@@ -2585,13 +2753,22 @@ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMe
2585
2753
  # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#6
2586
2754
  module Tapioca::Runtime::Trackers
2587
2755
  class << self
2588
- # source://tapioca//lib/tapioca/runtime/trackers.rb#17
2756
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#34
2589
2757
  sig { void }
2590
2758
  def disable_all!; end
2591
2759
 
2592
- # source://tapioca//lib/tapioca/runtime/trackers.rb#22
2760
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#39
2593
2761
  sig { params(tracker: ::Tapioca::Runtime::Trackers::Tracker).void }
2594
2762
  def register_tracker(tracker); end
2763
+
2764
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#21
2765
+ sig do
2766
+ type_parameters(:Return)
2767
+ .params(
2768
+ blk: T.proc.returns(T.type_parameter(:Return))
2769
+ ).returns(T.type_parameter(:Return))
2770
+ end
2771
+ def with_trackers_enabled(&blk); end
2595
2772
  end
2596
2773
  end
2597
2774
 
@@ -2768,15 +2945,15 @@ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
2768
2945
 
2769
2946
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
2770
2947
  module Tapioca::SorbetHelper
2771
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#28
2948
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#31
2772
2949
  sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
2773
2950
  def sorbet(*sorbet_args); end
2774
2951
 
2775
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#33
2952
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#36
2776
2953
  sig { returns(::String) }
2777
2954
  def sorbet_path; end
2778
2955
 
2779
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#40
2956
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#43
2780
2957
  sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
2781
2958
  def sorbet_supports?(feature, version: T.unsafe(nil)); end
2782
2959
  end
@@ -2850,7 +3027,7 @@ module Tapioca::Static::SymbolLoader
2850
3027
 
2851
3028
  # @return [Array<T.class_of(Rails::Engine)>]
2852
3029
  #
2853
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#250
3030
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#250
2854
3031
  def engines(*args, **_arg1, &blk); end
2855
3032
 
2856
3033
  # source://tapioca//lib/tapioca/static/symbol_loader.rb#59
@@ -2992,30 +3169,30 @@ end
2992
3169
 
2993
3170
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
2994
3171
  class URI::Source < ::URI::File
2995
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#55
3172
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
2996
3173
  sig { params(v: T.nilable(::String)).returns(T::Boolean) }
2997
3174
  def check_host(v); end
2998
3175
 
2999
- # source://uri/0.11.0/uri/generic.rb#243
3176
+ # source://uri/0.12.0/uri/generic.rb#243
3000
3177
  def gem_name; end
3001
3178
 
3002
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#22
3179
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3003
3180
  sig { returns(T.nilable(::String)) }
3004
3181
  def gem_version; end
3005
3182
 
3006
- # source://uri/0.11.0/uri/generic.rb#283
3183
+ # source://uri/0.12.0/uri/generic.rb#283
3007
3184
  def line_number; end
3008
3185
 
3009
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#48
3186
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3010
3187
  sig { params(v: T.nilable(::String)).void }
3011
3188
  def set_path(v); end
3012
3189
 
3013
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#67
3190
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3014
3191
  sig { returns(::String) }
3015
3192
  def to_s; end
3016
3193
 
3017
3194
  class << self
3018
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#35
3195
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3019
3196
  sig do
3020
3197
  params(
3021
3198
  gem_name: ::String,
@@ -3030,3 +3207,9 @@ end
3030
3207
 
3031
3208
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3032
3209
  URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3210
+
3211
+ # source://uri/0.12.0/uri/common.rb#303
3212
+ URI::TBLENCURICOMP_ = T.let(T.unsafe(nil), Hash)
3213
+
3214
+ # source://uri/0.12.0/uri/wss.rb#19
3215
+ URI::WSS::DEFAULT_PORT = T.let(T.unsafe(nil), Integer)